diff --git a/CHANGELOG.md b/CHANGELOG.md index d74ab301d27..1722c4e8821 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,21 @@ +Release v1.48.7 (2023-11-28) +=== + +### Service Client Updates +* `service/accessanalyzer`: Updates service API and documentation +* `service/bedrock`: Updates service API and documentation +* `service/bedrock-agent`: Adds new service +* `service/bedrock-agent-runtime`: Adds new service +* `service/bedrock-runtime`: Updates service API, documentation, and waiters +* `service/connect`: Updates service API, documentation, and paginators +* `service/customer-profiles`: Updates service API and documentation +* `service/qbusiness`: Updates service API, documentation, paginators, and examples +* `service/qconnect`: Updates service API, documentation, paginators, and examples +* `service/s3`: Updates service API, documentation, paginators, and examples + * Adds support for S3 Express One Zone. +* `service/s3control`: Updates service API and documentation + * Adds support for S3 Express One Zone, and InvocationSchemaVersion 2.0 for S3 Batch Operations. + Release v1.48.6 (2023-11-28) === diff --git a/aws/endpoints/defaults.go b/aws/endpoints/defaults.go index 3ff8cb67420..fca694c3f7c 100644 --- a/aws/endpoints/defaults.go +++ b/aws/endpoints/defaults.go @@ -22488,6 +22488,161 @@ var awsPartition = partition{ }: endpoint{}, }, }, + "qbusiness": service{ + Defaults: endpointDefaults{ + defaultKey{}: endpoint{ + DNSSuffix: "api.aws", + }, + defaultKey{ + Variant: fipsVariant, + }: endpoint{ + Hostname: "{service}-fips.{region}.{dnsSuffix}", + DNSSuffix: "api.aws", + }, + }, + Endpoints: serviceEndpoints{ + endpointKey{ + Region: "af-south-1", + }: endpoint{ + Hostname: "qbusiness.af-south-1.api.aws", + }, + endpointKey{ + Region: "ap-east-1", + }: endpoint{ + Hostname: "qbusiness.ap-east-1.api.aws", + }, + endpointKey{ + Region: "ap-northeast-1", + }: endpoint{ + Hostname: "qbusiness.ap-northeast-1.api.aws", + }, + endpointKey{ + Region: "ap-northeast-2", + }: endpoint{ + Hostname: "qbusiness.ap-northeast-2.api.aws", + }, + endpointKey{ + Region: "ap-northeast-3", + }: endpoint{ + Hostname: "qbusiness.ap-northeast-3.api.aws", + }, + endpointKey{ + Region: "ap-south-1", + }: endpoint{ + Hostname: "qbusiness.ap-south-1.api.aws", + }, + endpointKey{ + Region: "ap-south-2", + }: endpoint{ + Hostname: "qbusiness.ap-south-2.api.aws", + }, + endpointKey{ + Region: "ap-southeast-1", + }: endpoint{ + Hostname: "qbusiness.ap-southeast-1.api.aws", + }, + endpointKey{ + Region: "ap-southeast-2", + }: endpoint{ + Hostname: "qbusiness.ap-southeast-2.api.aws", + }, + endpointKey{ + Region: "ap-southeast-3", + }: endpoint{ + Hostname: "qbusiness.ap-southeast-3.api.aws", + }, + endpointKey{ + Region: "ap-southeast-4", + }: endpoint{ + Hostname: "qbusiness.ap-southeast-4.api.aws", + }, + endpointKey{ + Region: "ca-central-1", + }: endpoint{ + Hostname: "qbusiness.ca-central-1.api.aws", + }, + endpointKey{ + Region: "eu-central-1", + }: endpoint{ + Hostname: "qbusiness.eu-central-1.api.aws", + }, + endpointKey{ + Region: "eu-central-2", + }: endpoint{ + Hostname: "qbusiness.eu-central-2.api.aws", + }, + endpointKey{ + Region: "eu-north-1", + }: endpoint{ + Hostname: "qbusiness.eu-north-1.api.aws", + }, + endpointKey{ + Region: "eu-south-1", + }: endpoint{ + Hostname: "qbusiness.eu-south-1.api.aws", + }, + endpointKey{ + Region: "eu-south-2", + }: endpoint{ + Hostname: "qbusiness.eu-south-2.api.aws", + }, + endpointKey{ + Region: "eu-west-1", + }: endpoint{ + Hostname: "qbusiness.eu-west-1.api.aws", + }, + endpointKey{ + Region: "eu-west-2", + }: endpoint{ + Hostname: "qbusiness.eu-west-2.api.aws", + }, + endpointKey{ + Region: "eu-west-3", + }: endpoint{ + Hostname: "qbusiness.eu-west-3.api.aws", + }, + endpointKey{ + Region: "il-central-1", + }: endpoint{ + Hostname: "qbusiness.il-central-1.api.aws", + }, + endpointKey{ + Region: "me-central-1", + }: endpoint{ + Hostname: "qbusiness.me-central-1.api.aws", + }, + endpointKey{ + Region: "me-south-1", + }: endpoint{ + Hostname: "qbusiness.me-south-1.api.aws", + }, + endpointKey{ + Region: "sa-east-1", + }: endpoint{ + Hostname: "qbusiness.sa-east-1.api.aws", + }, + endpointKey{ + Region: "us-east-1", + }: endpoint{ + Hostname: "qbusiness.us-east-1.api.aws", + }, + endpointKey{ + Region: "us-east-2", + }: endpoint{ + Hostname: "qbusiness.us-east-2.api.aws", + }, + endpointKey{ + Region: "us-west-1", + }: endpoint{ + Hostname: "qbusiness.us-west-1.api.aws", + }, + endpointKey{ + Region: "us-west-2", + }: endpoint{ + Hostname: "qbusiness.us-west-2.api.aws", + }, + }, + }, "qldb": service{ Endpoints: serviceEndpoints{ endpointKey{ @@ -34226,6 +34381,31 @@ var awscnPartition = partition{ }, }, }, + "qbusiness": service{ + Defaults: endpointDefaults{ + defaultKey{}: endpoint{ + DNSSuffix: "api.amazonwebservices.com.cn", + }, + defaultKey{ + Variant: fipsVariant, + }: endpoint{ + Hostname: "{service}-fips.{region}.{dnsSuffix}", + DNSSuffix: "api.amazonwebservices.com.cn", + }, + }, + Endpoints: serviceEndpoints{ + endpointKey{ + Region: "cn-north-1", + }: endpoint{ + Hostname: "qbusiness.cn-north-1.api.amazonwebservices.com.cn", + }, + endpointKey{ + Region: "cn-northwest-1", + }: endpoint{ + Hostname: "qbusiness.cn-northwest-1.api.amazonwebservices.com.cn", + }, + }, + }, "ram": service{ Endpoints: serviceEndpoints{ endpointKey{ @@ -36760,6 +36940,46 @@ var awsusgovPartition = partition{ }, }, }, + "drs": service{ + Endpoints: serviceEndpoints{ + endpointKey{ + Region: "fips-us-gov-east-1", + }: endpoint{ + Hostname: "drs-fips.us-gov-east-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-gov-east-1", + }, + Deprecated: boxedTrue, + }, + endpointKey{ + Region: "fips-us-gov-west-1", + }: endpoint{ + Hostname: "drs-fips.us-gov-west-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-gov-west-1", + }, + Deprecated: boxedTrue, + }, + endpointKey{ + Region: "us-gov-east-1", + }: endpoint{}, + endpointKey{ + Region: "us-gov-east-1", + Variant: fipsVariant, + }: endpoint{ + Hostname: "drs-fips.us-gov-east-1.amazonaws.com", + }, + endpointKey{ + Region: "us-gov-west-1", + }: endpoint{}, + endpointKey{ + Region: "us-gov-west-1", + Variant: fipsVariant, + }: endpoint{ + Hostname: "drs-fips.us-gov-west-1.amazonaws.com", + }, + }, + }, "ds": service{ Endpoints: serviceEndpoints{ endpointKey{ @@ -39290,6 +39510,31 @@ var awsusgovPartition = partition{ }, }, }, + "qbusiness": service{ + Defaults: endpointDefaults{ + defaultKey{}: endpoint{ + DNSSuffix: "api.aws", + }, + defaultKey{ + Variant: fipsVariant, + }: endpoint{ + Hostname: "{service}-fips.{region}.{dnsSuffix}", + DNSSuffix: "api.aws", + }, + }, + Endpoints: serviceEndpoints{ + endpointKey{ + Region: "us-gov-east-1", + }: endpoint{ + Hostname: "qbusiness.us-gov-east-1.api.aws", + }, + endpointKey{ + Region: "us-gov-west-1", + }: endpoint{ + Hostname: "qbusiness.us-gov-west-1.api.aws", + }, + }, + }, "quicksight": service{ Endpoints: serviceEndpoints{ endpointKey{ @@ -41573,6 +41818,28 @@ var awsisoPartition = partition{ }: endpoint{}, }, }, + "datasync": service{ + Endpoints: serviceEndpoints{ + endpointKey{ + Region: "fips-us-iso-west-1", + }: endpoint{ + Hostname: "datasync-fips.us-iso-west-1.c2s.ic.gov", + CredentialScope: credentialScope{ + Region: "us-iso-west-1", + }, + Deprecated: boxedTrue, + }, + endpointKey{ + Region: "us-iso-west-1", + }: endpoint{}, + endpointKey{ + Region: "us-iso-west-1", + Variant: fipsVariant, + }: endpoint{ + Hostname: "datasync-fips.us-iso-west-1.c2s.ic.gov", + }, + }, + }, "directconnect": service{ Endpoints: serviceEndpoints{ endpointKey{ diff --git a/aws/version.go b/aws/version.go index 3ce539b3c39..77340c96a1a 100644 --- a/aws/version.go +++ b/aws/version.go @@ -5,4 +5,4 @@ package aws const SDKName = "aws-sdk-go" // SDKVersion is the version of this SDK -const SDKVersion = "1.48.6" +const SDKVersion = "1.48.7" diff --git a/models/apis/accessanalyzer/2019-11-01/api-2.json b/models/apis/accessanalyzer/2019-11-01/api-2.json index 4718258a0f7..63b04080bc4 100644 --- a/models/apis/accessanalyzer/2019-11-01/api-2.json +++ b/models/apis/accessanalyzer/2019-11-01/api-2.json @@ -982,7 +982,8 @@ "secretsManagerSecret":{"shape":"SecretsManagerSecretConfiguration"}, "s3Bucket":{"shape":"S3BucketConfiguration"}, "snsTopic":{"shape":"SnsTopicConfiguration"}, - "sqsQueue":{"shape":"SqsQueueConfiguration"} + "sqsQueue":{"shape":"SqsQueueConfiguration"}, + "s3ExpressDirectoryBucket":{"shape":"S3ExpressDirectoryBucketConfiguration"} }, "union":true }, @@ -2217,7 +2218,8 @@ "AWS::ECR::Repository", "AWS::RDS::DBSnapshot", "AWS::RDS::DBClusterSnapshot", - "AWS::SNS::Topic" + "AWS::SNS::Topic", + "AWS::S3Express::DirectoryBucket" ] }, "RetiringPrincipal":{"type":"string"}, @@ -2263,6 +2265,13 @@ } }, "S3BucketPolicy":{"type":"string"}, + "S3ExpressDirectoryBucketConfiguration":{ + "type":"structure", + "members":{ + "bucketPolicy":{"shape":"S3ExpressDirectoryBucketPolicy"} + } + }, + "S3ExpressDirectoryBucketPolicy":{"type":"string"}, "S3PublicAccessBlockConfiguration":{ "type":"structure", "required":[ diff --git a/models/apis/accessanalyzer/2019-11-01/docs-2.json b/models/apis/accessanalyzer/2019-11-01/docs-2.json index a1ca221a437..1b3c5e63471 100644 --- a/models/apis/accessanalyzer/2019-11-01/docs-2.json +++ b/models/apis/accessanalyzer/2019-11-01/docs-2.json @@ -1307,7 +1307,7 @@ "S3BucketConfiguration": { "base": "

Proposed access control configuration for an Amazon S3 bucket. You can propose a configuration for a new Amazon S3 bucket or an existing Amazon S3 bucket that you own by specifying the Amazon S3 bucket policy, bucket ACLs, bucket BPA settings, Amazon S3 access points, and multi-region access points attached to the bucket. If the configuration is for an existing Amazon S3 bucket and you do not specify the Amazon S3 bucket policy, the access preview uses the existing policy attached to the bucket. If the access preview is for a new resource and you do not specify the Amazon S3 bucket policy, the access preview assumes a bucket without a policy. To propose deletion of an existing bucket policy, you can specify an empty string. For more information about bucket policy limits, see Bucket Policy Examples.

", "refs": { - "Configuration$s3Bucket": "

The access control configuration is for an Amazon S3 Bucket.

" + "Configuration$s3Bucket": "

The access control configuration is for an Amazon S3 bucket.

" } }, "S3BucketPolicy": { @@ -1316,6 +1316,18 @@ "S3BucketConfiguration$bucketPolicy": "

The proposed bucket policy for the Amazon S3 bucket.

" } }, + "S3ExpressDirectoryBucketConfiguration": { + "base": "

Proposed access control configuration for an Amazon S3 directory bucket. You can propose a configuration for a new Amazon S3 directory bucket or an existing Amazon S3 directory bucket that you own by specifying the Amazon S3 bucket policy. If the configuration is for an existing Amazon S3 directory bucket and you do not specify the Amazon S3 bucket policy, the access preview uses the existing policy attached to the directory bucket. If the access preview is for a new resource and you do not specify the Amazon S3 bucket policy, the access preview assumes an directory bucket without a policy. To propose deletion of an existing bucket policy, you can specify an empty string. For more information about bucket policy limits, see Example bucket policies.

", + "refs": { + "Configuration$s3ExpressDirectoryBucket": "

The access control configuration is for an Amazon S3 directory bucket.

" + } + }, + "S3ExpressDirectoryBucketPolicy": { + "base": null, + "refs": { + "S3ExpressDirectoryBucketConfiguration$bucketPolicy": "

The proposed bucket policy for the Amazon S3 directory bucket.

" + } + }, "S3PublicAccessBlockConfiguration": { "base": "

The PublicAccessBlock configuration to apply to this Amazon S3 bucket. If the proposed configuration is for an existing Amazon S3 bucket and the configuration is not specified, the access preview uses the existing setting. If the proposed configuration is for a new bucket and the configuration is not specified, the access preview uses false. If the proposed configuration is for a new access point or multi-region access point and the access point BPA configuration is not specified, the access preview uses true. For more information, see PublicAccessBlockConfiguration.

", "refs": { diff --git a/models/apis/bedrock-agent-runtime/2023-07-26/api-2.json b/models/apis/bedrock-agent-runtime/2023-07-26/api-2.json new file mode 100644 index 00000000000..5fdb56a1d06 --- /dev/null +++ b/models/apis/bedrock-agent-runtime/2023-07-26/api-2.json @@ -0,0 +1,901 @@ +{ + "version":"2.0", + "metadata":{ + "apiVersion":"2023-07-26", + "endpointPrefix":"bedrock-agent-runtime", + "jsonVersion":"1.1", + "protocol":"rest-json", + "serviceFullName":"Agents for Amazon Bedrock Runtime", + "serviceId":"Bedrock Agent Runtime", + "signatureVersion":"v4", + "signingName":"bedrock", + "uid":"bedrock-agent-runtime-2023-07-26" + }, + "operations":{ + "InvokeAgent":{ + "name":"InvokeAgent", + "http":{ + "method":"POST", + "requestUri":"/agents/{agentId}/agentAliases/{agentAliasId}/sessions/{sessionId}/text", + "responseCode":200 + }, + "input":{"shape":"InvokeAgentRequest"}, + "output":{"shape":"InvokeAgentResponse"}, + "errors":[ + {"shape":"ConflictException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"}, + {"shape":"DependencyFailedException"}, + {"shape":"BadGatewayException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ServiceQuotaExceededException"} + ] + }, + "Retrieve":{ + "name":"Retrieve", + "http":{ + "method":"POST", + "requestUri":"/knowledgebases/{knowledgeBaseId}/retrieve", + "responseCode":200 + }, + "input":{"shape":"RetrieveRequest"}, + "output":{"shape":"RetrieveResponse"}, + "errors":[ + {"shape":"ConflictException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"}, + {"shape":"DependencyFailedException"}, + {"shape":"BadGatewayException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ServiceQuotaExceededException"} + ] + }, + "RetrieveAndGenerate":{ + "name":"RetrieveAndGenerate", + "http":{ + "method":"POST", + "requestUri":"/retrieveAndGenerate", + "responseCode":200 + }, + "input":{"shape":"RetrieveAndGenerateRequest"}, + "output":{"shape":"RetrieveAndGenerateResponse"}, + "errors":[ + {"shape":"ConflictException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"}, + {"shape":"DependencyFailedException"}, + {"shape":"BadGatewayException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ServiceQuotaExceededException"} + ] + } + }, + "shapes":{ + "AccessDeniedException":{ + "type":"structure", + "members":{ + "message":{"shape":"NonBlankString"} + }, + "error":{ + "httpStatusCode":403, + "senderFault":true + }, + "exception":true + }, + "ActionGroupInvocationInput":{ + "type":"structure", + "members":{ + "actionGroupName":{"shape":"ActionGroupName"}, + "verb":{"shape":"Verb"}, + "apiPath":{"shape":"ApiPath"}, + "parameters":{"shape":"Parameters"}, + "requestBody":{"shape":"RequestBody"} + } + }, + "ActionGroupInvocationOutput":{ + "type":"structure", + "members":{ + "text":{"shape":"ActionGroupOutputString"} + } + }, + "ActionGroupName":{ + "type":"string", + "sensitive":true + }, + "ActionGroupOutputString":{ + "type":"string", + "sensitive":true + }, + "AgentAliasId":{ + "type":"string", + "max":10, + "min":0, + "pattern":"[0-9a-zA-Z]+" + }, + "AgentId":{ + "type":"string", + "max":10, + "min":0, + "pattern":"[0-9a-zA-Z]+" + }, + "ApiPath":{ + "type":"string", + "sensitive":true + }, + "Attribution":{ + "type":"structure", + "members":{ + "citations":{"shape":"Citations"} + } + }, + "BadGatewayException":{ + "type":"structure", + "members":{ + "message":{"shape":"NonBlankString"}, + "resourceName":{"shape":"NonBlankString"} + }, + "error":{"httpStatusCode":502}, + "exception":true, + "fault":true + }, + "BedrockModelArn":{ + "type":"string", + "max":1011, + "min":20, + "pattern":"arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:(([0-9]{12}:custom-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}/[a-z0-9]{12})|(:foundation-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}))" + }, + "Boolean":{ + "type":"boolean", + "box":true + }, + "Citation":{ + "type":"structure", + "members":{ + "generatedResponsePart":{"shape":"GeneratedResponsePart"}, + "retrievedReferences":{"shape":"RetrievedReferences"} + } + }, + "Citations":{ + "type":"list", + "member":{"shape":"Citation"} + }, + "ConflictException":{ + "type":"structure", + "members":{ + "message":{"shape":"NonBlankString"} + }, + "error":{ + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + "ContentMap":{ + "type":"map", + "key":{"shape":"String"}, + "value":{"shape":"Parameters"} + }, + "CreationMode":{ + "type":"string", + "enum":[ + "DEFAULT", + "OVERRIDDEN" + ] + }, + "DependencyFailedException":{ + "type":"structure", + "members":{ + "message":{"shape":"NonBlankString"}, + "resourceName":{"shape":"NonBlankString"} + }, + "error":{ + "httpStatusCode":424, + "senderFault":true + }, + "exception":true + }, + "Double":{ + "type":"double", + "box":true + }, + "FailureReasonString":{ + "type":"string", + "sensitive":true + }, + "FailureTrace":{ + "type":"structure", + "members":{ + "traceId":{"shape":"TraceId"}, + "failureReason":{"shape":"FailureReasonString"} + }, + "sensitive":true + }, + "FinalResponse":{ + "type":"structure", + "members":{ + "text":{"shape":"FinalResponseString"} + } + }, + "FinalResponseString":{ + "type":"string", + "sensitive":true + }, + "GeneratedResponsePart":{ + "type":"structure", + "members":{ + "textResponsePart":{"shape":"TextResponsePart"} + } + }, + "InferenceConfiguration":{ + "type":"structure", + "members":{ + "temperature":{"shape":"Temperature"}, + "topP":{"shape":"TopP"}, + "topK":{"shape":"TopK"}, + "maximumLength":{"shape":"MaximumLength"}, + "stopSequences":{"shape":"StopSequences"} + } + }, + "InputText":{ + "type":"string", + "max":25000000, + "min":0, + "sensitive":true + }, + "InternalServerException":{ + "type":"structure", + "members":{ + "message":{"shape":"NonBlankString"} + }, + "error":{"httpStatusCode":500}, + "exception":true, + "fault":true + }, + "InvocationInput":{ + "type":"structure", + "members":{ + "traceId":{"shape":"TraceId"}, + "invocationType":{"shape":"InvocationType"}, + "actionGroupInvocationInput":{"shape":"ActionGroupInvocationInput"}, + "knowledgeBaseLookupInput":{"shape":"KnowledgeBaseLookupInput"} + }, + "sensitive":true + }, + "InvocationType":{ + "type":"string", + "enum":[ + "ACTION_GROUP", + "KNOWLEDGE_BASE", + "FINISH" + ] + }, + "InvokeAgentRequest":{ + "type":"structure", + "required":[ + "agentId", + "agentAliasId", + "sessionId", + "inputText" + ], + "members":{ + "sessionState":{"shape":"SessionState"}, + "agentId":{ + "shape":"AgentId", + "location":"uri", + "locationName":"agentId" + }, + "agentAliasId":{ + "shape":"AgentAliasId", + "location":"uri", + "locationName":"agentAliasId" + }, + "sessionId":{ + "shape":"SessionId", + "location":"uri", + "locationName":"sessionId" + }, + "endSession":{"shape":"Boolean"}, + "enableTrace":{"shape":"Boolean"}, + "inputText":{"shape":"InputText"} + } + }, + "InvokeAgentResponse":{ + "type":"structure", + "required":[ + "completion", + "contentType", + "sessionId" + ], + "members":{ + "completion":{"shape":"ResponseStream"}, + "contentType":{ + "shape":"MimeType", + "location":"header", + "locationName":"x-amzn-bedrock-agent-content-type" + }, + "sessionId":{ + "shape":"SessionId", + "location":"header", + "locationName":"x-amz-bedrock-agent-session-id" + } + }, + "payload":"completion" + }, + "KmsKeyArn":{ + "type":"string", + "max":2048, + "min":1, + "pattern":"arn:aws(|-cn|-us-gov):kms:[a-zA-Z0-9-]*:[0-9]{12}:key/[a-zA-Z0-9-]{36}" + }, + "KnowledgeBaseId":{ + "type":"string", + "max":10, + "min":0, + "pattern":"[0-9a-zA-Z]+" + }, + "KnowledgeBaseLookupInput":{ + "type":"structure", + "members":{ + "text":{"shape":"KnowledgeBaseLookupInputString"}, + "knowledgeBaseId":{"shape":"TraceKnowledgeBaseId"} + } + }, + "KnowledgeBaseLookupInputString":{ + "type":"string", + "sensitive":true + }, + "KnowledgeBaseLookupOutput":{ + "type":"structure", + "members":{ + "retrievedReferences":{"shape":"RetrievedReferences"} + } + }, + "KnowledgeBaseQuery":{ + "type":"structure", + "required":["text"], + "members":{ + "text":{"shape":"KnowledgeBaseQueryTextString"} + }, + "sensitive":true + }, + "KnowledgeBaseQueryTextString":{ + "type":"string", + "max":1000, + "min":0 + }, + "KnowledgeBaseRetrievalConfiguration":{ + "type":"structure", + "required":["vectorSearchConfiguration"], + "members":{ + "vectorSearchConfiguration":{"shape":"KnowledgeBaseVectorSearchConfiguration"} + } + }, + "KnowledgeBaseRetrievalResult":{ + "type":"structure", + "required":["content"], + "members":{ + "content":{"shape":"RetrievalResultContent"}, + "location":{"shape":"RetrievalResultLocation"}, + "score":{"shape":"Double"} + } + }, + "KnowledgeBaseRetrievalResults":{ + "type":"list", + "member":{"shape":"KnowledgeBaseRetrievalResult"}, + "sensitive":true + }, + "KnowledgeBaseRetrieveAndGenerateConfiguration":{ + "type":"structure", + "required":[ + "knowledgeBaseId", + "modelArn" + ], + "members":{ + "knowledgeBaseId":{"shape":"KnowledgeBaseId"}, + "modelArn":{"shape":"BedrockModelArn"} + } + }, + "KnowledgeBaseVectorSearchConfiguration":{ + "type":"structure", + "required":["numberOfResults"], + "members":{ + "numberOfResults":{"shape":"KnowledgeBaseVectorSearchConfigurationNumberOfResultsInteger"} + } + }, + "KnowledgeBaseVectorSearchConfigurationNumberOfResultsInteger":{ + "type":"integer", + "box":true, + "max":10, + "min":1 + }, + "LambdaArn":{"type":"string"}, + "MaximumLength":{ + "type":"integer", + "box":true, + "max":4096, + "min":0 + }, + "MimeType":{"type":"string"}, + "ModelInvocationInput":{ + "type":"structure", + "members":{ + "traceId":{"shape":"TraceId"}, + "text":{"shape":"PromptText"}, + "type":{"shape":"PromptType"}, + "inferenceConfiguration":{"shape":"InferenceConfiguration"}, + "overrideLambda":{"shape":"LambdaArn"}, + "promptCreationMode":{"shape":"CreationMode"}, + "parserMode":{"shape":"CreationMode"} + }, + "sensitive":true + }, + "NextToken":{ + "type":"string", + "max":2048, + "min":1, + "pattern":"\\S*" + }, + "NonBlankString":{ + "type":"string", + "pattern":"[\\s\\S]*" + }, + "Observation":{ + "type":"structure", + "members":{ + "traceId":{"shape":"TraceId"}, + "type":{"shape":"Type"}, + "actionGroupInvocationOutput":{"shape":"ActionGroupInvocationOutput"}, + "knowledgeBaseLookupOutput":{"shape":"KnowledgeBaseLookupOutput"}, + "finalResponse":{"shape":"FinalResponse"}, + "repromptResponse":{"shape":"RepromptResponse"} + }, + "sensitive":true + }, + "OrchestrationTrace":{ + "type":"structure", + "members":{ + "rationale":{"shape":"Rationale"}, + "invocationInput":{"shape":"InvocationInput"}, + "observation":{"shape":"Observation"}, + "modelInvocationInput":{"shape":"ModelInvocationInput"} + }, + "sensitive":true, + "union":true + }, + "OutputString":{ + "type":"string", + "sensitive":true + }, + "Parameter":{ + "type":"structure", + "members":{ + "name":{"shape":"String"}, + "type":{"shape":"String"}, + "value":{"shape":"String"} + } + }, + "Parameters":{ + "type":"list", + "member":{"shape":"Parameter"} + }, + "PartBody":{ + "type":"blob", + "max":1000000, + "min":0, + "sensitive":true + }, + "PayloadPart":{ + "type":"structure", + "members":{ + "bytes":{"shape":"PartBody"}, + "attribution":{"shape":"Attribution"} + }, + "event":true, + "sensitive":true + }, + "PostProcessingModelInvocationOutput":{ + "type":"structure", + "members":{ + "traceId":{"shape":"TraceId"}, + "parsedResponse":{"shape":"PostProcessingParsedResponse"} + }, + "sensitive":true + }, + "PostProcessingParsedResponse":{ + "type":"structure", + "members":{ + "text":{"shape":"OutputString"} + }, + "sensitive":true + }, + "PostProcessingTrace":{ + "type":"structure", + "members":{ + "modelInvocationInput":{"shape":"ModelInvocationInput"}, + "modelInvocationOutput":{"shape":"PostProcessingModelInvocationOutput"} + }, + "sensitive":true, + "union":true + }, + "PreProcessingModelInvocationOutput":{ + "type":"structure", + "members":{ + "traceId":{"shape":"TraceId"}, + "parsedResponse":{"shape":"PreProcessingParsedResponse"} + }, + "sensitive":true + }, + "PreProcessingParsedResponse":{ + "type":"structure", + "members":{ + "rationale":{"shape":"RationaleString"}, + "isValid":{"shape":"Boolean"} + }, + "sensitive":true + }, + "PreProcessingTrace":{ + "type":"structure", + "members":{ + "modelInvocationInput":{"shape":"ModelInvocationInput"}, + "modelInvocationOutput":{"shape":"PreProcessingModelInvocationOutput"} + }, + "sensitive":true, + "union":true + }, + "PromptSessionAttributesMap":{ + "type":"map", + "key":{"shape":"String"}, + "value":{"shape":"String"} + }, + "PromptText":{ + "type":"string", + "sensitive":true + }, + "PromptType":{ + "type":"string", + "enum":[ + "PRE_PROCESSING", + "ORCHESTRATION", + "KNOWLEDGE_BASE_RESPONSE_GENERATION", + "POST_PROCESSING" + ] + }, + "Rationale":{ + "type":"structure", + "members":{ + "traceId":{"shape":"TraceId"}, + "text":{"shape":"RationaleString"} + }, + "sensitive":true + }, + "RationaleString":{ + "type":"string", + "sensitive":true + }, + "RepromptResponse":{ + "type":"structure", + "members":{ + "text":{"shape":"String"}, + "source":{"shape":"Source"} + }, + "sensitive":true + }, + "RequestBody":{ + "type":"structure", + "members":{ + "content":{"shape":"ContentMap"} + } + }, + "ResourceNotFoundException":{ + "type":"structure", + "members":{ + "message":{"shape":"NonBlankString"} + }, + "error":{ + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + "ResponseStream":{ + "type":"structure", + "members":{ + "chunk":{"shape":"PayloadPart"}, + "trace":{"shape":"TracePart"}, + "internalServerException":{"shape":"InternalServerException"}, + "validationException":{"shape":"ValidationException"}, + "resourceNotFoundException":{"shape":"ResourceNotFoundException"}, + "serviceQuotaExceededException":{"shape":"ServiceQuotaExceededException"}, + "throttlingException":{"shape":"ThrottlingException"}, + "accessDeniedException":{"shape":"AccessDeniedException"}, + "conflictException":{"shape":"ConflictException"}, + "dependencyFailedException":{"shape":"DependencyFailedException"}, + "badGatewayException":{"shape":"BadGatewayException"} + }, + "eventstream":true + }, + "RetrievalResultContent":{ + "type":"structure", + "required":["text"], + "members":{ + "text":{"shape":"String"} + } + }, + "RetrievalResultLocation":{ + "type":"structure", + "required":["type"], + "members":{ + "type":{"shape":"RetrievalResultLocationType"}, + "s3Location":{"shape":"RetrievalResultS3Location"} + } + }, + "RetrievalResultLocationType":{ + "type":"string", + "enum":["S3"] + }, + "RetrievalResultS3Location":{ + "type":"structure", + "members":{ + "uri":{"shape":"String"} + } + }, + "RetrieveAndGenerateConfiguration":{ + "type":"structure", + "required":["type"], + "members":{ + "type":{"shape":"RetrieveAndGenerateType"}, + "knowledgeBaseConfiguration":{"shape":"KnowledgeBaseRetrieveAndGenerateConfiguration"} + } + }, + "RetrieveAndGenerateInput":{ + "type":"structure", + "required":["text"], + "members":{ + "text":{"shape":"RetrieveAndGenerateInputTextString"} + }, + "sensitive":true + }, + "RetrieveAndGenerateInputTextString":{ + "type":"string", + "max":1000, + "min":0 + }, + "RetrieveAndGenerateOutput":{ + "type":"structure", + "required":["text"], + "members":{ + "text":{"shape":"String"} + }, + "sensitive":true + }, + "RetrieveAndGenerateRequest":{ + "type":"structure", + "required":["input"], + "members":{ + "sessionId":{"shape":"SessionId"}, + "input":{"shape":"RetrieveAndGenerateInput"}, + "retrieveAndGenerateConfiguration":{"shape":"RetrieveAndGenerateConfiguration"}, + "sessionConfiguration":{"shape":"RetrieveAndGenerateSessionConfiguration"} + } + }, + "RetrieveAndGenerateResponse":{ + "type":"structure", + "required":[ + "sessionId", + "output" + ], + "members":{ + "sessionId":{"shape":"SessionId"}, + "output":{"shape":"RetrieveAndGenerateOutput"}, + "citations":{"shape":"Citations"} + } + }, + "RetrieveAndGenerateSessionConfiguration":{ + "type":"structure", + "required":["kmsKeyArn"], + "members":{ + "kmsKeyArn":{"shape":"KmsKeyArn"} + } + }, + "RetrieveAndGenerateType":{ + "type":"string", + "enum":["KNOWLEDGE_BASE"] + }, + "RetrieveRequest":{ + "type":"structure", + "required":[ + "knowledgeBaseId", + "retrievalQuery" + ], + "members":{ + "knowledgeBaseId":{ + "shape":"KnowledgeBaseId", + "location":"uri", + "locationName":"knowledgeBaseId" + }, + "retrievalQuery":{"shape":"KnowledgeBaseQuery"}, + "retrievalConfiguration":{"shape":"KnowledgeBaseRetrievalConfiguration"}, + "nextToken":{"shape":"NextToken"} + } + }, + "RetrieveResponse":{ + "type":"structure", + "required":["retrievalResults"], + "members":{ + "retrievalResults":{"shape":"KnowledgeBaseRetrievalResults"}, + "nextToken":{"shape":"NextToken"} + } + }, + "RetrievedReference":{ + "type":"structure", + "members":{ + "content":{"shape":"RetrievalResultContent"}, + "location":{"shape":"RetrievalResultLocation"} + } + }, + "RetrievedReferences":{ + "type":"list", + "member":{"shape":"RetrievedReference"} + }, + "ServiceQuotaExceededException":{ + "type":"structure", + "members":{ + "message":{"shape":"NonBlankString"} + }, + "error":{ + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "SessionAttributesMap":{ + "type":"map", + "key":{"shape":"String"}, + "value":{"shape":"String"} + }, + "SessionId":{ + "type":"string", + "max":100, + "min":2, + "pattern":"[0-9a-zA-Z._:-]+" + }, + "SessionState":{ + "type":"structure", + "members":{ + "sessionAttributes":{"shape":"SessionAttributesMap"}, + "promptSessionAttributes":{"shape":"PromptSessionAttributesMap"} + } + }, + "Source":{ + "type":"string", + "enum":[ + "ACTION_GROUP", + "KNOWLEDGE_BASE", + "PARSER" + ], + "sensitive":true + }, + "Span":{ + "type":"structure", + "members":{ + "start":{"shape":"SpanStartInteger"}, + "end":{"shape":"SpanEndInteger"} + } + }, + "SpanEndInteger":{ + "type":"integer", + "box":true, + "min":0 + }, + "SpanStartInteger":{ + "type":"integer", + "box":true, + "min":0 + }, + "StopSequences":{ + "type":"list", + "member":{"shape":"String"}, + "max":4, + "min":0 + }, + "String":{"type":"string"}, + "Temperature":{ + "type":"float", + "box":true, + "max":1, + "min":0 + }, + "TextResponsePart":{ + "type":"structure", + "members":{ + "text":{"shape":"String"}, + "span":{"shape":"Span"} + } + }, + "ThrottlingException":{ + "type":"structure", + "members":{ + "message":{"shape":"NonBlankString"} + }, + "error":{ + "httpStatusCode":429, + "senderFault":true + }, + "exception":true + }, + "TopK":{ + "type":"integer", + "box":true, + "max":500, + "min":0 + }, + "TopP":{ + "type":"float", + "box":true, + "max":1, + "min":0 + }, + "Trace":{ + "type":"structure", + "members":{ + "preProcessingTrace":{"shape":"PreProcessingTrace"}, + "orchestrationTrace":{"shape":"OrchestrationTrace"}, + "postProcessingTrace":{"shape":"PostProcessingTrace"}, + "failureTrace":{"shape":"FailureTrace"} + }, + "sensitive":true, + "union":true + }, + "TraceId":{ + "type":"string", + "max":16, + "min":2 + }, + "TraceKnowledgeBaseId":{ + "type":"string", + "sensitive":true + }, + "TracePart":{ + "type":"structure", + "members":{ + "agentId":{"shape":"AgentId"}, + "agentAliasId":{"shape":"AgentAliasId"}, + "sessionId":{"shape":"SessionId"}, + "trace":{"shape":"Trace"} + }, + "event":true, + "sensitive":true + }, + "Type":{ + "type":"string", + "enum":[ + "ACTION_GROUP", + "KNOWLEDGE_BASE", + "FINISH", + "ASK_USER", + "REPROMPT" + ] + }, + "ValidationException":{ + "type":"structure", + "members":{ + "message":{"shape":"NonBlankString"} + }, + "error":{ + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "Verb":{ + "type":"string", + "sensitive":true + } + } +} diff --git a/models/apis/bedrock-agent-runtime/2023-07-26/docs-2.json b/models/apis/bedrock-agent-runtime/2023-07-26/docs-2.json new file mode 100644 index 00000000000..10e4a6f4c72 --- /dev/null +++ b/models/apis/bedrock-agent-runtime/2023-07-26/docs-2.json @@ -0,0 +1,713 @@ +{ + "version": "2.0", + "service": "

Amazon Bedrock Agent

", + "operations": { + "InvokeAgent": "

Invokes the specified Bedrock model to run inference using the input provided in the request body.

", + "Retrieve": "

Retrieve from knowledge base.

", + "RetrieveAndGenerate": "

RetrieveAndGenerate API

" + }, + "shapes": { + "AccessDeniedException": { + "base": "

This exception is thrown when a request is denied per access permissions

", + "refs": { + "ResponseStream$accessDeniedException": null + } + }, + "ActionGroupInvocationInput": { + "base": "

input to lambda used in action group

", + "refs": { + "InvocationInput$actionGroupInvocationInput": null + } + }, + "ActionGroupInvocationOutput": { + "base": "

output from lambda used in action group

", + "refs": { + "Observation$actionGroupInvocationOutput": null + } + }, + "ActionGroupName": { + "base": "

Agent Trace Action Group Name

", + "refs": { + "ActionGroupInvocationInput$actionGroupName": null + } + }, + "ActionGroupOutputString": { + "base": "

Agent Trace Action Group Lambda Invocation Output String

", + "refs": { + "ActionGroupInvocationOutput$text": null + } + }, + "AgentAliasId": { + "base": "

Identifier of the agent alias.

", + "refs": { + "InvokeAgentRequest$agentAliasId": "

Identifier for Agent Alias

", + "TracePart$agentAliasId": null + } + }, + "AgentId": { + "base": "

Identifier of the agent.

", + "refs": { + "InvokeAgentRequest$agentId": "

Identifier for Agent

", + "TracePart$agentId": null + } + }, + "ApiPath": { + "base": "

Agent Trace Action Group API path

", + "refs": { + "ActionGroupInvocationInput$apiPath": null + } + }, + "Attribution": { + "base": "

Citations associated with final agent response

", + "refs": { + "PayloadPart$attribution": null + } + }, + "BadGatewayException": { + "base": "

This exception is thrown when a request fails due to dependency like Lambda, Bedrock, STS resource

", + "refs": { + "ResponseStream$badGatewayException": null + } + }, + "BedrockModelArn": { + "base": "

Arn of a Bedrock model.

", + "refs": { + "KnowledgeBaseRetrieveAndGenerateConfiguration$modelArn": null + } + }, + "Boolean": { + "base": null, + "refs": { + "InvokeAgentRequest$endSession": "

End current session

", + "InvokeAgentRequest$enableTrace": "

Enable agent trace events for improved debugging

", + "PreProcessingParsedResponse$isValid": "

Boolean value

" + } + }, + "Citation": { + "base": "

Citation associated with the agent response

", + "refs": { + "Citations$member": null + } + }, + "Citations": { + "base": "

List of citations

", + "refs": { + "Attribution$citations": null, + "RetrieveAndGenerateResponse$citations": null + } + }, + "ConflictException": { + "base": "

This exception is thrown when there is a conflict performing an operation

", + "refs": { + "ResponseStream$conflictException": null + } + }, + "ContentMap": { + "base": "

Content type paramter map

", + "refs": { + "RequestBody$content": null + } + }, + "CreationMode": { + "base": "

indicates if agent uses default prompt or overriden prompt

", + "refs": { + "ModelInvocationInput$promptCreationMode": null, + "ModelInvocationInput$parserMode": null + } + }, + "DependencyFailedException": { + "base": "

This exception is thrown when a request fails due to dependency like Lambda, Bedrock, STS resource due to a customer fault (i.e. bad configuration)

", + "refs": { + "ResponseStream$dependencyFailedException": null + } + }, + "Double": { + "base": null, + "refs": { + "KnowledgeBaseRetrievalResult$score": "

The relevance score of a result.

" + } + }, + "FailureReasonString": { + "base": "

Agent Trace Failed Reason String

", + "refs": { + "FailureTrace$failureReason": null + } + }, + "FailureTrace": { + "base": "

Trace Part which is emitted when agent trace could not be generated

", + "refs": { + "Trace$failureTrace": null + } + }, + "FinalResponse": { + "base": "

Agent finish output

", + "refs": { + "Observation$finalResponse": null + } + }, + "FinalResponseString": { + "base": "

Agent Trace Action Group Lambda Invocation Output String

", + "refs": { + "FinalResponse$text": null + } + }, + "GeneratedResponsePart": { + "base": "

Generate response part

", + "refs": { + "Citation$generatedResponsePart": null + } + }, + "InferenceConfiguration": { + "base": "

Configurations for controlling the inference response of an InvokeAgent API call

", + "refs": { + "ModelInvocationInput$inferenceConfiguration": null + } + }, + "InputText": { + "base": "

Model text input

", + "refs": { + "InvokeAgentRequest$inputText": "

Input data in the format specified in the Content-Type request header.

" + } + }, + "InternalServerException": { + "base": "

This exception is thrown if there was an unexpected error during processing of request

", + "refs": { + "ResponseStream$internalServerException": null + } + }, + "InvocationInput": { + "base": "

Trace Part which contains input details for action group or knowledge base

", + "refs": { + "OrchestrationTrace$invocationInput": null + } + }, + "InvocationType": { + "base": "

types of invocations

", + "refs": { + "InvocationInput$invocationType": null + } + }, + "InvokeAgentRequest": { + "base": "

InvokeAgent Request

", + "refs": { + } + }, + "InvokeAgentResponse": { + "base": "

InvokeAgent Response

", + "refs": { + } + }, + "KmsKeyArn": { + "base": "

A KMS key ARN

", + "refs": { + "RetrieveAndGenerateSessionConfiguration$kmsKeyArn": "

The KMS key arn to encrypt the customer data of the session.

" + } + }, + "KnowledgeBaseId": { + "base": "

Identifier of the KnowledgeBase

", + "refs": { + "KnowledgeBaseRetrieveAndGenerateConfiguration$knowledgeBaseId": null, + "RetrieveRequest$knowledgeBaseId": null + } + }, + "KnowledgeBaseLookupInput": { + "base": "

Input to lambda used in action group

", + "refs": { + "InvocationInput$knowledgeBaseLookupInput": null + } + }, + "KnowledgeBaseLookupInputString": { + "base": "

Agent Trace Action Group Lambda Invocation Output String

", + "refs": { + "KnowledgeBaseLookupInput$text": null + } + }, + "KnowledgeBaseLookupOutput": { + "base": "

Input to lambda used in action group

", + "refs": { + "Observation$knowledgeBaseLookupOutput": null + } + }, + "KnowledgeBaseQuery": { + "base": "

Knowledge base input query.

", + "refs": { + "RetrieveRequest$retrievalQuery": null + } + }, + "KnowledgeBaseQueryTextString": { + "base": null, + "refs": { + "KnowledgeBaseQuery$text": "

Knowledge base input query in text

" + } + }, + "KnowledgeBaseRetrievalConfiguration": { + "base": "

Search parameters for retrieving from knowledge base.

", + "refs": { + "RetrieveRequest$retrievalConfiguration": null + } + }, + "KnowledgeBaseRetrievalResult": { + "base": "

Result item returned from a knowledge base retrieval.

", + "refs": { + "KnowledgeBaseRetrievalResults$member": null + } + }, + "KnowledgeBaseRetrievalResults": { + "base": "

List of knowledge base retrieval results

", + "refs": { + "RetrieveResponse$retrievalResults": null + } + }, + "KnowledgeBaseRetrieveAndGenerateConfiguration": { + "base": "

Configurations for retrieval and generation for knowledge base.

", + "refs": { + "RetrieveAndGenerateConfiguration$knowledgeBaseConfiguration": null + } + }, + "KnowledgeBaseVectorSearchConfiguration": { + "base": "

Knowledge base vector search configuration

", + "refs": { + "KnowledgeBaseRetrievalConfiguration$vectorSearchConfiguration": null + } + }, + "KnowledgeBaseVectorSearchConfigurationNumberOfResultsInteger": { + "base": null, + "refs": { + "KnowledgeBaseVectorSearchConfiguration$numberOfResults": "

Top-K results to retrieve from knowledge base.

" + } + }, + "LambdaArn": { + "base": "

ARN of a Lambda.

", + "refs": { + "ModelInvocationInput$overrideLambda": null + } + }, + "MaximumLength": { + "base": "

Maximum length of output

", + "refs": { + "InferenceConfiguration$maximumLength": null + } + }, + "MimeType": { + "base": "

Content type of the request

", + "refs": { + "InvokeAgentResponse$contentType": "

streaming response mimetype of the model

" + } + }, + "ModelInvocationInput": { + "base": "

Trace Part which contains information used to call Invoke Model

", + "refs": { + "OrchestrationTrace$modelInvocationInput": null, + "PostProcessingTrace$modelInvocationInput": null, + "PreProcessingTrace$modelInvocationInput": null + } + }, + "NextToken": { + "base": "

Opaque continuation token of previous paginated response.

", + "refs": { + "RetrieveRequest$nextToken": null, + "RetrieveResponse$nextToken": null + } + }, + "NonBlankString": { + "base": "

Non Blank String

", + "refs": { + "AccessDeniedException$message": null, + "BadGatewayException$message": null, + "BadGatewayException$resourceName": null, + "ConflictException$message": null, + "DependencyFailedException$message": null, + "DependencyFailedException$resourceName": null, + "InternalServerException$message": null, + "ResourceNotFoundException$message": null, + "ServiceQuotaExceededException$message": null, + "ThrottlingException$message": null, + "ValidationException$message": null + } + }, + "Observation": { + "base": "

Trace Part which contains output details for action group or knowledge base or final response

", + "refs": { + "OrchestrationTrace$observation": null + } + }, + "OrchestrationTrace": { + "base": "

Trace contains intermidate response during orchestration

", + "refs": { + "Trace$orchestrationTrace": null + } + }, + "OutputString": { + "base": "

Agent Trace Output String

", + "refs": { + "PostProcessingParsedResponse$text": null + } + }, + "Parameter": { + "base": "

parameters included in action group invocation

", + "refs": { + "Parameters$member": null + } + }, + "Parameters": { + "base": "

list of parameters included in action group invocation

", + "refs": { + "ActionGroupInvocationInput$parameters": null, + "ContentMap$value": null + } + }, + "PartBody": { + "base": "

PartBody of the payload in bytes

", + "refs": { + "PayloadPart$bytes": null + } + }, + "PayloadPart": { + "base": "

Base 64 endoded byte response

", + "refs": { + "ResponseStream$chunk": null + } + }, + "PostProcessingModelInvocationOutput": { + "base": "

Trace Part which contains information related to postprocessing

", + "refs": { + "PostProcessingTrace$modelInvocationOutput": null + } + }, + "PostProcessingParsedResponse": { + "base": "

Trace Part which contains information if preprocessing was successful

", + "refs": { + "PostProcessingModelInvocationOutput$parsedResponse": null + } + }, + "PostProcessingTrace": { + "base": "

Trace Part which contains information related to post processing step

", + "refs": { + "Trace$postProcessingTrace": null + } + }, + "PreProcessingModelInvocationOutput": { + "base": "

Trace Part which contains information related to preprocessing

", + "refs": { + "PreProcessingTrace$modelInvocationOutput": null + } + }, + "PreProcessingParsedResponse": { + "base": "

Trace Part which contains information if preprocessing was successful

", + "refs": { + "PreProcessingModelInvocationOutput$parsedResponse": null + } + }, + "PreProcessingTrace": { + "base": "

Trace Part which contains information related to preprocessing step

", + "refs": { + "Trace$preProcessingTrace": null + } + }, + "PromptSessionAttributesMap": { + "base": "

Session attributes that go to the prompt

", + "refs": { + "SessionState$promptSessionAttributes": "

Prompt Session Attributes

" + } + }, + "PromptText": { + "base": "

Prompt Message

", + "refs": { + "ModelInvocationInput$text": null + } + }, + "PromptType": { + "base": "

types of prompts

", + "refs": { + "ModelInvocationInput$type": null + } + }, + "Rationale": { + "base": "

Trace Part which contains information related to reasoning

", + "refs": { + "OrchestrationTrace$rationale": null + } + }, + "RationaleString": { + "base": "

Agent Trace Rationale String

", + "refs": { + "PreProcessingParsedResponse$rationale": null, + "Rationale$text": null + } + }, + "RepromptResponse": { + "base": "

Observation information if there were reprompts

", + "refs": { + "Observation$repromptResponse": null + } + }, + "RequestBody": { + "base": "

Request Body Content Map

", + "refs": { + "ActionGroupInvocationInput$requestBody": null + } + }, + "ResourceNotFoundException": { + "base": "

This exception is thrown when a resource referenced by the operation does not exist

", + "refs": { + "ResponseStream$resourceNotFoundException": null + } + }, + "ResponseStream": { + "base": "

Response body of is a stream

", + "refs": { + "InvokeAgentResponse$completion": "

Inference response from the model in the format specified in the Content-Type response header.

" + } + }, + "RetrievalResultContent": { + "base": "

Content of a retrieval result.

", + "refs": { + "KnowledgeBaseRetrievalResult$content": null, + "RetrievedReference$content": null + } + }, + "RetrievalResultLocation": { + "base": "

The source location of a retrieval result.

", + "refs": { + "KnowledgeBaseRetrievalResult$location": null, + "RetrievedReference$location": null + } + }, + "RetrievalResultLocationType": { + "base": "

The location type of a retrieval result.

", + "refs": { + "RetrievalResultLocation$type": null + } + }, + "RetrievalResultS3Location": { + "base": "

The S3 location of a retrieval result.

", + "refs": { + "RetrievalResultLocation$s3Location": null + } + }, + "RetrieveAndGenerateConfiguration": { + "base": "

Configures the retrieval and generation for the session.

", + "refs": { + "RetrieveAndGenerateRequest$retrieveAndGenerateConfiguration": null + } + }, + "RetrieveAndGenerateInput": { + "base": "

Customer input of the turn

", + "refs": { + "RetrieveAndGenerateRequest$input": null + } + }, + "RetrieveAndGenerateInputTextString": { + "base": null, + "refs": { + "RetrieveAndGenerateInput$text": "

Customer input of the turn in text

" + } + }, + "RetrieveAndGenerateOutput": { + "base": "

Service response of the turn

", + "refs": { + "RetrieveAndGenerateResponse$output": null + } + }, + "RetrieveAndGenerateRequest": { + "base": null, + "refs": { + } + }, + "RetrieveAndGenerateResponse": { + "base": null, + "refs": { + } + }, + "RetrieveAndGenerateSessionConfiguration": { + "base": "

Configures common parameters of the session.

", + "refs": { + "RetrieveAndGenerateRequest$sessionConfiguration": null + } + }, + "RetrieveAndGenerateType": { + "base": "

The type of RetrieveAndGenerate.

", + "refs": { + "RetrieveAndGenerateConfiguration$type": null + } + }, + "RetrieveRequest": { + "base": null, + "refs": { + } + }, + "RetrieveResponse": { + "base": null, + "refs": { + } + }, + "RetrievedReference": { + "base": "

Retrieved reference

", + "refs": { + "RetrievedReferences$member": null + } + }, + "RetrievedReferences": { + "base": "

list of retrieved references

", + "refs": { + "Citation$retrievedReferences": null, + "KnowledgeBaseLookupOutput$retrievedReferences": null + } + }, + "ServiceQuotaExceededException": { + "base": "

This exception is thrown when a request is made beyond the service quota

", + "refs": { + "ResponseStream$serviceQuotaExceededException": null + } + }, + "SessionAttributesMap": { + "base": "

Session attributes are pass through attributes passed to the action group

", + "refs": { + "SessionState$sessionAttributes": "

Session Attributes

" + } + }, + "SessionId": { + "base": "

Identifier of the session.

", + "refs": { + "InvokeAgentRequest$sessionId": "

Identifier used for the current session

", + "InvokeAgentResponse$sessionId": "

streaming response mimetype of the model

", + "RetrieveAndGenerateRequest$sessionId": null, + "RetrieveAndGenerateResponse$sessionId": null, + "TracePart$sessionId": null + } + }, + "SessionState": { + "base": "

Session state provided

", + "refs": { + "InvokeAgentRequest$sessionState": "

Session state passed by customer. Base64 encoded json string representation of SessionState.

" + } + }, + "Source": { + "base": "

Parsing error source

", + "refs": { + "RepromptResponse$source": null + } + }, + "Span": { + "base": "

Span of text

", + "refs": { + "TextResponsePart$span": null + } + }, + "SpanEndInteger": { + "base": null, + "refs": { + "Span$end": "

End of span

" + } + }, + "SpanStartInteger": { + "base": null, + "refs": { + "Span$start": "

Start of span

" + } + }, + "StopSequences": { + "base": "

List of stop sequences

", + "refs": { + "InferenceConfiguration$stopSequences": null + } + }, + "String": { + "base": null, + "refs": { + "ContentMap$key": null, + "Parameter$name": "

Name of parameter

", + "Parameter$type": "

Type of parameter

", + "Parameter$value": "

Value of parameter

", + "PromptSessionAttributesMap$key": null, + "PromptSessionAttributesMap$value": null, + "RepromptResponse$text": "

Reprompt response text

", + "RetrievalResultContent$text": "

Content of a retrieval result in text

", + "RetrievalResultS3Location$uri": "

URI of S3 location

", + "RetrieveAndGenerateOutput$text": "

Service response of the turn in text

", + "SessionAttributesMap$key": null, + "SessionAttributesMap$value": null, + "StopSequences$member": null, + "TextResponsePart$text": "

Response part in text

" + } + }, + "Temperature": { + "base": "

Controls randomness, higher values increase diversity

", + "refs": { + "InferenceConfiguration$temperature": null + } + }, + "TextResponsePart": { + "base": "

Text response part

", + "refs": { + "GeneratedResponsePart$textResponsePart": null + } + }, + "ThrottlingException": { + "base": "

This exception is thrown when the number of requests exceeds the limit

", + "refs": { + "ResponseStream$throttlingException": null + } + }, + "TopK": { + "base": "

Sample from the k most likely next tokens

", + "refs": { + "InferenceConfiguration$topK": null + } + }, + "TopP": { + "base": "

Cumulative probability cutoff for token selection

", + "refs": { + "InferenceConfiguration$topP": null + } + }, + "Trace": { + "base": "

Trace contains intermidate response for customer

", + "refs": { + "TracePart$trace": null + } + }, + "TraceId": { + "base": "

Identifier for trace

", + "refs": { + "FailureTrace$traceId": null, + "InvocationInput$traceId": null, + "ModelInvocationInput$traceId": null, + "Observation$traceId": null, + "PostProcessingModelInvocationOutput$traceId": null, + "PreProcessingModelInvocationOutput$traceId": null, + "Rationale$traceId": null + } + }, + "TraceKnowledgeBaseId": { + "base": "

Agent Trace Action Group Knowledge Base Id

", + "refs": { + "KnowledgeBaseLookupInput$knowledgeBaseId": null + } + }, + "TracePart": { + "base": "

Trace Part which contains intermidate response for customer

", + "refs": { + "ResponseStream$trace": null + } + }, + "Type": { + "base": "

types of observations

", + "refs": { + "Observation$type": null + } + }, + "ValidationException": { + "base": "

This exception is thrown when the request's input validation fails

", + "refs": { + "ResponseStream$validationException": null + } + }, + "Verb": { + "base": "

Agent Trace Action Group Action verb

", + "refs": { + "ActionGroupInvocationInput$verb": null + } + } + } +} diff --git a/models/apis/bedrock-agent-runtime/2023-07-26/endpoint-rule-set-1.json b/models/apis/bedrock-agent-runtime/2023-07-26/endpoint-rule-set-1.json new file mode 100644 index 00000000000..950c867886d --- /dev/null +++ b/models/apis/bedrock-agent-runtime/2023-07-26/endpoint-rule-set-1.json @@ -0,0 +1,350 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + } + ], + "type": "tree" + }, + { + "conditions": [], + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Region" + } + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "rules": [ + { + "conditions": [], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://bedrock-agent-runtime-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + }, + true + ] + } + ], + "rules": [ + { + "conditions": [], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://bedrock-agent-runtime-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "rules": [ + { + "conditions": [], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://bedrock-agent-runtime.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://bedrock-agent-runtime.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + } + ], + "type": "tree" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "Invalid Configuration: Missing Region", + "type": "error" + } + ], + "type": "tree" + } + ] +} \ No newline at end of file diff --git a/models/apis/bedrock-agent-runtime/2023-07-26/endpoint-tests-1.json b/models/apis/bedrock-agent-runtime/2023-07-26/endpoint-tests-1.json new file mode 100644 index 00000000000..acf526dda48 --- /dev/null +++ b/models/apis/bedrock-agent-runtime/2023-07-26/endpoint-tests-1.json @@ -0,0 +1,314 @@ +{ + "testCases": [ + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://bedrock-agent-runtime-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://bedrock-agent-runtime-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://bedrock-agent-runtime.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://bedrock-agent-runtime.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://bedrock-agent-runtime-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://bedrock-agent-runtime-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://bedrock-agent-runtime.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://bedrock-agent-runtime.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://bedrock-agent-runtime-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://bedrock-agent-runtime-fips.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://bedrock-agent-runtime.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://bedrock-agent-runtime.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-iso-east-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://bedrock-agent-runtime-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-iso-east-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://bedrock-agent-runtime.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-isob-east-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://bedrock-agent-runtime-fips.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-isob-east-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://bedrock-agent-runtime.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For custom endpoint with region set and fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with region not set and fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "Missing region", + "expect": { + "error": "Invalid Configuration: Missing Region" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/models/apis/bedrock-agent-runtime/2023-07-26/examples-1.json b/models/apis/bedrock-agent-runtime/2023-07-26/examples-1.json new file mode 100644 index 00000000000..0ea7e3b0bbe --- /dev/null +++ b/models/apis/bedrock-agent-runtime/2023-07-26/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/models/apis/bedrock-agent-runtime/2023-07-26/paginators-1.json b/models/apis/bedrock-agent-runtime/2023-07-26/paginators-1.json new file mode 100644 index 00000000000..bd57dfbc67d --- /dev/null +++ b/models/apis/bedrock-agent-runtime/2023-07-26/paginators-1.json @@ -0,0 +1,9 @@ +{ + "pagination": { + "Retrieve": { + "input_token": "nextToken", + "output_token": "nextToken", + "result_key": "retrievalResults" + } + } +} diff --git a/models/apis/bedrock-agent/2023-06-05/api-2.json b/models/apis/bedrock-agent/2023-06-05/api-2.json new file mode 100644 index 00000000000..7162246a771 --- /dev/null +++ b/models/apis/bedrock-agent/2023-06-05/api-2.json @@ -0,0 +1,3068 @@ +{ + "version":"2.0", + "metadata":{ + "apiVersion":"2023-06-05", + "endpointPrefix":"bedrock-agent", + "jsonVersion":"1.1", + "protocol":"rest-json", + "serviceFullName":"Agents for Amazon Bedrock", + "serviceId":"Bedrock Agent", + "signatureVersion":"v4", + "signingName":"bedrock", + "uid":"bedrock-agent-2023-06-05" + }, + "operations":{ + "AssociateAgentKnowledgeBase":{ + "name":"AssociateAgentKnowledgeBase", + "http":{ + "method":"PUT", + "requestUri":"/agents/{agentId}/agentversions/{agentVersion}/knowledgebases/", + "responseCode":200 + }, + "input":{"shape":"AssociateAgentKnowledgeBaseRequest"}, + "output":{"shape":"AssociateAgentKnowledgeBaseResponse"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ConflictException"}, + {"shape":"ServiceQuotaExceededException"} + ], + "idempotent":true + }, + "CreateAgent":{ + "name":"CreateAgent", + "http":{ + "method":"PUT", + "requestUri":"/agents/", + "responseCode":202 + }, + "input":{"shape":"CreateAgentRequest"}, + "output":{"shape":"CreateAgentResponse"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"}, + {"shape":"ConflictException"}, + {"shape":"ServiceQuotaExceededException"} + ], + "idempotent":true + }, + "CreateAgentActionGroup":{ + "name":"CreateAgentActionGroup", + "http":{ + "method":"PUT", + "requestUri":"/agents/{agentId}/agentversions/{agentVersion}/actiongroups/", + "responseCode":200 + }, + "input":{"shape":"CreateAgentActionGroupRequest"}, + "output":{"shape":"CreateAgentActionGroupResponse"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ConflictException"}, + {"shape":"ServiceQuotaExceededException"} + ], + "idempotent":true + }, + "CreateAgentAlias":{ + "name":"CreateAgentAlias", + "http":{ + "method":"PUT", + "requestUri":"/agents/{agentId}/agentaliases/", + "responseCode":202 + }, + "input":{"shape":"CreateAgentAliasRequest"}, + "output":{"shape":"CreateAgentAliasResponse"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ConflictException"}, + {"shape":"ServiceQuotaExceededException"} + ], + "idempotent":true + }, + "CreateDataSource":{ + "name":"CreateDataSource", + "http":{ + "method":"PUT", + "requestUri":"/knowledgebases/{knowledgeBaseId}/datasources/", + "responseCode":200 + }, + "input":{"shape":"CreateDataSourceRequest"}, + "output":{"shape":"CreateDataSourceResponse"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ConflictException"}, + {"shape":"ServiceQuotaExceededException"} + ], + "idempotent":true + }, + "CreateKnowledgeBase":{ + "name":"CreateKnowledgeBase", + "http":{ + "method":"PUT", + "requestUri":"/knowledgebases/", + "responseCode":202 + }, + "input":{"shape":"CreateKnowledgeBaseRequest"}, + "output":{"shape":"CreateKnowledgeBaseResponse"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"}, + {"shape":"ConflictException"}, + {"shape":"ServiceQuotaExceededException"} + ], + "idempotent":true + }, + "DeleteAgent":{ + "name":"DeleteAgent", + "http":{ + "method":"DELETE", + "requestUri":"/agents/{agentId}/", + "responseCode":202 + }, + "input":{"shape":"DeleteAgentRequest"}, + "output":{"shape":"DeleteAgentResponse"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ConflictException"} + ], + "idempotent":true + }, + "DeleteAgentActionGroup":{ + "name":"DeleteAgentActionGroup", + "http":{ + "method":"DELETE", + "requestUri":"/agents/{agentId}/agentversions/{agentVersion}/actiongroups/{actionGroupId}/", + "responseCode":204 + }, + "input":{"shape":"DeleteAgentActionGroupRequest"}, + "output":{"shape":"DeleteAgentActionGroupResponse"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ConflictException"} + ], + "idempotent":true + }, + "DeleteAgentAlias":{ + "name":"DeleteAgentAlias", + "http":{ + "method":"DELETE", + "requestUri":"/agents/{agentId}/agentaliases/{agentAliasId}/", + "responseCode":202 + }, + "input":{"shape":"DeleteAgentAliasRequest"}, + "output":{"shape":"DeleteAgentAliasResponse"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"} + ], + "idempotent":true + }, + "DeleteAgentVersion":{ + "name":"DeleteAgentVersion", + "http":{ + "method":"DELETE", + "requestUri":"/agents/{agentId}/agentversions/{agentVersion}/", + "responseCode":202 + }, + "input":{"shape":"DeleteAgentVersionRequest"}, + "output":{"shape":"DeleteAgentVersionResponse"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ConflictException"} + ], + "idempotent":true + }, + "DeleteDataSource":{ + "name":"DeleteDataSource", + "http":{ + "method":"DELETE", + "requestUri":"/knowledgebases/{knowledgeBaseId}/datasources/{dataSourceId}", + "responseCode":202 + }, + "input":{"shape":"DeleteDataSourceRequest"}, + "output":{"shape":"DeleteDataSourceResponse"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ConflictException"} + ], + "idempotent":true + }, + "DeleteKnowledgeBase":{ + "name":"DeleteKnowledgeBase", + "http":{ + "method":"DELETE", + "requestUri":"/knowledgebases/{knowledgeBaseId}", + "responseCode":202 + }, + "input":{"shape":"DeleteKnowledgeBaseRequest"}, + "output":{"shape":"DeleteKnowledgeBaseResponse"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ConflictException"} + ], + "idempotent":true + }, + "DisassociateAgentKnowledgeBase":{ + "name":"DisassociateAgentKnowledgeBase", + "http":{ + "method":"DELETE", + "requestUri":"/agents/{agentId}/agentversions/{agentVersion}/knowledgebases/{knowledgeBaseId}/", + "responseCode":204 + }, + "input":{"shape":"DisassociateAgentKnowledgeBaseRequest"}, + "output":{"shape":"DisassociateAgentKnowledgeBaseResponse"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ConflictException"} + ], + "idempotent":true + }, + "GetAgent":{ + "name":"GetAgent", + "http":{ + "method":"GET", + "requestUri":"/agents/{agentId}/", + "responseCode":200 + }, + "input":{"shape":"GetAgentRequest"}, + "output":{"shape":"GetAgentResponse"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"} + ] + }, + "GetAgentActionGroup":{ + "name":"GetAgentActionGroup", + "http":{ + "method":"GET", + "requestUri":"/agents/{agentId}/agentversions/{agentVersion}/actiongroups/{actionGroupId}/", + "responseCode":200 + }, + "input":{"shape":"GetAgentActionGroupRequest"}, + "output":{"shape":"GetAgentActionGroupResponse"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"} + ] + }, + "GetAgentAlias":{ + "name":"GetAgentAlias", + "http":{ + "method":"GET", + "requestUri":"/agents/{agentId}/agentaliases/{agentAliasId}/", + "responseCode":200 + }, + "input":{"shape":"GetAgentAliasRequest"}, + "output":{"shape":"GetAgentAliasResponse"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"} + ] + }, + "GetAgentKnowledgeBase":{ + "name":"GetAgentKnowledgeBase", + "http":{ + "method":"GET", + "requestUri":"/agents/{agentId}/agentversions/{agentVersion}/knowledgebases/{knowledgeBaseId}/", + "responseCode":200 + }, + "input":{"shape":"GetAgentKnowledgeBaseRequest"}, + "output":{"shape":"GetAgentKnowledgeBaseResponse"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"} + ] + }, + "GetAgentVersion":{ + "name":"GetAgentVersion", + "http":{ + "method":"GET", + "requestUri":"/agents/{agentId}/agentversions/{agentVersion}/", + "responseCode":200 + }, + "input":{"shape":"GetAgentVersionRequest"}, + "output":{"shape":"GetAgentVersionResponse"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"} + ] + }, + "GetDataSource":{ + "name":"GetDataSource", + "http":{ + "method":"GET", + "requestUri":"/knowledgebases/{knowledgeBaseId}/datasources/{dataSourceId}", + "responseCode":200 + }, + "input":{"shape":"GetDataSourceRequest"}, + "output":{"shape":"GetDataSourceResponse"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"} + ] + }, + "GetIngestionJob":{ + "name":"GetIngestionJob", + "http":{ + "method":"GET", + "requestUri":"/knowledgebases/{knowledgeBaseId}/datasources/{dataSourceId}/ingestionjobs/{ingestionJobId}", + "responseCode":200 + }, + "input":{"shape":"GetIngestionJobRequest"}, + "output":{"shape":"GetIngestionJobResponse"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"} + ] + }, + "GetKnowledgeBase":{ + "name":"GetKnowledgeBase", + "http":{ + "method":"GET", + "requestUri":"/knowledgebases/{knowledgeBaseId}", + "responseCode":200 + }, + "input":{"shape":"GetKnowledgeBaseRequest"}, + "output":{"shape":"GetKnowledgeBaseResponse"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"} + ] + }, + "ListAgentActionGroups":{ + "name":"ListAgentActionGroups", + "http":{ + "method":"POST", + "requestUri":"/agents/{agentId}/agentversions/{agentVersion}/actiongroups/", + "responseCode":200 + }, + "input":{"shape":"ListAgentActionGroupsRequest"}, + "output":{"shape":"ListAgentActionGroupsResponse"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"} + ] + }, + "ListAgentAliases":{ + "name":"ListAgentAliases", + "http":{ + "method":"POST", + "requestUri":"/agents/{agentId}/agentaliases/", + "responseCode":200 + }, + "input":{"shape":"ListAgentAliasesRequest"}, + "output":{"shape":"ListAgentAliasesResponse"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"} + ] + }, + "ListAgentKnowledgeBases":{ + "name":"ListAgentKnowledgeBases", + "http":{ + "method":"POST", + "requestUri":"/agents/{agentId}/agentversions/{agentVersion}/knowledgebases/", + "responseCode":200 + }, + "input":{"shape":"ListAgentKnowledgeBasesRequest"}, + "output":{"shape":"ListAgentKnowledgeBasesResponse"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"} + ] + }, + "ListAgentVersions":{ + "name":"ListAgentVersions", + "http":{ + "method":"POST", + "requestUri":"/agents/{agentId}/agentversions/", + "responseCode":200 + }, + "input":{"shape":"ListAgentVersionsRequest"}, + "output":{"shape":"ListAgentVersionsResponse"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"} + ] + }, + "ListAgents":{ + "name":"ListAgents", + "http":{ + "method":"POST", + "requestUri":"/agents/", + "responseCode":200 + }, + "input":{"shape":"ListAgentsRequest"}, + "output":{"shape":"ListAgentsResponse"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"} + ] + }, + "ListDataSources":{ + "name":"ListDataSources", + "http":{ + "method":"POST", + "requestUri":"/knowledgebases/{knowledgeBaseId}/datasources/", + "responseCode":200 + }, + "input":{"shape":"ListDataSourcesRequest"}, + "output":{"shape":"ListDataSourcesResponse"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"} + ] + }, + "ListIngestionJobs":{ + "name":"ListIngestionJobs", + "http":{ + "method":"POST", + "requestUri":"/knowledgebases/{knowledgeBaseId}/datasources/{dataSourceId}/ingestionjobs/", + "responseCode":200 + }, + "input":{"shape":"ListIngestionJobsRequest"}, + "output":{"shape":"ListIngestionJobsResponse"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"} + ] + }, + "ListKnowledgeBases":{ + "name":"ListKnowledgeBases", + "http":{ + "method":"POST", + "requestUri":"/knowledgebases/", + "responseCode":200 + }, + "input":{"shape":"ListKnowledgeBasesRequest"}, + "output":{"shape":"ListKnowledgeBasesResponse"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"} + ] + }, + "ListTagsForResource":{ + "name":"ListTagsForResource", + "http":{ + "method":"GET", + "requestUri":"/tags/{resourceArn}", + "responseCode":200 + }, + "input":{"shape":"ListTagsForResourceRequest"}, + "output":{"shape":"ListTagsForResourceResponse"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"} + ] + }, + "PrepareAgent":{ + "name":"PrepareAgent", + "http":{ + "method":"POST", + "requestUri":"/agents/{agentId}/", + "responseCode":202 + }, + "input":{"shape":"PrepareAgentRequest"}, + "output":{"shape":"PrepareAgentResponse"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ConflictException"}, + {"shape":"ServiceQuotaExceededException"} + ] + }, + "StartIngestionJob":{ + "name":"StartIngestionJob", + "http":{ + "method":"PUT", + "requestUri":"/knowledgebases/{knowledgeBaseId}/datasources/{dataSourceId}/ingestionjobs/", + "responseCode":202 + }, + "input":{"shape":"StartIngestionJobRequest"}, + "output":{"shape":"StartIngestionJobResponse"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ConflictException"}, + {"shape":"ServiceQuotaExceededException"} + ], + "idempotent":true + }, + "TagResource":{ + "name":"TagResource", + "http":{ + "method":"POST", + "requestUri":"/tags/{resourceArn}", + "responseCode":200 + }, + "input":{"shape":"TagResourceRequest"}, + "output":{"shape":"TagResourceResponse"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ServiceQuotaExceededException"} + ] + }, + "UntagResource":{ + "name":"UntagResource", + "http":{ + "method":"DELETE", + "requestUri":"/tags/{resourceArn}", + "responseCode":200 + }, + "input":{"shape":"UntagResourceRequest"}, + "output":{"shape":"UntagResourceResponse"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"} + ], + "idempotent":true + }, + "UpdateAgent":{ + "name":"UpdateAgent", + "http":{ + "method":"PUT", + "requestUri":"/agents/{agentId}/", + "responseCode":202 + }, + "input":{"shape":"UpdateAgentRequest"}, + "output":{"shape":"UpdateAgentResponse"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ConflictException"}, + {"shape":"ServiceQuotaExceededException"} + ], + "idempotent":true + }, + "UpdateAgentActionGroup":{ + "name":"UpdateAgentActionGroup", + "http":{ + "method":"PUT", + "requestUri":"/agents/{agentId}/agentversions/{agentVersion}/actiongroups/{actionGroupId}/", + "responseCode":200 + }, + "input":{"shape":"UpdateAgentActionGroupRequest"}, + "output":{"shape":"UpdateAgentActionGroupResponse"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ConflictException"}, + {"shape":"ServiceQuotaExceededException"} + ], + "idempotent":true + }, + "UpdateAgentAlias":{ + "name":"UpdateAgentAlias", + "http":{ + "method":"PUT", + "requestUri":"/agents/{agentId}/agentaliases/{agentAliasId}/", + "responseCode":202 + }, + "input":{"shape":"UpdateAgentAliasRequest"}, + "output":{"shape":"UpdateAgentAliasResponse"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ConflictException"}, + {"shape":"ServiceQuotaExceededException"} + ], + "idempotent":true + }, + "UpdateAgentKnowledgeBase":{ + "name":"UpdateAgentKnowledgeBase", + "http":{ + "method":"PUT", + "requestUri":"/agents/{agentId}/agentversions/{agentVersion}/knowledgebases/{knowledgeBaseId}/", + "responseCode":200 + }, + "input":{"shape":"UpdateAgentKnowledgeBaseRequest"}, + "output":{"shape":"UpdateAgentKnowledgeBaseResponse"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ConflictException"} + ], + "idempotent":true + }, + "UpdateDataSource":{ + "name":"UpdateDataSource", + "http":{ + "method":"PUT", + "requestUri":"/knowledgebases/{knowledgeBaseId}/datasources/{dataSourceId}", + "responseCode":200 + }, + "input":{"shape":"UpdateDataSourceRequest"}, + "output":{"shape":"UpdateDataSourceResponse"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ConflictException"} + ], + "idempotent":true + }, + "UpdateKnowledgeBase":{ + "name":"UpdateKnowledgeBase", + "http":{ + "method":"PUT", + "requestUri":"/knowledgebases/{knowledgeBaseId}", + "responseCode":202 + }, + "input":{"shape":"UpdateKnowledgeBaseRequest"}, + "output":{"shape":"UpdateKnowledgeBaseResponse"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ConflictException"} + ], + "idempotent":true + } + }, + "shapes":{ + "APISchema":{ + "type":"structure", + "members":{ + "s3":{"shape":"S3Identifier"}, + "payload":{"shape":"Payload"} + }, + "union":true + }, + "AccessDeniedException":{ + "type":"structure", + "members":{ + "message":{"shape":"NonBlankString"} + }, + "error":{ + "httpStatusCode":403, + "senderFault":true + }, + "exception":true + }, + "ActionGroupExecutor":{ + "type":"structure", + "members":{ + "lambda":{"shape":"LambdaArn"} + }, + "union":true + }, + "ActionGroupSignature":{ + "type":"string", + "enum":["AMAZON.UserInput"] + }, + "ActionGroupState":{ + "type":"string", + "enum":[ + "ENABLED", + "DISABLED" + ] + }, + "ActionGroupSummaries":{ + "type":"list", + "member":{"shape":"ActionGroupSummary"}, + "max":10, + "min":0 + }, + "ActionGroupSummary":{ + "type":"structure", + "required":[ + "actionGroupId", + "actionGroupName", + "actionGroupState", + "updatedAt" + ], + "members":{ + "actionGroupId":{"shape":"Id"}, + "actionGroupName":{"shape":"Name"}, + "actionGroupState":{"shape":"ActionGroupState"}, + "description":{"shape":"Description"}, + "updatedAt":{"shape":"DateTimestamp"} + } + }, + "Agent":{ + "type":"structure", + "required":[ + "agentId", + "agentName", + "agentArn", + "agentVersion", + "agentStatus", + "idleSessionTTLInSeconds", + "agentResourceRoleArn", + "createdAt", + "updatedAt" + ], + "members":{ + "agentId":{"shape":"Id"}, + "agentName":{"shape":"Name"}, + "agentArn":{"shape":"AgentArn"}, + "agentVersion":{"shape":"DraftVersion"}, + "clientToken":{"shape":"ClientToken"}, + "instruction":{"shape":"Instruction"}, + "agentStatus":{"shape":"AgentStatus"}, + "foundationModel":{"shape":"ModelIdentifier"}, + "description":{"shape":"Description"}, + "idleSessionTTLInSeconds":{"shape":"SessionTTL"}, + "agentResourceRoleArn":{"shape":"AgentRoleArn"}, + "customerEncryptionKeyArn":{"shape":"KmsKeyArn"}, + "createdAt":{"shape":"DateTimestamp"}, + "updatedAt":{"shape":"DateTimestamp"}, + "preparedAt":{"shape":"DateTimestamp"}, + "failureReasons":{"shape":"FailureReasons"}, + "recommendedActions":{"shape":"RecommendedActions"}, + "promptOverrideConfiguration":{"shape":"PromptOverrideConfiguration"} + } + }, + "AgentActionGroup":{ + "type":"structure", + "required":[ + "agentId", + "agentVersion", + "actionGroupId", + "actionGroupName", + "createdAt", + "updatedAt", + "actionGroupState" + ], + "members":{ + "agentId":{"shape":"Id"}, + "agentVersion":{"shape":"Version"}, + "actionGroupId":{"shape":"Id"}, + "actionGroupName":{"shape":"Name"}, + "clientToken":{"shape":"ClientToken"}, + "description":{"shape":"Description"}, + "createdAt":{"shape":"DateTimestamp"}, + "updatedAt":{"shape":"DateTimestamp"}, + "parentActionSignature":{"shape":"ActionGroupSignature"}, + "actionGroupExecutor":{"shape":"ActionGroupExecutor"}, + "apiSchema":{"shape":"APISchema"}, + "actionGroupState":{"shape":"ActionGroupState"} + } + }, + "AgentAlias":{ + "type":"structure", + "required":[ + "agentId", + "agentAliasId", + "agentAliasName", + "agentAliasArn", + "routingConfiguration", + "createdAt", + "updatedAt", + "agentAliasStatus" + ], + "members":{ + "agentId":{"shape":"Id"}, + "agentAliasId":{"shape":"AgentAliasId"}, + "agentAliasName":{"shape":"Name"}, + "agentAliasArn":{"shape":"AgentAliasArn"}, + "clientToken":{"shape":"ClientToken"}, + "description":{"shape":"Description"}, + "routingConfiguration":{"shape":"AgentAliasRoutingConfiguration"}, + "createdAt":{"shape":"DateTimestamp"}, + "updatedAt":{"shape":"DateTimestamp"}, + "agentAliasHistoryEvents":{"shape":"AgentAliasHistoryEvents"}, + "agentAliasStatus":{"shape":"AgentAliasStatus"} + } + }, + "AgentAliasArn":{ + "type":"string", + "max":2048, + "min":0, + "pattern":"arn:aws:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:agent-alias/[0-9a-zA-Z]{10}/[0-9a-zA-Z]{10}" + }, + "AgentAliasHistoryEvent":{ + "type":"structure", + "members":{ + "routingConfiguration":{"shape":"AgentAliasRoutingConfiguration"}, + "endDate":{"shape":"DateTimestamp"}, + "startDate":{"shape":"DateTimestamp"} + } + }, + "AgentAliasHistoryEvents":{ + "type":"list", + "member":{"shape":"AgentAliasHistoryEvent"}, + "max":10, + "min":0 + }, + "AgentAliasId":{ + "type":"string", + "max":10, + "min":10, + "pattern":"(\\bTSTALIASID\\b|[0-9a-zA-Z]+)" + }, + "AgentAliasRoutingConfiguration":{ + "type":"list", + "member":{"shape":"AgentAliasRoutingConfigurationListItem"}, + "max":1, + "min":0 + }, + "AgentAliasRoutingConfigurationListItem":{ + "type":"structure", + "required":["agentVersion"], + "members":{ + "agentVersion":{"shape":"Version"} + } + }, + "AgentAliasStatus":{ + "type":"string", + "enum":[ + "CREATING", + "PREPARED", + "FAILED", + "UPDATING", + "DELETING" + ] + }, + "AgentAliasSummaries":{ + "type":"list", + "member":{"shape":"AgentAliasSummary"}, + "max":10, + "min":0 + }, + "AgentAliasSummary":{ + "type":"structure", + "required":[ + "agentAliasId", + "agentAliasName", + "agentAliasStatus", + "createdAt", + "updatedAt" + ], + "members":{ + "agentAliasId":{"shape":"AgentAliasId"}, + "agentAliasName":{"shape":"Name"}, + "description":{"shape":"Description"}, + "routingConfiguration":{"shape":"AgentAliasRoutingConfiguration"}, + "agentAliasStatus":{"shape":"AgentAliasStatus"}, + "createdAt":{"shape":"DateTimestamp"}, + "updatedAt":{"shape":"DateTimestamp"} + } + }, + "AgentArn":{ + "type":"string", + "max":2048, + "min":0, + "pattern":"arn:aws:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:agent/[0-9a-zA-Z]{10}" + }, + "AgentKnowledgeBase":{ + "type":"structure", + "required":[ + "agentId", + "agentVersion", + "knowledgeBaseId", + "description", + "createdAt", + "updatedAt", + "knowledgeBaseState" + ], + "members":{ + "agentId":{"shape":"Id"}, + "agentVersion":{"shape":"Version"}, + "knowledgeBaseId":{"shape":"Id"}, + "description":{"shape":"Description"}, + "createdAt":{"shape":"DateTimestamp"}, + "updatedAt":{"shape":"DateTimestamp"}, + "knowledgeBaseState":{"shape":"KnowledgeBaseState"} + } + }, + "AgentKnowledgeBaseSummaries":{ + "type":"list", + "member":{"shape":"AgentKnowledgeBaseSummary"}, + "max":10, + "min":0 + }, + "AgentKnowledgeBaseSummary":{ + "type":"structure", + "required":[ + "knowledgeBaseId", + "knowledgeBaseState", + "updatedAt" + ], + "members":{ + "knowledgeBaseId":{"shape":"Id"}, + "description":{"shape":"Description"}, + "knowledgeBaseState":{"shape":"KnowledgeBaseState"}, + "updatedAt":{"shape":"DateTimestamp"} + } + }, + "AgentRoleArn":{ + "type":"string", + "max":2048, + "min":0, + "pattern":"arn:aws(-[^:]+)?:iam::([0-9]{12})?:role/(service-role/)?AmazonBedrockExecutionRoleForAgents.+" + }, + "AgentStatus":{ + "type":"string", + "enum":[ + "CREATING", + "PREPARING", + "PREPARED", + "NOT_PREPARED", + "DELETING", + "FAILED", + "VERSIONING", + "UPDATING" + ] + }, + "AgentSummaries":{ + "type":"list", + "member":{"shape":"AgentSummary"}, + "max":10, + "min":0 + }, + "AgentSummary":{ + "type":"structure", + "required":[ + "agentId", + "agentName", + "agentStatus", + "updatedAt" + ], + "members":{ + "agentId":{"shape":"Id"}, + "agentName":{"shape":"Name"}, + "agentStatus":{"shape":"AgentStatus"}, + "description":{"shape":"Description"}, + "updatedAt":{"shape":"DateTimestamp"}, + "latestAgentVersion":{"shape":"Version"} + } + }, + "AgentVersion":{ + "type":"structure", + "required":[ + "agentId", + "agentName", + "agentArn", + "version", + "agentStatus", + "idleSessionTTLInSeconds", + "agentResourceRoleArn", + "createdAt", + "updatedAt" + ], + "members":{ + "agentId":{"shape":"Id"}, + "agentName":{"shape":"Name"}, + "agentArn":{"shape":"AgentArn"}, + "version":{"shape":"NumericalVersion"}, + "instruction":{"shape":"Instruction"}, + "agentStatus":{"shape":"AgentStatus"}, + "foundationModel":{"shape":"ModelIdentifier"}, + "description":{"shape":"Description"}, + "idleSessionTTLInSeconds":{"shape":"SessionTTL"}, + "agentResourceRoleArn":{"shape":"AgentRoleArn"}, + "customerEncryptionKeyArn":{"shape":"KmsKeyArn"}, + "createdAt":{"shape":"DateTimestamp"}, + "updatedAt":{"shape":"DateTimestamp"}, + "failureReasons":{"shape":"FailureReasons"}, + "recommendedActions":{"shape":"RecommendedActions"}, + "promptOverrideConfiguration":{"shape":"PromptOverrideConfiguration"} + } + }, + "AgentVersionSummaries":{ + "type":"list", + "member":{"shape":"AgentVersionSummary"}, + "max":10, + "min":0 + }, + "AgentVersionSummary":{ + "type":"structure", + "required":[ + "agentName", + "agentStatus", + "agentVersion", + "createdAt", + "updatedAt" + ], + "members":{ + "agentName":{"shape":"Name"}, + "agentStatus":{"shape":"AgentStatus"}, + "agentVersion":{"shape":"Version"}, + "createdAt":{"shape":"DateTimestamp"}, + "updatedAt":{"shape":"DateTimestamp"}, + "description":{"shape":"Description"} + } + }, + "AssociateAgentKnowledgeBaseRequest":{ + "type":"structure", + "required":[ + "agentId", + "agentVersion", + "knowledgeBaseId", + "description" + ], + "members":{ + "agentId":{ + "shape":"Id", + "location":"uri", + "locationName":"agentId" + }, + "agentVersion":{ + "shape":"DraftVersion", + "location":"uri", + "locationName":"agentVersion" + }, + "knowledgeBaseId":{"shape":"Id"}, + "description":{"shape":"Description"}, + "knowledgeBaseState":{"shape":"KnowledgeBaseState"} + } + }, + "AssociateAgentKnowledgeBaseResponse":{ + "type":"structure", + "required":["agentKnowledgeBase"], + "members":{ + "agentKnowledgeBase":{"shape":"AgentKnowledgeBase"} + } + }, + "BasePromptTemplate":{ + "type":"string", + "max":100000, + "min":1 + }, + "BedrockEmbeddingModelArn":{ + "type":"string", + "max":1011, + "min":20, + "pattern":"arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:(([0-9]{12}:custom-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}/[a-z0-9]{12})|(:foundation-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}))" + }, + "Boolean":{ + "type":"boolean", + "box":true + }, + "ChunkingConfiguration":{ + "type":"structure", + "required":["chunkingStrategy"], + "members":{ + "chunkingStrategy":{"shape":"ChunkingStrategy"}, + "fixedSizeChunkingConfiguration":{"shape":"FixedSizeChunkingConfiguration"} + } + }, + "ChunkingStrategy":{ + "type":"string", + "enum":[ + "FIXED_SIZE", + "NONE" + ] + }, + "ClientToken":{ + "type":"string", + "max":256, + "min":33, + "pattern":"[a-zA-Z0-9](-*[a-zA-Z0-9])*" + }, + "ConflictException":{ + "type":"structure", + "members":{ + "message":{"shape":"NonBlankString"} + }, + "error":{ + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + "CreateAgentActionGroupRequest":{ + "type":"structure", + "required":[ + "agentId", + "agentVersion", + "actionGroupName" + ], + "members":{ + "agentId":{ + "shape":"Id", + "location":"uri", + "locationName":"agentId" + }, + "agentVersion":{ + "shape":"DraftVersion", + "location":"uri", + "locationName":"agentVersion" + }, + "actionGroupName":{"shape":"Name"}, + "clientToken":{ + "shape":"ClientToken", + "idempotencyToken":true + }, + "description":{"shape":"Description"}, + "parentActionGroupSignature":{"shape":"ActionGroupSignature"}, + "actionGroupExecutor":{"shape":"ActionGroupExecutor"}, + "apiSchema":{"shape":"APISchema"}, + "actionGroupState":{"shape":"ActionGroupState"} + } + }, + "CreateAgentActionGroupResponse":{ + "type":"structure", + "required":["agentActionGroup"], + "members":{ + "agentActionGroup":{"shape":"AgentActionGroup"} + } + }, + "CreateAgentAliasRequest":{ + "type":"structure", + "required":[ + "agentId", + "agentAliasName" + ], + "members":{ + "agentId":{ + "shape":"Id", + "location":"uri", + "locationName":"agentId" + }, + "agentAliasName":{"shape":"Name"}, + "clientToken":{ + "shape":"ClientToken", + "idempotencyToken":true + }, + "description":{"shape":"Description"}, + "routingConfiguration":{"shape":"AgentAliasRoutingConfiguration"}, + "tags":{"shape":"TagsMap"} + } + }, + "CreateAgentAliasResponse":{ + "type":"structure", + "required":["agentAlias"], + "members":{ + "agentAlias":{"shape":"AgentAlias"} + } + }, + "CreateAgentRequest":{ + "type":"structure", + "required":[ + "agentName", + "agentResourceRoleArn" + ], + "members":{ + "agentName":{"shape":"Name"}, + "clientToken":{ + "shape":"ClientToken", + "idempotencyToken":true + }, + "instruction":{"shape":"Instruction"}, + "foundationModel":{"shape":"ModelIdentifier"}, + "description":{"shape":"Description"}, + "idleSessionTTLInSeconds":{"shape":"SessionTTL"}, + "agentResourceRoleArn":{"shape":"AgentRoleArn"}, + "customerEncryptionKeyArn":{"shape":"KmsKeyArn"}, + "tags":{"shape":"TagsMap"}, + "promptOverrideConfiguration":{"shape":"PromptOverrideConfiguration"} + } + }, + "CreateAgentResponse":{ + "type":"structure", + "required":["agent"], + "members":{ + "agent":{"shape":"Agent"} + } + }, + "CreateDataSourceRequest":{ + "type":"structure", + "required":[ + "knowledgeBaseId", + "name", + "dataSourceConfiguration" + ], + "members":{ + "knowledgeBaseId":{ + "shape":"Id", + "location":"uri", + "locationName":"knowledgeBaseId" + }, + "clientToken":{ + "shape":"ClientToken", + "idempotencyToken":true + }, + "name":{"shape":"Name"}, + "description":{"shape":"Description"}, + "dataSourceConfiguration":{"shape":"DataSourceConfiguration"}, + "serverSideEncryptionConfiguration":{"shape":"ServerSideEncryptionConfiguration"}, + "vectorIngestionConfiguration":{"shape":"VectorIngestionConfiguration"} + } + }, + "CreateDataSourceResponse":{ + "type":"structure", + "required":["dataSource"], + "members":{ + "dataSource":{"shape":"DataSource"} + } + }, + "CreateKnowledgeBaseRequest":{ + "type":"structure", + "required":[ + "name", + "roleArn", + "knowledgeBaseConfiguration", + "storageConfiguration" + ], + "members":{ + "clientToken":{ + "shape":"ClientToken", + "idempotencyToken":true + }, + "name":{"shape":"Name"}, + "description":{"shape":"Description"}, + "roleArn":{"shape":"KnowledgeBaseRoleArn"}, + "knowledgeBaseConfiguration":{"shape":"KnowledgeBaseConfiguration"}, + "storageConfiguration":{"shape":"StorageConfiguration"}, + "tags":{"shape":"TagsMap"} + } + }, + "CreateKnowledgeBaseResponse":{ + "type":"structure", + "required":["knowledgeBase"], + "members":{ + "knowledgeBase":{"shape":"KnowledgeBase"} + } + }, + "CreationMode":{ + "type":"string", + "enum":[ + "DEFAULT", + "OVERRIDDEN" + ] + }, + "DataSource":{ + "type":"structure", + "required":[ + "knowledgeBaseId", + "dataSourceId", + "name", + "status", + "dataSourceConfiguration", + "createdAt", + "updatedAt" + ], + "members":{ + "knowledgeBaseId":{"shape":"Id"}, + "dataSourceId":{"shape":"Id"}, + "name":{"shape":"Name"}, + "status":{"shape":"DataSourceStatus"}, + "description":{"shape":"Description"}, + "dataSourceConfiguration":{"shape":"DataSourceConfiguration"}, + "serverSideEncryptionConfiguration":{"shape":"ServerSideEncryptionConfiguration"}, + "vectorIngestionConfiguration":{"shape":"VectorIngestionConfiguration"}, + "createdAt":{"shape":"DateTimestamp"}, + "updatedAt":{"shape":"DateTimestamp"} + } + }, + "DataSourceConfiguration":{ + "type":"structure", + "required":["type"], + "members":{ + "type":{"shape":"DataSourceType"}, + "s3Configuration":{"shape":"S3DataSourceConfiguration"} + } + }, + "DataSourceStatus":{ + "type":"string", + "enum":[ + "AVAILABLE", + "DELETING" + ] + }, + "DataSourceSummaries":{ + "type":"list", + "member":{"shape":"DataSourceSummary"} + }, + "DataSourceSummary":{ + "type":"structure", + "required":[ + "knowledgeBaseId", + "dataSourceId", + "name", + "status", + "updatedAt" + ], + "members":{ + "knowledgeBaseId":{"shape":"Id"}, + "dataSourceId":{"shape":"Id"}, + "name":{"shape":"Name"}, + "status":{"shape":"DataSourceStatus"}, + "description":{"shape":"Description"}, + "updatedAt":{"shape":"DateTimestamp"} + } + }, + "DataSourceType":{ + "type":"string", + "enum":["S3"] + }, + "DateTimestamp":{ + "type":"timestamp", + "timestampFormat":"iso8601" + }, + "DeleteAgentActionGroupRequest":{ + "type":"structure", + "required":[ + "agentId", + "agentVersion", + "actionGroupId" + ], + "members":{ + "agentId":{ + "shape":"Id", + "location":"uri", + "locationName":"agentId" + }, + "agentVersion":{ + "shape":"DraftVersion", + "location":"uri", + "locationName":"agentVersion" + }, + "actionGroupId":{ + "shape":"Id", + "location":"uri", + "locationName":"actionGroupId" + }, + "skipResourceInUseCheck":{ + "shape":"Boolean", + "location":"querystring", + "locationName":"skipResourceInUseCheck" + } + } + }, + "DeleteAgentActionGroupResponse":{ + "type":"structure", + "members":{ + } + }, + "DeleteAgentAliasRequest":{ + "type":"structure", + "required":[ + "agentId", + "agentAliasId" + ], + "members":{ + "agentId":{ + "shape":"Id", + "location":"uri", + "locationName":"agentId" + }, + "agentAliasId":{ + "shape":"AgentAliasId", + "location":"uri", + "locationName":"agentAliasId" + } + } + }, + "DeleteAgentAliasResponse":{ + "type":"structure", + "required":[ + "agentId", + "agentAliasId", + "agentAliasStatus" + ], + "members":{ + "agentId":{"shape":"Id"}, + "agentAliasId":{"shape":"AgentAliasId"}, + "agentAliasStatus":{"shape":"AgentAliasStatus"} + } + }, + "DeleteAgentRequest":{ + "type":"structure", + "required":["agentId"], + "members":{ + "agentId":{ + "shape":"Id", + "location":"uri", + "locationName":"agentId" + }, + "skipResourceInUseCheck":{ + "shape":"Boolean", + "location":"querystring", + "locationName":"skipResourceInUseCheck" + } + } + }, + "DeleteAgentResponse":{ + "type":"structure", + "required":[ + "agentId", + "agentStatus" + ], + "members":{ + "agentId":{"shape":"Id"}, + "agentStatus":{"shape":"AgentStatus"} + } + }, + "DeleteAgentVersionRequest":{ + "type":"structure", + "required":[ + "agentId", + "agentVersion" + ], + "members":{ + "agentId":{ + "shape":"Id", + "location":"uri", + "locationName":"agentId" + }, + "agentVersion":{ + "shape":"NumericalVersion", + "location":"uri", + "locationName":"agentVersion" + }, + "skipResourceInUseCheck":{ + "shape":"Boolean", + "location":"querystring", + "locationName":"skipResourceInUseCheck" + } + } + }, + "DeleteAgentVersionResponse":{ + "type":"structure", + "required":[ + "agentId", + "agentVersion", + "agentStatus" + ], + "members":{ + "agentId":{"shape":"Id"}, + "agentVersion":{"shape":"NumericalVersion"}, + "agentStatus":{"shape":"AgentStatus"} + } + }, + "DeleteDataSourceRequest":{ + "type":"structure", + "required":[ + "knowledgeBaseId", + "dataSourceId" + ], + "members":{ + "knowledgeBaseId":{ + "shape":"Id", + "location":"uri", + "locationName":"knowledgeBaseId" + }, + "dataSourceId":{ + "shape":"Id", + "location":"uri", + "locationName":"dataSourceId" + } + } + }, + "DeleteDataSourceResponse":{ + "type":"structure", + "required":[ + "knowledgeBaseId", + "dataSourceId", + "status" + ], + "members":{ + "knowledgeBaseId":{"shape":"Id"}, + "dataSourceId":{"shape":"Id"}, + "status":{"shape":"DataSourceStatus"} + } + }, + "DeleteKnowledgeBaseRequest":{ + "type":"structure", + "required":["knowledgeBaseId"], + "members":{ + "knowledgeBaseId":{ + "shape":"Id", + "location":"uri", + "locationName":"knowledgeBaseId" + } + } + }, + "DeleteKnowledgeBaseResponse":{ + "type":"structure", + "required":[ + "knowledgeBaseId", + "status" + ], + "members":{ + "knowledgeBaseId":{"shape":"Id"}, + "status":{"shape":"KnowledgeBaseStatus"} + } + }, + "Description":{ + "type":"string", + "max":200, + "min":1 + }, + "DisassociateAgentKnowledgeBaseRequest":{ + "type":"structure", + "required":[ + "agentId", + "agentVersion", + "knowledgeBaseId" + ], + "members":{ + "agentId":{ + "shape":"Id", + "location":"uri", + "locationName":"agentId" + }, + "agentVersion":{ + "shape":"DraftVersion", + "location":"uri", + "locationName":"agentVersion" + }, + "knowledgeBaseId":{ + "shape":"Id", + "location":"uri", + "locationName":"knowledgeBaseId" + } + } + }, + "DisassociateAgentKnowledgeBaseResponse":{ + "type":"structure", + "members":{ + } + }, + "DraftVersion":{ + "type":"string", + "max":5, + "min":5, + "pattern":"DRAFT" + }, + "FailureReason":{ + "type":"string", + "max":2048, + "min":0 + }, + "FailureReasons":{ + "type":"list", + "member":{"shape":"FailureReason"}, + "max":2048, + "min":0 + }, + "FieldName":{ + "type":"string", + "max":2048, + "min":0, + "pattern":".*" + }, + "FixedSizeChunkingConfiguration":{ + "type":"structure", + "required":[ + "maxTokens", + "overlapPercentage" + ], + "members":{ + "maxTokens":{"shape":"FixedSizeChunkingConfigurationMaxTokensInteger"}, + "overlapPercentage":{"shape":"FixedSizeChunkingConfigurationOverlapPercentageInteger"} + } + }, + "FixedSizeChunkingConfigurationMaxTokensInteger":{ + "type":"integer", + "box":true, + "min":1 + }, + "FixedSizeChunkingConfigurationOverlapPercentageInteger":{ + "type":"integer", + "box":true, + "max":99, + "min":1 + }, + "GetAgentActionGroupRequest":{ + "type":"structure", + "required":[ + "agentId", + "agentVersion", + "actionGroupId" + ], + "members":{ + "agentId":{ + "shape":"Id", + "location":"uri", + "locationName":"agentId" + }, + "agentVersion":{ + "shape":"Version", + "location":"uri", + "locationName":"agentVersion" + }, + "actionGroupId":{ + "shape":"Id", + "location":"uri", + "locationName":"actionGroupId" + } + } + }, + "GetAgentActionGroupResponse":{ + "type":"structure", + "required":["agentActionGroup"], + "members":{ + "agentActionGroup":{"shape":"AgentActionGroup"} + } + }, + "GetAgentAliasRequest":{ + "type":"structure", + "required":[ + "agentId", + "agentAliasId" + ], + "members":{ + "agentId":{ + "shape":"Id", + "location":"uri", + "locationName":"agentId" + }, + "agentAliasId":{ + "shape":"AgentAliasId", + "location":"uri", + "locationName":"agentAliasId" + } + } + }, + "GetAgentAliasResponse":{ + "type":"structure", + "required":["agentAlias"], + "members":{ + "agentAlias":{"shape":"AgentAlias"} + } + }, + "GetAgentKnowledgeBaseRequest":{ + "type":"structure", + "required":[ + "agentId", + "agentVersion", + "knowledgeBaseId" + ], + "members":{ + "agentId":{ + "shape":"Id", + "location":"uri", + "locationName":"agentId" + }, + "agentVersion":{ + "shape":"Version", + "location":"uri", + "locationName":"agentVersion" + }, + "knowledgeBaseId":{ + "shape":"Id", + "location":"uri", + "locationName":"knowledgeBaseId" + } + } + }, + "GetAgentKnowledgeBaseResponse":{ + "type":"structure", + "required":["agentKnowledgeBase"], + "members":{ + "agentKnowledgeBase":{"shape":"AgentKnowledgeBase"} + } + }, + "GetAgentRequest":{ + "type":"structure", + "required":["agentId"], + "members":{ + "agentId":{ + "shape":"Id", + "location":"uri", + "locationName":"agentId" + } + } + }, + "GetAgentResponse":{ + "type":"structure", + "required":["agent"], + "members":{ + "agent":{"shape":"Agent"} + } + }, + "GetAgentVersionRequest":{ + "type":"structure", + "required":[ + "agentId", + "agentVersion" + ], + "members":{ + "agentId":{ + "shape":"Id", + "location":"uri", + "locationName":"agentId" + }, + "agentVersion":{ + "shape":"NumericalVersion", + "location":"uri", + "locationName":"agentVersion" + } + } + }, + "GetAgentVersionResponse":{ + "type":"structure", + "required":["agentVersion"], + "members":{ + "agentVersion":{"shape":"AgentVersion"} + } + }, + "GetDataSourceRequest":{ + "type":"structure", + "required":[ + "knowledgeBaseId", + "dataSourceId" + ], + "members":{ + "knowledgeBaseId":{ + "shape":"Id", + "location":"uri", + "locationName":"knowledgeBaseId" + }, + "dataSourceId":{ + "shape":"Id", + "location":"uri", + "locationName":"dataSourceId" + } + } + }, + "GetDataSourceResponse":{ + "type":"structure", + "required":["dataSource"], + "members":{ + "dataSource":{"shape":"DataSource"} + } + }, + "GetIngestionJobRequest":{ + "type":"structure", + "required":[ + "knowledgeBaseId", + "dataSourceId", + "ingestionJobId" + ], + "members":{ + "knowledgeBaseId":{ + "shape":"Id", + "location":"uri", + "locationName":"knowledgeBaseId" + }, + "dataSourceId":{ + "shape":"Id", + "location":"uri", + "locationName":"dataSourceId" + }, + "ingestionJobId":{ + "shape":"Id", + "location":"uri", + "locationName":"ingestionJobId" + } + } + }, + "GetIngestionJobResponse":{ + "type":"structure", + "required":["ingestionJob"], + "members":{ + "ingestionJob":{"shape":"IngestionJob"} + } + }, + "GetKnowledgeBaseRequest":{ + "type":"structure", + "required":["knowledgeBaseId"], + "members":{ + "knowledgeBaseId":{ + "shape":"Id", + "location":"uri", + "locationName":"knowledgeBaseId" + } + } + }, + "GetKnowledgeBaseResponse":{ + "type":"structure", + "required":["knowledgeBase"], + "members":{ + "knowledgeBase":{"shape":"KnowledgeBase"} + } + }, + "Id":{ + "type":"string", + "pattern":"[0-9a-zA-Z]{10}" + }, + "InferenceConfiguration":{ + "type":"structure", + "members":{ + "temperature":{"shape":"Temperature"}, + "topP":{"shape":"TopP"}, + "topK":{"shape":"TopK"}, + "maximumLength":{"shape":"MaximumLength"}, + "stopSequences":{"shape":"StopSequences"} + } + }, + "IngestionJob":{ + "type":"structure", + "required":[ + "knowledgeBaseId", + "dataSourceId", + "ingestionJobId", + "status", + "startedAt", + "updatedAt" + ], + "members":{ + "knowledgeBaseId":{"shape":"Id"}, + "dataSourceId":{"shape":"Id"}, + "ingestionJobId":{"shape":"Id"}, + "description":{"shape":"Description"}, + "status":{"shape":"IngestionJobStatus"}, + "statistics":{"shape":"IngestionJobStatistics"}, + "failureReasons":{"shape":"FailureReasons"}, + "startedAt":{"shape":"DateTimestamp"}, + "updatedAt":{"shape":"DateTimestamp"} + } + }, + "IngestionJobFilter":{ + "type":"structure", + "required":[ + "attribute", + "operator", + "values" + ], + "members":{ + "attribute":{"shape":"IngestionJobFilterAttribute"}, + "operator":{"shape":"IngestionJobFilterOperator"}, + "values":{"shape":"IngestionJobFilterValues"} + } + }, + "IngestionJobFilterAttribute":{ + "type":"string", + "enum":["STATUS"] + }, + "IngestionJobFilterOperator":{ + "type":"string", + "enum":["EQ"] + }, + "IngestionJobFilterValue":{ + "type":"string", + "max":100, + "min":0, + "pattern":".*" + }, + "IngestionJobFilterValues":{ + "type":"list", + "member":{"shape":"IngestionJobFilterValue"}, + "max":10, + "min":0 + }, + "IngestionJobFilters":{ + "type":"list", + "member":{"shape":"IngestionJobFilter"}, + "max":1, + "min":1 + }, + "IngestionJobSortBy":{ + "type":"structure", + "required":[ + "attribute", + "order" + ], + "members":{ + "attribute":{"shape":"IngestionJobSortByAttribute"}, + "order":{"shape":"SortOrder"} + } + }, + "IngestionJobSortByAttribute":{ + "type":"string", + "enum":[ + "STATUS", + "STARTED_AT" + ] + }, + "IngestionJobStatistics":{ + "type":"structure", + "members":{ + "numberOfDocumentsScanned":{"shape":"PrimitiveLong"}, + "numberOfNewDocumentsIndexed":{"shape":"PrimitiveLong"}, + "numberOfModifiedDocumentsIndexed":{"shape":"PrimitiveLong"}, + "numberOfDocumentsDeleted":{"shape":"PrimitiveLong"}, + "numberOfDocumentsFailed":{"shape":"PrimitiveLong"} + } + }, + "IngestionJobStatus":{ + "type":"string", + "enum":[ + "STARTING", + "IN_PROGRESS", + "COMPLETE", + "FAILED" + ] + }, + "IngestionJobSummaries":{ + "type":"list", + "member":{"shape":"IngestionJobSummary"} + }, + "IngestionJobSummary":{ + "type":"structure", + "required":[ + "knowledgeBaseId", + "dataSourceId", + "ingestionJobId", + "status", + "startedAt", + "updatedAt" + ], + "members":{ + "knowledgeBaseId":{"shape":"Id"}, + "dataSourceId":{"shape":"Id"}, + "ingestionJobId":{"shape":"Id"}, + "description":{"shape":"Description"}, + "status":{"shape":"IngestionJobStatus"}, + "startedAt":{"shape":"DateTimestamp"}, + "updatedAt":{"shape":"DateTimestamp"}, + "statistics":{"shape":"IngestionJobStatistics"} + } + }, + "Instruction":{ + "type":"string", + "max":1200, + "min":40, + "sensitive":true + }, + "InternalServerException":{ + "type":"structure", + "members":{ + "message":{"shape":"NonBlankString"} + }, + "error":{"httpStatusCode":500}, + "exception":true, + "fault":true + }, + "KmsKeyArn":{ + "type":"string", + "max":2048, + "min":1, + "pattern":"arn:aws(|-cn|-us-gov):kms:[a-zA-Z0-9-]*:[0-9]{12}:key/[a-zA-Z0-9-]{36}" + }, + "KnowledgeBase":{ + "type":"structure", + "required":[ + "knowledgeBaseId", + "name", + "knowledgeBaseArn", + "roleArn", + "knowledgeBaseConfiguration", + "storageConfiguration", + "status", + "createdAt", + "updatedAt" + ], + "members":{ + "knowledgeBaseId":{"shape":"Id"}, + "name":{"shape":"Name"}, + "knowledgeBaseArn":{"shape":"KnowledgeBaseArn"}, + "description":{"shape":"Description"}, + "roleArn":{"shape":"KnowledgeBaseRoleArn"}, + "knowledgeBaseConfiguration":{"shape":"KnowledgeBaseConfiguration"}, + "storageConfiguration":{"shape":"StorageConfiguration"}, + "status":{"shape":"KnowledgeBaseStatus"}, + "createdAt":{"shape":"DateTimestamp"}, + "updatedAt":{"shape":"DateTimestamp"}, + "failureReasons":{"shape":"FailureReasons"} + } + }, + "KnowledgeBaseArn":{ + "type":"string", + "max":128, + "min":0, + "pattern":"arn:aws(|-cn|-us-gov):bedrock:[a-zA-Z0-9-]*:[0-9]{12}:knowledge-base/[0-9a-zA-Z]+" + }, + "KnowledgeBaseConfiguration":{ + "type":"structure", + "required":["type"], + "members":{ + "type":{"shape":"KnowledgeBaseType"}, + "vectorKnowledgeBaseConfiguration":{"shape":"VectorKnowledgeBaseConfiguration"} + } + }, + "KnowledgeBaseRoleArn":{ + "type":"string", + "max":2048, + "min":0, + "pattern":"arn:aws(-[^:]+)?:iam::([0-9]{12})?:role/(service-role/)?AmazonBedrockExecutionRoleForKnowledgeBase.+" + }, + "KnowledgeBaseState":{ + "type":"string", + "enum":[ + "ENABLED", + "DISABLED" + ] + }, + "KnowledgeBaseStatus":{ + "type":"string", + "enum":[ + "CREATING", + "ACTIVE", + "DELETING", + "UPDATING", + "FAILED" + ] + }, + "KnowledgeBaseStorageType":{ + "type":"string", + "enum":[ + "OPENSEARCH_SERVERLESS", + "PINECONE", + "REDIS_ENTERPRISE_CLOUD" + ] + }, + "KnowledgeBaseSummaries":{ + "type":"list", + "member":{"shape":"KnowledgeBaseSummary"} + }, + "KnowledgeBaseSummary":{ + "type":"structure", + "required":[ + "knowledgeBaseId", + "name", + "status", + "updatedAt" + ], + "members":{ + "knowledgeBaseId":{"shape":"Id"}, + "name":{"shape":"Name"}, + "description":{"shape":"Description"}, + "status":{"shape":"KnowledgeBaseStatus"}, + "updatedAt":{"shape":"DateTimestamp"} + } + }, + "KnowledgeBaseType":{ + "type":"string", + "enum":["VECTOR"] + }, + "LambdaArn":{ + "type":"string", + "max":2048, + "min":0, + "pattern":"arn:(aws[a-zA-Z-]*)?:lambda:[a-z]{2}(-gov)?-[a-z]+-\\d{1}:\\d{12}:function:[a-zA-Z0-9-_\\.]+(:(\\$LATEST|[a-zA-Z0-9-_]+))?" + }, + "ListAgentActionGroupsRequest":{ + "type":"structure", + "required":[ + "agentId", + "agentVersion" + ], + "members":{ + "agentId":{ + "shape":"Id", + "location":"uri", + "locationName":"agentId" + }, + "agentVersion":{ + "shape":"Version", + "location":"uri", + "locationName":"agentVersion" + }, + "maxResults":{"shape":"MaxResults"}, + "nextToken":{"shape":"NextToken"} + } + }, + "ListAgentActionGroupsResponse":{ + "type":"structure", + "required":["actionGroupSummaries"], + "members":{ + "actionGroupSummaries":{"shape":"ActionGroupSummaries"}, + "nextToken":{"shape":"NextToken"} + } + }, + "ListAgentAliasesRequest":{ + "type":"structure", + "required":["agentId"], + "members":{ + "agentId":{ + "shape":"Id", + "location":"uri", + "locationName":"agentId" + }, + "maxResults":{"shape":"MaxResults"}, + "nextToken":{"shape":"NextToken"} + } + }, + "ListAgentAliasesResponse":{ + "type":"structure", + "required":["agentAliasSummaries"], + "members":{ + "agentAliasSummaries":{"shape":"AgentAliasSummaries"}, + "nextToken":{"shape":"NextToken"} + } + }, + "ListAgentKnowledgeBasesRequest":{ + "type":"structure", + "required":[ + "agentId", + "agentVersion" + ], + "members":{ + "agentId":{ + "shape":"Id", + "location":"uri", + "locationName":"agentId" + }, + "agentVersion":{ + "shape":"Version", + "location":"uri", + "locationName":"agentVersion" + }, + "maxResults":{"shape":"MaxResults"}, + "nextToken":{"shape":"NextToken"} + } + }, + "ListAgentKnowledgeBasesResponse":{ + "type":"structure", + "required":["agentKnowledgeBaseSummaries"], + "members":{ + "agentKnowledgeBaseSummaries":{"shape":"AgentKnowledgeBaseSummaries"}, + "nextToken":{"shape":"NextToken"} + } + }, + "ListAgentVersionsRequest":{ + "type":"structure", + "required":["agentId"], + "members":{ + "agentId":{ + "shape":"Id", + "location":"uri", + "locationName":"agentId" + }, + "maxResults":{"shape":"MaxResults"}, + "nextToken":{"shape":"NextToken"} + } + }, + "ListAgentVersionsResponse":{ + "type":"structure", + "required":["agentVersionSummaries"], + "members":{ + "agentVersionSummaries":{"shape":"AgentVersionSummaries"}, + "nextToken":{"shape":"NextToken"} + } + }, + "ListAgentsRequest":{ + "type":"structure", + "members":{ + "maxResults":{"shape":"MaxResults"}, + "nextToken":{"shape":"NextToken"} + } + }, + "ListAgentsResponse":{ + "type":"structure", + "required":["agentSummaries"], + "members":{ + "agentSummaries":{"shape":"AgentSummaries"}, + "nextToken":{"shape":"NextToken"} + } + }, + "ListDataSourcesRequest":{ + "type":"structure", + "required":["knowledgeBaseId"], + "members":{ + "knowledgeBaseId":{ + "shape":"Id", + "location":"uri", + "locationName":"knowledgeBaseId" + }, + "maxResults":{"shape":"MaxResults"}, + "nextToken":{"shape":"NextToken"} + } + }, + "ListDataSourcesResponse":{ + "type":"structure", + "required":["dataSourceSummaries"], + "members":{ + "dataSourceSummaries":{"shape":"DataSourceSummaries"}, + "nextToken":{"shape":"NextToken"} + } + }, + "ListIngestionJobsRequest":{ + "type":"structure", + "required":[ + "knowledgeBaseId", + "dataSourceId" + ], + "members":{ + "knowledgeBaseId":{ + "shape":"Id", + "location":"uri", + "locationName":"knowledgeBaseId" + }, + "dataSourceId":{ + "shape":"Id", + "location":"uri", + "locationName":"dataSourceId" + }, + "filters":{"shape":"IngestionJobFilters"}, + "sortBy":{"shape":"IngestionJobSortBy"}, + "maxResults":{"shape":"MaxResults"}, + "nextToken":{"shape":"NextToken"} + } + }, + "ListIngestionJobsResponse":{ + "type":"structure", + "required":["ingestionJobSummaries"], + "members":{ + "ingestionJobSummaries":{"shape":"IngestionJobSummaries"}, + "nextToken":{"shape":"NextToken"} + } + }, + "ListKnowledgeBasesRequest":{ + "type":"structure", + "members":{ + "maxResults":{"shape":"MaxResults"}, + "nextToken":{"shape":"NextToken"} + } + }, + "ListKnowledgeBasesResponse":{ + "type":"structure", + "required":["knowledgeBaseSummaries"], + "members":{ + "knowledgeBaseSummaries":{"shape":"KnowledgeBaseSummaries"}, + "nextToken":{"shape":"NextToken"} + } + }, + "ListTagsForResourceRequest":{ + "type":"structure", + "required":["resourceArn"], + "members":{ + "resourceArn":{ + "shape":"TaggableResourcesArn", + "location":"uri", + "locationName":"resourceArn" + } + } + }, + "ListTagsForResourceResponse":{ + "type":"structure", + "members":{ + "tags":{"shape":"TagsMap"} + } + }, + "MaxResults":{ + "type":"integer", + "box":true, + "max":1000, + "min":1 + }, + "MaximumLength":{ + "type":"integer", + "box":true, + "max":4096, + "min":0 + }, + "ModelIdentifier":{ + "type":"string", + "max":2048, + "min":1, + "pattern":".*(^[a-zA-Z0-9-_.]+$)|(^arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:(([0-9]{12}:custom-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}/[a-z0-9]{12})|(:foundation-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}))$)|(^([0-9a-zA-Z][_-]?)+$)|^([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63})" + }, + "Name":{ + "type":"string", + "pattern":"([0-9a-zA-Z][_-]?){1,100}" + }, + "NextToken":{ + "type":"string", + "max":2048, + "min":1, + "pattern":"\\S*" + }, + "NonBlankString":{ + "type":"string", + "pattern":"[\\s\\S]+" + }, + "NumericalVersion":{ + "type":"string", + "pattern":"[0-9]{1,5}" + }, + "OpenSearchServerlessCollectionArn":{ + "type":"string", + "max":2048, + "min":0, + "pattern":"arn:aws:aoss:[a-z]{2}(-gov)?-[a-z]+-\\d{1}:\\d{12}:collection/[a-z0-9-]{3,32}" + }, + "OpenSearchServerlessConfiguration":{ + "type":"structure", + "required":[ + "collectionArn", + "vectorIndexName", + "fieldMapping" + ], + "members":{ + "collectionArn":{"shape":"OpenSearchServerlessCollectionArn"}, + "vectorIndexName":{"shape":"OpenSearchServerlessIndexName"}, + "fieldMapping":{"shape":"OpenSearchServerlessFieldMapping"} + } + }, + "OpenSearchServerlessFieldMapping":{ + "type":"structure", + "required":[ + "vectorField", + "textField", + "metadataField" + ], + "members":{ + "vectorField":{"shape":"FieldName"}, + "textField":{"shape":"FieldName"}, + "metadataField":{"shape":"FieldName"} + } + }, + "OpenSearchServerlessIndexName":{ + "type":"string", + "max":2048, + "min":0, + "pattern":".*" + }, + "Payload":{ + "type":"string", + "sensitive":true + }, + "PineconeConfiguration":{ + "type":"structure", + "required":[ + "connectionString", + "credentialsSecretArn", + "fieldMapping" + ], + "members":{ + "connectionString":{"shape":"PineconeConnectionString"}, + "credentialsSecretArn":{"shape":"SecretArn"}, + "namespace":{"shape":"PineconeNamespace"}, + "fieldMapping":{"shape":"PineconeFieldMapping"} + } + }, + "PineconeConnectionString":{ + "type":"string", + "max":2048, + "min":0, + "pattern":".*" + }, + "PineconeFieldMapping":{ + "type":"structure", + "required":[ + "textField", + "metadataField" + ], + "members":{ + "textField":{"shape":"FieldName"}, + "metadataField":{"shape":"FieldName"} + } + }, + "PineconeNamespace":{ + "type":"string", + "max":2048, + "min":0, + "pattern":".*" + }, + "PrepareAgentRequest":{ + "type":"structure", + "required":["agentId"], + "members":{ + "agentId":{ + "shape":"Id", + "location":"uri", + "locationName":"agentId" + } + } + }, + "PrepareAgentResponse":{ + "type":"structure", + "required":[ + "agentId", + "agentStatus", + "agentVersion", + "preparedAt" + ], + "members":{ + "agentId":{"shape":"Id"}, + "agentStatus":{"shape":"AgentStatus"}, + "agentVersion":{"shape":"Version"}, + "preparedAt":{"shape":"DateTimestamp"} + } + }, + "PrimitiveLong":{"type":"long"}, + "PromptConfiguration":{ + "type":"structure", + "members":{ + "promptType":{"shape":"PromptType"}, + "promptCreationMode":{"shape":"CreationMode"}, + "promptState":{"shape":"PromptState"}, + "basePromptTemplate":{"shape":"BasePromptTemplate"}, + "inferenceConfiguration":{"shape":"InferenceConfiguration"}, + "parserMode":{"shape":"CreationMode"} + } + }, + "PromptConfigurations":{ + "type":"list", + "member":{"shape":"PromptConfiguration"}, + "max":10, + "min":0 + }, + "PromptOverrideConfiguration":{ + "type":"structure", + "required":["promptConfigurations"], + "members":{ + "promptConfigurations":{"shape":"PromptConfigurations"}, + "overrideLambda":{"shape":"LambdaArn"} + }, + "sensitive":true + }, + "PromptState":{ + "type":"string", + "enum":[ + "ENABLED", + "DISABLED" + ] + }, + "PromptType":{ + "type":"string", + "enum":[ + "PRE_PROCESSING", + "ORCHESTRATION", + "POST_PROCESSING", + "KNOWLEDGE_BASE_RESPONSE_GENERATION" + ] + }, + "RecommendedAction":{ + "type":"string", + "max":2048, + "min":0 + }, + "RecommendedActions":{ + "type":"list", + "member":{"shape":"RecommendedAction"}, + "max":2048, + "min":0 + }, + "RedisEnterpriseCloudConfiguration":{ + "type":"structure", + "required":[ + "endpoint", + "vectorIndexName", + "credentialsSecretArn", + "fieldMapping" + ], + "members":{ + "endpoint":{"shape":"RedisEnterpriseCloudEndpoint"}, + "vectorIndexName":{"shape":"RedisEnterpriseCloudIndexName"}, + "credentialsSecretArn":{"shape":"SecretArn"}, + "fieldMapping":{"shape":"RedisEnterpriseCloudFieldMapping"} + } + }, + "RedisEnterpriseCloudEndpoint":{ + "type":"string", + "max":2048, + "min":0, + "pattern":".*" + }, + "RedisEnterpriseCloudFieldMapping":{ + "type":"structure", + "required":[ + "vectorField", + "textField", + "metadataField" + ], + "members":{ + "vectorField":{"shape":"FieldName"}, + "textField":{"shape":"FieldName"}, + "metadataField":{"shape":"FieldName"} + } + }, + "RedisEnterpriseCloudIndexName":{ + "type":"string", + "max":2048, + "min":0, + "pattern":".*" + }, + "ResourceNotFoundException":{ + "type":"structure", + "members":{ + "message":{"shape":"NonBlankString"} + }, + "error":{ + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + "S3BucketArn":{ + "type":"string", + "max":2048, + "min":1, + "pattern":"arn:aws(|-cn|-us-gov):s3:::[a-z0-9][a-z0-9.-]{1,61}[a-z0-9]" + }, + "S3BucketName":{ + "type":"string", + "max":63, + "min":3, + "pattern":"[a-z0-9][\\.\\-a-z0-9]{1,61}[a-z0-9]" + }, + "S3DataSourceConfiguration":{ + "type":"structure", + "required":["bucketArn"], + "members":{ + "bucketArn":{"shape":"S3BucketArn"}, + "inclusionPrefixes":{"shape":"S3Prefixes"} + } + }, + "S3Identifier":{ + "type":"structure", + "members":{ + "s3BucketName":{"shape":"S3BucketName"}, + "s3ObjectKey":{"shape":"S3ObjectKey"} + } + }, + "S3ObjectKey":{ + "type":"string", + "max":1024, + "min":1, + "pattern":"[\\.\\-\\!\\*\\_\\'\\(\\)a-zA-Z0-9][\\.\\-\\!\\*\\_\\'\\(\\)\\/a-zA-Z0-9]*" + }, + "S3Prefix":{ + "type":"string", + "max":300, + "min":1 + }, + "S3Prefixes":{ + "type":"list", + "member":{"shape":"S3Prefix"}, + "max":1, + "min":1 + }, + "SecretArn":{ + "type":"string", + "pattern":"arn:aws(|-cn|-us-gov):secretsmanager:[a-z0-9-]{1,20}:([0-9]{12}|):secret:[a-zA-Z0-9/_+=.@-]{1,63}" + }, + "ServerSideEncryptionConfiguration":{ + "type":"structure", + "members":{ + "kmsKeyArn":{"shape":"KmsKeyArn"} + } + }, + "ServiceQuotaExceededException":{ + "type":"structure", + "members":{ + "message":{"shape":"NonBlankString"} + }, + "error":{ + "httpStatusCode":402, + "senderFault":true + }, + "exception":true + }, + "SessionTTL":{ + "type":"integer", + "box":true, + "max":3600, + "min":60 + }, + "SortOrder":{ + "type":"string", + "enum":[ + "ASCENDING", + "DESCENDING" + ] + }, + "StartIngestionJobRequest":{ + "type":"structure", + "required":[ + "knowledgeBaseId", + "dataSourceId" + ], + "members":{ + "knowledgeBaseId":{ + "shape":"Id", + "location":"uri", + "locationName":"knowledgeBaseId" + }, + "dataSourceId":{ + "shape":"Id", + "location":"uri", + "locationName":"dataSourceId" + }, + "clientToken":{ + "shape":"ClientToken", + "idempotencyToken":true + }, + "description":{"shape":"Description"} + } + }, + "StartIngestionJobResponse":{ + "type":"structure", + "required":["ingestionJob"], + "members":{ + "ingestionJob":{"shape":"IngestionJob"} + } + }, + "StopSequences":{ + "type":"list", + "member":{"shape":"String"}, + "max":4, + "min":0 + }, + "StorageConfiguration":{ + "type":"structure", + "required":["type"], + "members":{ + "type":{"shape":"KnowledgeBaseStorageType"}, + "opensearchServerlessConfiguration":{"shape":"OpenSearchServerlessConfiguration"}, + "pineconeConfiguration":{"shape":"PineconeConfiguration"}, + "redisEnterpriseCloudConfiguration":{"shape":"RedisEnterpriseCloudConfiguration"} + } + }, + "String":{"type":"string"}, + "TagKey":{ + "type":"string", + "max":128, + "min":1, + "pattern":"[a-zA-Z0-9\\s._:/=+@-]*" + }, + "TagKeyList":{ + "type":"list", + "member":{"shape":"TagKey"}, + "max":200, + "min":0 + }, + "TagResourceRequest":{ + "type":"structure", + "required":[ + "resourceArn", + "tags" + ], + "members":{ + "resourceArn":{ + "shape":"TaggableResourcesArn", + "location":"uri", + "locationName":"resourceArn" + }, + "tags":{"shape":"TagsMap"} + } + }, + "TagResourceResponse":{ + "type":"structure", + "members":{ + } + }, + "TagValue":{ + "type":"string", + "max":256, + "min":0, + "pattern":"[a-zA-Z0-9\\s._:/=+@-]*" + }, + "TaggableResourcesArn":{ + "type":"string", + "max":1011, + "min":20, + "pattern":".*(^arn:aws:bedrock:[a-zA-Z0-9-]+:/d{12}:(agent|agent-alias|knowledge-base)/[A-Z0-9]{10}(?:/[A-Z0-9]{10})?$).*" + }, + "TagsMap":{ + "type":"map", + "key":{"shape":"TagKey"}, + "value":{"shape":"TagValue"} + }, + "Temperature":{ + "type":"float", + "box":true, + "max":1, + "min":0 + }, + "ThrottlingException":{ + "type":"structure", + "members":{ + "message":{"shape":"NonBlankString"} + }, + "error":{ + "httpStatusCode":429, + "senderFault":true + }, + "exception":true + }, + "TopK":{ + "type":"integer", + "box":true, + "max":500, + "min":0 + }, + "TopP":{ + "type":"float", + "box":true, + "max":1, + "min":0 + }, + "UntagResourceRequest":{ + "type":"structure", + "required":[ + "resourceArn", + "tagKeys" + ], + "members":{ + "resourceArn":{ + "shape":"TaggableResourcesArn", + "location":"uri", + "locationName":"resourceArn" + }, + "tagKeys":{ + "shape":"TagKeyList", + "location":"querystring", + "locationName":"tagKeys" + } + } + }, + "UntagResourceResponse":{ + "type":"structure", + "members":{ + } + }, + "UpdateAgentActionGroupRequest":{ + "type":"structure", + "required":[ + "agentId", + "agentVersion", + "actionGroupId", + "actionGroupName" + ], + "members":{ + "agentId":{ + "shape":"Id", + "location":"uri", + "locationName":"agentId" + }, + "agentVersion":{ + "shape":"DraftVersion", + "location":"uri", + "locationName":"agentVersion" + }, + "actionGroupId":{ + "shape":"Id", + "location":"uri", + "locationName":"actionGroupId" + }, + "actionGroupName":{"shape":"Name"}, + "description":{"shape":"Description"}, + "parentActionGroupSignature":{"shape":"ActionGroupSignature"}, + "actionGroupExecutor":{"shape":"ActionGroupExecutor"}, + "actionGroupState":{"shape":"ActionGroupState"}, + "apiSchema":{"shape":"APISchema"} + } + }, + "UpdateAgentActionGroupResponse":{ + "type":"structure", + "required":["agentActionGroup"], + "members":{ + "agentActionGroup":{"shape":"AgentActionGroup"} + } + }, + "UpdateAgentAliasRequest":{ + "type":"structure", + "required":[ + "agentId", + "agentAliasId", + "agentAliasName" + ], + "members":{ + "agentId":{ + "shape":"Id", + "location":"uri", + "locationName":"agentId" + }, + "agentAliasId":{ + "shape":"AgentAliasId", + "location":"uri", + "locationName":"agentAliasId" + }, + "agentAliasName":{"shape":"Name"}, + "description":{"shape":"Description"}, + "routingConfiguration":{"shape":"AgentAliasRoutingConfiguration"} + } + }, + "UpdateAgentAliasResponse":{ + "type":"structure", + "required":["agentAlias"], + "members":{ + "agentAlias":{"shape":"AgentAlias"} + } + }, + "UpdateAgentKnowledgeBaseRequest":{ + "type":"structure", + "required":[ + "agentId", + "agentVersion", + "knowledgeBaseId" + ], + "members":{ + "agentId":{ + "shape":"Id", + "location":"uri", + "locationName":"agentId" + }, + "agentVersion":{ + "shape":"DraftVersion", + "location":"uri", + "locationName":"agentVersion" + }, + "knowledgeBaseId":{ + "shape":"Id", + "location":"uri", + "locationName":"knowledgeBaseId" + }, + "description":{"shape":"Description"}, + "knowledgeBaseState":{"shape":"KnowledgeBaseState"} + } + }, + "UpdateAgentKnowledgeBaseResponse":{ + "type":"structure", + "required":["agentKnowledgeBase"], + "members":{ + "agentKnowledgeBase":{"shape":"AgentKnowledgeBase"} + } + }, + "UpdateAgentRequest":{ + "type":"structure", + "required":[ + "agentId", + "agentName", + "agentResourceRoleArn" + ], + "members":{ + "agentId":{ + "shape":"Id", + "location":"uri", + "locationName":"agentId" + }, + "agentName":{"shape":"Name"}, + "instruction":{"shape":"Instruction"}, + "foundationModel":{"shape":"ModelIdentifier"}, + "description":{"shape":"Description"}, + "idleSessionTTLInSeconds":{"shape":"SessionTTL"}, + "agentResourceRoleArn":{"shape":"AgentRoleArn"}, + "customerEncryptionKeyArn":{"shape":"KmsKeyArn"}, + "promptOverrideConfiguration":{"shape":"PromptOverrideConfiguration"} + } + }, + "UpdateAgentResponse":{ + "type":"structure", + "required":["agent"], + "members":{ + "agent":{"shape":"Agent"} + } + }, + "UpdateDataSourceRequest":{ + "type":"structure", + "required":[ + "knowledgeBaseId", + "dataSourceId", + "name", + "dataSourceConfiguration" + ], + "members":{ + "knowledgeBaseId":{ + "shape":"Id", + "location":"uri", + "locationName":"knowledgeBaseId" + }, + "dataSourceId":{ + "shape":"Id", + "location":"uri", + "locationName":"dataSourceId" + }, + "name":{"shape":"Name"}, + "description":{"shape":"Description"}, + "dataSourceConfiguration":{"shape":"DataSourceConfiguration"}, + "serverSideEncryptionConfiguration":{"shape":"ServerSideEncryptionConfiguration"}, + "vectorIngestionConfiguration":{"shape":"VectorIngestionConfiguration"} + } + }, + "UpdateDataSourceResponse":{ + "type":"structure", + "required":["dataSource"], + "members":{ + "dataSource":{"shape":"DataSource"} + } + }, + "UpdateKnowledgeBaseRequest":{ + "type":"structure", + "required":[ + "knowledgeBaseId", + "name", + "roleArn", + "knowledgeBaseConfiguration", + "storageConfiguration" + ], + "members":{ + "knowledgeBaseId":{ + "shape":"Id", + "location":"uri", + "locationName":"knowledgeBaseId" + }, + "name":{"shape":"Name"}, + "description":{"shape":"Description"}, + "roleArn":{"shape":"KnowledgeBaseRoleArn"}, + "knowledgeBaseConfiguration":{"shape":"KnowledgeBaseConfiguration"}, + "storageConfiguration":{"shape":"StorageConfiguration"} + } + }, + "UpdateKnowledgeBaseResponse":{ + "type":"structure", + "required":["knowledgeBase"], + "members":{ + "knowledgeBase":{"shape":"KnowledgeBase"} + } + }, + "ValidationException":{ + "type":"structure", + "members":{ + "message":{"shape":"NonBlankString"}, + "fieldList":{"shape":"ValidationExceptionFieldList"} + }, + "error":{ + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "ValidationExceptionField":{ + "type":"structure", + "required":[ + "name", + "message" + ], + "members":{ + "name":{"shape":"NonBlankString"}, + "message":{"shape":"NonBlankString"} + } + }, + "ValidationExceptionFieldList":{ + "type":"list", + "member":{"shape":"ValidationExceptionField"} + }, + "VectorIngestionConfiguration":{ + "type":"structure", + "members":{ + "chunkingConfiguration":{"shape":"ChunkingConfiguration"} + } + }, + "VectorKnowledgeBaseConfiguration":{ + "type":"structure", + "required":["embeddingModelArn"], + "members":{ + "embeddingModelArn":{"shape":"BedrockEmbeddingModelArn"} + } + }, + "Version":{ + "type":"string", + "max":5, + "min":1, + "pattern":"(DRAFT|[0-9]{0,4}[1-9][0-9]{0,4})" + } + } +} diff --git a/models/apis/bedrock-agent/2023-06-05/docs-2.json b/models/apis/bedrock-agent/2023-06-05/docs-2.json new file mode 100644 index 00000000000..b49dcbe739b --- /dev/null +++ b/models/apis/bedrock-agent/2023-06-05/docs-2.json @@ -0,0 +1,1604 @@ +{ + "version": "2.0", + "service": "

An example service, deployed with the Octane Service creator, which will echo the string

", + "operations": { + "AssociateAgentKnowledgeBase": "

Associate a Knowledge Base to an existing Amazon Bedrock Agent

", + "CreateAgent": "

Creates an Amazon Bedrock Agent

", + "CreateAgentActionGroup": "

Creates an Action Group for existing Amazon Bedrock Agent

", + "CreateAgentAlias": "

Creates an Alias for an existing Amazon Bedrock Agent

", + "CreateDataSource": "

Create a new data source

", + "CreateKnowledgeBase": "

Create a new knowledge base

", + "DeleteAgent": "

Deletes an Agent for existing Amazon Bedrock Agent

", + "DeleteAgentActionGroup": "

Deletes an Action Group for existing Amazon Bedrock Agent.

", + "DeleteAgentAlias": "

Deletes an Alias for a Amazon Bedrock Agent

", + "DeleteAgentVersion": "

Deletes an Agent version for existing Amazon Bedrock Agent

", + "DeleteDataSource": "

Delete an existing data source

", + "DeleteKnowledgeBase": "

Delete an existing knowledge base

", + "DisassociateAgentKnowledgeBase": "

Disassociate an existing Knowledge Base from an Amazon Bedrock Agent

", + "GetAgent": "

Gets an Agent for existing Amazon Bedrock Agent

", + "GetAgentActionGroup": "

Gets an Action Group for existing Amazon Bedrock Agent Version

", + "GetAgentAlias": "

Describes an Alias for a Amazon Bedrock Agent

", + "GetAgentKnowledgeBase": "

Gets a knowledge base associated to an existing Amazon Bedrock Agent Version

", + "GetAgentVersion": "

Gets an Agent version for existing Amazon Bedrock Agent

", + "GetDataSource": "

Get an existing data source

", + "GetIngestionJob": "

Get an ingestion job

", + "GetKnowledgeBase": "

Get an existing knowledge base

", + "ListAgentActionGroups": "

Lists an Action Group for existing Amazon Bedrock Agent Version

", + "ListAgentAliases": "

Lists all the Aliases for an Amazon Bedrock Agent

", + "ListAgentKnowledgeBases": "

List of Knowledge Bases associated to an existing Amazon Bedrock Agent Version

", + "ListAgentVersions": "

Lists Agent Versions

", + "ListAgents": "

Lists Agents

", + "ListDataSources": "

List data sources

", + "ListIngestionJobs": "

List ingestion jobs

", + "ListKnowledgeBases": "

List Knowledge Bases

", + "ListTagsForResource": "

List tags for a resource

", + "PrepareAgent": "

Prepares an existing Amazon Bedrock Agent to receive runtime requests

", + "StartIngestionJob": "

Start a new ingestion job

", + "TagResource": "

Tag a resource

", + "UntagResource": "

Untag a resource

", + "UpdateAgent": "

Updates an existing Amazon Bedrock Agent

", + "UpdateAgentActionGroup": "

Updates an existing Action Group for Amazon Bedrock Agent

", + "UpdateAgentAlias": "

Updates an existing Alias for an Amazon Bedrock Agent

", + "UpdateAgentKnowledgeBase": "

Updates an existing Knowledge Base associated to an Amazon Bedrock Agent

", + "UpdateDataSource": "

Update an existing data source

", + "UpdateKnowledgeBase": "

Update an existing knowledge base

" + }, + "shapes": { + "APISchema": { + "base": "

Contains information about the API Schema for the Action Group

", + "refs": { + "AgentActionGroup$apiSchema": null, + "CreateAgentActionGroupRequest$apiSchema": null, + "UpdateAgentActionGroupRequest$apiSchema": null + } + }, + "AccessDeniedException": { + "base": "

This exception is thrown when a request is denied per access permissions

", + "refs": { + } + }, + "ActionGroupExecutor": { + "base": "

Type of Executors for an Action Group

", + "refs": { + "AgentActionGroup$actionGroupExecutor": null, + "CreateAgentActionGroupRequest$actionGroupExecutor": null, + "UpdateAgentActionGroupRequest$actionGroupExecutor": null + } + }, + "ActionGroupSignature": { + "base": "

Action Group Signature for a BuiltIn Action

", + "refs": { + "AgentActionGroup$parentActionSignature": null, + "CreateAgentActionGroupRequest$parentActionGroupSignature": null, + "UpdateAgentActionGroupRequest$parentActionGroupSignature": null + } + }, + "ActionGroupState": { + "base": "

State of the action group

", + "refs": { + "ActionGroupSummary$actionGroupState": null, + "AgentActionGroup$actionGroupState": null, + "CreateAgentActionGroupRequest$actionGroupState": null, + "UpdateAgentActionGroupRequest$actionGroupState": null + } + }, + "ActionGroupSummaries": { + "base": "

List of ActionGroup Summaries

", + "refs": { + "ListAgentActionGroupsResponse$actionGroupSummaries": null + } + }, + "ActionGroupSummary": { + "base": "

ActionGroup Summary

", + "refs": { + "ActionGroupSummaries$member": null + } + }, + "Agent": { + "base": "

Contains the information of an agent

", + "refs": { + "CreateAgentResponse$agent": null, + "GetAgentResponse$agent": null, + "UpdateAgentResponse$agent": null + } + }, + "AgentActionGroup": { + "base": "

Contains the information of an Agent Action Group

", + "refs": { + "CreateAgentActionGroupResponse$agentActionGroup": null, + "GetAgentActionGroupResponse$agentActionGroup": null, + "UpdateAgentActionGroupResponse$agentActionGroup": null + } + }, + "AgentAlias": { + "base": "

Contains the information of an agent alias

", + "refs": { + "CreateAgentAliasResponse$agentAlias": null, + "GetAgentAliasResponse$agentAlias": null, + "UpdateAgentAliasResponse$agentAlias": null + } + }, + "AgentAliasArn": { + "base": "

Arn representation of the Agent Alias.

", + "refs": { + "AgentAlias$agentAliasArn": null + } + }, + "AgentAliasHistoryEvent": { + "base": "

History event for an alias for an Agent.

", + "refs": { + "AgentAliasHistoryEvents$member": null + } + }, + "AgentAliasHistoryEvents": { + "base": "

The list of history events for an alias for an Agent.

", + "refs": { + "AgentAlias$agentAliasHistoryEvents": null + } + }, + "AgentAliasId": { + "base": "

Id for an Agent Alias generated at the server side.

", + "refs": { + "AgentAlias$agentAliasId": null, + "AgentAliasSummary$agentAliasId": null, + "DeleteAgentAliasRequest$agentAliasId": "

Id generated at the server side when an Agent Alias is created

", + "DeleteAgentAliasResponse$agentAliasId": null, + "GetAgentAliasRequest$agentAliasId": "

Id generated at the server side when an Agent Alias is created

", + "UpdateAgentAliasRequest$agentAliasId": "

Id generated at the server side when an Agent Alias is created

" + } + }, + "AgentAliasRoutingConfiguration": { + "base": "

Routing configuration for an Agent alias.

", + "refs": { + "AgentAlias$routingConfiguration": null, + "AgentAliasHistoryEvent$routingConfiguration": null, + "AgentAliasSummary$routingConfiguration": null, + "CreateAgentAliasRequest$routingConfiguration": null, + "UpdateAgentAliasRequest$routingConfiguration": null + } + }, + "AgentAliasRoutingConfigurationListItem": { + "base": "

Details about the routing configuration for an Agent alias.

", + "refs": { + "AgentAliasRoutingConfiguration$member": null + } + }, + "AgentAliasStatus": { + "base": "

The statuses an Agent Alias can be in.

", + "refs": { + "AgentAlias$agentAliasStatus": null, + "AgentAliasSummary$agentAliasStatus": null, + "DeleteAgentAliasResponse$agentAliasStatus": null + } + }, + "AgentAliasSummaries": { + "base": "

The list of summaries of all the aliases for an Agent.

", + "refs": { + "ListAgentAliasesResponse$agentAliasSummaries": null + } + }, + "AgentAliasSummary": { + "base": "

Summary of an alias for an Agent.

", + "refs": { + "AgentAliasSummaries$member": null + } + }, + "AgentArn": { + "base": "

Arn representation of the Agent.

", + "refs": { + "Agent$agentArn": null, + "AgentVersion$agentArn": null + } + }, + "AgentKnowledgeBase": { + "base": "

Contains the information of an Agent Knowledge Base.

", + "refs": { + "AssociateAgentKnowledgeBaseResponse$agentKnowledgeBase": null, + "GetAgentKnowledgeBaseResponse$agentKnowledgeBase": null, + "UpdateAgentKnowledgeBaseResponse$agentKnowledgeBase": null + } + }, + "AgentKnowledgeBaseSummaries": { + "base": "

List of Agent Knowledge Base Summaries

", + "refs": { + "ListAgentKnowledgeBasesResponse$agentKnowledgeBaseSummaries": null + } + }, + "AgentKnowledgeBaseSummary": { + "base": "

Agent Knowledge Base Summary

", + "refs": { + "AgentKnowledgeBaseSummaries$member": null + } + }, + "AgentRoleArn": { + "base": "

ARN of a IAM role.

", + "refs": { + "Agent$agentResourceRoleArn": null, + "AgentVersion$agentResourceRoleArn": null, + "CreateAgentRequest$agentResourceRoleArn": null, + "UpdateAgentRequest$agentResourceRoleArn": null + } + }, + "AgentStatus": { + "base": "

Schema Type for Action APIs.

", + "refs": { + "Agent$agentStatus": null, + "AgentSummary$agentStatus": null, + "AgentVersion$agentStatus": null, + "AgentVersionSummary$agentStatus": null, + "DeleteAgentResponse$agentStatus": null, + "DeleteAgentVersionResponse$agentStatus": null, + "PrepareAgentResponse$agentStatus": null + } + }, + "AgentSummaries": { + "base": "

List of AgentSummary.

", + "refs": { + "ListAgentsResponse$agentSummaries": null + } + }, + "AgentSummary": { + "base": "

Summary of Agent.

", + "refs": { + "AgentSummaries$member": null + } + }, + "AgentVersion": { + "base": "

Contains the information of an agent version.

", + "refs": { + "GetAgentVersionResponse$agentVersion": null + } + }, + "AgentVersionSummaries": { + "base": "

List of AgentVersionSummary.

", + "refs": { + "ListAgentVersionsResponse$agentVersionSummaries": null + } + }, + "AgentVersionSummary": { + "base": "

Summary of agent version.

", + "refs": { + "AgentVersionSummaries$member": null + } + }, + "AssociateAgentKnowledgeBaseRequest": { + "base": "

Associate Agent Knowledge Base Request

", + "refs": { + } + }, + "AssociateAgentKnowledgeBaseResponse": { + "base": "

Associate Agent Knowledge Base Response

", + "refs": { + } + }, + "BasePromptTemplate": { + "base": "

Base Prompt Template.

", + "refs": { + "PromptConfiguration$basePromptTemplate": null + } + }, + "BedrockEmbeddingModelArn": { + "base": "

Arn of a Bedrock model.

", + "refs": { + "VectorKnowledgeBaseConfiguration$embeddingModelArn": null + } + }, + "Boolean": { + "base": null, + "refs": { + "DeleteAgentActionGroupRequest$skipResourceInUseCheck": "

Skips checking if resource is in use when set to true. Defaults to false

", + "DeleteAgentRequest$skipResourceInUseCheck": "

Skips checking if resource is in use when set to true. Defaults to false

", + "DeleteAgentVersionRequest$skipResourceInUseCheck": "

Skips checking if resource is in use when set to true. Defaults to false

" + } + }, + "ChunkingConfiguration": { + "base": "

Configures chunking strategy

", + "refs": { + "VectorIngestionConfiguration$chunkingConfiguration": null + } + }, + "ChunkingStrategy": { + "base": "

The type of chunking strategy

", + "refs": { + "ChunkingConfiguration$chunkingStrategy": null + } + }, + "ClientToken": { + "base": "

Client specified token used for idempotency checks

", + "refs": { + "Agent$clientToken": null, + "AgentActionGroup$clientToken": null, + "AgentAlias$clientToken": null, + "CreateAgentActionGroupRequest$clientToken": null, + "CreateAgentAliasRequest$clientToken": null, + "CreateAgentRequest$clientToken": null, + "CreateDataSourceRequest$clientToken": null, + "CreateKnowledgeBaseRequest$clientToken": null, + "StartIngestionJobRequest$clientToken": null + } + }, + "ConflictException": { + "base": "

This exception is thrown when there is a conflict performing an operation

", + "refs": { + } + }, + "CreateAgentActionGroupRequest": { + "base": "

Create Action Group Request

", + "refs": { + } + }, + "CreateAgentActionGroupResponse": { + "base": "

Create Action Group Response

", + "refs": { + } + }, + "CreateAgentAliasRequest": { + "base": "

Create Agent Alias Request

", + "refs": { + } + }, + "CreateAgentAliasResponse": { + "base": "

Create Agent Alias Response

", + "refs": { + } + }, + "CreateAgentRequest": { + "base": "

Create Agent Request

", + "refs": { + } + }, + "CreateAgentResponse": { + "base": "

Create Agent Response

", + "refs": { + } + }, + "CreateDataSourceRequest": { + "base": null, + "refs": { + } + }, + "CreateDataSourceResponse": { + "base": null, + "refs": { + } + }, + "CreateKnowledgeBaseRequest": { + "base": null, + "refs": { + } + }, + "CreateKnowledgeBaseResponse": { + "base": null, + "refs": { + } + }, + "CreationMode": { + "base": "

Creation Mode for Prompt Configuration.

", + "refs": { + "PromptConfiguration$promptCreationMode": null, + "PromptConfiguration$parserMode": null + } + }, + "DataSource": { + "base": "

Contains the information of a data source.

", + "refs": { + "CreateDataSourceResponse$dataSource": null, + "GetDataSourceResponse$dataSource": null, + "UpdateDataSourceResponse$dataSource": null + } + }, + "DataSourceConfiguration": { + "base": "

Specifies a raw data source location to ingest.

", + "refs": { + "CreateDataSourceRequest$dataSourceConfiguration": null, + "DataSource$dataSourceConfiguration": null, + "UpdateDataSourceRequest$dataSourceConfiguration": null + } + }, + "DataSourceStatus": { + "base": "

The status of a data source.

", + "refs": { + "DataSource$status": null, + "DataSourceSummary$status": null, + "DeleteDataSourceResponse$status": null + } + }, + "DataSourceSummaries": { + "base": "

list of data source summaries

", + "refs": { + "ListDataSourcesResponse$dataSourceSummaries": null + } + }, + "DataSourceSummary": { + "base": "

Summary information of a data source.

", + "refs": { + "DataSourceSummaries$member": null + } + }, + "DataSourceType": { + "base": "

The type of the data source location.

", + "refs": { + "DataSourceConfiguration$type": null + } + }, + "DateTimestamp": { + "base": "

Time Stamp.

", + "refs": { + "ActionGroupSummary$updatedAt": null, + "Agent$createdAt": null, + "Agent$updatedAt": null, + "Agent$preparedAt": null, + "AgentActionGroup$createdAt": null, + "AgentActionGroup$updatedAt": null, + "AgentAlias$createdAt": null, + "AgentAlias$updatedAt": null, + "AgentAliasHistoryEvent$endDate": null, + "AgentAliasHistoryEvent$startDate": null, + "AgentAliasSummary$createdAt": null, + "AgentAliasSummary$updatedAt": null, + "AgentKnowledgeBase$createdAt": null, + "AgentKnowledgeBase$updatedAt": null, + "AgentKnowledgeBaseSummary$updatedAt": null, + "AgentSummary$updatedAt": null, + "AgentVersion$createdAt": null, + "AgentVersion$updatedAt": null, + "AgentVersionSummary$createdAt": null, + "AgentVersionSummary$updatedAt": null, + "DataSource$createdAt": null, + "DataSource$updatedAt": null, + "DataSourceSummary$updatedAt": null, + "IngestionJob$startedAt": null, + "IngestionJob$updatedAt": null, + "IngestionJobSummary$startedAt": null, + "IngestionJobSummary$updatedAt": null, + "KnowledgeBase$createdAt": null, + "KnowledgeBase$updatedAt": null, + "KnowledgeBaseSummary$updatedAt": null, + "PrepareAgentResponse$preparedAt": null + } + }, + "DeleteAgentActionGroupRequest": { + "base": "

Delete Action Group Request

", + "refs": { + } + }, + "DeleteAgentActionGroupResponse": { + "base": "

Delete Action Group Response

", + "refs": { + } + }, + "DeleteAgentAliasRequest": { + "base": "

Delete Agent Alias Request

", + "refs": { + } + }, + "DeleteAgentAliasResponse": { + "base": "

Delete Agent Alias Response

", + "refs": { + } + }, + "DeleteAgentRequest": { + "base": "

Delete Agent Request

", + "refs": { + } + }, + "DeleteAgentResponse": { + "base": "

Delete Agent Response

", + "refs": { + } + }, + "DeleteAgentVersionRequest": { + "base": "

Delete Agent Version Request

", + "refs": { + } + }, + "DeleteAgentVersionResponse": { + "base": "

Delete Agent Version Response

", + "refs": { + } + }, + "DeleteDataSourceRequest": { + "base": null, + "refs": { + } + }, + "DeleteDataSourceResponse": { + "base": null, + "refs": { + } + }, + "DeleteKnowledgeBaseRequest": { + "base": null, + "refs": { + } + }, + "DeleteKnowledgeBaseResponse": { + "base": null, + "refs": { + } + }, + "Description": { + "base": "

Description of the Resource.

", + "refs": { + "ActionGroupSummary$description": null, + "Agent$description": null, + "AgentActionGroup$description": null, + "AgentAlias$description": null, + "AgentAliasSummary$description": null, + "AgentKnowledgeBase$description": null, + "AgentKnowledgeBaseSummary$description": null, + "AgentSummary$description": null, + "AgentVersion$description": null, + "AgentVersionSummary$description": null, + "AssociateAgentKnowledgeBaseRequest$description": null, + "CreateAgentActionGroupRequest$description": null, + "CreateAgentAliasRequest$description": null, + "CreateAgentRequest$description": null, + "CreateDataSourceRequest$description": null, + "CreateKnowledgeBaseRequest$description": null, + "DataSource$description": null, + "DataSourceSummary$description": null, + "IngestionJob$description": null, + "IngestionJobSummary$description": null, + "KnowledgeBase$description": null, + "KnowledgeBaseSummary$description": null, + "StartIngestionJobRequest$description": null, + "UpdateAgentActionGroupRequest$description": null, + "UpdateAgentAliasRequest$description": null, + "UpdateAgentKnowledgeBaseRequest$description": null, + "UpdateAgentRequest$description": null, + "UpdateDataSourceRequest$description": null, + "UpdateKnowledgeBaseRequest$description": null + } + }, + "DisassociateAgentKnowledgeBaseRequest": { + "base": "

Disassociate Agent Knowledge Base Request

", + "refs": { + } + }, + "DisassociateAgentKnowledgeBaseResponse": { + "base": "

Disassociate Agent Knowledge Base Response

", + "refs": { + } + }, + "DraftVersion": { + "base": "

Draft Agent Version.

", + "refs": { + "Agent$agentVersion": null, + "AssociateAgentKnowledgeBaseRequest$agentVersion": "

Draft Version of the Agent.

", + "CreateAgentActionGroupRequest$agentVersion": "

Draft Version of the Agent.

", + "DeleteAgentActionGroupRequest$agentVersion": "

Draft Version of the Agent.

", + "DisassociateAgentKnowledgeBaseRequest$agentVersion": "

Draft Version of the Agent.

", + "UpdateAgentActionGroupRequest$agentVersion": "

Draft Version of the Agent.

", + "UpdateAgentKnowledgeBaseRequest$agentVersion": "

Draft Version of the Agent.

" + } + }, + "FailureReason": { + "base": "

Failure Reason for Error.

", + "refs": { + "FailureReasons$member": null + } + }, + "FailureReasons": { + "base": "

Failure Reasons for Error.

", + "refs": { + "Agent$failureReasons": null, + "AgentVersion$failureReasons": null, + "IngestionJob$failureReasons": null, + "KnowledgeBase$failureReasons": null + } + }, + "FieldName": { + "base": "

Name of the field

", + "refs": { + "OpenSearchServerlessFieldMapping$vectorField": null, + "OpenSearchServerlessFieldMapping$textField": null, + "OpenSearchServerlessFieldMapping$metadataField": null, + "PineconeFieldMapping$textField": null, + "PineconeFieldMapping$metadataField": null, + "RedisEnterpriseCloudFieldMapping$vectorField": null, + "RedisEnterpriseCloudFieldMapping$textField": null, + "RedisEnterpriseCloudFieldMapping$metadataField": null + } + }, + "FixedSizeChunkingConfiguration": { + "base": "

Configures fixed size chunking strategy

", + "refs": { + "ChunkingConfiguration$fixedSizeChunkingConfiguration": null + } + }, + "FixedSizeChunkingConfigurationMaxTokensInteger": { + "base": null, + "refs": { + "FixedSizeChunkingConfiguration$maxTokens": "

The maximum number of tokens per chunk.

" + } + }, + "FixedSizeChunkingConfigurationOverlapPercentageInteger": { + "base": null, + "refs": { + "FixedSizeChunkingConfiguration$overlapPercentage": "

The overlap percentage between adjacent chunks.

" + } + }, + "GetAgentActionGroupRequest": { + "base": "

Get Action Group Request

", + "refs": { + } + }, + "GetAgentActionGroupResponse": { + "base": "

Get Action Group Response

", + "refs": { + } + }, + "GetAgentAliasRequest": { + "base": "

Get Agent Alias Request

", + "refs": { + } + }, + "GetAgentAliasResponse": { + "base": "

Get Agent Alias Response

", + "refs": { + } + }, + "GetAgentKnowledgeBaseRequest": { + "base": "

Get Agent Knowledge Base Request

", + "refs": { + } + }, + "GetAgentKnowledgeBaseResponse": { + "base": "

Get Agent Knowledge Base Response

", + "refs": { + } + }, + "GetAgentRequest": { + "base": "

Get Agent Request

", + "refs": { + } + }, + "GetAgentResponse": { + "base": "

Get Agent Response

", + "refs": { + } + }, + "GetAgentVersionRequest": { + "base": "

Get Agent Version Request

", + "refs": { + } + }, + "GetAgentVersionResponse": { + "base": "

Get Agent Version Response

", + "refs": { + } + }, + "GetDataSourceRequest": { + "base": null, + "refs": { + } + }, + "GetDataSourceResponse": { + "base": null, + "refs": { + } + }, + "GetIngestionJobRequest": { + "base": null, + "refs": { + } + }, + "GetIngestionJobResponse": { + "base": null, + "refs": { + } + }, + "GetKnowledgeBaseRequest": { + "base": null, + "refs": { + } + }, + "GetKnowledgeBaseResponse": { + "base": null, + "refs": { + } + }, + "Id": { + "base": "

Identifier for a resource.

", + "refs": { + "ActionGroupSummary$actionGroupId": null, + "Agent$agentId": null, + "AgentActionGroup$agentId": null, + "AgentActionGroup$actionGroupId": null, + "AgentAlias$agentId": null, + "AgentKnowledgeBase$agentId": null, + "AgentKnowledgeBase$knowledgeBaseId": null, + "AgentKnowledgeBaseSummary$knowledgeBaseId": null, + "AgentSummary$agentId": null, + "AgentVersion$agentId": null, + "AssociateAgentKnowledgeBaseRequest$agentId": "

Id generated at the server side when an Agent is created

", + "AssociateAgentKnowledgeBaseRequest$knowledgeBaseId": null, + "CreateAgentActionGroupRequest$agentId": "

Id generated at the server side when an Agent is created

", + "CreateAgentAliasRequest$agentId": "

Id generated at the server side when an Agent is created

", + "CreateDataSourceRequest$knowledgeBaseId": null, + "DataSource$knowledgeBaseId": null, + "DataSource$dataSourceId": null, + "DataSourceSummary$knowledgeBaseId": null, + "DataSourceSummary$dataSourceId": null, + "DeleteAgentActionGroupRequest$agentId": "

Id generated at the server side when an Agent is created

", + "DeleteAgentActionGroupRequest$actionGroupId": "

Id generated at the server side when an Agent ActionGroup is created

", + "DeleteAgentAliasRequest$agentId": "

Id generated at the server side when an Agent is created

", + "DeleteAgentAliasResponse$agentId": null, + "DeleteAgentRequest$agentId": "

Id generated at the server side when an Agent is created

", + "DeleteAgentResponse$agentId": null, + "DeleteAgentVersionRequest$agentId": "

Id generated at the server side when an Agent is created

", + "DeleteAgentVersionResponse$agentId": null, + "DeleteDataSourceRequest$knowledgeBaseId": null, + "DeleteDataSourceRequest$dataSourceId": null, + "DeleteDataSourceResponse$knowledgeBaseId": null, + "DeleteDataSourceResponse$dataSourceId": null, + "DeleteKnowledgeBaseRequest$knowledgeBaseId": null, + "DeleteKnowledgeBaseResponse$knowledgeBaseId": null, + "DisassociateAgentKnowledgeBaseRequest$agentId": "

Id generated at the server side when an Agent is created

", + "DisassociateAgentKnowledgeBaseRequest$knowledgeBaseId": "

Id generated at the server side when a Knowledge Base is associated to an Agent

", + "GetAgentActionGroupRequest$agentId": "

Id generated at the server side when an Agent is created

", + "GetAgentActionGroupRequest$actionGroupId": "

Id generated at the server side when an Agent Action Group is created

", + "GetAgentAliasRequest$agentId": "

Id generated at the server side when an Agent is created

", + "GetAgentKnowledgeBaseRequest$agentId": "

Id generated at the server side when an Agent is created

", + "GetAgentKnowledgeBaseRequest$knowledgeBaseId": "

Id generated at the server side when a Knowledge Base is associated

", + "GetAgentRequest$agentId": "

Id generated at the server side when an Agent is created

", + "GetAgentVersionRequest$agentId": "

Id generated at the server side when an Agent is created

", + "GetDataSourceRequest$knowledgeBaseId": null, + "GetDataSourceRequest$dataSourceId": null, + "GetIngestionJobRequest$knowledgeBaseId": null, + "GetIngestionJobRequest$dataSourceId": null, + "GetIngestionJobRequest$ingestionJobId": null, + "GetKnowledgeBaseRequest$knowledgeBaseId": null, + "IngestionJob$knowledgeBaseId": null, + "IngestionJob$dataSourceId": null, + "IngestionJob$ingestionJobId": null, + "IngestionJobSummary$knowledgeBaseId": null, + "IngestionJobSummary$dataSourceId": null, + "IngestionJobSummary$ingestionJobId": null, + "KnowledgeBase$knowledgeBaseId": null, + "KnowledgeBaseSummary$knowledgeBaseId": null, + "ListAgentActionGroupsRequest$agentId": "

Id generated at the server side when an Agent is Listed

", + "ListAgentAliasesRequest$agentId": "

Id generated at the server side when an Agent is created

", + "ListAgentKnowledgeBasesRequest$agentId": "

Id generated at the server side when an Agent is created

", + "ListAgentVersionsRequest$agentId": "

Id generated at the server side when an Agent is created

", + "ListDataSourcesRequest$knowledgeBaseId": null, + "ListIngestionJobsRequest$knowledgeBaseId": null, + "ListIngestionJobsRequest$dataSourceId": null, + "PrepareAgentRequest$agentId": "

Id generated at the server side when an Agent is created

", + "PrepareAgentResponse$agentId": null, + "StartIngestionJobRequest$knowledgeBaseId": null, + "StartIngestionJobRequest$dataSourceId": null, + "UpdateAgentActionGroupRequest$agentId": "

Id generated at the server side when an Agent is created

", + "UpdateAgentActionGroupRequest$actionGroupId": "

Id generated at the server side when an Action Group is created under Agent

", + "UpdateAgentAliasRequest$agentId": "

Id generated at the server side when an Agent is created

", + "UpdateAgentKnowledgeBaseRequest$agentId": "

Id generated at the server side when an Agent is created

", + "UpdateAgentKnowledgeBaseRequest$knowledgeBaseId": "

Id generated at the server side when a Knowledge Base is associated to an Agent

", + "UpdateAgentRequest$agentId": "

Id generated at the server side when an Agent is created

", + "UpdateDataSourceRequest$knowledgeBaseId": null, + "UpdateDataSourceRequest$dataSourceId": null, + "UpdateKnowledgeBaseRequest$knowledgeBaseId": null + } + }, + "InferenceConfiguration": { + "base": "

Configuration for inference in prompt configuration

", + "refs": { + "PromptConfiguration$inferenceConfiguration": null + } + }, + "IngestionJob": { + "base": "

Contains the information of an ingestion job.

", + "refs": { + "GetIngestionJobResponse$ingestionJob": null, + "StartIngestionJobResponse$ingestionJob": null + } + }, + "IngestionJobFilter": { + "base": "

Filters the response returned by ListIngestionJobs operation.

", + "refs": { + "IngestionJobFilters$member": null + } + }, + "IngestionJobFilterAttribute": { + "base": "

The name of the field to filter ingestion jobs.

", + "refs": { + "IngestionJobFilter$attribute": null + } + }, + "IngestionJobFilterOperator": { + "base": "

The operator used to filter ingestion jobs.

", + "refs": { + "IngestionJobFilter$operator": null + } + }, + "IngestionJobFilterValue": { + "base": "

The value used to filter ingestion jobs.

", + "refs": { + "IngestionJobFilterValues$member": null + } + }, + "IngestionJobFilterValues": { + "base": "

The list of values used to filter ingestion jobs.

", + "refs": { + "IngestionJobFilter$values": null + } + }, + "IngestionJobFilters": { + "base": "

List of IngestionJobFilters

", + "refs": { + "ListIngestionJobsRequest$filters": null + } + }, + "IngestionJobSortBy": { + "base": "

Sorts the response returned by ListIngestionJobs operation.

", + "refs": { + "ListIngestionJobsRequest$sortBy": null + } + }, + "IngestionJobSortByAttribute": { + "base": "

The name of the field to sort ingestion jobs.

", + "refs": { + "IngestionJobSortBy$attribute": null + } + }, + "IngestionJobStatistics": { + "base": "

The document level statistics of an ingestion job

", + "refs": { + "IngestionJob$statistics": null, + "IngestionJobSummary$statistics": null + } + }, + "IngestionJobStatus": { + "base": "

The status of an ingestion job.

", + "refs": { + "IngestionJob$status": null, + "IngestionJobSummary$status": null + } + }, + "IngestionJobSummaries": { + "base": "

List of IngestionJobSummaries

", + "refs": { + "ListIngestionJobsResponse$ingestionJobSummaries": null + } + }, + "IngestionJobSummary": { + "base": "

Summary information of an ingestion job.

", + "refs": { + "IngestionJobSummaries$member": null + } + }, + "Instruction": { + "base": "

Instruction for the agent.

", + "refs": { + "Agent$instruction": null, + "AgentVersion$instruction": null, + "CreateAgentRequest$instruction": null, + "UpdateAgentRequest$instruction": null + } + }, + "InternalServerException": { + "base": "

This exception is thrown if there was an unexpected error during processing of request

", + "refs": { + } + }, + "KmsKeyArn": { + "base": "

A KMS key ARN

", + "refs": { + "Agent$customerEncryptionKeyArn": null, + "AgentVersion$customerEncryptionKeyArn": null, + "CreateAgentRequest$customerEncryptionKeyArn": null, + "ServerSideEncryptionConfiguration$kmsKeyArn": null, + "UpdateAgentRequest$customerEncryptionKeyArn": null + } + }, + "KnowledgeBase": { + "base": "

Contains the information of a knowledge base.

", + "refs": { + "CreateKnowledgeBaseResponse$knowledgeBase": null, + "GetKnowledgeBaseResponse$knowledgeBase": null, + "UpdateKnowledgeBaseResponse$knowledgeBase": null + } + }, + "KnowledgeBaseArn": { + "base": "

ARN of a KnowledgeBase

", + "refs": { + "KnowledgeBase$knowledgeBaseArn": null + } + }, + "KnowledgeBaseConfiguration": { + "base": "

Configures a bedrock knowledge base.

", + "refs": { + "CreateKnowledgeBaseRequest$knowledgeBaseConfiguration": null, + "KnowledgeBase$knowledgeBaseConfiguration": null, + "UpdateKnowledgeBaseRequest$knowledgeBaseConfiguration": null + } + }, + "KnowledgeBaseRoleArn": { + "base": "

ARN of a IAM role.

", + "refs": { + "CreateKnowledgeBaseRequest$roleArn": null, + "KnowledgeBase$roleArn": null, + "UpdateKnowledgeBaseRequest$roleArn": null + } + }, + "KnowledgeBaseState": { + "base": "

State of the knowledge base; whether it is enabled or disabled

", + "refs": { + "AgentKnowledgeBase$knowledgeBaseState": null, + "AgentKnowledgeBaseSummary$knowledgeBaseState": null, + "AssociateAgentKnowledgeBaseRequest$knowledgeBaseState": null, + "UpdateAgentKnowledgeBaseRequest$knowledgeBaseState": null + } + }, + "KnowledgeBaseStatus": { + "base": "

The status of a knowledge base.

", + "refs": { + "DeleteKnowledgeBaseResponse$status": null, + "KnowledgeBase$status": null, + "KnowledgeBaseSummary$status": null + } + }, + "KnowledgeBaseStorageType": { + "base": "

The storage type of a knowledge base.

", + "refs": { + "StorageConfiguration$type": null + } + }, + "KnowledgeBaseSummaries": { + "base": "

List of KnowledgeBaseSummaries

", + "refs": { + "ListKnowledgeBasesResponse$knowledgeBaseSummaries": null + } + }, + "KnowledgeBaseSummary": { + "base": "

Summary information of a knowledge base.

", + "refs": { + "KnowledgeBaseSummaries$member": null + } + }, + "KnowledgeBaseType": { + "base": "

The type of a knowledge base.

", + "refs": { + "KnowledgeBaseConfiguration$type": null + } + }, + "LambdaArn": { + "base": "

ARN of a Lambda.

", + "refs": { + "ActionGroupExecutor$lambda": null, + "PromptOverrideConfiguration$overrideLambda": null + } + }, + "ListAgentActionGroupsRequest": { + "base": "

List Action Groups Request

", + "refs": { + } + }, + "ListAgentActionGroupsResponse": { + "base": "

List Action Groups Response

", + "refs": { + } + }, + "ListAgentAliasesRequest": { + "base": "

List Agent Aliases Request

", + "refs": { + } + }, + "ListAgentAliasesResponse": { + "base": "

List Agent Aliases Response

", + "refs": { + } + }, + "ListAgentKnowledgeBasesRequest": { + "base": "

List Agent Knowledge Bases Request

", + "refs": { + } + }, + "ListAgentKnowledgeBasesResponse": { + "base": "

List Agent Knowledge Bases Response

", + "refs": { + } + }, + "ListAgentVersionsRequest": { + "base": "

List Agent Versions Request

", + "refs": { + } + }, + "ListAgentVersionsResponse": { + "base": "

List Agent Versions Response

", + "refs": { + } + }, + "ListAgentsRequest": { + "base": "

List Agent Request

", + "refs": { + } + }, + "ListAgentsResponse": { + "base": "

List Agent Response

", + "refs": { + } + }, + "ListDataSourcesRequest": { + "base": null, + "refs": { + } + }, + "ListDataSourcesResponse": { + "base": null, + "refs": { + } + }, + "ListIngestionJobsRequest": { + "base": null, + "refs": { + } + }, + "ListIngestionJobsResponse": { + "base": null, + "refs": { + } + }, + "ListKnowledgeBasesRequest": { + "base": null, + "refs": { + } + }, + "ListKnowledgeBasesResponse": { + "base": null, + "refs": { + } + }, + "ListTagsForResourceRequest": { + "base": null, + "refs": { + } + }, + "ListTagsForResourceResponse": { + "base": null, + "refs": { + } + }, + "MaxResults": { + "base": "

Max Results.

", + "refs": { + "ListAgentActionGroupsRequest$maxResults": null, + "ListAgentAliasesRequest$maxResults": null, + "ListAgentKnowledgeBasesRequest$maxResults": null, + "ListAgentVersionsRequest$maxResults": null, + "ListAgentsRequest$maxResults": null, + "ListDataSourcesRequest$maxResults": null, + "ListIngestionJobsRequest$maxResults": null, + "ListKnowledgeBasesRequest$maxResults": null + } + }, + "MaximumLength": { + "base": "

Maximum length of output

", + "refs": { + "InferenceConfiguration$maximumLength": null + } + }, + "ModelIdentifier": { + "base": "

ARN or name of a Bedrock model.

", + "refs": { + "Agent$foundationModel": null, + "AgentVersion$foundationModel": null, + "CreateAgentRequest$foundationModel": null, + "UpdateAgentRequest$foundationModel": null + } + }, + "Name": { + "base": "

Name for a resource.

", + "refs": { + "ActionGroupSummary$actionGroupName": null, + "Agent$agentName": null, + "AgentActionGroup$actionGroupName": null, + "AgentAlias$agentAliasName": null, + "AgentAliasSummary$agentAliasName": null, + "AgentSummary$agentName": null, + "AgentVersion$agentName": null, + "AgentVersionSummary$agentName": null, + "CreateAgentActionGroupRequest$actionGroupName": null, + "CreateAgentAliasRequest$agentAliasName": null, + "CreateAgentRequest$agentName": null, + "CreateDataSourceRequest$name": null, + "CreateKnowledgeBaseRequest$name": null, + "DataSource$name": null, + "DataSourceSummary$name": null, + "KnowledgeBase$name": null, + "KnowledgeBaseSummary$name": null, + "UpdateAgentActionGroupRequest$actionGroupName": null, + "UpdateAgentAliasRequest$agentAliasName": null, + "UpdateAgentRequest$agentName": null, + "UpdateDataSourceRequest$name": null, + "UpdateKnowledgeBaseRequest$name": null + } + }, + "NextToken": { + "base": "

Opaque continuation token of previous paginated response.

", + "refs": { + "ListAgentActionGroupsRequest$nextToken": null, + "ListAgentActionGroupsResponse$nextToken": null, + "ListAgentAliasesRequest$nextToken": null, + "ListAgentAliasesResponse$nextToken": null, + "ListAgentKnowledgeBasesRequest$nextToken": null, + "ListAgentKnowledgeBasesResponse$nextToken": null, + "ListAgentVersionsRequest$nextToken": null, + "ListAgentVersionsResponse$nextToken": null, + "ListAgentsRequest$nextToken": null, + "ListAgentsResponse$nextToken": null, + "ListDataSourcesRequest$nextToken": null, + "ListDataSourcesResponse$nextToken": null, + "ListIngestionJobsRequest$nextToken": null, + "ListIngestionJobsResponse$nextToken": null, + "ListKnowledgeBasesRequest$nextToken": null, + "ListKnowledgeBasesResponse$nextToken": null + } + }, + "NonBlankString": { + "base": "

Non Blank String

", + "refs": { + "AccessDeniedException$message": null, + "ConflictException$message": null, + "InternalServerException$message": null, + "ResourceNotFoundException$message": null, + "ServiceQuotaExceededException$message": null, + "ThrottlingException$message": null, + "ValidationException$message": null, + "ValidationExceptionField$name": null, + "ValidationExceptionField$message": null + } + }, + "NumericalVersion": { + "base": "

Numerical Agent Version.

", + "refs": { + "AgentVersion$version": null, + "DeleteAgentVersionRequest$agentVersion": null, + "DeleteAgentVersionResponse$agentVersion": null, + "GetAgentVersionRequest$agentVersion": null + } + }, + "OpenSearchServerlessCollectionArn": { + "base": "

Arn of an OpenSearch Serverless collection.

", + "refs": { + "OpenSearchServerlessConfiguration$collectionArn": null + } + }, + "OpenSearchServerlessConfiguration": { + "base": "

Contains the configurations to use OpenSearch Serverless to store knowledge base data.

", + "refs": { + "StorageConfiguration$opensearchServerlessConfiguration": null + } + }, + "OpenSearchServerlessFieldMapping": { + "base": "

A mapping of Bedrock Knowledge Base fields to OpenSearch Serverless field names

", + "refs": { + "OpenSearchServerlessConfiguration$fieldMapping": null + } + }, + "OpenSearchServerlessIndexName": { + "base": "

Arn of an OpenSearch Serverless index.

", + "refs": { + "OpenSearchServerlessConfiguration$vectorIndexName": null + } + }, + "Payload": { + "base": "

String OpenAPI Payload

", + "refs": { + "APISchema$payload": null + } + }, + "PineconeConfiguration": { + "base": "

Contains the configurations to use Pinecone to store knowledge base data.

", + "refs": { + "StorageConfiguration$pineconeConfiguration": null + } + }, + "PineconeConnectionString": { + "base": "

Pinecone connection string

", + "refs": { + "PineconeConfiguration$connectionString": null + } + }, + "PineconeFieldMapping": { + "base": "

A mapping of Bedrock Knowledge Base fields to Pinecone field names

", + "refs": { + "PineconeConfiguration$fieldMapping": null + } + }, + "PineconeNamespace": { + "base": "

Pinecone namespace

", + "refs": { + "PineconeConfiguration$namespace": null + } + }, + "PrepareAgentRequest": { + "base": "

PrepareAgent Request

", + "refs": { + } + }, + "PrepareAgentResponse": { + "base": "

PrepareAgent Response

", + "refs": { + } + }, + "PrimitiveLong": { + "base": null, + "refs": { + "IngestionJobStatistics$numberOfDocumentsScanned": "

Number of scanned documents

", + "IngestionJobStatistics$numberOfNewDocumentsIndexed": "

Number of indexed documents

", + "IngestionJobStatistics$numberOfModifiedDocumentsIndexed": "

Number of modified documents indexed

", + "IngestionJobStatistics$numberOfDocumentsDeleted": "

Number of deleted documents

", + "IngestionJobStatistics$numberOfDocumentsFailed": "

Number of failed documents

" + } + }, + "PromptConfiguration": { + "base": "

BasePromptConfiguration per Prompt Type.

", + "refs": { + "PromptConfigurations$member": null + } + }, + "PromptConfigurations": { + "base": "

List of BasePromptConfiguration

", + "refs": { + "PromptOverrideConfiguration$promptConfigurations": null + } + }, + "PromptOverrideConfiguration": { + "base": "

Configuration for prompt override.

", + "refs": { + "Agent$promptOverrideConfiguration": null, + "AgentVersion$promptOverrideConfiguration": null, + "CreateAgentRequest$promptOverrideConfiguration": null, + "UpdateAgentRequest$promptOverrideConfiguration": null + } + }, + "PromptState": { + "base": "

Prompt State.

", + "refs": { + "PromptConfiguration$promptState": null + } + }, + "PromptType": { + "base": "

Prompt Type.

", + "refs": { + "PromptConfiguration$promptType": null + } + }, + "RecommendedAction": { + "base": "

The recommended action users can take to resolve an error in failureReasons.

", + "refs": { + "RecommendedActions$member": null + } + }, + "RecommendedActions": { + "base": "

The recommended actions users can take to resolve an error in failureReasons.

", + "refs": { + "Agent$recommendedActions": null, + "AgentVersion$recommendedActions": null + } + }, + "RedisEnterpriseCloudConfiguration": { + "base": "

Contains the configurations to use Redis Enterprise Cloud to store knowledge base data.

", + "refs": { + "StorageConfiguration$redisEnterpriseCloudConfiguration": null + } + }, + "RedisEnterpriseCloudEndpoint": { + "base": "

Redis enterprise cloud endpoint

", + "refs": { + "RedisEnterpriseCloudConfiguration$endpoint": null + } + }, + "RedisEnterpriseCloudFieldMapping": { + "base": "

A mapping of Bedrock Knowledge Base fields to Redis Cloud field names

", + "refs": { + "RedisEnterpriseCloudConfiguration$fieldMapping": null + } + }, + "RedisEnterpriseCloudIndexName": { + "base": "

Name of a redis enterprise cloud index

", + "refs": { + "RedisEnterpriseCloudConfiguration$vectorIndexName": null + } + }, + "ResourceNotFoundException": { + "base": "

This exception is thrown when a resource referenced by the operation does not exist

", + "refs": { + } + }, + "S3BucketArn": { + "base": "

A S3 bucket ARN

", + "refs": { + "S3DataSourceConfiguration$bucketArn": null + } + }, + "S3BucketName": { + "base": "

A bucket in S3.

", + "refs": { + "S3Identifier$s3BucketName": null + } + }, + "S3DataSourceConfiguration": { + "base": "

Configures an S3 data source location.

", + "refs": { + "DataSourceConfiguration$s3Configuration": null + } + }, + "S3Identifier": { + "base": "

The identifier for the S3 resource.

", + "refs": { + "APISchema$s3": null + } + }, + "S3ObjectKey": { + "base": "

A object key in S3.

", + "refs": { + "S3Identifier$s3ObjectKey": null + } + }, + "S3Prefix": { + "base": "

Prefix for s3 object.

", + "refs": { + "S3Prefixes$member": null + } + }, + "S3Prefixes": { + "base": "

A list of S3 prefixes.

", + "refs": { + "S3DataSourceConfiguration$inclusionPrefixes": null + } + }, + "SecretArn": { + "base": "

Arn of a SecretsManager Secret.

", + "refs": { + "PineconeConfiguration$credentialsSecretArn": null, + "RedisEnterpriseCloudConfiguration$credentialsSecretArn": null + } + }, + "ServerSideEncryptionConfiguration": { + "base": "

Server-side encryption configuration.

", + "refs": { + "CreateDataSourceRequest$serverSideEncryptionConfiguration": null, + "DataSource$serverSideEncryptionConfiguration": null, + "UpdateDataSourceRequest$serverSideEncryptionConfiguration": null + } + }, + "ServiceQuotaExceededException": { + "base": "

This exception is thrown when a request is made beyond the service quota

", + "refs": { + } + }, + "SessionTTL": { + "base": "

Max Session Time.

", + "refs": { + "Agent$idleSessionTTLInSeconds": null, + "AgentVersion$idleSessionTTLInSeconds": null, + "CreateAgentRequest$idleSessionTTLInSeconds": null, + "UpdateAgentRequest$idleSessionTTLInSeconds": null + } + }, + "SortOrder": { + "base": "

Order to sort results by.

", + "refs": { + "IngestionJobSortBy$order": null + } + }, + "StartIngestionJobRequest": { + "base": null, + "refs": { + } + }, + "StartIngestionJobResponse": { + "base": null, + "refs": { + } + }, + "StopSequences": { + "base": "

List of stop sequences

", + "refs": { + "InferenceConfiguration$stopSequences": null + } + }, + "StorageConfiguration": { + "base": "

Configures the physical storage of ingested data in a knowledge base.

", + "refs": { + "CreateKnowledgeBaseRequest$storageConfiguration": null, + "KnowledgeBase$storageConfiguration": null, + "UpdateKnowledgeBaseRequest$storageConfiguration": null + } + }, + "String": { + "base": null, + "refs": { + "StopSequences$member": null + } + }, + "TagKey": { + "base": "

Key of a tag

", + "refs": { + "TagKeyList$member": null, + "TagsMap$key": null + } + }, + "TagKeyList": { + "base": "

List of Tag Keys

", + "refs": { + "UntagResourceRequest$tagKeys": null + } + }, + "TagResourceRequest": { + "base": null, + "refs": { + } + }, + "TagResourceResponse": { + "base": null, + "refs": { + } + }, + "TagValue": { + "base": "

Value of a tag

", + "refs": { + "TagsMap$value": null + } + }, + "TaggableResourcesArn": { + "base": "

ARN of Taggable resources: [Agent, AgentAlias, Knowledge-Base]

", + "refs": { + "ListTagsForResourceRequest$resourceArn": null, + "TagResourceRequest$resourceArn": null, + "UntagResourceRequest$resourceArn": null + } + }, + "TagsMap": { + "base": "

A map of tag keys and values

", + "refs": { + "CreateAgentAliasRequest$tags": null, + "CreateAgentRequest$tags": null, + "CreateKnowledgeBaseRequest$tags": null, + "ListTagsForResourceResponse$tags": null, + "TagResourceRequest$tags": null + } + }, + "Temperature": { + "base": "

Controls randomness, higher values increase diversity

", + "refs": { + "InferenceConfiguration$temperature": null + } + }, + "ThrottlingException": { + "base": "

This exception is thrown when the number of requests exceeds the limit

", + "refs": { + } + }, + "TopK": { + "base": "

Sample from the k most likely next tokens

", + "refs": { + "InferenceConfiguration$topK": null + } + }, + "TopP": { + "base": "

Cumulative probability cutoff for token selection

", + "refs": { + "InferenceConfiguration$topP": null + } + }, + "UntagResourceRequest": { + "base": null, + "refs": { + } + }, + "UntagResourceResponse": { + "base": null, + "refs": { + } + }, + "UpdateAgentActionGroupRequest": { + "base": "

Update Action Group Request

", + "refs": { + } + }, + "UpdateAgentActionGroupResponse": { + "base": "

Update Action Group Response

", + "refs": { + } + }, + "UpdateAgentAliasRequest": { + "base": "

Update Agent Alias Request

", + "refs": { + } + }, + "UpdateAgentAliasResponse": { + "base": "

Update Agent Alias Response

", + "refs": { + } + }, + "UpdateAgentKnowledgeBaseRequest": { + "base": "

Update Agent Knowledge Base Request

", + "refs": { + } + }, + "UpdateAgentKnowledgeBaseResponse": { + "base": "

Update Agent Knowledge Base Response

", + "refs": { + } + }, + "UpdateAgentRequest": { + "base": "

Update Agent Request

", + "refs": { + } + }, + "UpdateAgentResponse": { + "base": "

Update Agent Response

", + "refs": { + } + }, + "UpdateDataSourceRequest": { + "base": null, + "refs": { + } + }, + "UpdateDataSourceResponse": { + "base": null, + "refs": { + } + }, + "UpdateKnowledgeBaseRequest": { + "base": null, + "refs": { + } + }, + "UpdateKnowledgeBaseResponse": { + "base": null, + "refs": { + } + }, + "ValidationException": { + "base": "

This exception is thrown when the request's input validation fails

", + "refs": { + } + }, + "ValidationExceptionField": { + "base": "

Stores information about a field passed inside a request that resulted in an exception

", + "refs": { + "ValidationExceptionFieldList$member": null + } + }, + "ValidationExceptionFieldList": { + "base": "

list of ValidationExceptionField

", + "refs": { + "ValidationException$fieldList": null + } + }, + "VectorIngestionConfiguration": { + "base": "

Configures ingestion for a vector knowledge base

", + "refs": { + "CreateDataSourceRequest$vectorIngestionConfiguration": null, + "DataSource$vectorIngestionConfiguration": null, + "UpdateDataSourceRequest$vectorIngestionConfiguration": null + } + }, + "VectorKnowledgeBaseConfiguration": { + "base": "

Configurations for a vector knowledge base.

", + "refs": { + "KnowledgeBaseConfiguration$vectorKnowledgeBaseConfiguration": null + } + }, + "Version": { + "base": "

Agent Version.

", + "refs": { + "AgentActionGroup$agentVersion": null, + "AgentAliasRoutingConfigurationListItem$agentVersion": null, + "AgentKnowledgeBase$agentVersion": null, + "AgentSummary$latestAgentVersion": null, + "AgentVersionSummary$agentVersion": null, + "GetAgentActionGroupRequest$agentVersion": "

Version number generated when a version is created

", + "GetAgentKnowledgeBaseRequest$agentVersion": "

Version number generated when a version is created

", + "ListAgentActionGroupsRequest$agentVersion": "

Id generated at the server side when an Agent is Listed

", + "ListAgentKnowledgeBasesRequest$agentVersion": "

Version number generated when a version is created

", + "PrepareAgentResponse$agentVersion": null + } + } + } +} diff --git a/models/apis/bedrock-agent/2023-06-05/endpoint-rule-set-1.json b/models/apis/bedrock-agent/2023-06-05/endpoint-rule-set-1.json new file mode 100644 index 00000000000..e88af541bbc --- /dev/null +++ b/models/apis/bedrock-agent/2023-06-05/endpoint-rule-set-1.json @@ -0,0 +1,350 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + } + ], + "type": "tree" + }, + { + "conditions": [], + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Region" + } + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "rules": [ + { + "conditions": [], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://bedrock-agent-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + }, + true + ] + } + ], + "rules": [ + { + "conditions": [], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://bedrock-agent-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "rules": [ + { + "conditions": [], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://bedrock-agent.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://bedrock-agent.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + } + ], + "type": "tree" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "Invalid Configuration: Missing Region", + "type": "error" + } + ], + "type": "tree" + } + ] +} \ No newline at end of file diff --git a/models/apis/bedrock-agent/2023-06-05/endpoint-tests-1.json b/models/apis/bedrock-agent/2023-06-05/endpoint-tests-1.json new file mode 100644 index 00000000000..b1ef7a03eee --- /dev/null +++ b/models/apis/bedrock-agent/2023-06-05/endpoint-tests-1.json @@ -0,0 +1,314 @@ +{ + "testCases": [ + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://bedrock-agent-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://bedrock-agent-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://bedrock-agent.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://bedrock-agent.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://bedrock-agent-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://bedrock-agent-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://bedrock-agent.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://bedrock-agent.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://bedrock-agent-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://bedrock-agent-fips.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://bedrock-agent.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://bedrock-agent.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-iso-east-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://bedrock-agent-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-iso-east-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://bedrock-agent.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-isob-east-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://bedrock-agent-fips.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-isob-east-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://bedrock-agent.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For custom endpoint with region set and fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with region not set and fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "Missing region", + "expect": { + "error": "Invalid Configuration: Missing Region" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/models/apis/bedrock-agent/2023-06-05/examples-1.json b/models/apis/bedrock-agent/2023-06-05/examples-1.json new file mode 100644 index 00000000000..0ea7e3b0bbe --- /dev/null +++ b/models/apis/bedrock-agent/2023-06-05/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/models/apis/bedrock-agent/2023-06-05/paginators-1.json b/models/apis/bedrock-agent/2023-06-05/paginators-1.json new file mode 100644 index 00000000000..8e00fb72a90 --- /dev/null +++ b/models/apis/bedrock-agent/2023-06-05/paginators-1.json @@ -0,0 +1,52 @@ +{ + "pagination": { + "ListAgentActionGroups": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults", + "result_key": "actionGroupSummaries" + }, + "ListAgentAliases": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults", + "result_key": "agentAliasSummaries" + }, + "ListAgentKnowledgeBases": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults", + "result_key": "agentKnowledgeBaseSummaries" + }, + "ListAgentVersions": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults", + "result_key": "agentVersionSummaries" + }, + "ListAgents": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults", + "result_key": "agentSummaries" + }, + "ListDataSources": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults", + "result_key": "dataSourceSummaries" + }, + "ListIngestionJobs": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults", + "result_key": "ingestionJobSummaries" + }, + "ListKnowledgeBases": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults", + "result_key": "knowledgeBaseSummaries" + } + } +} diff --git a/models/apis/bedrock-runtime/2023-09-30/api-2.json b/models/apis/bedrock-runtime/2023-09-30/api-2.json index b1bcc5c0441..0a4ce76e10f 100644 --- a/models/apis/bedrock-runtime/2023-09-30/api-2.json +++ b/models/apis/bedrock-runtime/2023-09-30/api-2.json @@ -87,7 +87,7 @@ "type":"string", "max":2048, "min":1, - "pattern":"^(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:(([0-9]{12}:custom-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}/[a-z0-9]{12})|(:foundation-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.]?[a-z0-9-]{1,63}))|([0-9]{12}:provisioned-model/[a-z0-9]{12})))|([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.]?[a-z0-9-]{1,63}))|(([0-9a-zA-Z][_-]?)+)$" + "pattern":"(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:(([0-9]{12}:custom-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}/[a-z0-9]{12})|(:foundation-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.:]?[a-z0-9-]{1,63}))|([0-9]{12}:provisioned-model/[a-z0-9]{12})))|([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.:]?[a-z0-9-]{1,63}))|(([0-9a-zA-Z][_-]?)+)" }, "InvokeModelRequest":{ "type":"structure", @@ -96,17 +96,17 @@ "modelId" ], "members":{ - "accept":{ - "shape":"MimeType", - "location":"header", - "locationName":"Accept" - }, "body":{"shape":"Body"}, "contentType":{ "shape":"MimeType", "location":"header", "locationName":"Content-Type" }, + "accept":{ + "shape":"MimeType", + "location":"header", + "locationName":"Accept" + }, "modelId":{ "shape":"InvokeModelIdentifier", "location":"uri", @@ -138,17 +138,17 @@ "modelId" ], "members":{ - "accept":{ - "shape":"MimeType", - "location":"header", - "locationName":"X-Amzn-Bedrock-Accept" - }, "body":{"shape":"Body"}, "contentType":{ "shape":"MimeType", "location":"header", "locationName":"Content-Type" }, + "accept":{ + "shape":"MimeType", + "location":"header", + "locationName":"X-Amzn-Bedrock-Accept" + }, "modelId":{ "shape":"InvokeModelIdentifier", "location":"uri", @@ -202,8 +202,8 @@ "type":"structure", "members":{ "message":{"shape":"NonBlankString"}, - "originalMessage":{"shape":"NonBlankString"}, - "originalStatusCode":{"shape":"StatusCode"} + "originalStatusCode":{"shape":"StatusCode"}, + "originalMessage":{"shape":"NonBlankString"} }, "error":{ "httpStatusCode":424, @@ -224,7 +224,7 @@ }, "NonBlankString":{ "type":"string", - "pattern":"^[\\s\\S]*$" + "pattern":"[\\s\\S]*" }, "PartBody":{ "type":"blob", @@ -257,9 +257,9 @@ "chunk":{"shape":"PayloadPart"}, "internalServerException":{"shape":"InternalServerException"}, "modelStreamErrorException":{"shape":"ModelStreamErrorException"}, - "modelTimeoutException":{"shape":"ModelTimeoutException"}, + "validationException":{"shape":"ValidationException"}, "throttlingException":{"shape":"ThrottlingException"}, - "validationException":{"shape":"ValidationException"} + "modelTimeoutException":{"shape":"ModelTimeoutException"} }, "eventstream":true }, diff --git a/models/apis/bedrock-runtime/2023-09-30/docs-2.json b/models/apis/bedrock-runtime/2023-09-30/docs-2.json index 7be83cad5ed..e08dde4158d 100644 --- a/models/apis/bedrock-runtime/2023-09-30/docs-2.json +++ b/models/apis/bedrock-runtime/2023-09-30/docs-2.json @@ -55,11 +55,11 @@ "MimeType": { "base": null, "refs": { - "InvokeModelRequest$accept": "

The desired MIME type of the inference body in the response. The default value is application/json.

", "InvokeModelRequest$contentType": "

The MIME type of the input data in the request. The default value is application/json.

", + "InvokeModelRequest$accept": "

The desired MIME type of the inference body in the response. The default value is application/json.

", "InvokeModelResponse$contentType": "

The MIME type of the inference result.

", - "InvokeModelWithResponseStreamRequest$accept": "

The desired MIME type of the inference body in the response. The default value is application/json.

", "InvokeModelWithResponseStreamRequest$contentType": "

The MIME type of the input data in the request. The default value is application/json.

", + "InvokeModelWithResponseStreamRequest$accept": "

The desired MIME type of the inference body in the response. The default value is application/json.

", "InvokeModelWithResponseStreamResponse$contentType": "

The MIME type of the inference result.

" } }, diff --git a/models/apis/bedrock-runtime/2023-09-30/endpoint-rule-set-1.json b/models/apis/bedrock-runtime/2023-09-30/endpoint-rule-set-1.json index be978fd08fa..6c3f1fbf1a9 100644 --- a/models/apis/bedrock-runtime/2023-09-30/endpoint-rule-set-1.json +++ b/models/apis/bedrock-runtime/2023-09-30/endpoint-rule-set-1.json @@ -40,7 +40,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -59,7 +58,6 @@ }, { "conditions": [], - "type": "tree", "rules": [ { "conditions": [ @@ -87,13 +85,14 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" } - ] + ], + "type": "tree" }, { "conditions": [], - "type": "tree", "rules": [ { "conditions": [ @@ -106,7 +105,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -120,7 +118,6 @@ "assign": "PartitionResult" } ], - "type": "tree", "rules": [ { "conditions": [ @@ -143,7 +140,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -178,11 +174,9 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [], - "type": "tree", "rules": [ { "conditions": [], @@ -193,16 +187,19 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" } - ] + ], + "type": "tree" }, { "conditions": [], "error": "FIPS and DualStack are enabled, but this partition does not support one or both", "type": "error" } - ] + ], + "type": "tree" }, { "conditions": [ @@ -216,14 +213,12 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ { "fn": "booleanEquals", "argv": [ - true, { "fn": "getAttr", "argv": [ @@ -232,15 +227,14 @@ }, "supportsFIPS" ] - } + }, + true ] } ], - "type": "tree", "rules": [ { "conditions": [], - "type": "tree", "rules": [ { "conditions": [], @@ -251,16 +245,19 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" } - ] + ], + "type": "tree" }, { "conditions": [], "error": "FIPS is enabled but this partition does not support FIPS", "type": "error" } - ] + ], + "type": "tree" }, { "conditions": [ @@ -274,7 +271,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -294,11 +290,9 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [], - "type": "tree", "rules": [ { "conditions": [], @@ -309,20 +303,22 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" } - ] + ], + "type": "tree" }, { "conditions": [], "error": "DualStack is enabled but this partition does not support DualStack", "type": "error" } - ] + ], + "type": "tree" }, { "conditions": [], - "type": "tree", "rules": [ { "conditions": [], @@ -333,18 +329,22 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" } - ] + ], + "type": "tree" } - ] + ], + "type": "tree" }, { "conditions": [], "error": "Invalid Configuration: Missing Region", "type": "error" } - ] + ], + "type": "tree" } ] } \ No newline at end of file diff --git a/models/apis/bedrock-runtime/2023-09-30/smoke.json b/models/apis/bedrock-runtime/2023-09-30/smoke.json new file mode 100644 index 00000000000..047a1d85ef7 --- /dev/null +++ b/models/apis/bedrock-runtime/2023-09-30/smoke.json @@ -0,0 +1,6 @@ +{ + "version": 1, + "defaultRegion": "us-west-2", + "testCases": [ + ] +} \ No newline at end of file diff --git a/models/apis/bedrock-runtime/2023-09-30/waiters-2.json b/models/apis/bedrock-runtime/2023-09-30/waiters-2.json new file mode 100644 index 00000000000..4b20636aa4c --- /dev/null +++ b/models/apis/bedrock-runtime/2023-09-30/waiters-2.json @@ -0,0 +1,5 @@ +{ + "version": 2, + "waiters": { + } +} \ No newline at end of file diff --git a/models/apis/bedrock/2023-04-20/api-2.json b/models/apis/bedrock/2023-04-20/api-2.json index 24c151b078d..ac3c56afba7 100644 --- a/models/apis/bedrock/2023-04-20/api-2.json +++ b/models/apis/bedrock/2023-04-20/api-2.json @@ -377,7 +377,7 @@ "type":"string", "max":2048, "min":1, - "pattern":"(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:(([0-9]{12}:custom-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}/[a-z0-9]{12})|(:foundation-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([a-z0-9-]{1,63}[.]){0,2}[a-z0-9-]{1,63}([:][a-z0-9-]{1,63}){0,2})))|([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.]?[a-z0-9-]{1,63})([:][a-z0-9-]{1,63}){0,2})|(([0-9a-zA-Z][_-]?)+)" + "pattern":"(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:(([0-9]{12}:custom-model/([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.]?[a-z0-9-]{1,63})([:][a-z0-9-]{1,63}){0,2})/[a-z0-9]{12})|(:foundation-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([:][a-z0-9-]{1,63}){0,2})))|([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.]?[a-z0-9-]{1,63})([:][a-z0-9-]{1,63}){0,2})|(([0-9a-zA-Z][_-]?)+)" }, "BedrockModelId":{ "type":"string", @@ -450,6 +450,7 @@ "idempotencyToken":true }, "baseModelIdentifier":{"shape":"BaseModelIdentifier"}, + "customizationType":{"shape":"CustomizationType"}, "customModelKmsKeyId":{"shape":"KmsKeyId"}, "jobTags":{"shape":"TagList"}, "customModelTags":{"shape":"TagList"}, @@ -519,13 +520,21 @@ "modelName":{"shape":"CustomModelName"}, "creationTime":{"shape":"Timestamp"}, "baseModelArn":{"shape":"ModelArn"}, - "baseModelName":{"shape":"ModelName"} + "baseModelName":{"shape":"ModelName"}, + "customizationType":{"shape":"CustomizationType"} } }, "CustomModelSummaryList":{ "type":"list", "member":{"shape":"CustomModelSummary"} }, + "CustomizationType":{ + "type":"string", + "enum":[ + "FINE_TUNING", + "CONTINUED_PRE_TRAINING" + ] + }, "DeleteCustomModelRequest":{ "type":"structure", "required":["modelIdentifier"], @@ -602,9 +611,24 @@ "outputModalities":{"shape":"ModelModalityList"}, "responseStreamingSupported":{"shape":"Boolean"}, "customizationsSupported":{"shape":"ModelCustomizationList"}, - "inferenceTypesSupported":{"shape":"InferenceTypeList"} + "inferenceTypesSupported":{"shape":"InferenceTypeList"}, + "modelLifecycle":{"shape":"FoundationModelLifecycle"} + } + }, + "FoundationModelLifecycle":{ + "type":"structure", + "required":["status"], + "members":{ + "status":{"shape":"FoundationModelLifecycleStatus"} } }, + "FoundationModelLifecycleStatus":{ + "type":"string", + "enum":[ + "ACTIVE", + "LEGACY" + ] + }, "FoundationModelSummary":{ "type":"structure", "required":[ @@ -620,7 +644,8 @@ "outputModalities":{"shape":"ModelModalityList"}, "responseStreamingSupported":{"shape":"Boolean"}, "customizationsSupported":{"shape":"ModelCustomizationList"}, - "inferenceTypesSupported":{"shape":"InferenceTypeList"} + "inferenceTypesSupported":{"shape":"InferenceTypeList"}, + "modelLifecycle":{"shape":"FoundationModelLifecycle"} } }, "FoundationModelSummaryList":{ @@ -655,6 +680,7 @@ "jobName":{"shape":"JobName"}, "jobArn":{"shape":"ModelCustomizationJobArn"}, "baseModelArn":{"shape":"ModelArn"}, + "customizationType":{"shape":"CustomizationType"}, "modelKmsKeyArn":{"shape":"KmsKeyArn"}, "hyperParameters":{"shape":"ModelCustomizationHyperParameters"}, "trainingDataConfig":{"shape":"TrainingDataConfig"}, @@ -724,6 +750,7 @@ "trainingDataConfig":{"shape":"TrainingDataConfig"}, "validationDataConfig":{"shape":"ValidationDataConfig"}, "outputDataConfig":{"shape":"OutputDataConfig"}, + "customizationType":{"shape":"CustomizationType"}, "outputModelKmsKeyArn":{"shape":"KmsKeyArn"}, "trainingMetrics":{"shape":"TrainingMetrics"}, "validationMetrics":{"shape":"ValidationMetrics"}, @@ -1074,7 +1101,10 @@ }, "ModelCustomization":{ "type":"string", - "enum":["FINE_TUNING"] + "enum":[ + "FINE_TUNING", + "CONTINUED_PRE_TRAINING" + ] }, "ModelCustomizationHyperParameters":{ "type":"map", @@ -1125,7 +1155,8 @@ "creationTime":{"shape":"Timestamp"}, "endTime":{"shape":"Timestamp"}, "customModelArn":{"shape":"CustomModelArn"}, - "customModelName":{"shape":"CustomModelName"} + "customModelName":{"shape":"CustomModelName"}, + "customizationType":{"shape":"CustomizationType"} } }, "ModelCustomizationList":{ @@ -1180,7 +1211,7 @@ }, "Provider":{ "type":"string", - "pattern":"[a-z0-9-]{1,63}" + "pattern":"[A-Za-z0-9- ]{1,63}" }, "ProvisionedModelArn":{ "type":"string", diff --git a/models/apis/bedrock/2023-04-20/docs-2.json b/models/apis/bedrock/2023-04-20/docs-2.json index f37ecaa80e7..1ab5e45d5ef 100644 --- a/models/apis/bedrock/2023-04-20/docs-2.json +++ b/models/apis/bedrock/2023-04-20/docs-2.json @@ -1,19 +1,19 @@ { "version": "2.0", - "service": "

Describes the API operations for creating and managing Bedrock models.

", + "service": "

Describes the API operations for creating and managing Amazon Bedrock models.

", "operations": { - "CreateModelCustomizationJob": "

Creates a fine-tuning job to customize a base model.

You specify the base foundation model and the location of the training data. After the model-customization job completes successfully, your custom model resource will be ready to use. Training data contains input and output text for each record in a JSONL format. Optionally, you can specify validation data in the same format as the training data. Bedrock returns validation loss metrics and output generations after the job completes.

Model-customization jobs are asynchronous and the completion time depends on the base model and the training/validation data size. To monitor a job, use the GetModelCustomizationJob operation to retrieve the job status.

For more information, see Custom models in the Bedrock User Guide.

", + "CreateModelCustomizationJob": "

Creates a fine-tuning job to customize a base model.

You specify the base foundation model and the location of the training data. After the model-customization job completes successfully, your custom model resource will be ready to use. Training data contains input and output text for each record in a JSONL format. Optionally, you can specify validation data in the same format as the training data. Amazon Bedrock returns validation loss metrics and output generations after the job completes.

Model-customization jobs are asynchronous and the completion time depends on the base model and the training/validation data size. To monitor a job, use the GetModelCustomizationJob operation to retrieve the job status.

For more information, see Custom models in the Bedrock User Guide.

", "CreateProvisionedModelThroughput": "

Creates a provisioned throughput with dedicated capacity for a foundation model or a fine-tuned model.

For more information, see Provisioned throughput in the Bedrock User Guide.

", "DeleteCustomModel": "

Deletes a custom model that you created earlier. For more information, see Custom models in the Bedrock User Guide.

", "DeleteModelInvocationLoggingConfiguration": "

Delete the invocation logging.

", "DeleteProvisionedModelThroughput": "

Deletes a provisioned throughput. For more information, see Provisioned throughput in the Bedrock User Guide.

", - "GetCustomModel": "

Get the properties associated with a Bedrock custom model that you have created.For more information, see Custom models in the Bedrock User Guide.

", - "GetFoundationModel": "

Get details about a Bedrock foundation model.

", + "GetCustomModel": "

Get the properties associated with a Amazon Bedrock custom model that you have created.For more information, see Custom models in the Bedrock User Guide.

", + "GetFoundationModel": "

Get details about a Amazon Bedrock foundation model.

", "GetModelCustomizationJob": "

Retrieves the properties associated with a model-customization job, including the status of the job. For more information, see Custom models in the Bedrock User Guide.

", "GetModelInvocationLoggingConfiguration": "

Get the current configuration values for model invocation logging.

", "GetProvisionedModelThroughput": "

Get details for a provisioned throughput. For more information, see Provisioned throughput in the Bedrock User Guide.

", "ListCustomModels": "

Returns a list of the custom models that you have created with the CreateModelCustomizationJob operation.

For more information, see Custom models in the Bedrock User Guide.

", - "ListFoundationModels": "

List of Bedrock foundation models that you can use. For more information, see Foundation models in the Bedrock User Guide.

", + "ListFoundationModels": "

List of Amazon Bedrock foundation models that you can use. For more information, see Foundation models in the Bedrock User Guide.

", "ListModelCustomizationJobs": "

Returns a list of model customization jobs that you have submitted. You can filter the jobs to return based on one or more criteria.

For more information, see Custom models in the Bedrock User Guide.

", "ListProvisionedModelThroughputs": "

List the provisioned capacities. For more information, see Provisioned throughput in the Bedrock User Guide.

", "ListTagsForResource": "

List the tags associated with the specified resource.

For more information, see Tagging resources in the Bedrock User Guide.

", @@ -137,6 +137,16 @@ "ListCustomModelsResponse$modelSummaries": "

Model summaries.

" } }, + "CustomizationType": { + "base": null, + "refs": { + "CreateModelCustomizationJobRequest$customizationType": "

The customization type.

", + "CustomModelSummary$customizationType": "

Specifies whether to carry out continued pre-training of a model or whether to fine-tune it. For more information, see Custom models.

", + "GetCustomModelResponse$customizationType": "

The type of model customization.

", + "GetModelCustomizationJobResponse$customizationType": "

The type of model customization.

", + "ModelCustomizationJobSummary$customizationType": "

Specifies whether to carry out continued pre-training of a model or whether to fine-tune it. For more information, see Custom models.

" + } + }, "DeleteCustomModelRequest": { "base": null, "refs": { @@ -197,6 +207,19 @@ "GetFoundationModelResponse$modelDetails": "

Information about the foundation model.

" } }, + "FoundationModelLifecycle": { + "base": "

Details about whether a model version is available or deprecated.

", + "refs": { + "FoundationModelDetails$modelLifecycle": "

Contains details about whether a model version is available or deprecated

", + "FoundationModelSummary$modelLifecycle": "

Contains details about whether a model version is available or deprecated.

" + } + }, + "FoundationModelLifecycleStatus": { + "base": null, + "refs": { + "FoundationModelLifecycle$status": "

Specifies whether a model version is available (ACTIVE) or deprecated (LEGACY.

" + } + }, "FoundationModelSummary": { "base": "

Summary information for a foundation model.

", "refs": { @@ -206,7 +229,7 @@ "FoundationModelSummaryList": { "base": null, "refs": { - "ListFoundationModelsResponse$modelSummaries": "

A list of bedrock foundation models.

" + "ListFoundationModelsResponse$modelSummaries": "

A list of Amazon Bedrock foundation models.

" } }, "GetCustomModelRequest": { @@ -263,7 +286,7 @@ "base": null, "refs": { "CreateModelCustomizationJobRequest$clientRequestToken": "

Unique token value that you can provide. The GetModelCustomizationJob response includes the same token value.

", - "CreateProvisionedModelThroughputRequest$clientRequestToken": "

Unique token value that you can provide. If this token matches a previous request, Bedrock ignores the request, but does not return an error.

", + "CreateProvisionedModelThroughputRequest$clientRequestToken": "

Unique token value that you can provide. If this token matches a previous request, Amazon Bedrock ignores the request, but does not return an error.

", "GetModelCustomizationJobResponse$clientRequestToken": "

The token that you specified in the CreateCustomizationJob request.

" } }, @@ -420,7 +443,7 @@ "refs": { "CreateModelCustomizationJobRequest$hyperParameters": "

Parameters related to tuning the model.

", "GetCustomModelResponse$hyperParameters": "

Hyperparameter values associated with this model.

", - "GetModelCustomizationJobResponse$hyperParameters": "

The hyperparameter values for the job.

" + "GetModelCustomizationJobResponse$hyperParameters": "

The hyperparameter values for the job. For information about hyperparameters for specific models, see Guidelines for model customization.

" } }, "ModelCustomizationJobArn": { @@ -521,11 +544,11 @@ "PaginationToken": { "base": null, "refs": { - "ListCustomModelsRequest$nextToken": "

Continuation token from the previous response, for Bedrock to list the next set of results.

", + "ListCustomModelsRequest$nextToken": "

Continuation token from the previous response, for Amazon Bedrock to list the next set of results.

", "ListCustomModelsResponse$nextToken": "

Continuation token for the next request to list the next set of results.

", - "ListModelCustomizationJobsRequest$nextToken": "

Continuation token from the previous response, for Bedrock to list the next set of results.

", + "ListModelCustomizationJobsRequest$nextToken": "

Continuation token from the previous response, for Amazon Bedrock to list the next set of results.

", "ListModelCustomizationJobsResponse$nextToken": "

Page continuation token to use in the next request.

", - "ListProvisionedModelThroughputsRequest$nextToken": "

Continuation token from the previous response, for Bedrock to list the next set of results.

", + "ListProvisionedModelThroughputsRequest$nextToken": "

Continuation token from the previous response, for Amazon Bedrock to list the next set of results.

", "ListProvisionedModelThroughputsResponse$nextToken": "

Continuation token for the next request to list the next set of results.

" } }, @@ -542,7 +565,7 @@ "Provider": { "base": null, "refs": { - "ListFoundationModelsRequest$byProvider": "

A Bedrock model provider.

" + "ListFoundationModelsRequest$byProvider": "

A Amazon Bedrock model provider.

" } }, "ProvisionedModelArn": { @@ -610,7 +633,7 @@ "base": null, "refs": { "CloudWatchConfig$roleArn": "

The role ARN.

", - "CreateModelCustomizationJobRequest$roleArn": "

The Amazon Resource Name (ARN) of an IAM role that Bedrock can assume to perform tasks on your behalf. For example, during model training, Bedrock needs your permission to read input data from an S3 bucket, write model artifacts to an S3 bucket. To pass this role to Bedrock, the caller of this API must have the iam:PassRole permission.

", + "CreateModelCustomizationJobRequest$roleArn": "

The Amazon Resource Name (ARN) of an IAM role that Amazon Bedrock can assume to perform tasks on your behalf. For example, during model training, Amazon Bedrock needs your permission to read input data from an S3 bucket, write model artifacts to an S3 bucket. To pass this role to Amazon Bedrock, the caller of this API must have the iam:PassRole permission.

", "GetModelCustomizationJobResponse$roleArn": "

The ARN of the IAM role.

" } }, diff --git a/models/apis/bedrock/2023-04-20/endpoint-rule-set-1.json b/models/apis/bedrock/2023-04-20/endpoint-rule-set-1.json index 51da5236ecd..b04f6c8cbbf 100644 --- a/models/apis/bedrock/2023-04-20/endpoint-rule-set-1.json +++ b/models/apis/bedrock/2023-04-20/endpoint-rule-set-1.json @@ -40,7 +40,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -59,7 +58,6 @@ }, { "conditions": [], - "type": "tree", "rules": [ { "conditions": [ @@ -87,13 +85,14 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" } - ] + ], + "type": "tree" }, { "conditions": [], - "type": "tree", "rules": [ { "conditions": [ @@ -106,7 +105,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -120,7 +118,6 @@ "assign": "PartitionResult" } ], - "type": "tree", "rules": [ { "conditions": [ @@ -143,7 +140,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -178,11 +174,9 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [], - "type": "tree", "rules": [ { "conditions": [], @@ -193,16 +187,19 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" } - ] + ], + "type": "tree" }, { "conditions": [], "error": "FIPS and DualStack are enabled, but this partition does not support one or both", "type": "error" } - ] + ], + "type": "tree" }, { "conditions": [ @@ -216,14 +213,12 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ { "fn": "booleanEquals", "argv": [ - true, { "fn": "getAttr", "argv": [ @@ -232,15 +227,14 @@ }, "supportsFIPS" ] - } + }, + true ] } ], - "type": "tree", "rules": [ { "conditions": [], - "type": "tree", "rules": [ { "conditions": [], @@ -251,16 +245,19 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" } - ] + ], + "type": "tree" }, { "conditions": [], "error": "FIPS is enabled but this partition does not support FIPS", "type": "error" } - ] + ], + "type": "tree" }, { "conditions": [ @@ -274,7 +271,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -294,11 +290,9 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [], - "type": "tree", "rules": [ { "conditions": [], @@ -309,20 +303,22 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" } - ] + ], + "type": "tree" }, { "conditions": [], "error": "DualStack is enabled but this partition does not support DualStack", "type": "error" } - ] + ], + "type": "tree" }, { "conditions": [], - "type": "tree", "rules": [ { "conditions": [], @@ -333,18 +329,22 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" } - ] + ], + "type": "tree" } - ] + ], + "type": "tree" }, { "conditions": [], "error": "Invalid Configuration: Missing Region", "type": "error" } - ] + ], + "type": "tree" } ] } \ No newline at end of file diff --git a/models/apis/connect/2017-08-08/api-2.json b/models/apis/connect/2017-08-08/api-2.json index ab29c16355f..e3f4e871742 100644 --- a/models/apis/connect/2017-08-08/api-2.json +++ b/models/apis/connect/2017-08-08/api-2.json @@ -29,6 +29,22 @@ {"shape":"ResourceConflictException"} ] }, + "AssociateAnalyticsDataSet":{ + "name":"AssociateAnalyticsDataSet", + "http":{ + "method":"PUT", + "requestUri":"/analytics-data/instance/{InstanceId}/association" + }, + "input":{"shape":"AssociateAnalyticsDataSetRequest"}, + "output":{"shape":"AssociateAnalyticsDataSetResponse"}, + "errors":[ + {"shape":"InvalidRequestException"}, + {"shape":"InvalidParameterException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServiceException"} + ] + }, "AssociateApprovedOrigin":{ "name":"AssociateApprovedOrigin", "http":{ @@ -79,6 +95,23 @@ {"shape":"AccessDeniedException"} ] }, + "AssociateFlow":{ + "name":"AssociateFlow", + "http":{ + "method":"PUT", + "requestUri":"/flow-associations/{InstanceId}" + }, + "input":{"shape":"AssociateFlowRequest"}, + "output":{"shape":"AssociateFlowResponse"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServiceException"}, + {"shape":"InvalidRequestException"}, + {"shape":"InvalidParameterException"}, + {"shape":"ThrottlingException"} + ] + }, "AssociateInstanceStorageConfig":{ "name":"AssociateInstanceStorageConfig", "http":{ @@ -212,6 +245,38 @@ ], "idempotent":true }, + "BatchAssociateAnalyticsDataSet":{ + "name":"BatchAssociateAnalyticsDataSet", + "http":{ + "method":"PUT", + "requestUri":"/analytics-data/instance/{InstanceId}/associations" + }, + "input":{"shape":"BatchAssociateAnalyticsDataSetRequest"}, + "output":{"shape":"BatchAssociateAnalyticsDataSetResponse"}, + "errors":[ + {"shape":"InvalidRequestException"}, + {"shape":"InvalidParameterException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServiceException"} + ] + }, + "BatchDisassociateAnalyticsDataSet":{ + "name":"BatchDisassociateAnalyticsDataSet", + "http":{ + "method":"POST", + "requestUri":"/analytics-data/instance/{InstanceId}/associations" + }, + "input":{"shape":"BatchDisassociateAnalyticsDataSetRequest"}, + "output":{"shape":"BatchDisassociateAnalyticsDataSetResponse"}, + "errors":[ + {"shape":"InvalidRequestException"}, + {"shape":"InvalidParameterException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServiceException"} + ] + }, "BatchGetFlowAssociation":{ "name":"BatchGetFlowAssociation", "http":{ @@ -1392,6 +1457,21 @@ {"shape":"AccessDeniedException"} ] }, + "DisassociateAnalyticsDataSet":{ + "name":"DisassociateAnalyticsDataSet", + "http":{ + "method":"POST", + "requestUri":"/analytics-data/instance/{InstanceId}/association" + }, + "input":{"shape":"DisassociateAnalyticsDataSetRequest"}, + "errors":[ + {"shape":"InvalidRequestException"}, + {"shape":"InvalidParameterException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServiceException"} + ] + }, "DisassociateApprovedOrigin":{ "name":"DisassociateApprovedOrigin", "http":{ @@ -1421,6 +1501,23 @@ {"shape":"ThrottlingException"} ] }, + "DisassociateFlow":{ + "name":"DisassociateFlow", + "http":{ + "method":"DELETE", + "requestUri":"/flow-associations/{InstanceId}/{ResourceId}/{ResourceType}" + }, + "input":{"shape":"DisassociateFlowRequest"}, + "output":{"shape":"DisassociateFlowResponse"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServiceException"}, + {"shape":"InvalidRequestException"}, + {"shape":"InvalidParameterException"}, + {"shape":"ThrottlingException"} + ] + }, "DisassociateInstanceStorageConfig":{ "name":"DisassociateInstanceStorageConfig", "http":{ @@ -1624,6 +1721,23 @@ {"shape":"DuplicateResourceException"} ] }, + "GetFlowAssociation":{ + "name":"GetFlowAssociation", + "http":{ + "method":"GET", + "requestUri":"/flow-associations/{InstanceId}/{ResourceId}/{ResourceType}" + }, + "input":{"shape":"GetFlowAssociationRequest"}, + "output":{"shape":"GetFlowAssociationResponse"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServiceException"}, + {"shape":"InvalidRequestException"}, + {"shape":"InvalidParameterException"}, + {"shape":"ThrottlingException"} + ] + }, "GetMetricData":{ "name":"GetMetricData", "http":{ @@ -1704,6 +1818,23 @@ {"shape":"ThrottlingException"} ] }, + "ImportPhoneNumber":{ + "name":"ImportPhoneNumber", + "http":{ + "method":"POST", + "requestUri":"/phone-number/import" + }, + "input":{"shape":"ImportPhoneNumberRequest"}, + "output":{"shape":"ImportPhoneNumberResponse"}, + "errors":[ + {"shape":"InvalidParameterException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServiceException"}, + {"shape":"IdempotencyException"}, + {"shape":"AccessDeniedException"} + ] + }, "ListAgentStatuses":{ "name":"ListAgentStatuses", "http":{ @@ -1720,6 +1851,22 @@ {"shape":"InternalServiceException"} ] }, + "ListAnalyticsDataAssociations":{ + "name":"ListAnalyticsDataAssociations", + "http":{ + "method":"GET", + "requestUri":"/analytics-data/instance/{InstanceId}/association" + }, + "input":{"shape":"ListAnalyticsDataAssociationsRequest"}, + "output":{"shape":"ListAnalyticsDataAssociationsResponse"}, + "errors":[ + {"shape":"InvalidRequestException"}, + {"shape":"InvalidParameterException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServiceException"} + ] + }, "ListApprovedOrigins":{ "name":"ListApprovedOrigins", "http":{ @@ -1860,6 +2007,23 @@ {"shape":"InternalServiceException"} ] }, + "ListFlowAssociations":{ + "name":"ListFlowAssociations", + "http":{ + "method":"GET", + "requestUri":"/flow-associations-summary/{InstanceId}" + }, + "input":{"shape":"ListFlowAssociationsRequest"}, + "output":{"shape":"ListFlowAssociationsResponse"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServiceException"}, + {"shape":"InvalidRequestException"}, + {"shape":"InvalidParameterException"}, + {"shape":"ThrottlingException"} + ] + }, "ListHoursOfOperations":{ "name":"ListHoursOfOperations", "http":{ @@ -2064,6 +2228,23 @@ {"shape":"InternalServiceException"} ] }, + "ListRealtimeContactAnalysisSegmentsV2":{ + "name":"ListRealtimeContactAnalysisSegmentsV2", + "http":{ + "method":"POST", + "requestUri":"/contact/list-real-time-analysis-segments-v2/{InstanceId}/{ContactId}" + }, + "input":{"shape":"ListRealtimeContactAnalysisSegmentsV2Request"}, + "output":{"shape":"ListRealtimeContactAnalysisSegmentsV2Response"}, + "errors":[ + {"shape":"OutputTypeNotFoundException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InvalidRequestException"}, + {"shape":"InternalServiceException"}, + {"shape":"ThrottlingException"} + ] + }, "ListRoutingProfileQueues":{ "name":"ListRoutingProfileQueues", "http":{ @@ -2564,6 +2745,22 @@ {"shape":"AccessDeniedException"} ] }, + "SendChatIntegrationEvent":{ + "name":"SendChatIntegrationEvent", + "http":{ + "method":"POST", + "requestUri":"/chat-integration-event" + }, + "input":{"shape":"SendChatIntegrationEventRequest"}, + "output":{"shape":"SendChatIntegrationEventResponse"}, + "errors":[ + {"shape":"InvalidRequestException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServiceException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"} + ] + }, "StartChatContact":{ "name":"StartChatContact", "http":{ @@ -2664,6 +2861,22 @@ {"shape":"InternalServiceException"} ] }, + "StartWebRTCContact":{ + "name":"StartWebRTCContact", + "http":{ + "method":"PUT", + "requestUri":"/contact/webrtc" + }, + "input":{"shape":"StartWebRTCContactRequest"}, + "output":{"shape":"StartWebRTCContactResponse"}, + "errors":[ + {"shape":"InternalServiceException"}, + {"shape":"InvalidRequestException"}, + {"shape":"InvalidParameterException"}, + {"shape":"LimitExceededException"}, + {"shape":"ResourceNotFoundException"} + ] + }, "StopContact":{ "name":"StopContact", "http":{ @@ -3481,6 +3694,7 @@ }, "shapes":{ "ARN":{"type":"string"}, + "AWSAccountId":{"type":"string"}, "AccessDeniedException":{ "type":"structure", "members":{ @@ -3695,11 +3909,31 @@ "value":{"shape":"SecurityProfilePolicyValue"}, "max":2 }, + "AllowedCapabilities":{ + "type":"structure", + "members":{ + "Customer":{"shape":"ParticipantCapabilities"}, + "Agent":{"shape":"ParticipantCapabilities"} + } + }, "AllowedMonitorCapabilities":{ "type":"list", "member":{"shape":"MonitorCapability"}, "max":2 }, + "AnalyticsDataAssociationResult":{ + "type":"structure", + "members":{ + "DataSetId":{"shape":"DataSetId"}, + "TargetAccountId":{"shape":"AWSAccountId"}, + "ResourceShareId":{"shape":"String"}, + "ResourceShareArn":{"shape":"ARN"} + } + }, + "AnalyticsDataAssociationResults":{ + "type":"list", + "member":{"shape":"AnalyticsDataAssociationResult"} + }, "AnswerMachineDetectionConfig":{ "type":"structure", "members":{ @@ -3726,11 +3960,49 @@ "max":10 }, "ApproximateTotalCount":{"type":"long"}, + "ArtifactId":{ + "type":"string", + "max":256, + "min":1 + }, + "ArtifactStatus":{ + "type":"string", + "enum":[ + "APPROVED", + "REJECTED", + "IN_PROGRESS" + ] + }, "AssignContactCategoryActionDefinition":{ "type":"structure", "members":{ } }, + "AssociateAnalyticsDataSetRequest":{ + "type":"structure", + "required":[ + "InstanceId", + "DataSetId" + ], + "members":{ + "InstanceId":{ + "shape":"InstanceId", + "location":"uri", + "locationName":"InstanceId" + }, + "DataSetId":{"shape":"DataSetId"}, + "TargetAccountId":{"shape":"AWSAccountId"} + } + }, + "AssociateAnalyticsDataSetResponse":{ + "type":"structure", + "members":{ + "DataSetId":{"shape":"DataSetId"}, + "TargetAccountId":{"shape":"AWSAccountId"}, + "ResourceShareId":{"shape":"String"}, + "ResourceShareArn":{"shape":"ARN"} + } + }, "AssociateApprovedOriginRequest":{ "type":"structure", "required":[ @@ -3784,6 +4056,30 @@ "members":{ } }, + "AssociateFlowRequest":{ + "type":"structure", + "required":[ + "InstanceId", + "ResourceId", + "FlowId", + "ResourceType" + ], + "members":{ + "InstanceId":{ + "shape":"InstanceId", + "location":"uri", + "locationName":"InstanceId" + }, + "ResourceId":{"shape":"ARN"}, + "FlowId":{"shape":"ARN"}, + "ResourceType":{"shape":"FlowAssociationResourceType"} + } + }, + "AssociateFlowResponse":{ + "type":"structure", + "members":{ + } + }, "AssociateInstanceStorageConfigRequest":{ "type":"structure", "required":[ @@ -3944,6 +4240,11 @@ "max":100, "min":1 }, + "AttachmentName":{ + "type":"string", + "max":256, + "min":1 + }, "AttachmentReference":{ "type":"structure", "members":{ @@ -3952,6 +4253,14 @@ "Status":{"shape":"ReferenceStatus"} } }, + "Attendee":{ + "type":"structure", + "members":{ + "AttendeeId":{"shape":"AttendeeId"}, + "JoinToken":{"shape":"JoinToken"} + } + }, + "AttendeeId":{"type":"string"}, "Attribute":{ "type":"structure", "members":{ @@ -3978,6 +4287,12 @@ "type":"list", "member":{"shape":"Attribute"} }, + "AudioFeatures":{ + "type":"structure", + "members":{ + "EchoReduction":{"shape":"MeetingFeatureStatus"} + } + }, "AutoAccept":{"type":"boolean"}, "AvailableNumberSummary":{ "type":"structure", @@ -3997,6 +4312,52 @@ "min":8, "pattern":"[a-z]{2}(-[a-z]+){1,2}(-[0-9])?" }, + "BatchAssociateAnalyticsDataSetRequest":{ + "type":"structure", + "required":[ + "InstanceId", + "DataSetIds" + ], + "members":{ + "InstanceId":{ + "shape":"InstanceId", + "location":"uri", + "locationName":"InstanceId" + }, + "DataSetIds":{"shape":"DataSetIds"}, + "TargetAccountId":{"shape":"AWSAccountId"} + } + }, + "BatchAssociateAnalyticsDataSetResponse":{ + "type":"structure", + "members":{ + "Created":{"shape":"AnalyticsDataAssociationResults"}, + "Errors":{"shape":"ErrorResults"} + } + }, + "BatchDisassociateAnalyticsDataSetRequest":{ + "type":"structure", + "required":[ + "InstanceId", + "DataSetIds" + ], + "members":{ + "InstanceId":{ + "shape":"InstanceId", + "location":"uri", + "locationName":"InstanceId" + }, + "DataSetIds":{"shape":"DataSetIds"}, + "TargetAccountId":{"shape":"AWSAccountId"} + } + }, + "BatchDisassociateAnalyticsDataSetResponse":{ + "type":"structure", + "members":{ + "Deleted":{"shape":"DataSetIds"}, + "Errors":{"shape":"ErrorResults"} + } + }, "BatchGetFlowAssociationRequest":{ "type":"structure", "required":[ @@ -4107,6 +4468,23 @@ "max":10080, "min":60 }, + "ChatEvent":{ + "type":"structure", + "required":["Type"], + "members":{ + "Type":{"shape":"ChatEventType"}, + "ContentType":{"shape":"ChatContentType"}, + "Content":{"shape":"ChatContent"} + } + }, + "ChatEventType":{ + "type":"string", + "enum":[ + "DISCONNECT", + "MESSAGE", + "EVENT" + ] + }, "ChatMessage":{ "type":"structure", "required":[ @@ -4171,7 +4549,8 @@ "TargetArn":{"shape":"ARN"}, "InstanceId":{"shape":"InstanceId"}, "Tags":{"shape":"TagMap"}, - "PhoneNumberStatus":{"shape":"PhoneNumberStatus"} + "PhoneNumberStatus":{"shape":"PhoneNumberStatus"}, + "SourcePhoneNumberArn":{"shape":"ARN"} } }, "ClientToken":{ @@ -4192,6 +4571,13 @@ "max":10, "min":1 }, + "ConnectionData":{ + "type":"structure", + "members":{ + "Attendee":{"shape":"Attendee"}, + "Meeting":{"shape":"Meeting"} + } + }, "Contact":{ "type":"structure", "members":{ @@ -4425,6 +4811,11 @@ "max":1024, "min":1 }, + "ContentType":{ + "type":"string", + "max":255, + "min":1 + }, "ControlPlaneTagFilter":{ "type":"structure", "members":{ @@ -5197,6 +5588,15 @@ "type":"list", "member":{"shape":"CurrentMetric"} }, + "DataSetId":{ + "type":"string", + "max":255, + "min":1 + }, + "DataSetIds":{ + "type":"list", + "member":{"shape":"DataSetId"} + }, "DateReference":{ "type":"structure", "members":{ @@ -6280,6 +6680,11 @@ "min":1, "pattern":"(^[\\S].*[\\S]$)|(^[\\S]$)" }, + "DestinationId":{ + "type":"string", + "max":255, + "min":1 + }, "DestinationNotAllowedException":{ "type":"structure", "members":{ @@ -6325,6 +6730,22 @@ ] }, "DirectoryUserId":{"type":"string"}, + "DisassociateAnalyticsDataSetRequest":{ + "type":"structure", + "required":[ + "InstanceId", + "DataSetId" + ], + "members":{ + "InstanceId":{ + "shape":"InstanceId", + "location":"uri", + "locationName":"InstanceId" + }, + "DataSetId":{"shape":"DataSetId"}, + "TargetAccountId":{"shape":"AWSAccountId"} + } + }, "DisassociateApprovedOriginRequest":{ "type":"structure", "required":[ @@ -6357,6 +6778,36 @@ "LexV2Bot":{"shape":"LexV2Bot"} } }, + "DisassociateFlowRequest":{ + "type":"structure", + "required":[ + "InstanceId", + "ResourceId", + "ResourceType" + ], + "members":{ + "InstanceId":{ + "shape":"InstanceId", + "location":"uri", + "locationName":"InstanceId" + }, + "ResourceId":{ + "shape":"ARN", + "location":"uri", + "locationName":"ResourceId" + }, + "ResourceType":{ + "shape":"FlowAssociationResourceType", + "location":"uri", + "locationName":"ResourceType" + } + } + }, + "DisassociateFlowResponse":{ + "type":"structure", + "members":{ + } + }, "DisassociateInstanceStorageConfigRequest":{ "type":"structure", "required":[ @@ -6640,6 +7091,17 @@ "CONTACT_FLOW" ] }, + "ErrorResult":{ + "type":"structure", + "members":{ + "ErrorCode":{"shape":"String"}, + "ErrorMessage":{"shape":"String"} + } + }, + "ErrorResults":{ + "type":"list", + "member":{"shape":"ErrorResult"} + }, "Evaluation":{ "type":"structure", "required":[ @@ -7149,6 +7611,7 @@ "enum":[ "OnPostCallAnalysisAvailable", "OnRealTimeCallAnalysisAvailable", + "OnRealTimeChatAnalysisAvailable", "OnPostChatAnalysisAvailable", "OnZendeskTicketCreate", "OnZendeskTicketStatusUpdate", @@ -7211,6 +7674,10 @@ "max":5, "min":1 }, + "FlowAssociationResourceType":{ + "type":"string", + "enum":["SMS_PHONE_NUMBER"] + }, "FlowAssociationSummary":{ "type":"structure", "members":{ @@ -7338,6 +7805,39 @@ "UserId":{"shape":"AgentResourceId"} } }, + "GetFlowAssociationRequest":{ + "type":"structure", + "required":[ + "InstanceId", + "ResourceId", + "ResourceType" + ], + "members":{ + "InstanceId":{ + "shape":"InstanceId", + "location":"uri", + "locationName":"InstanceId" + }, + "ResourceId":{ + "shape":"ARN", + "location":"uri", + "locationName":"ResourceId" + }, + "ResourceType":{ + "shape":"FlowAssociationResourceType", + "location":"uri", + "locationName":"ResourceType" + } + } + }, + "GetFlowAssociationResponse":{ + "type":"structure", + "members":{ + "ResourceId":{"shape":"ARN"}, + "FlowId":{"shape":"ARN"}, + "ResourceType":{"shape":"FlowAssociationResourceType"} + } + }, "GetMetricDataRequest":{ "type":"structure", "required":[ @@ -7821,6 +8321,30 @@ "error":{"httpStatusCode":409}, "exception":true }, + "ImportPhoneNumberRequest":{ + "type":"structure", + "required":[ + "InstanceId", + "SourcePhoneNumberArn" + ], + "members":{ + "InstanceId":{"shape":"InstanceId"}, + "SourcePhoneNumberArn":{"shape":"ARN"}, + "PhoneNumberDescription":{"shape":"PhoneNumberDescription"}, + "Tags":{"shape":"TagMap"}, + "ClientToken":{ + "shape":"ClientToken", + "idempotencyToken":true + } + } + }, + "ImportPhoneNumberResponse":{ + "type":"structure", + "members":{ + "PhoneNumberId":{"shape":"PhoneNumberId"}, + "PhoneNumberArn":{"shape":"ARN"} + } + }, "InboundCallsEnabled":{"type":"boolean"}, "Instance":{ "type":"structure", @@ -8046,6 +8570,10 @@ "type":"list", "member":{"shape":"InvisibleFieldInfo"} }, + "JoinToken":{ + "type":"string", + "sensitive":true + }, "KeyId":{ "type":"string", "max":128, @@ -8168,6 +8696,39 @@ "AgentStatusSummaryList":{"shape":"AgentStatusSummaryList"} } }, + "ListAnalyticsDataAssociationsRequest":{ + "type":"structure", + "required":["InstanceId"], + "members":{ + "InstanceId":{ + "shape":"InstanceId", + "location":"uri", + "locationName":"InstanceId" + }, + "DataSetId":{ + "shape":"DataSetId", + "location":"querystring", + "locationName":"DataSetId" + }, + "NextToken":{ + "shape":"NextToken", + "location":"querystring", + "locationName":"nextToken" + }, + "MaxResults":{ + "shape":"MaxResult1000", + "location":"querystring", + "locationName":"maxResults" + } + } + }, + "ListAnalyticsDataAssociationsResponse":{ + "type":"structure", + "members":{ + "Results":{"shape":"AnalyticsDataAssociationResults"}, + "NextToken":{"shape":"NextToken"} + } + }, "ListApprovedOriginsRequest":{ "type":"structure", "required":["InstanceId"], @@ -8464,6 +9025,40 @@ "type":"string", "enum":["VOICE_PHONE_NUMBER"] }, + "ListFlowAssociationsRequest":{ + "type":"structure", + "required":["InstanceId"], + "members":{ + "InstanceId":{ + "shape":"InstanceId", + "location":"uri", + "locationName":"InstanceId" + }, + "ResourceType":{ + "shape":"ListFlowAssociationResourceType", + "location":"querystring", + "locationName":"ResourceType" + }, + "NextToken":{ + "shape":"NextToken", + "location":"querystring", + "locationName":"nextToken" + }, + "MaxResults":{ + "shape":"MaxResult1000", + "box":true, + "location":"querystring", + "locationName":"maxResults" + } + } + }, + "ListFlowAssociationsResponse":{ + "type":"structure", + "members":{ + "FlowAssociationSummaryList":{"shape":"FlowAssociationSummaryList"}, + "NextToken":{"shape":"NextToken"} + } + }, "ListHoursOfOperationsRequest":{ "type":"structure", "required":["InstanceId"], @@ -8725,7 +9320,9 @@ "PhoneNumberCountryCode":{"shape":"PhoneNumberCountryCode"}, "PhoneNumberType":{"shape":"PhoneNumberType"}, "TargetArn":{"shape":"ARN"}, - "InstanceId":{"shape":"InstanceId"} + "InstanceId":{"shape":"InstanceId"}, + "PhoneNumberDescription":{"shape":"PhoneNumberDescription"}, + "SourcePhoneNumberArn":{"shape":"ARN"} } }, "ListPhoneNumbersSummaryList":{ @@ -8875,18 +9472,57 @@ "location":"querystring", "locationName":"maxResults" }, - "QuickConnectTypes":{ - "shape":"QuickConnectTypes", - "location":"querystring", - "locationName":"QuickConnectTypes" - } + "QuickConnectTypes":{ + "shape":"QuickConnectTypes", + "location":"querystring", + "locationName":"QuickConnectTypes" + } + } + }, + "ListQuickConnectsResponse":{ + "type":"structure", + "members":{ + "QuickConnectSummaryList":{"shape":"QuickConnectSummaryList"}, + "NextToken":{"shape":"NextToken"} + } + }, + "ListRealtimeContactAnalysisSegmentsV2Request":{ + "type":"structure", + "required":[ + "InstanceId", + "ContactId", + "OutputType", + "SegmentTypes" + ], + "members":{ + "InstanceId":{ + "shape":"InstanceId", + "location":"uri", + "locationName":"InstanceId" + }, + "ContactId":{ + "shape":"ContactId", + "location":"uri", + "locationName":"ContactId" + }, + "MaxResults":{"shape":"MaxResult100"}, + "NextToken":{"shape":"LargeNextToken"}, + "OutputType":{"shape":"RealTimeContactAnalysisOutputType"}, + "SegmentTypes":{"shape":"RealTimeContactAnalysisSegmentTypes"} } }, - "ListQuickConnectsResponse":{ + "ListRealtimeContactAnalysisSegmentsV2Response":{ "type":"structure", + "required":[ + "Channel", + "Status", + "Segments" + ], "members":{ - "QuickConnectSummaryList":{"shape":"QuickConnectSummaryList"}, - "NextToken":{"shape":"NextToken"} + "Channel":{"shape":"RealTimeContactAnalysisSupportedChannel"}, + "Status":{"shape":"RealTimeContactAnalysisStatus"}, + "Segments":{"shape":"RealtimeContactAnalysisSegments"}, + "NextToken":{"shape":"LargeNextToken"} } }, "ListRoutingProfileQueuesRequest":{ @@ -9475,6 +10111,40 @@ "CrossChannelBehavior":{"shape":"CrossChannelBehavior"} } }, + "MediaPlacement":{ + "type":"structure", + "members":{ + "AudioHostUrl":{"shape":"URI"}, + "AudioFallbackUrl":{"shape":"URI"}, + "SignalingUrl":{"shape":"URI"}, + "TurnControlUrl":{"shape":"URI"}, + "EventIngestionUrl":{"shape":"URI"} + } + }, + "MediaRegion":{"type":"string"}, + "Meeting":{ + "type":"structure", + "members":{ + "MediaRegion":{"shape":"MediaRegion"}, + "MediaPlacement":{"shape":"MediaPlacement"}, + "MeetingFeatures":{"shape":"MeetingFeaturesConfiguration"}, + "MeetingId":{"shape":"MeetingId"} + } + }, + "MeetingFeatureStatus":{ + "type":"string", + "enum":[ + "AVAILABLE", + "UNAVAILABLE" + ] + }, + "MeetingFeaturesConfiguration":{ + "type":"structure", + "members":{ + "Audio":{"shape":"AudioFeatures"} + } + }, + "MeetingId":{"type":"string"}, "Message":{"type":"string"}, "MetricDataCollectionsV2":{ "type":"list", @@ -9595,6 +10265,16 @@ "max":128, "min":1 }, + "NewChatCreated":{"type":"boolean"}, + "NewSessionDetails":{ + "type":"structure", + "members":{ + "SupportedMessagingContentTypes":{"shape":"SupportedMessagingContentTypes"}, + "ParticipantDetails":{"shape":"ParticipantDetails"}, + "Attributes":{"shape":"Attributes"}, + "StreamingConfiguration":{"shape":"ChatStreamingConfiguration"} + } + }, "NextToken":{"type":"string"}, "NextToken2500":{ "type":"string", @@ -9673,11 +10353,25 @@ "error":{"httpStatusCode":403}, "exception":true }, + "OutputTypeNotFoundException":{ + "type":"structure", + "members":{ + "Message":{"shape":"Message"} + }, + "error":{"httpStatusCode":404}, + "exception":true + }, "PEM":{ "type":"string", "max":1024, "min":1 }, + "ParticipantCapabilities":{ + "type":"structure", + "members":{ + "Video":{"shape":"VideoCapability"} + } + }, "ParticipantDetails":{ "type":"structure", "required":["DisplayName"], @@ -10085,7 +10779,8 @@ "UIFN", "SHARED", "THIRD_PARTY_TF", - "THIRD_PARTY_DID" + "THIRD_PARTY_DID", + "SHORT_CODE" ] }, "PhoneNumberTypes":{ @@ -10495,6 +11190,278 @@ "type":"list", "member":{"shape":"ReadOnlyFieldInfo"} }, + "RealTimeContactAnalysisAttachment":{ + "type":"structure", + "required":[ + "AttachmentName", + "AttachmentId" + ], + "members":{ + "AttachmentName":{"shape":"AttachmentName"}, + "ContentType":{"shape":"ContentType"}, + "AttachmentId":{"shape":"ArtifactId"}, + "Status":{"shape":"ArtifactStatus"} + } + }, + "RealTimeContactAnalysisAttachments":{ + "type":"list", + "member":{"shape":"RealTimeContactAnalysisAttachment"}, + "max":10 + }, + "RealTimeContactAnalysisCategoryDetails":{ + "type":"structure", + "required":["PointsOfInterest"], + "members":{ + "PointsOfInterest":{"shape":"RealTimeContactAnalysisPointsOfInterest"} + } + }, + "RealTimeContactAnalysisCategoryName":{ + "type":"string", + "max":256, + "min":1 + }, + "RealTimeContactAnalysisCharacterInterval":{ + "type":"structure", + "required":[ + "BeginOffsetChar", + "EndOffsetChar" + ], + "members":{ + "BeginOffsetChar":{"shape":"RealTimeContactAnalysisOffset"}, + "EndOffsetChar":{"shape":"RealTimeContactAnalysisOffset"} + } + }, + "RealTimeContactAnalysisCharacterIntervals":{ + "type":"list", + "member":{"shape":"RealTimeContactAnalysisCharacterInterval"} + }, + "RealTimeContactAnalysisContentType":{ + "type":"string", + "max":256, + "min":1 + }, + "RealTimeContactAnalysisEventType":{ + "type":"string", + "max":128, + "min":1 + }, + "RealTimeContactAnalysisId256":{ + "type":"string", + "max":256, + "min":1 + }, + "RealTimeContactAnalysisIssueDetected":{ + "type":"structure", + "required":["TranscriptItems"], + "members":{ + "TranscriptItems":{"shape":"RealTimeContactAnalysisTranscriptItemsWithContent"} + } + }, + "RealTimeContactAnalysisIssuesDetected":{ + "type":"list", + "member":{"shape":"RealTimeContactAnalysisIssueDetected"} + }, + "RealTimeContactAnalysisMatchedDetails":{ + "type":"map", + "key":{"shape":"RealTimeContactAnalysisCategoryName"}, + "value":{"shape":"RealTimeContactAnalysisCategoryDetails"}, + "max":150, + "min":0 + }, + "RealTimeContactAnalysisOffset":{ + "type":"integer", + "min":0 + }, + "RealTimeContactAnalysisOutputType":{ + "type":"string", + "enum":[ + "Raw", + "Redacted" + ] + }, + "RealTimeContactAnalysisPointOfInterest":{ + "type":"structure", + "members":{ + "TranscriptItems":{"shape":"RealTimeContactAnalysisTranscriptItemsWithCharacterOffsets"} + } + }, + "RealTimeContactAnalysisPointsOfInterest":{ + "type":"list", + "member":{"shape":"RealTimeContactAnalysisPointOfInterest"}, + "max":5, + "min":0 + }, + "RealTimeContactAnalysisSegmentAttachments":{ + "type":"structure", + "required":[ + "Id", + "ParticipantId", + "ParticipantRole", + "Attachments", + "Time" + ], + "members":{ + "Id":{"shape":"RealTimeContactAnalysisId256"}, + "ParticipantId":{"shape":"ParticipantId"}, + "ParticipantRole":{"shape":"ParticipantRole"}, + "DisplayName":{"shape":"DisplayName"}, + "Attachments":{"shape":"RealTimeContactAnalysisAttachments"}, + "Time":{"shape":"RealTimeContactAnalysisTimeData"} + } + }, + "RealTimeContactAnalysisSegmentCategories":{ + "type":"structure", + "required":["MatchedDetails"], + "members":{ + "MatchedDetails":{"shape":"RealTimeContactAnalysisMatchedDetails"} + } + }, + "RealTimeContactAnalysisSegmentEvent":{ + "type":"structure", + "required":[ + "Id", + "EventType", + "Time" + ], + "members":{ + "Id":{"shape":"RealTimeContactAnalysisId256"}, + "ParticipantId":{"shape":"ParticipantId"}, + "ParticipantRole":{"shape":"ParticipantRole"}, + "DisplayName":{"shape":"DisplayName"}, + "EventType":{"shape":"RealTimeContactAnalysisEventType"}, + "Time":{"shape":"RealTimeContactAnalysisTimeData"} + } + }, + "RealTimeContactAnalysisSegmentIssues":{ + "type":"structure", + "required":["IssuesDetected"], + "members":{ + "IssuesDetected":{"shape":"RealTimeContactAnalysisIssuesDetected"} + } + }, + "RealTimeContactAnalysisSegmentTranscript":{ + "type":"structure", + "required":[ + "Id", + "ParticipantId", + "ParticipantRole", + "Content", + "Time" + ], + "members":{ + "Id":{"shape":"RealTimeContactAnalysisId256"}, + "ParticipantId":{"shape":"ParticipantId"}, + "ParticipantRole":{"shape":"ParticipantRole"}, + "DisplayName":{"shape":"DisplayName"}, + "Content":{"shape":"RealTimeContactAnalysisTranscriptContent"}, + "ContentType":{"shape":"RealTimeContactAnalysisContentType"}, + "Time":{"shape":"RealTimeContactAnalysisTimeData"}, + "Redaction":{"shape":"RealTimeContactAnalysisTranscriptItemRedaction"}, + "Sentiment":{"shape":"RealTimeContactAnalysisSentimentLabel"} + } + }, + "RealTimeContactAnalysisSegmentType":{ + "type":"string", + "enum":[ + "Transcript", + "Categories", + "Issues", + "Event", + "Attachments" + ] + }, + "RealTimeContactAnalysisSegmentTypes":{ + "type":"list", + "member":{"shape":"RealTimeContactAnalysisSegmentType"}, + "max":5 + }, + "RealTimeContactAnalysisSentimentLabel":{ + "type":"string", + "enum":[ + "POSITIVE", + "NEGATIVE", + "NEUTRAL" + ] + }, + "RealTimeContactAnalysisStatus":{ + "type":"string", + "enum":[ + "IN_PROGRESS", + "FAILED", + "COMPLETED" + ] + }, + "RealTimeContactAnalysisSupportedChannel":{ + "type":"string", + "enum":[ + "VOICE", + "CHAT" + ] + }, + "RealTimeContactAnalysisTimeData":{ + "type":"structure", + "members":{ + "AbsoluteTime":{"shape":"RealTimeContactAnalysisTimeInstant"} + }, + "union":true + }, + "RealTimeContactAnalysisTimeInstant":{ + "type":"timestamp", + "timestampFormat":"iso8601" + }, + "RealTimeContactAnalysisTranscriptContent":{ + "type":"string", + "max":16384, + "min":1 + }, + "RealTimeContactAnalysisTranscriptItemRedaction":{ + "type":"structure", + "members":{ + "CharacterOffsets":{"shape":"RealTimeContactAnalysisCharacterIntervals"} + } + }, + "RealTimeContactAnalysisTranscriptItemWithCharacterOffsets":{ + "type":"structure", + "required":["Id"], + "members":{ + "Id":{"shape":"RealTimeContactAnalysisId256"}, + "CharacterOffsets":{"shape":"RealTimeContactAnalysisCharacterInterval"} + } + }, + "RealTimeContactAnalysisTranscriptItemWithContent":{ + "type":"structure", + "required":["Id"], + "members":{ + "Content":{"shape":"RealTimeContactAnalysisTranscriptContent"}, + "Id":{"shape":"RealTimeContactAnalysisId256"}, + "CharacterOffsets":{"shape":"RealTimeContactAnalysisCharacterInterval"} + } + }, + "RealTimeContactAnalysisTranscriptItemsWithCharacterOffsets":{ + "type":"list", + "member":{"shape":"RealTimeContactAnalysisTranscriptItemWithCharacterOffsets"}, + "max":10, + "min":0 + }, + "RealTimeContactAnalysisTranscriptItemsWithContent":{ + "type":"list", + "member":{"shape":"RealTimeContactAnalysisTranscriptItemWithContent"} + }, + "RealtimeContactAnalysisSegment":{ + "type":"structure", + "members":{ + "Transcript":{"shape":"RealTimeContactAnalysisSegmentTranscript"}, + "Categories":{"shape":"RealTimeContactAnalysisSegmentCategories"}, + "Issues":{"shape":"RealTimeContactAnalysisSegmentIssues"}, + "Event":{"shape":"RealTimeContactAnalysisSegmentEvent"}, + "Attachments":{"shape":"RealTimeContactAnalysisSegmentAttachments"} + }, + "union":true + }, + "RealtimeContactAnalysisSegments":{ + "type":"list", + "member":{"shape":"RealtimeContactAnalysisSegment"} + }, "Reference":{ "type":"structure", "required":[ @@ -10689,7 +11656,8 @@ "PARTICIPANT", "HIERARCHY_LEVEL", "HIERARCHY_GROUP", - "USER" + "USER", + "PHONE_NUMBER" ] }, "ResourceTypeList":{ @@ -11324,6 +12292,28 @@ "key":{"shape":"SegmentAttributeName"}, "value":{"shape":"SegmentAttributeValue"} }, + "SendChatIntegrationEventRequest":{ + "type":"structure", + "required":[ + "SourceId", + "DestinationId", + "Event" + ], + "members":{ + "SourceId":{"shape":"SourceId"}, + "DestinationId":{"shape":"DestinationId"}, + "Subtype":{"shape":"Subtype"}, + "Event":{"shape":"ChatEvent"}, + "NewSessionDetails":{"shape":"NewSessionDetails"} + } + }, + "SendChatIntegrationEventResponse":{ + "type":"structure", + "members":{ + "InitialContactId":{"shape":"ContactId"}, + "NewChatCreated":{"shape":"NewChatCreated"} + } + }, "SendNotificationActionDefinition":{ "type":"structure", "required":[ @@ -11413,6 +12403,11 @@ "min":1, "pattern":"^[a-zA-Z0-9_ -]+$" }, + "SourceId":{ + "type":"string", + "max":255, + "min":1 + }, "SourceType":{ "type":"string", "enum":[ @@ -11589,6 +12584,37 @@ "ContactId":{"shape":"ContactId"} } }, + "StartWebRTCContactRequest":{ + "type":"structure", + "required":[ + "ContactFlowId", + "InstanceId", + "ParticipantDetails" + ], + "members":{ + "Attributes":{"shape":"Attributes"}, + "ClientToken":{ + "shape":"ClientToken", + "idempotencyToken":true + }, + "ContactFlowId":{"shape":"ContactFlowId"}, + "InstanceId":{"shape":"InstanceId"}, + "AllowedCapabilities":{"shape":"AllowedCapabilities"}, + "ParticipantDetails":{"shape":"ParticipantDetails"}, + "RelatedContactId":{"shape":"ContactId"}, + "References":{"shape":"ContactReferences"}, + "Description":{"shape":"Description"} + } + }, + "StartWebRTCContactResponse":{ + "type":"structure", + "members":{ + "ConnectionData":{"shape":"ConnectionData"}, + "ContactId":{"shape":"ContactId"}, + "ParticipantId":{"shape":"ParticipantId"}, + "ParticipantToken":{"shape":"ParticipantToken"} + } + }, "Statistic":{ "type":"string", "enum":[ @@ -11725,6 +12751,11 @@ "EvaluationArn":{"shape":"ARN"} } }, + "Subtype":{ + "type":"string", + "max":100, + "min":1 + }, "SuccessfulRequest":{ "type":"structure", "members":{ @@ -13445,6 +14476,10 @@ "type":"integer", "min":1 }, + "VideoCapability":{ + "type":"string", + "enum":["SEND"] + }, "View":{ "type":"structure", "members":{ diff --git a/models/apis/connect/2017-08-08/docs-2.json b/models/apis/connect/2017-08-08/docs-2.json index 9822da3f8a4..fc6803cde77 100644 --- a/models/apis/connect/2017-08-08/docs-2.json +++ b/models/apis/connect/2017-08-08/docs-2.json @@ -3,9 +3,11 @@ "service": "

Amazon Connect is a cloud-based contact center solution that you use to set up and manage a customer contact center and provide reliable customer engagement at any scale.

Amazon Connect provides metrics and real-time reporting that enable you to optimize contact routing. You can also resolve customer issues more efficiently by getting customers in touch with the appropriate agents.

There are limits to the number of Amazon Connect resources that you can create. There are also limits to the number of requests that you can make per second. For more information, see Amazon Connect Service Quotas in the Amazon Connect Administrator Guide.

You can connect programmatically to an Amazon Web Services service by using an endpoint. For a list of Amazon Connect endpoints, see Amazon Connect Endpoints.

", "operations": { "ActivateEvaluationForm": "

Activates an evaluation form in the specified Amazon Connect instance. After the evaluation form is activated, it is available to start new evaluations based on the form.

", + "AssociateAnalyticsDataSet": "

This API is in preview release for Amazon Connect and is subject to change.

Associates the specified dataset for a Amazon Connect instance with the target account. You can associate only one dataset in a single call.

", "AssociateApprovedOrigin": "

This API is in preview release for Amazon Connect and is subject to change.

Associates an approved origin to an Amazon Connect instance.

", "AssociateBot": "

This API is in preview release for Amazon Connect and is subject to change.

Allows the specified Amazon Connect instance to access the specified Amazon Lex or Amazon Lex V2 bot.

", "AssociateDefaultVocabulary": "

Associates an existing vocabulary as the default. Contact Lens for Amazon Connect uses the vocabulary in post-call and real-time analysis sessions for the given language.

", + "AssociateFlow": "

Associates a connect resource to a flow.

", "AssociateInstanceStorageConfig": "

This API is in preview release for Amazon Connect and is subject to change.

Associates a storage resource type for the first time. You can only associate one type of storage configuration in a single call. This means, for example, that you can't define an instance with multiple S3 buckets for storing chat transcripts.

This API does not create a resource that doesn't exist. It only associates it to the instance. Ensure that the resource being specified in the storage configuration, like an S3 bucket, exists when being used for association.

", "AssociateLambdaFunction": "

This API is in preview release for Amazon Connect and is subject to change.

Allows the specified Amazon Connect instance to access the specified Lambda function.

", "AssociateLexBot": "

This API is in preview release for Amazon Connect and is subject to change.

Allows the specified Amazon Connect instance to access the specified Amazon Lex V1 bot. This API only supports the association of Amazon Lex V1 bots.

", @@ -14,6 +16,8 @@ "AssociateRoutingProfileQueues": "

Associates a set of queues with a routing profile.

", "AssociateSecurityKey": "

This API is in preview release for Amazon Connect and is subject to change.

Associates a security key to the instance.

", "AssociateTrafficDistributionGroupUser": "

Associates an agent with a traffic distribution group.

", + "BatchAssociateAnalyticsDataSet": "

This API is in preview release for Amazon Connect and is subject to change.

Associates a list of analytics datasets for a given Amazon Connect instance to a target account. You can associate multiple datasets in a single call.

", + "BatchDisassociateAnalyticsDataSet": "

This API is in preview release for Amazon Connect and is subject to change.

Removes a list of analytics datasets associated with a given Amazon Connect instance. You can disassociate multiple datasets in a single call.

", "BatchGetFlowAssociation": "

Retrieve the flow associations for the given resources.

", "BatchPutContact": "

Only the Amazon Connect outbound campaigns service principal is allowed to assume a role in your account and call this API.

Allows you to create a batch of contacts in Amazon Connect. The outbound campaigns capability ingests dial requests via the PutDialRequestBatch API. It then uses BatchPutContact to create contacts corresponding to those dial requests. If agents are available, the dial requests are dialed out, which results in a voice call. The resulting voice call uses the same contactId that was created by BatchPutContact.

", "ClaimPhoneNumber": "

Claims an available phone number to your Amazon Connect instance or traffic distribution group. You can call this API only in the same Amazon Web Services Region where the Amazon Connect instance or traffic distribution group was created.

For more information about how to use this operation, see Claim a phone number in your country and Claim phone numbers to traffic distribution groups in the Amazon Connect Administrator Guide.

You can call the SearchAvailablePhoneNumbers API for available phone numbers that you can claim. Call the DescribePhoneNumber API to verify the status of a previous ClaimPhoneNumber operation.

If you plan to claim and release numbers frequently during a 30 day period, contact us for a service quota exception. Otherwise, it is possible you will be blocked from claiming and releasing any more numbers until 30 days past the oldest number released has expired.

By default you can claim and release up to 200% of your maximum number of active phone numbers during any 30 day period. If you claim and release phone numbers using the UI or API during a rolling 30 day cycle that exceeds 200% of your phone number service level quota, you will be blocked from claiming any more numbers until 30 days past the oldest number released has expired.

For example, if you already have 99 claimed numbers and a service level quota of 99 phone numbers, and in any 30 day period you release 99, claim 99, and then release 99, you will have exceeded the 200% limit. At that point you are blocked from claiming any more numbers until you open an Amazon Web Services support ticket.

", @@ -35,7 +39,7 @@ "CreateTaskTemplate": "

Creates a new task template in the specified Amazon Connect instance.

", "CreateTrafficDistributionGroup": "

Creates a traffic distribution group given an Amazon Connect instance that has been replicated.

The SignInConfig distribution is available only on a default TrafficDistributionGroup (see the IsDefault parameter in the TrafficDistributionGroup data type). If you call UpdateTrafficDistribution with a modified SignInConfig and a non-default TrafficDistributionGroup, an InvalidRequestException is returned.

For more information about creating traffic distribution groups, see Set up traffic distribution groups in the Amazon Connect Administrator Guide.

", "CreateUseCase": "

Creates a use case for an integration association.

", - "CreateUser": "

Creates a user account for the specified Amazon Connect instance.

Certain UserIdentityInfo parameters are required in some situations. For example, Email is required if you are using SAML for identity management. FirstName and LastName are required if you are using Amazon Connect or SAML for identity management.

For information about how to create user accounts using the Amazon Connect console, see Add Users in the Amazon Connect Administrator Guide.

", + "CreateUser": "

Creates a user account for the specified Amazon Connect instance.

Certain UserIdentityInfo parameters are required in some situations. For example, Email is required if you are using SAML for identity management. FirstName and LastName are required if you are using Amazon Connect or SAML for identity management.

For information about how to create users using the Amazon Connect admin website, see Add Users in the Amazon Connect Administrator Guide.

", "CreateUserHierarchyGroup": "

Creates a new user hierarchy group.

", "CreateView": "

Creates a new view with the possible status of SAVED or PUBLISHED.

The views will have a unique name for each connect instance.

It performs basic content validation if the status is SAVED or full content validation if the status is set to PUBLISHED. An error is returned if validation fails. It associates either the $SAVED qualifier or both of the $SAVED and $LATEST qualifiers with the provided view content based on the status. The view is idempotent if ClientToken is provided.

", "CreateViewVersion": "

Publishes a new version of the view identifier.

Versions are immutable and monotonically increasing.

It returns the highest version if there is no change in content compared to that version. An error is displayed if the supplied ViewContentSha256 is different from the ViewContentSha256 of the $LATEST alias.

", @@ -80,13 +84,15 @@ "DescribeRule": "

Describes a rule for the specified Amazon Connect instance.

", "DescribeSecurityProfile": "

Gets basic information about the security profle.

", "DescribeTrafficDistributionGroup": "

Gets details and status of a traffic distribution group.

", - "DescribeUser": "

Describes the specified user account. You can find the instance ID in the Amazon Connect console (it’s the final part of the ARN). The console does not display the user IDs. Instead, list the users and note the IDs provided in the output.

", + "DescribeUser": "

Describes the specified user. You can find the instance ID in the Amazon Connect console (it’s the final part of the ARN). The console does not display the user IDs. Instead, list the users and note the IDs provided in the output.

", "DescribeUserHierarchyGroup": "

Describes the specified hierarchy group.

", "DescribeUserHierarchyStructure": "

Describes the hierarchy structure of the specified Amazon Connect instance.

", "DescribeView": "

Retrieves the view for the specified Amazon Connect instance and view identifier.

The view identifier can be supplied as a ViewId or ARN.

$SAVED needs to be supplied if a view is unpublished.

The view identifier can contain an optional qualifier, for example, <view-id>:$SAVED, which is either an actual version number or an Amazon Connect managed qualifier $SAVED | $LATEST. If it is not supplied, then $LATEST is assumed for customer managed views and an error is returned if there is no published content available. Version 1 is assumed for Amazon Web Services managed views.

", "DescribeVocabulary": "

Describes the specified vocabulary.

", + "DisassociateAnalyticsDataSet": "

This API is in preview release for Amazon Connect and is subject to change.

Removes the dataset ID associated with a given Amazon Connect instance.

", "DisassociateApprovedOrigin": "

This API is in preview release for Amazon Connect and is subject to change.

Revokes access to integrated applications from Amazon Connect.

", "DisassociateBot": "

This API is in preview release for Amazon Connect and is subject to change.

Revokes authorization from the specified instance to access the specified Amazon Lex or Amazon Lex V2 bot.

", + "DisassociateFlow": "

Disassociates a connect resource from a flow.

", "DisassociateInstanceStorageConfig": "

This API is in preview release for Amazon Connect and is subject to change.

Removes the storage type configurations for the specified resource type and association ID.

", "DisassociateLambdaFunction": "

This API is in preview release for Amazon Connect and is subject to change.

Remove the Lambda function from the dropdown options available in the relevant flow blocks.

", "DisassociateLexBot": "

This API is in preview release for Amazon Connect and is subject to change.

Revokes authorization from the specified instance to access the specified Amazon Lex bot.

", @@ -100,12 +106,15 @@ "GetCurrentMetricData": "

Gets the real-time metric data from the specified Amazon Connect instance.

For a description of each metric, see Real-time Metrics Definitions in the Amazon Connect Administrator Guide.

", "GetCurrentUserData": "

Gets the real-time active user data from the specified Amazon Connect instance.

", "GetFederationToken": "

Supports SAML sign-in for Amazon Connect. Retrieves a token for federation. The token is for the Amazon Connect user which corresponds to the IAM credentials that were used to invoke this action.

For more information about how SAML sign-in works in Amazon Connect, see Configure SAML with IAM for Amazon Connect in the Amazon Connect Administrator Guide.

This API doesn't support root users. If you try to invoke GetFederationToken with root credentials, an error message similar to the following one appears:

Provided identity: Principal: .... User: .... cannot be used for federation with Amazon Connect

", + "GetFlowAssociation": "

Retrieves the flow associated for a given resource.

", "GetMetricData": "

Gets historical metric data from the specified Amazon Connect instance.

For a description of each historical metric, see Historical Metrics Definitions in the Amazon Connect Administrator Guide.

We recommend using the GetMetricDataV2 API. It provides more flexibility, features, and the ability to query longer time ranges than GetMetricData. Use it to retrieve historical agent and contact metrics for the last 3 months, at varying intervals. You can also use it to build custom dashboards to measure historical queue and agent performance. For example, you can track the number of incoming contacts for the last 7 days, with data split by day, to see how contact volume changed per day of the week.

", "GetMetricDataV2": "

Gets metric data from the specified Amazon Connect instance.

GetMetricDataV2 offers more features than GetMetricData, the previous version of this API. It has new metrics, offers filtering at a metric level, and offers the ability to filter and group data by channels, queues, routing profiles, agents, and agent hierarchy levels. It can retrieve historical data for the last 3 months, at varying intervals.

For a description of the historical metrics that are supported by GetMetricDataV2 and GetMetricData, see Historical metrics definitions in the Amazon Connect Administrator's Guide.

", "GetPromptFile": "

Gets the prompt file.

", "GetTaskTemplate": "

Gets details about a specific task template in the specified Amazon Connect instance.

", "GetTrafficDistribution": "

Retrieves the current traffic distribution for a given traffic distribution group.

", + "ImportPhoneNumber": "

Imports a claimed phone number from an external service, such as Amazon Pinpoint, into an Amazon Connect instance. You can call this API only in the same Amazon Web Services Region where the Amazon Connect instance was created.

", "ListAgentStatuses": "

This API is in preview release for Amazon Connect and is subject to change.

Lists agent statuses.

", + "ListAnalyticsDataAssociations": "

This API is in preview release for Amazon Connect and is subject to change.

Lists the association status of requested dataset ID for a given Amazon Connect instance.

", "ListApprovedOrigins": "

This API is in preview release for Amazon Connect and is subject to change.

Returns a paginated list of all approved origins associated with the instance.

", "ListBots": "

This API is in preview release for Amazon Connect and is subject to change.

For the specified version of Amazon Lex, returns a paginated list of all the Amazon Lex bots currently associated with the instance. Use this API to returns both Amazon Lex V1 and V2 bots.

", "ListContactEvaluations": "

Lists contact evaluations in the specified Amazon Connect instance.

", @@ -115,6 +124,7 @@ "ListDefaultVocabularies": "

Lists the default vocabularies for the specified Amazon Connect instance.

", "ListEvaluationFormVersions": "

Lists versions of an evaluation form in the specified Amazon Connect instance.

", "ListEvaluationForms": "

Lists evaluation forms in the specified Amazon Connect instance.

", + "ListFlowAssociations": "

List the flow association based on the filters.

", "ListHoursOfOperations": "

Provides information about the hours of operation for the specified Amazon Connect instance.

For more information about hours of operation, see Set the Hours of Operation for a Queue in the Amazon Connect Administrator Guide.

", "ListInstanceAttributes": "

This API is in preview release for Amazon Connect and is subject to change.

Returns a paginated list of all attribute types for the given instance.

", "ListInstanceStorageConfigs": "

This API is in preview release for Amazon Connect and is subject to change.

Returns a paginated list of storage configs for the identified instance and resource type.

", @@ -128,6 +138,7 @@ "ListQueueQuickConnects": "

This API is in preview release for Amazon Connect and is subject to change.

Lists the quick connects associated with a queue.

", "ListQueues": "

Provides information about the queues for the specified Amazon Connect instance.

If you do not specify a QueueTypes parameter, both standard and agent queues are returned. This might cause an unexpected truncation of results if you have more than 1000 agents and you limit the number of results of the API call in code.

For more information about queues, see Queues: Standard and Agent in the Amazon Connect Administrator Guide.

", "ListQuickConnects": "

Provides information about the quick connects for the specified Amazon Connect instance.

", + "ListRealtimeContactAnalysisSegmentsV2": "

Provides a list of analysis segments for a real-time analysis session.

", "ListRoutingProfileQueues": "

Lists the queues associated with a routing profile.

", "ListRoutingProfiles": "

Provides summary information about the routing profiles for the specified Amazon Connect instance.

For more information about routing profiles, see Routing Profiles and Create a Routing Profile in the Amazon Connect Administrator Guide.

", "ListRules": "

List all rules for the specified Amazon Connect instance.

", @@ -146,7 +157,7 @@ "ListViews": "

Returns views in the given instance.

Results are sorted primarily by type, and secondarily by name.

", "MonitorContact": "

Initiates silent monitoring of a contact. The Contact Control Panel (CCP) of the user specified by userId will be set to silent monitoring mode on the contact.

", "PutUserStatus": "

Changes the current status of a user or agent in Amazon Connect. If the agent is currently handling a contact, this sets the agent's next status.

For more information, see Agent status and Set your next status in the Amazon Connect Administrator Guide.

", - "ReleasePhoneNumber": "

Releases a phone number previously claimed to an Amazon Connect instance or traffic distribution group. You can call this API only in the Amazon Web Services Region where the number was claimed.

To release phone numbers from a traffic distribution group, use the ReleasePhoneNumber API, not the Amazon Connect console.

After releasing a phone number, the phone number enters into a cooldown period of 30 days. It cannot be searched for or claimed again until the period has ended. If you accidentally release a phone number, contact Amazon Web Services Support.

If you plan to claim and release numbers frequently during a 30 day period, contact us for a service quota exception. Otherwise, it is possible you will be blocked from claiming and releasing any more numbers until 30 days past the oldest number released has expired.

By default you can claim and release up to 200% of your maximum number of active phone numbers during any 30 day period. If you claim and release phone numbers using the UI or API during a rolling 30 day cycle that exceeds 200% of your phone number service level quota, you will be blocked from claiming any more numbers until 30 days past the oldest number released has expired.

For example, if you already have 99 claimed numbers and a service level quota of 99 phone numbers, and in any 30 day period you release 99, claim 99, and then release 99, you will have exceeded the 200% limit. At that point you are blocked from claiming any more numbers until you open an Amazon Web Services support ticket.

", + "ReleasePhoneNumber": "

Releases a phone number previously claimed to an Amazon Connect instance or traffic distribution group. You can call this API only in the Amazon Web Services Region where the number was claimed.

To release phone numbers from a traffic distribution group, use the ReleasePhoneNumber API, not the Amazon Connect admin website.

After releasing a phone number, the phone number enters into a cooldown period of 30 days. It cannot be searched for or claimed again until the period has ended. If you accidentally release a phone number, contact Amazon Web Services Support.

If you plan to claim and release numbers frequently during a 30 day period, contact us for a service quota exception. Otherwise, it is possible you will be blocked from claiming and releasing any more numbers until 30 days past the oldest number released has expired.

By default you can claim and release up to 200% of your maximum number of active phone numbers during any 30 day period. If you claim and release phone numbers using the UI or API during a rolling 30 day cycle that exceeds 200% of your phone number service level quota, you will be blocked from claiming any more numbers until 30 days past the oldest number released has expired.

For example, if you already have 99 claimed numbers and a service level quota of 99 phone numbers, and in any 30 day period you release 99, claim 99, and then release 99, you will have exceeded the 200% limit. At that point you are blocked from claiming any more numbers until you open an Amazon Web Services support ticket.

", "ReplicateInstance": "

Replicates an Amazon Connect instance in the specified Amazon Web Services Region and copies configuration information for Amazon Connect resources across Amazon Web Services Regions.

For more information about replicating an Amazon Connect instance, see Create a replica of your existing Amazon Connect instance in the Amazon Connect Administrator Guide.

", "ResumeContactRecording": "

When a contact is being recorded, and the recording has been suspended using SuspendContactRecording, this API resumes recording whatever recording is selected in the flow configuration: call, screen, or both. If only call recording or only screen recording is enabled, then it would resume.

Voice and screen recordings are supported.

", "SearchAvailablePhoneNumbers": "

Searches for available phone numbers that you can claim to your Amazon Connect instance or traffic distribution group. If the provided TargetArn is a traffic distribution group, you can call this API in both Amazon Web Services Regions associated with the traffic distribution group.

", @@ -159,12 +170,14 @@ "SearchSecurityProfiles": "

Searches security profiles in an Amazon Connect instance, with optional filtering.

", "SearchUsers": "

Searches users in an Amazon Connect instance, with optional filtering.

AfterContactWorkTimeLimit is returned in milliseconds.

", "SearchVocabularies": "

Searches for vocabularies within a specific Amazon Connect instance using State, NameStartsWith, and LanguageCode.

", + "SendChatIntegrationEvent": "

Processes chat integration events from Amazon Web Services or external integrations to Amazon Connect. A chat integration event includes:

When a chat integration event is sent with chat identifiers that do not map to an active chat contact, a new chat contact is also created before handling chat action.

Access to this API is currently restricted to Amazon Pinpoint for supporting SMS integration.

", "StartChatContact": "

Initiates a flow to start a new chat for the customer. Response of this API provides a token required to obtain credentials from the CreateParticipantConnection API in the Amazon Connect Participant Service.

When a new chat contact is successfully created, clients must subscribe to the participant’s connection for the created chat within 5 minutes. This is achieved by invoking CreateParticipantConnection with WEBSOCKET and CONNECTION_CREDENTIALS.

A 429 error occurs in the following situations:

If you use the ChatDurationInMinutes parameter and receive a 400 error, your account may not support the ability to configure custom chat durations. For more information, contact Amazon Web Services Support.

For more information about chat, see Chat in the Amazon Connect Administrator Guide.

", "StartContactEvaluation": "

Starts an empty evaluation in the specified Amazon Connect instance, using the given evaluation form for the particular contact. The evaluation form version used for the contact evaluation corresponds to the currently activated version. If no version is activated for the evaluation form, the contact evaluation cannot be started.

Evaluations created through the public API do not contain answer values suggested from automation.

", "StartContactRecording": "

Starts recording the contact:

StartContactRecording is a one-time action. For example, if you use StopContactRecording to stop recording an ongoing call, you can't use StartContactRecording to restart it. For scenarios where the recording has started and you want to suspend and resume it, such as when collecting sensitive information (for example, a credit card number), use SuspendContactRecording and ResumeContactRecording.

You can use this API to override the recording behavior configured in the Set recording behavior block.

Only voice recordings are supported at this time.

", "StartContactStreaming": "

Initiates real-time message streaming for a new chat contact.

For more information about message streaming, see Enable real-time chat message streaming in the Amazon Connect Administrator Guide.

", "StartOutboundVoiceContact": "

Places an outbound call to a contact, and then initiates the flow. It performs the actions in the flow that's specified (in ContactFlowId).

Agents do not initiate the outbound API, which means that they do not dial the contact. If the flow places an outbound call to a contact, and then puts the contact in queue, the call is then routed to the agent, like any other inbound case.

There is a 60-second dialing timeout for this operation. If the call is not connected after 60 seconds, it fails.

UK numbers with a 447 prefix are not allowed by default. Before you can dial these UK mobile numbers, you must submit a service quota increase request. For more information, see Amazon Connect Service Quotas in the Amazon Connect Administrator Guide.

Campaign calls are not allowed by default. Before you can make a call with TrafficType = CAMPAIGN, you must submit a service quota increase request to the quota Amazon Connect campaigns.

", "StartTaskContact": "

Initiates a flow to start a new task contact. For more information about task contacts, see Concepts: Tasks in Amazon Connect in the Amazon Connect Administrator Guide.

When using PreviousContactId and RelatedContactId input parameters, note the following:

In addition, when calling StartTaskContact include only one of these parameters: ContactFlowID, QuickConnectID, or TaskTemplateID. Only one parameter is required as long as the task template has a flow configured to run it. If more than one parameter is specified, or only the TaskTemplateID is specified but it does not have a flow configured, the request returns an error because Amazon Connect cannot identify the unique flow to run when the task is created.

A ServiceQuotaExceededException occurs when the number of open tasks exceeds the active tasks quota or there are already 12 tasks referencing the same PreviousContactId. For more information about service quotas for task contacts, see Amazon Connect service quotas in the Amazon Connect Administrator Guide.

", + "StartWebRTCContact": "

Places an inbound in-app, web, or video call to a contact, and then initiates the flow. It performs the actions in the flow that are specified (in ContactFlowId) and present in the Amazon Connect instance (specified as InstanceId).

", "StopContact": "

Ends the specified contact. This call does not work for voice contacts that use the following initiation methods:

Chat and task contacts, however, can be terminated in any state, regardless of initiation method.

", "StopContactRecording": "

Stops recording a call when a contact is being recorded. StopContactRecording is a one-time action. If you use StopContactRecording to stop recording an ongoing call, you can't use StartContactRecording to restart it. For scenarios where the recording has started and you want to suspend it for sensitive information (for example, to collect a credit card number), and then restart it, use SuspendContactRecording and ResumeContactRecording.

Only voice recordings are supported at this time.

", "StopContactStreaming": "

Ends message streaming on a specified contact. To restart message streaming on that contact, call the StartContactStreaming API.

", @@ -225,10 +238,15 @@ "AgentStatus$AgentStatusARN": "

The Amazon Resource Name (ARN) of the agent status.

", "AgentStatusReference$StatusArn": "

The Amazon Resource Name (ARN) of the agent's status.

", "AgentStatusSummary$Arn": "

The Amazon Resource Name (ARN) for the agent status.

", + "AnalyticsDataAssociationResult$ResourceShareArn": "

The Amazon Resource Name (ARN) of the Resource Access Manager share.

", + "AssociateAnalyticsDataSetResponse$ResourceShareArn": "

The Amazon Resource Name (ARN) of the Resource Access Manager share.

", + "AssociateFlowRequest$ResourceId": "

The identifier of the resource.

", + "AssociateFlowRequest$FlowId": "

The identifier of the flow.

", "ClaimPhoneNumberRequest$TargetArn": "

The Amazon Resource Name (ARN) for Amazon Connect instances or traffic distribution groups that phone number inbound traffic is routed through. You must enter InstanceId or TargetArn.

", "ClaimPhoneNumberResponse$PhoneNumberArn": "

The Amazon Resource Name (ARN) of the phone number.

", "ClaimedPhoneNumberSummary$PhoneNumberArn": "

The Amazon Resource Name (ARN) of the phone number.

", "ClaimedPhoneNumberSummary$TargetArn": "

The Amazon Resource Name (ARN) for Amazon Connect instances or traffic distribution groups that phone number inbound traffic is routed through.

", + "ClaimedPhoneNumberSummary$SourcePhoneNumberArn": "

The claimed phone number ARN that was previously imported from the external service, such as Amazon Pinpoint. If it is from Amazon Pinpoint, it looks like the ARN of the phone number that was imported from Amazon Pinpoint.

", "Contact$Arn": "

The Amazon Resource Name (ARN) for the contact.

", "ContactFlow$Arn": "

The Amazon Resource Name (ARN) of the flow.

", "ContactFlowModule$Arn": "

The Amazon Resource Name (ARN).

", @@ -254,6 +272,7 @@ "CreateVocabularyResponse$VocabularyArn": "

The Amazon Resource Name (ARN) of the custom vocabulary.

", "DeactivateEvaluationFormResponse$EvaluationFormArn": "

The Amazon Resource Name (ARN) for the evaluation form resource.

", "DeleteVocabularyResponse$VocabularyArn": "

The Amazon Resource Name (ARN) of the custom vocabulary.

", + "DisassociateFlowRequest$ResourceId": "

The identifier of the resource.

", "Evaluation$EvaluationArn": "

The Amazon Resource Name (ARN) for the contact evaluation resource.

", "EvaluationForm$EvaluationFormArn": "

The Amazon Resource Name (ARN) for the evaluation form resource.

", "EvaluationForm$CreatedBy": "

The Amazon Resource Name (ARN) of the user who created the evaluation form.

", @@ -272,6 +291,9 @@ "FlowAssociationSummary$ResourceId": "

The identifier of the resource.

", "FlowAssociationSummary$FlowId": "

The identifier of the flow.

", "GetFederationTokenResponse$UserArn": "

The Amazon Resource Name (ARN) of the user.

", + "GetFlowAssociationRequest$ResourceId": "

The identifier of the resource.

", + "GetFlowAssociationResponse$ResourceId": "

The identifier of the resource.

", + "GetFlowAssociationResponse$FlowId": "

The identifier of the flow.

", "GetMetricDataV2Request$ResourceArn": "

The Amazon Resource Name (ARN) of the resource. This includes the instanceId an Amazon Connect instance.

", "HierarchyGroup$Arn": "

The Amazon Resource Name (ARN) of the hierarchy group.

", "HierarchyGroupSummary$Arn": "

The Amazon Resource Name (ARN) of the hierarchy group.

", @@ -279,6 +301,8 @@ "HierarchyLevel$Arn": "

The Amazon Resource Name (ARN) of the hierarchy level.

", "HoursOfOperation$HoursOfOperationArn": "

The Amazon Resource Name (ARN) for the hours of operation.

", "HoursOfOperationSummary$Arn": "

The Amazon Resource Name (ARN) of the hours of operation.

", + "ImportPhoneNumberRequest$SourcePhoneNumberArn": "

The claimed phone number ARN being imported from the external service, such as Amazon Pinpoint. If it is from Amazon Pinpoint, it looks like the ARN of the phone number to import from Amazon Pinpoint.

", + "ImportPhoneNumberResponse$PhoneNumberArn": "

The Amazon Resource Name (ARN) of the phone number.

", "Instance$Arn": "

The Amazon Resource Name (ARN) of the instance.

", "Instance$ServiceRole": "

The service role of the instance.

", "InstanceSummary$Arn": "

The Amazon Resource Name (ARN) of the instance.

", @@ -290,6 +314,7 @@ "ListIntegrationAssociationsRequest$IntegrationArn": "

The Amazon Resource Name (ARN) of the integration.

", "ListPhoneNumbersSummary$PhoneNumberArn": "

The Amazon Resource Name (ARN) of the phone number.

", "ListPhoneNumbersSummary$TargetArn": "

The Amazon Resource Name (ARN) for Amazon Connect instances or traffic distribution groups that phone number inbound traffic is routed through.

", + "ListPhoneNumbersSummary$SourcePhoneNumberArn": "

The claimed phone number ARN that was previously imported from the external service, such as Amazon Pinpoint. If it is from Amazon Pinpoint, it looks like the ARN of the phone number that was imported from Amazon Pinpoint.

", "ListPhoneNumbersV2Request$TargetArn": "

The Amazon Resource Name (ARN) for Amazon Connect instances or traffic distribution groups that phone number inbound traffic is routed through. If both TargetArn and InstanceId input are not provided, this API lists numbers claimed to all the Amazon Connect instances belonging to your account in the same Amazon Web Services Region as the request.

", "ListTagsForResourceRequest$resourceArn": "

The Amazon Resource Name (ARN) of the resource. All Amazon Connect resources (instances, queues, flows, routing profiles, etc) have an ARN. To locate the ARN for an instance, for example, see Find your Amazon Connect instance ID/ARN.

", "MonitorContactResponse$ContactArn": "

The ARN of the contact.

", @@ -338,6 +363,17 @@ "resourceArnListMaxLimit100$member": null } }, + "AWSAccountId": { + "base": null, + "refs": { + "AnalyticsDataAssociationResult$TargetAccountId": "

The identifier of the target account.

", + "AssociateAnalyticsDataSetRequest$TargetAccountId": "

The identifier of the target account. Use to associate a dataset to a different account than the one containing the Amazon Connect instance. If not specified, by default this value is the Amazon Web Services account that has the Amazon Connect instance.

", + "AssociateAnalyticsDataSetResponse$TargetAccountId": "

The identifier of the target account.

", + "BatchAssociateAnalyticsDataSetRequest$TargetAccountId": "

The identifier of the target account. Use to associate a dataset to a different account than the one containing the Amazon Connect instance. If not specified, by default this value is the Amazon Web Services account that has the Amazon Connect instance.

", + "BatchDisassociateAnalyticsDataSetRequest$TargetAccountId": "

The identifier of the target account. Use to disassociate a dataset from a different account than the one containing the Amazon Connect instance. If not specified, by default this value is the Amazon Web Services account that has the Amazon Connect instance.

", + "DisassociateAnalyticsDataSetRequest$TargetAccountId": "

The identifier of the target account. Use to associate a dataset to a different account than the one containing the Amazon Connect instance. If not specified, by default this value is the Amazon Web Services account that has the Amazon Connect instance.

" + } + }, "AccessDeniedException": { "base": "

You do not have sufficient permissions to perform this action.

", "refs": { @@ -546,12 +582,31 @@ "UpdateSecurityProfileRequest$AllowedAccessControlTags": "

The list of tags that a security profile uses to restrict access to resources in Amazon Connect.

" } }, + "AllowedCapabilities": { + "base": "

Information about the capabilities enabled for participants of the contact.

", + "refs": { + "StartWebRTCContactRequest$AllowedCapabilities": "

Information about the video sharing capabilities of the participants (customer, agent).

" + } + }, "AllowedMonitorCapabilities": { "base": null, "refs": { "MonitorContactRequest$AllowedMonitorCapabilities": "

Specify which monitoring actions the user is allowed to take. For example, whether the user is allowed to escalate from silent monitoring to barge.

" } }, + "AnalyticsDataAssociationResult": { + "base": "

This API is in preview release for Amazon Connect and is subject to change.

Information about associations that are successfully created: DataSetId, TargetAccountId, ResourceShareId, ResourceShareArn.

", + "refs": { + "AnalyticsDataAssociationResults$member": null + } + }, + "AnalyticsDataAssociationResults": { + "base": null, + "refs": { + "BatchAssociateAnalyticsDataSetResponse$Created": "

Information about associations that are successfully created: DataSetId, TargetAccountId, ResourceShareId, ResourceShareArn.

", + "ListAnalyticsDataAssociationsResponse$Results": "

An array of successful results: DataSetId, TargetAccountId, ResourceShareId, ResourceShareArn. This is a paginated API, so nextToken is given if there are more results to be returned.

" + } + }, "AnswerMachineDetectionConfig": { "base": "

Configuration of the answering machine detection.

", "refs": { @@ -592,10 +647,32 @@ "SearchUsersResponse$ApproximateTotalCount": "

The total number of users who matched your search query.

" } }, + "ArtifactId": { + "base": null, + "refs": { + "RealTimeContactAnalysisAttachment$AttachmentId": "

A unique identifier for the attachment.

" + } + }, + "ArtifactStatus": { + "base": null, + "refs": { + "RealTimeContactAnalysisAttachment$Status": "

Status of the attachment.

" + } + }, "AssignContactCategoryActionDefinition": { - "base": "

This action must be set if TriggerEventSource is one of the following values: OnPostCallAnalysisAvailable | OnRealTimeCallAnalysisAvailable | OnPostChatAnalysisAvailable. Contact is categorized using the rule name.

RuleName is used as ContactCategory.

", + "base": "

This action must be set if TriggerEventSource is one of the following values: OnPostCallAnalysisAvailable | OnRealTimeCallAnalysisAvailable | OnRealTimeChatAnalysisAvailable | OnPostChatAnalysisAvailable. Contact is categorized using the rule name.

RuleName is used as ContactCategory.

", + "refs": { + "RuleAction$AssignContactCategoryAction": "

Information about the contact category action.

Supported only for TriggerEventSource values: OnPostCallAnalysisAvailable | OnRealTimeCallAnalysisAvailable | OnRealTimeChatAnalysisAvailable | OnPostChatAnalysisAvailable | OnZendeskTicketCreate | OnZendeskTicketStatusUpdate | OnSalesforceCaseCreate

" + } + }, + "AssociateAnalyticsDataSetRequest": { + "base": null, + "refs": { + } + }, + "AssociateAnalyticsDataSetResponse": { + "base": null, "refs": { - "RuleAction$AssignContactCategoryAction": "

Information about the contact category action.

Supported only for TriggerEventSource values: OnPostCallAnalysisAvailable | OnRealTimeCallAnalysisAvailable | OnPostChatAnalysisAvailable | OnZendeskTicketCreate | OnZendeskTicketStatusUpdate | OnSalesforceCaseCreate

" } }, "AssociateApprovedOriginRequest": { @@ -618,6 +695,16 @@ "refs": { } }, + "AssociateFlowRequest": { + "base": null, + "refs": { + } + }, + "AssociateFlowResponse": { + "base": null, + "refs": { + } + }, "AssociateInstanceStorageConfigRequest": { "base": null, "refs": { @@ -686,12 +773,30 @@ "UpdateInstanceStorageConfigRequest$AssociationId": "

The existing association identifier that uniquely identifies the resource type and storage config for the given instance ID.

" } }, + "AttachmentName": { + "base": null, + "refs": { + "RealTimeContactAnalysisAttachment$AttachmentName": "

A case-sensitive name of the attachment being uploaded. Can be redacted.

" + } + }, "AttachmentReference": { "base": "

Information about a reference when the referenceType is ATTACHMENT. Otherwise, null.

", "refs": { "ReferenceSummary$Attachment": "

Information about the reference when the referenceType is ATTACHMENT. Otherwise, null.

" } }, + "Attendee": { + "base": "

The attendee information, including attendee ID and join token.

", + "refs": { + "ConnectionData$Attendee": "

The attendee information, including attendee ID and join token.

" + } + }, + "AttendeeId": { + "base": null, + "refs": { + "Attendee$AttendeeId": "

The Amazon Chime SDK attendee ID.

" + } + }, "Attribute": { "base": "

A toggle for an individual feature at the instance level.

", "refs": { @@ -716,9 +821,11 @@ "refs": { "ContactDataRequest$Attributes": "

List of attributes to be stored in a contact.

", "GetContactAttributesResponse$Attributes": "

Information about the attributes.

", + "NewSessionDetails$Attributes": "

A custom key-value pair using an attribute map. The attributes are standard Amazon Connect attributes. They can be accessed in flows just like any other contact attributes.

There can be up to 32,768 UTF-8 bytes across all key-value pairs per contact. Attribute keys can include only alphanumeric, dash, and underscore characters.

", "StartChatContactRequest$Attributes": "

A custom key-value pair using an attribute map. The attributes are standard Amazon Connect attributes. They can be accessed in flows just like any other contact attributes.

There can be up to 32,768 UTF-8 bytes across all key-value pairs per contact. Attribute keys can include only alphanumeric, dash, and underscore characters.

", "StartOutboundVoiceContactRequest$Attributes": "

A custom key-value pair using an attribute map. The attributes are standard Amazon Connect attributes, and can be accessed in flows just like any other contact attributes.

There can be up to 32,768 UTF-8 bytes across all key-value pairs per contact. Attribute keys can include only alphanumeric, dash, and underscore characters.

", "StartTaskContactRequest$Attributes": "

A custom key-value pair using an attribute map. The attributes are standard Amazon Connect attributes, and can be accessed in flows just like any other contact attributes.

There can be up to 32,768 UTF-8 bytes across all key-value pairs per contact. Attribute keys can include only alphanumeric, dash, and underscore characters.

", + "StartWebRTCContactRequest$Attributes": "

A custom key-value pair using an attribute map. The attributes are standard Amazon Connect attributes, and can be accessed in flows just like any other contact attributes.

There can be up to 32,768 UTF-8 bytes across all key-value pairs per contact. Attribute keys can include only alphanumeric, -, and _ characters.

", "UpdateContactAttributesRequest$Attributes": "

The Amazon Connect attributes. These attributes can be accessed in flows just like any other contact attributes.

You can have up to 32,768 UTF-8 bytes across all attributes for a contact. Attribute keys can include only alphanumeric, dash, and underscore characters.

" } }, @@ -728,6 +835,12 @@ "ListInstanceAttributesResponse$Attributes": "

The attribute types.

" } }, + "AudioFeatures": { + "base": "

Has audio-specific configurations as the operating parameter for Echo Reduction.

", + "refs": { + "MeetingFeaturesConfiguration$Audio": "

The configuration settings for the audio features available to a meeting.

" + } + }, "AutoAccept": { "base": null, "refs": { @@ -754,6 +867,26 @@ "SignInDistribution$Region": "

The Amazon Web Services Region of the sign in distribution.

" } }, + "BatchAssociateAnalyticsDataSetRequest": { + "base": null, + "refs": { + } + }, + "BatchAssociateAnalyticsDataSetResponse": { + "base": null, + "refs": { + } + }, + "BatchDisassociateAnalyticsDataSetRequest": { + "base": null, + "refs": { + } + }, + "BatchDisassociateAnalyticsDataSetResponse": { + "base": null, + "refs": { + } + }, "BatchGetFlowAssociationRequest": { "base": null, "refs": { @@ -861,12 +994,14 @@ "ChatContent": { "base": null, "refs": { + "ChatEvent$Content": "

Content of the message or event. This is required when Type is MESSAGE and for certain ContentTypes when Type is EVENT.

", "ChatMessage$Content": "

The content of the chat message.

" } }, "ChatContentType": { "base": null, "refs": { + "ChatEvent$ContentType": "

Type of content. This is required when Type is MESSAGE or EVENT.

", "ChatMessage$ContentType": "

The type of the content. Supported types are text/plain, text/markdown, application/json, and application/vnd.amazonaws.connect.message.interactive.response.

" } }, @@ -876,6 +1011,18 @@ "StartChatContactRequest$ChatDurationInMinutes": "

The total duration of the newly started chat session. If not specified, the chat session duration defaults to 25 hour. The minimum configurable time is 60 minutes. The maximum configurable time is 10,080 minutes (7 days).

" } }, + "ChatEvent": { + "base": "

Chat integration event containing payload to perform different chat actions such as:

", + "refs": { + "SendChatIntegrationEventRequest$Event": "

Chat integration event payload

" + } + }, + "ChatEventType": { + "base": null, + "refs": { + "ChatEvent$Type": "

Type of chat integration event.

" + } + }, "ChatMessage": { "base": "

A chat message.

", "refs": { @@ -891,6 +1038,7 @@ "ChatStreamingConfiguration": { "base": "

The streaming configuration, such as the Amazon SNS streaming endpoint.

", "refs": { + "NewSessionDetails$StreamingConfiguration": null, "StartContactStreamingRequest$ChatStreamingConfiguration": "

The streaming configuration, such as the Amazon SNS streaming endpoint.

" } }, @@ -930,6 +1078,7 @@ "CreateTaskTemplateRequest$ClientToken": "

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.

", "CreateTrafficDistributionGroupRequest$ClientToken": "

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.

", "CreateVocabularyRequest$ClientToken": "

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. If a create request is received more than once with same client token, subsequent requests return the previous response without creating a vocabulary again.

", + "ImportPhoneNumberRequest$ClientToken": "

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.

", "MonitorContactRequest$ClientToken": "

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.

", "ReleasePhoneNumberRequest$ClientToken": "

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.

", "ReplicateInstanceRequest$ClientToken": "

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.

", @@ -938,6 +1087,7 @@ "StartContactStreamingRequest$ClientToken": "

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.

", "StartOutboundVoiceContactRequest$ClientToken": "

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. The token is valid for 7 days after creation. If a contact is already started, the contact ID is returned.

", "StartTaskContactRequest$ClientToken": "

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.

", + "StartWebRTCContactRequest$ClientToken": "

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.

The token is valid for 7 days after creation. If a contact is already started, the contact ID is returned.

", "TransferContactRequest$ClientToken": "

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.

", "UpdateEvaluationFormRequest$ClientToken": "

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.

", "UpdatePhoneNumberMetadataRequest$ClientToken": "

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.

", @@ -970,6 +1120,12 @@ "MediaConcurrency$Concurrency": "

The number of contacts an agent can have on a channel simultaneously.

Valid Range for VOICE: Minimum value of 1. Maximum value of 1.

Valid Range for CHAT: Minimum value of 1. Maximum value of 10.

Valid Range for TASK: Minimum value of 1. Maximum value of 10.

" } }, + "ConnectionData": { + "base": "

Information required to join the call.

", + "refs": { + "StartWebRTCContactResponse$ConnectionData": "

Information required for the client application (mobile application or website) to connect to the call.

" + } + }, "Contact": { "base": "

Contains information about a contact.

", "refs": { @@ -1030,9 +1186,10 @@ "GetTaskTemplateResponse$ContactFlowId": "

The identifier of the flow that runs by default when a task is created by referencing this template.

", "OutboundCallerConfig$OutboundFlowId": "

The outbound whisper flow to be used during an outbound call.

", "QueueQuickConnectConfig$ContactFlowId": "

The identifier of the flow.

", - "StartChatContactRequest$ContactFlowId": "

The identifier of the flow for initiating the chat. To see the ContactFlowId in the Amazon Connect console user interface, on the navigation menu go to Routing, Contact Flows. Choose the flow. On the flow page, under the name of the flow, choose Show additional flow information. The ContactFlowId is the last part of the ARN, shown here in bold:

arn:aws:connect:us-west-2:xxxxxxxxxxxx:instance/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/contact-flow/846ec553-a005-41c0-8341-xxxxxxxxxxxx

", - "StartOutboundVoiceContactRequest$ContactFlowId": "

The identifier of the flow for the outbound call. To see the ContactFlowId in the Amazon Connect console user interface, on the navigation menu go to Routing, Contact Flows. Choose the flow. On the flow page, under the name of the flow, choose Show additional flow information. The ContactFlowId is the last part of the ARN, shown here in bold:

arn:aws:connect:us-west-2:xxxxxxxxxxxx:instance/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/contact-flow/846ec553-a005-41c0-8341-xxxxxxxxxxxx

", - "StartTaskContactRequest$ContactFlowId": "

The identifier of the flow for initiating the tasks. To see the ContactFlowId in the Amazon Connect console user interface, on the navigation menu go to Routing, Contact Flows. Choose the flow. On the flow page, under the name of the flow, choose Show additional flow information. The ContactFlowId is the last part of the ARN, shown here in bold:

arn:aws:connect:us-west-2:xxxxxxxxxxxx:instance/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/contact-flow/846ec553-a005-41c0-8341-xxxxxxxxxxxx

", + "StartChatContactRequest$ContactFlowId": "

The identifier of the flow for initiating the chat. To see the ContactFlowId in the Amazon Connect admin website, on the navigation menu go to Routing, Contact Flows. Choose the flow. On the flow page, under the name of the flow, choose Show additional flow information. The ContactFlowId is the last part of the ARN, shown here in bold:

arn:aws:connect:us-west-2:xxxxxxxxxxxx:instance/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/contact-flow/846ec553-a005-41c0-8341-xxxxxxxxxxxx

", + "StartOutboundVoiceContactRequest$ContactFlowId": "

The identifier of the flow for the outbound call. To see the ContactFlowId in the Amazon Connect admin website, on the navigation menu go to Routing, Contact Flows. Choose the flow. On the flow page, under the name of the flow, choose Show additional flow information. The ContactFlowId is the last part of the ARN, shown here in bold:

arn:aws:connect:us-west-2:xxxxxxxxxxxx:instance/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/contact-flow/846ec553-a005-41c0-8341-xxxxxxxxxxxx

", + "StartTaskContactRequest$ContactFlowId": "

The identifier of the flow for initiating the tasks. To see the ContactFlowId in the Amazon Connect admin website, on the navigation menu go to Routing, Contact Flows. Choose the flow. On the flow page, under the name of the flow, choose Show additional flow information. The ContactFlowId is the last part of the ARN, shown here in bold:

arn:aws:connect:us-west-2:xxxxxxxxxxxx:instance/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/contact-flow/846ec553-a005-41c0-8341-xxxxxxxxxxxx

", + "StartWebRTCContactRequest$ContactFlowId": "

The identifier of the flow for the call. To see the ContactFlowId in the Amazon Connect admin website, on the navigation menu go to Routing, Contact Flows. Choose the flow. On the flow page, under the name of the flow, choose Show additional flow information. The ContactFlowId is the last part of the ARN, shown here in bold:

arn:aws:connect:us-west-2:xxxxxxxxxxxx:instance/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/contact-flow/846ec553-a005-41c0-8341-xxxxxxxxxxxx

", "TaskActionDefinition$ContactFlowId": "

The identifier of the flow.

", "TransferContactRequest$ContactFlowId": "

The identifier of the flow.

", "UpdateContactFlowContentRequest$ContactFlowId": "

The identifier of the flow.

", @@ -1181,11 +1338,13 @@ "GetContactAttributesRequest$InitialContactId": "

The identifier of the initial contact.

", "ListContactEvaluationsRequest$ContactId": "

The identifier of the contact in this instance of Amazon Connect.

", "ListContactReferencesRequest$ContactId": "

The identifier of the initial contact.

", + "ListRealtimeContactAnalysisSegmentsV2Request$ContactId": "

The identifier of the contact in this instance of Amazon Connect.

", "MonitorContactRequest$ContactId": "

The identifier of the contact.

", "MonitorContactResponse$ContactId": "

The identifier of the contact.

", "PersistentChat$SourceContactId": "

The contactId from which a persistent chat session must be started.

", "ResumeContactRecordingRequest$ContactId": "

The identifier of the contact.

", "ResumeContactRecordingRequest$InitialContactId": "

The identifier of the contact. This is the identifier of the contact associated with the first interaction with the contact center.

", + "SendChatIntegrationEventResponse$InitialContactId": "

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

", "StartChatContactRequest$RelatedContactId": "

The unique identifier for an Amazon Connect contact. This identifier is related to the chat starting.

You cannot provide data for both RelatedContactId and PersistentChat.

", "StartChatContactResponse$ContactId": "

The identifier of this contact within the Amazon Connect instance.

", "StartChatContactResponse$ContinuedFromContactId": "

The contactId from which a persistent chat session is started. This field is populated only for persistent chats.

", @@ -1197,6 +1356,8 @@ "StartTaskContactRequest$PreviousContactId": "

The identifier of the previous chat, voice, or task contact. Any updates to user-defined attributes to task contacts linked using the same PreviousContactID will affect every contact in the chain. There can be a maximum of 12 linked task contacts in a chain.

", "StartTaskContactRequest$RelatedContactId": "

The contactId that is related to this contact. Linking tasks together by using RelatedContactID copies over contact attributes from the related task contact to the new task contact. All updates to user-defined attributes in the new task contact are limited to the individual contact ID, unlike what happens when tasks are linked by using PreviousContactID. There are no limits to the number of contacts that can be linked by using RelatedContactId.

", "StartTaskContactResponse$ContactId": "

The identifier of this contact within the Amazon Connect instance.

", + "StartWebRTCContactRequest$RelatedContactId": "

The unique identifier for an Amazon Connect contact. This identifier is related to the contact starting.

", + "StartWebRTCContactResponse$ContactId": "

The identifier of the contact in this instance of Amazon Connect.

", "StopContactRecordingRequest$ContactId": "

The identifier of the contact.

", "StopContactRecordingRequest$InitialContactId": "

The identifier of the contact. This is the identifier of the contact associated with the first interaction with the contact center.

", "StopContactRequest$ContactId": "

The ID of the contact.

", @@ -1228,6 +1389,7 @@ "base": null, "refs": { "StartTaskContactRequest$References": "

A formatted URL that is shown to an agent in the Contact Control Panel (CCP). Tasks can have the following reference types at the time of creation: URL | NUMBER | STRING | DATE | EMAIL. ATTACHMENT is not a supported reference type during task creation.

", + "StartWebRTCContactRequest$References": "

A formatted URL that is shown to an agent in the Contact Control Panel (CCP). Tasks can have the following reference types at the time of creation: URL | NUMBER | STRING | DATE | EMAIL. ATTACHMENT is not a supported reference type during task creation.

", "TaskActionDefinition$References": "

Information about the reference when the referenceType is URL. Otherwise, null. (Supports variable injection in the Value field.)

", "UpdateContactRequest$References": "

Well-formed data on contact, shown to agents on Contact Control Panel (CCP).

" } @@ -1251,6 +1413,12 @@ "SendNotificationActionDefinition$Content": "

Notification content. Supports variable injection. For more information, see JSONPath reference in the Amazon Connect Administrators Guide.

" } }, + "ContentType": { + "base": null, + "refs": { + "RealTimeContactAnalysisAttachment$ContentType": "

Describes the MIME file type of the attachment. For a list of supported file types, see Feature specifications in the Amazon Connect Administrator Guide.

" + } + }, "ControlPlaneTagFilter": { "base": "

An object that can be used to specify Tag conditions inside the SearchFilter. This accepts an OR of AND (List of List) input where:

", "refs": { @@ -1567,6 +1735,25 @@ "GetCurrentMetricDataRequest$CurrentMetrics": "

The metrics to retrieve. Specify the name and unit for each metric. The following metrics are available. For a description of all the metrics, see Real-time Metrics Definitions in the Amazon Connect Administrator Guide.

AGENTS_AFTER_CONTACT_WORK

Unit: COUNT

Name in real-time metrics report: ACW

AGENTS_AVAILABLE

Unit: COUNT

Name in real-time metrics report: Available

AGENTS_ERROR

Unit: COUNT

Name in real-time metrics report: Error

AGENTS_NON_PRODUCTIVE

Unit: COUNT

Name in real-time metrics report: NPT (Non-Productive Time)

AGENTS_ON_CALL

Unit: COUNT

Name in real-time metrics report: On contact

AGENTS_ON_CONTACT

Unit: COUNT

Name in real-time metrics report: On contact

AGENTS_ONLINE

Unit: COUNT

Name in real-time metrics report: Online

AGENTS_STAFFED

Unit: COUNT

Name in real-time metrics report: Staffed

CONTACTS_IN_QUEUE

Unit: COUNT

Name in real-time metrics report: In queue

CONTACTS_SCHEDULED

Unit: COUNT

Name in real-time metrics report: Scheduled

OLDEST_CONTACT_AGE

Unit: SECONDS

When you use groupings, Unit says SECONDS and the Value is returned in SECONDS.

When you do not use groupings, Unit says SECONDS but the Value is returned in MILLISECONDS. For example, if you get a response like this:

{ \"Metric\": { \"Name\": \"OLDEST_CONTACT_AGE\", \"Unit\": \"SECONDS\" }, \"Value\": 24113.0 }

The actual OLDEST_CONTACT_AGE is 24 seconds.

Name in real-time metrics report: Oldest

SLOTS_ACTIVE

Unit: COUNT

Name in real-time metrics report: Active

SLOTS_AVAILABLE

Unit: COUNT

Name in real-time metrics report: Availability

" } }, + "DataSetId": { + "base": null, + "refs": { + "AnalyticsDataAssociationResult$DataSetId": "

The identifier of the dataset.

", + "AssociateAnalyticsDataSetRequest$DataSetId": "

The identifier of the dataset to associate with the target account.

", + "AssociateAnalyticsDataSetResponse$DataSetId": "

The identifier of the dataset that was associated.

", + "DataSetIds$member": null, + "DisassociateAnalyticsDataSetRequest$DataSetId": "

The identifier of the dataset to remove.

", + "ListAnalyticsDataAssociationsRequest$DataSetId": "

The identifier of the dataset to get the association status.

" + } + }, + "DataSetIds": { + "base": null, + "refs": { + "BatchAssociateAnalyticsDataSetRequest$DataSetIds": "

An array of dataset identifiers to associate.

", + "BatchDisassociateAnalyticsDataSetRequest$DataSetIds": "

An array of associated dataset identifiers to remove.

", + "BatchDisassociateAnalyticsDataSetResponse$Deleted": "

An array of successfully disassociated dataset identifiers.

" + } + }, "DateReference": { "base": "

Information about a reference when the referenceType is DATE. Otherwise, null.

", "refs": { @@ -1977,6 +2164,7 @@ "refs": { "Contact$Description": "

The description of the contact.

", "StartTaskContactRequest$Description": "

A description of the task that is shown to an agent in the Contact Control Panel (CCP).

", + "StartWebRTCContactRequest$Description": "

A description of the task that is shown to an agent in the Contact Control Panel (CCP).

", "UpdateContactRequest$Description": "

The description of the contact.

" } }, @@ -1987,6 +2175,12 @@ "TrafficDistributionGroup$Description": "

The description of the traffic distribution group.

" } }, + "DestinationId": { + "base": null, + "refs": { + "SendChatIntegrationEventRequest$DestinationId": "

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

" + } + }, "DestinationNotAllowedException": { "base": "

Outbound calls to the destination number are not allowed.

", "refs": { @@ -2048,6 +2242,11 @@ "UserSearchSummary$DirectoryUserId": "

The directory identifier of the user.

" } }, + "DisassociateAnalyticsDataSetRequest": { + "base": null, + "refs": { + } + }, "DisassociateApprovedOriginRequest": { "base": null, "refs": { @@ -2058,6 +2257,16 @@ "refs": { } }, + "DisassociateFlowRequest": { + "base": null, + "refs": { + } + }, + "DisassociateFlowResponse": { + "base": null, + "refs": { + } + }, "DisassociateInstanceStorageConfigRequest": { "base": null, "refs": { @@ -2129,7 +2338,10 @@ "base": null, "refs": { "ParticipantDetails$DisplayName": "

Display name of the participant.

", - "ParticipantDetailsToAdd$DisplayName": "

The display name of the participant.

" + "ParticipantDetailsToAdd$DisplayName": "

The display name of the participant.

", + "RealTimeContactAnalysisSegmentAttachments$DisplayName": "

The display name of the participant. Can be redacted.

", + "RealTimeContactAnalysisSegmentEvent$DisplayName": "

The display name of the participant. Can be redacted.

", + "RealTimeContactAnalysisSegmentTranscript$DisplayName": "

The display name of the participant.

" } }, "Distribution": { @@ -2195,6 +2407,19 @@ "Endpoint$Type": "

Type of the endpoint.

" } }, + "ErrorResult": { + "base": "

This API is in preview release for Amazon Connect and is subject to change.

List of errors for dataset association failures.

", + "refs": { + "ErrorResults$member": null + } + }, + "ErrorResults": { + "base": null, + "refs": { + "BatchAssociateAnalyticsDataSetResponse$Errors": "

A list of errors for datasets that aren't successfully associated with the target account.

", + "BatchDisassociateAnalyticsDataSetResponse$Errors": "

A list of errors for any datasets not successfully removed.

" + } + }, "Evaluation": { "base": "

Information about a contact evaluation.

", "refs": { @@ -2550,7 +2775,7 @@ "EventBridgeActionDefinition": { "base": "

The EventBridge action definition.

", "refs": { - "RuleAction$EventBridgeAction": "

Information about the EventBridge action.

Supported only for TriggerEventSource values: OnPostCallAnalysisAvailable | OnRealTimeCallAnalysisAvailable | OnPostChatAnalysisAvailable | OnContactEvaluationSubmit | OnMetricDataUpdate

" + "RuleAction$EventBridgeAction": "

Information about the EventBridge action.

Supported only for TriggerEventSource values: OnPostCallAnalysisAvailable | OnRealTimeCallAnalysisAvailable | OnRealTimeChatAnalysisAvailable | OnPostChatAnalysisAvailable | OnContactEvaluationSubmit | OnMetricDataUpdate

" } }, "EventBridgeActionName": { @@ -2607,7 +2832,16 @@ "FiltersV2List": { "base": null, "refs": { - "GetMetricDataV2Request$Filters": "

The filters to apply to returned metrics. You can filter on the following resources:

At least one filter must be passed from queues, routing profiles, agents, or user hierarchy groups.

To filter by phone number, see Create a historical metrics report in the Amazon Connect Administrator's Guide.

Note the following limits:

" + "GetMetricDataV2Request$Filters": "

The filters to apply to returned metrics. You can filter on the following resources:

At least one filter must be passed from queues, routing profiles, agents, or user hierarchy groups.

To filter by phone number, see Create a historical metrics report in the Amazon Connect Administrator's Guide.

Note the following limits:

" + } + }, + "FlowAssociationResourceType": { + "base": null, + "refs": { + "AssociateFlowRequest$ResourceType": "

A valid resource type.

", + "DisassociateFlowRequest$ResourceType": "

A valid resource type.

", + "GetFlowAssociationRequest$ResourceType": "

A valid resource type.

", + "GetFlowAssociationResponse$ResourceType": "

A valid resource type.

" } }, "FlowAssociationSummary": { @@ -2619,7 +2853,8 @@ "FlowAssociationSummaryList": { "base": null, "refs": { - "BatchGetFlowAssociationResponse$FlowAssociationSummaryList": "

Information about flow associations.

" + "BatchGetFlowAssociationResponse$FlowAssociationSummaryList": "

Information about flow associations.

", + "ListFlowAssociationsResponse$FlowAssociationSummaryList": "

Summary of flow associations.

" } }, "FunctionArn": { @@ -2676,6 +2911,16 @@ "refs": { } }, + "GetFlowAssociationRequest": { + "base": null, + "refs": { + } + }, + "GetFlowAssociationResponse": { + "base": null, + "refs": { + } + }, "GetMetricDataRequest": { "base": null, "refs": { @@ -2748,7 +2993,7 @@ "GroupingsV2": { "base": null, "refs": { - "GetMetricDataV2Request$Groupings": "

The grouping applied to the metrics that are returned. For example, when results are grouped by queue, the metrics returned are grouped by queue. The values that are returned apply to the metrics for each queue. They are not aggregated for all queues.

If no grouping is specified, a summary of all metrics is returned.

Valid grouping keys: QUEUE | ROUTING_PROFILE | AGENT | CHANNEL | AGENT_HIERARCHY_LEVEL_ONE | AGENT_HIERARCHY_LEVEL_TWO | AGENT_HIERARCHY_LEVEL_THREE | AGENT_HIERARCHY_LEVEL_FOUR | AGENT_HIERARCHY_LEVEL_FIVE

" + "GetMetricDataV2Request$Groupings": "

The grouping applied to the metrics that are returned. For example, when results are grouped by queue, the metrics returned are grouped by queue. The values that are returned apply to the metrics for each queue. They are not aggregated for all queues.

If no grouping is specified, a summary of all metrics is returned.

Valid grouping keys: QUEUE | ROUTING_PROFILE | AGENT | CHANNEL | AGENT_HIERARCHY_LEVEL_ONE | AGENT_HIERARCHY_LEVEL_TWO | AGENT_HIERARCHY_LEVEL_THREE | AGENT_HIERARCHY_LEVEL_FOUR | AGENT_HIERARCHY_LEVEL_FIVE, contact/segmentAttributes/connect:Subtype

" } }, "HierarchyGroup": { @@ -3046,6 +3291,16 @@ "refs": { } }, + "ImportPhoneNumberRequest": { + "base": null, + "refs": { + } + }, + "ImportPhoneNumberResponse": { + "base": null, + "refs": { + } + }, "InboundCallsEnabled": { "base": null, "refs": { @@ -3086,9 +3341,11 @@ "base": null, "refs": { "ActivateEvaluationFormRequest$InstanceId": "

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "AssociateAnalyticsDataSetRequest$InstanceId": "

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "AssociateApprovedOriginRequest$InstanceId": "

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "AssociateBotRequest$InstanceId": "

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "AssociateDefaultVocabularyRequest$InstanceId": "

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "AssociateFlowRequest$InstanceId": "

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "AssociateInstanceStorageConfigRequest$InstanceId": "

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "AssociateLambdaFunctionRequest$InstanceId": "

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "AssociateLexBotRequest$InstanceId": "

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", @@ -3097,6 +3354,8 @@ "AssociateRoutingProfileQueuesRequest$InstanceId": "

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "AssociateSecurityKeyRequest$InstanceId": "

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "AssociateTrafficDistributionGroupUserRequest$InstanceId": "

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "BatchAssociateAnalyticsDataSetRequest$InstanceId": "

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "BatchDisassociateAnalyticsDataSetRequest$InstanceId": "

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "BatchGetFlowAssociationRequest$InstanceId": "

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "BatchPutContactRequest$InstanceId": "

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "ClaimPhoneNumberRequest$InstanceId": "

The identifier of the Amazon Connect instance that phone numbers are claimed to. You can find the instance ID in the Amazon Resource Name (ARN) of the instance. You must enter InstanceId or TargetArn.

", @@ -3161,8 +3420,10 @@ "DescribeUserHierarchyStructureRequest$InstanceId": "

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "DescribeUserRequest$InstanceId": "

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "DescribeVocabularyRequest$InstanceId": "

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "DisassociateAnalyticsDataSetRequest$InstanceId": "

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "DisassociateApprovedOriginRequest$InstanceId": "

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "DisassociateBotRequest$InstanceId": "

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "DisassociateFlowRequest$InstanceId": "

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "DisassociateInstanceStorageConfigRequest$InstanceId": "

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "DisassociateLambdaFunctionRequest$InstanceId": "

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance..

", "DisassociateLexBotRequest$InstanceId": "

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", @@ -3176,14 +3437,17 @@ "GetCurrentMetricDataRequest$InstanceId": "

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "GetCurrentUserDataRequest$InstanceId": "

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "GetFederationTokenRequest$InstanceId": "

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "GetFlowAssociationRequest$InstanceId": "

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "GetMetricDataRequest$InstanceId": "

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "GetPromptFileRequest$InstanceId": "

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "GetTaskTemplateRequest$InstanceId": "

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "GetTaskTemplateResponse$InstanceId": "

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "ImportPhoneNumberRequest$InstanceId": "

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "Instance$Id": "

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "InstanceSummary$Id": "

The identifier of the instance.

", "IntegrationAssociationSummary$InstanceId": "

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "ListAgentStatusRequest$InstanceId": "

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "ListAnalyticsDataAssociationsRequest$InstanceId": "

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "ListApprovedOriginsRequest$InstanceId": "

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "ListBotsRequest$InstanceId": "

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "ListContactEvaluationsRequest$InstanceId": "

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", @@ -3193,6 +3457,7 @@ "ListDefaultVocabulariesRequest$InstanceId": "

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "ListEvaluationFormVersionsRequest$InstanceId": "

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "ListEvaluationFormsRequest$InstanceId": "

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "ListFlowAssociationsRequest$InstanceId": "

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "ListHoursOfOperationsRequest$InstanceId": "

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "ListInstanceAttributesRequest$InstanceId": "

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "ListInstanceStorageConfigsRequest$InstanceId": "

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", @@ -3206,6 +3471,7 @@ "ListQueueQuickConnectsRequest$InstanceId": "

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "ListQueuesRequest$InstanceId": "

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "ListQuickConnectsRequest$InstanceId": "

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "ListRealtimeContactAnalysisSegmentsV2Request$InstanceId": "

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "ListRoutingProfileQueuesRequest$InstanceId": "

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "ListRoutingProfilesRequest$InstanceId": "

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "ListRulesRequest$InstanceId": "

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", @@ -3239,6 +3505,7 @@ "StartContactStreamingRequest$InstanceId": "

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "StartOutboundVoiceContactRequest$InstanceId": "

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "StartTaskContactRequest$InstanceId": "

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "StartWebRTCContactRequest$InstanceId": "

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "StopContactRecordingRequest$InstanceId": "

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "StopContactRequest$InstanceId": "

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", "StopContactStreamingRequest$InstanceId": "

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", @@ -3443,6 +3710,12 @@ "TaskTemplateConstraints$InvisibleFields": "

Lists the fields that are invisible to agents.

" } }, + "JoinToken": { + "base": null, + "refs": { + "Attendee$JoinToken": "

The join token used by the Amazon Chime SDK attendee.

" + } + }, "KeyId": { "base": null, "refs": { @@ -3472,6 +3745,8 @@ "refs": { "ListPhoneNumbersV2Request$NextToken": "

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.

", "ListPhoneNumbersV2Response$NextToken": "

If there are additional results, this is the token for the next set of results.

", + "ListRealtimeContactAnalysisSegmentsV2Request$NextToken": "

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.

", + "ListRealtimeContactAnalysisSegmentsV2Response$NextToken": "

If there are additional results, this is the token for the next set of results.

", "SearchAvailablePhoneNumbersRequest$NextToken": "

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.

", "SearchAvailablePhoneNumbersResponse$NextToken": "

If there are additional results, this is the token for the next set of results.

" } @@ -3540,6 +3815,16 @@ "refs": { } }, + "ListAnalyticsDataAssociationsRequest": { + "base": null, + "refs": { + } + }, + "ListAnalyticsDataAssociationsResponse": { + "base": null, + "refs": { + } + }, "ListApprovedOriginsRequest": { "base": null, "refs": { @@ -3634,7 +3919,18 @@ "base": null, "refs": { "BatchGetFlowAssociationRequest$ResourceType": "

The type of resource association.

", - "FlowAssociationSummary$ResourceType": "

The type of resource association.

" + "FlowAssociationSummary$ResourceType": "

The type of resource association.

", + "ListFlowAssociationsRequest$ResourceType": "

A valid resource type.

" + } + }, + "ListFlowAssociationsRequest": { + "base": null, + "refs": { + } + }, + "ListFlowAssociationsResponse": { + "base": null, + "refs": { } }, "ListHoursOfOperationsRequest": { @@ -3779,6 +4075,16 @@ "refs": { } }, + "ListRealtimeContactAnalysisSegmentsV2Request": { + "base": null, + "refs": { + } + }, + "ListRealtimeContactAnalysisSegmentsV2Response": { + "base": null, + "refs": { + } + }, "ListRoutingProfileQueuesRequest": { "base": null, "refs": { @@ -3968,6 +4274,7 @@ "ListEvaluationFormsRequest$MaxResults": "

The maximum number of results to return per page.

", "ListIntegrationAssociationsRequest$MaxResults": "

The maximum number of results to return per page.

", "ListQueueQuickConnectsRequest$MaxResults": "

The maximum number of results to return per page. The default MaxResult size is 100.

", + "ListRealtimeContactAnalysisSegmentsV2Request$MaxResults": "

The maximum number of results to return per page.

", "ListRoutingProfileQueuesRequest$MaxResults": "

The maximum number of results to return per page. The default MaxResult size is 100.

", "ListTaskTemplatesRequest$MaxResults": "

The maximum number of results to return per page.

It is not expected that you set this.

", "ListUseCasesRequest$MaxResults": "

The maximum number of results to return per page.

", @@ -3986,8 +4293,10 @@ "base": null, "refs": { "ListAgentStatusRequest$MaxResults": "

The maximum number of results to return per page.

", + "ListAnalyticsDataAssociationsRequest$MaxResults": "

The maximum number of results to return per page.

", "ListContactFlowModulesRequest$MaxResults": "

The maximum number of results to return per page.

", "ListContactFlowsRequest$MaxResults": "

The maximum number of results to return per page. The default MaxResult size is 100.

", + "ListFlowAssociationsRequest$MaxResults": "

The maximum number of results to return per page.

", "ListHoursOfOperationsRequest$MaxResults": "

The maximum number of results to return per page. The default MaxResult size is 100.

", "ListPhoneNumbersRequest$MaxResults": "

The maximum number of results to return per page. The default MaxResult size is 100.

", "ListPhoneNumbersV2Request$MaxResults": "

The maximum number of results to return per page.

", @@ -4055,6 +4364,42 @@ "MediaConcurrencies$member": null } }, + "MediaPlacement": { + "base": "

A set of endpoints used by clients to connect to the media service group for an Amazon Chime SDK meeting.

", + "refs": { + "Meeting$MediaPlacement": "

The media placement for the meeting.

" + } + }, + "MediaRegion": { + "base": null, + "refs": { + "Meeting$MediaRegion": "

The Amazon Web Services Region in which you create the meeting.

" + } + }, + "Meeting": { + "base": "

A meeting created using the Amazon Chime SDK.

", + "refs": { + "ConnectionData$Meeting": "

A meeting created using the Amazon Chime SDK.

" + } + }, + "MeetingFeatureStatus": { + "base": null, + "refs": { + "AudioFeatures$EchoReduction": "

Makes echo reduction available to clients who connect to the meeting.

" + } + }, + "MeetingFeaturesConfiguration": { + "base": "

The configuration settings of the features available to a meeting.

", + "refs": { + "Meeting$MeetingFeatures": "

The configuration settings of the features available to a meeting.

" + } + }, + "MeetingId": { + "base": null, + "refs": { + "Meeting$MeetingId": "

The Amazon Chime SDK meeting ID.

" + } + }, "Message": { "base": null, "refs": { @@ -4070,6 +4415,7 @@ "LimitExceededException$Message": "

The message about the limit.

", "MaximumResultReturnedException$Message": null, "OutboundContactNotPermittedException$Message": "

The message about the contact.

", + "OutputTypeNotFoundException$Message": null, "PropertyValidationException$Message": null, "PropertyValidationExceptionProperty$Message": "

A message describing why the property is not valid.

", "ResourceConflictException$Message": null, @@ -4146,7 +4492,7 @@ "MetricsV2": { "base": null, "refs": { - "GetMetricDataV2Request$Metrics": "

The metrics to retrieve. Specify the name, groupings, and filters for each metric. The following historical metrics are available. For a description of each metric, see Historical metrics definitions in the Amazon Connect Administrator's Guide.

ABANDONMENT_RATE

Unit: Percent

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

AGENT_ADHERENT_TIME

This metric is available only in Amazon Web Services Regions where Forecasting, capacity planning, and scheduling is available.

Unit: Seconds

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

AGENT_NON_RESPONSE

Unit: Count

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

AGENT_NON_RESPONSE_WITHOUT_CUSTOMER_ABANDONS

Unit: Count

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

Data for this metric is available starting from October 1, 2023 0:00:00 GMT.

AGENT_OCCUPANCY

Unit: Percentage

Valid groupings and filters: Routing Profile, Agent, Agent Hierarchy

AGENT_SCHEDULE_ADHERENCE

This metric is available only in Amazon Web Services Regions where Forecasting, capacity planning, and scheduling is available.

Unit: Percent

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

AGENT_SCHEDULED_TIME

This metric is available only in Amazon Web Services Regions where Forecasting, capacity planning, and scheduling is available.

Unit: Seconds

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

AVG_ABANDON_TIME

Unit: Seconds

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

AVG_AFTER_CONTACT_WORK_TIME

Unit: Seconds

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Feature

Feature is a valid filter but not a valid grouping.

AVG_AGENT_CONNECTING_TIME

Unit: Seconds

Valid metric filter key: INITIATION_METHOD. For now, this metric only supports the following as INITIATION_METHOD: INBOUND | OUTBOUND | CALLBACK | API

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

The Negate key in Metric Level Filters is not applicable for this metric.

AVG_CONTACT_DURATION

Unit: Seconds

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Feature

Feature is a valid filter but not a valid grouping.

AVG_CONVERSATION_DURATION

Unit: Seconds

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

AVG_GREETING_TIME_AGENT

This metric is available only for contacts analyzed by Contact Lens conversational analytics.

Unit: Seconds

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

AVG_HANDLE_TIME

Unit: Seconds

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Feature

Feature is a valid filter but not a valid grouping.

AVG_HOLD_TIME

Unit: Seconds

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Feature

Feature is a valid filter but not a valid grouping.

AVG_HOLD_TIME_ALL_CONTACTS

Unit: Seconds

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

AVG_HOLDS

Unit: Count

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Feature

Feature is a valid filter but not a valid grouping.

AVG_INTERACTION_AND_HOLD_TIME

Unit: Seconds

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

AVG_INTERACTION_TIME

Unit: Seconds

Valid groupings and filters: Queue, Channel, Routing Profile, Feature

Feature is a valid filter but not a valid grouping.

AVG_INTERRUPTIONS_AGENT

This metric is available only for contacts analyzed by Contact Lens conversational analytics.

Unit: Count

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

AVG_INTERRUPTION_TIME_AGENT

This metric is available only for contacts analyzed by Contact Lens conversational analytics.

Unit: Seconds

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

AVG_NON_TALK_TIME

This metric is available only for contacts analyzed by Contact Lens conversational analytics.

Unit: Seconds

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

AVG_QUEUE_ANSWER_TIME

Unit: Seconds

Valid groupings and filters: Queue, Channel, Routing Profile, Feature

Feature is a valid filter but not a valid grouping.

AVG_RESOLUTION_TIME

Unit: Seconds

Valid groupings and filters: Queue, Channel, Routing Profile

AVG_TALK_TIME

This metric is available only for contacts analyzed by Contact Lens conversational analytics.

Unit: Seconds

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

AVG_TALK_TIME_AGENT

This metric is available only for contacts analyzed by Contact Lens conversational analytics.

Unit: Seconds

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

AVG_TALK_TIME_CUSTOMER

This metric is available only for contacts analyzed by Contact Lens conversational analytics.

Unit: Seconds

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

CONTACTS_ABANDONED

Unit: Count

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

CONTACTS_CREATED

Unit: Count

Valid metric filter key: INITIATION_METHOD

Valid groupings and filters: Queue, Channel, Routing Profile, Feature

Feature is a valid filter but not a valid grouping.

CONTACTS_HANDLED

Unit: Count

Valid metric filter key: INITIATION_METHOD, DISCONNECT_REASON

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Feature

Feature is a valid filter but not a valid grouping.

CONTACTS_HOLD_ABANDONS

Unit: Count

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

CONTACTS_QUEUED

Unit: Count

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

CONTACTS_RESOLVED_IN_X

Unit: Count

Valid groupings and filters: Queue, Channel, Routing Profile

Threshold: For ThresholdValue enter any whole number from 1 to 604800 (inclusive), in seconds. For Comparison, you must enter LT (for \"Less than\").

CONTACTS_TRANSFERRED_OUT

Unit: Count

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Feature

Feature is a valid filter but not a valid grouping.

CONTACTS_TRANSFERRED_OUT_BY_AGENT

Unit: Count

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

CONTACTS_TRANSFERRED_OUT_FROM_QUEUE

Unit: Count

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

MAX_QUEUED_TIME

Unit: Seconds

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

PERCENT_NON_TALK_TIME

This metric is available only for contacts analyzed by Contact Lens conversational analytics.

Unit: Percentage

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

PERCENT_TALK_TIME

This metric is available only for contacts analyzed by Contact Lens conversational analytics.

Unit: Percentage

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

PERCENT_TALK_TIME_AGENT

This metric is available only for contacts analyzed by Contact Lens conversational analytics.

Unit: Percentage

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

PERCENT_TALK_TIME_CUSTOMER

This metric is available only for contacts analyzed by Contact Lens conversational analytics.

Unit: Percentage

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

SERVICE_LEVEL

You can include up to 20 SERVICE_LEVEL metrics in a request.

Unit: Percent

Valid groupings and filters: Queue, Channel, Routing Profile

Threshold: For ThresholdValue, enter any whole number from 1 to 604800 (inclusive), in seconds. For Comparison, you must enter LT (for \"Less than\").

SUM_CONTACTS_ANSWERED_IN_X

Unit: Count

Valid groupings and filters: Queue, Channel, Routing Profile

Threshold: For ThresholdValue, enter any whole number from 1 to 604800 (inclusive), in seconds. For Comparison, you must enter LT (for \"Less than\").

SUM_CONTACTS_ABANDONED_IN_X

Unit: Count

Valid groupings and filters: Queue, Channel, Routing Profile

Threshold: For ThresholdValue, enter any whole number from 1 to 604800 (inclusive), in seconds. For Comparison, you must enter LT (for \"Less than\").

SUM_CONTACTS_DISCONNECTED

Valid metric filter key: DISCONNECT_REASON

Unit: Count

Valid groupings and filters: Queue, Channel, Routing Profile

SUM_RETRY_CALLBACK_ATTEMPTS

Unit: Count

Valid groupings and filters: Queue, Channel, Routing Profile

" + "GetMetricDataV2Request$Metrics": "

The metrics to retrieve. Specify the name, groupings, and filters for each metric. The following historical metrics are available. For a description of each metric, see Historical metrics definitions in the Amazon Connect Administrator's Guide.

ABANDONMENT_RATE

Unit: Percent

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Feature, contact/segmentAttributes/connect:Subtype

AGENT_ADHERENT_TIME

This metric is available only in Amazon Web Services Regions where Forecasting, capacity planning, and scheduling is available.

Unit: Seconds

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

AGENT_ANSWER_RATE

Unit: Percent

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

AGENT_NON_ADHERENT_TIME

Unit: Seconds

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

AGENT_NON_RESPONSE

Unit: Count

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

AGENT_NON_RESPONSE_WITHOUT_CUSTOMER_ABANDONS

Unit: Count

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

Data for this metric is available starting from October 1, 2023 0:00:00 GMT.

AGENT_OCCUPANCY

Unit: Percentage

Valid groupings and filters: Routing Profile, Agent, Agent Hierarchy

AGENT_SCHEDULE_ADHERENCE

This metric is available only in Amazon Web Services Regions where Forecasting, capacity planning, and scheduling is available.

Unit: Percent

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

AGENT_SCHEDULED_TIME

This metric is available only in Amazon Web Services Regions where Forecasting, capacity planning, and scheduling is available.

Unit: Seconds

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

AVG_ABANDON_TIME

Unit: Seconds

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Feature, contact/segmentAttributes/connect:Subtype

AVG_AFTER_CONTACT_WORK_TIME

Unit: Seconds

Valid metric filter key: INITIATION_METHOD

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Feature, contact/segmentAttributes/connect:Subtype

Feature is a valid filter but not a valid grouping.

AVG_AGENT_CONNECTING_TIME

Unit: Seconds

Valid metric filter key: INITIATION_METHOD. For now, this metric only supports the following as INITIATION_METHOD: INBOUND | OUTBOUND | CALLBACK | API

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

The Negate key in Metric Level Filters is not applicable for this metric.

AVG_CONTACT_DURATION

Unit: Seconds

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Feature, contact/segmentAttributes/connect:Subtype

Feature is a valid filter but not a valid grouping.

AVG_CONVERSATION_DURATION

Unit: Seconds

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Feature, contact/segmentAttributes/connect:Subtype

AVG_GREETING_TIME_AGENT

This metric is available only for contacts analyzed by Contact Lens conversational analytics.

Unit: Seconds

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, contact/segmentAttributes/connect:Subtype

AVG_HANDLE_TIME

Unit: Seconds

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Feature, contact/segmentAttributes/connect:Subtype

Feature is a valid filter but not a valid grouping.

AVG_HOLD_TIME

Unit: Seconds

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Feature, contact/segmentAttributes/connect:Subtype

Feature is a valid filter but not a valid grouping.

AVG_HOLD_TIME_ALL_CONTACTS

Unit: Seconds

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, contact/segmentAttributes/connect:Subtype

AVG_HOLDS

Unit: Count

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Feature, contact/segmentAttributes/connect:Subtype

Feature is a valid filter but not a valid grouping.

AVG_INTERACTION_AND_HOLD_TIME

Unit: Seconds

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, contact/segmentAttributes/connect:Subtype

AVG_INTERACTION_TIME

Unit: Seconds

Valid metric filter key: INITIATION_METHOD

Valid groupings and filters: Queue, Channel, Routing Profile, Feature, contact/segmentAttributes/connect:Subtype

Feature is a valid filter but not a valid grouping.

AVG_INTERRUPTIONS_AGENT

This metric is available only for contacts analyzed by Contact Lens conversational analytics.

Unit: Count

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, contact/segmentAttributes/connect:Subtype

AVG_INTERRUPTION_TIME_AGENT

This metric is available only for contacts analyzed by Contact Lens conversational analytics.

Unit: Seconds

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, contact/segmentAttributes/connect:Subtype

AVG_NON_TALK_TIME

This metric is available only for contacts analyzed by Contact Lens conversational analytics.

Unit: Seconds

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, contact/segmentAttributes/connect:Subtype

AVG_QUEUE_ANSWER_TIME

Unit: Seconds

Valid groupings and filters: Queue, Channel, Routing Profile, Feature, contact/segmentAttributes/connect:Subtype

Feature is a valid filter but not a valid grouping.

AVG_RESOLUTION_TIME

Unit: Seconds

Valid groupings and filters: Queue, Channel, Routing Profile, contact/segmentAttributes/connect:Subtype

AVG_TALK_TIME

This metric is available only for contacts analyzed by Contact Lens conversational analytics.

Unit: Seconds

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, contact/segmentAttributes/connect:Subtype

AVG_TALK_TIME_AGENT

This metric is available only for contacts analyzed by Contact Lens conversational analytics.

Unit: Seconds

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, contact/segmentAttributes/connect:Subtype

AVG_TALK_TIME_CUSTOMER

This metric is available only for contacts analyzed by Contact Lens conversational analytics.

Unit: Seconds

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, contact/segmentAttributes/connect:Subtype

CONTACTS_ABANDONED

Unit: Count

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, contact/segmentAttributes/connect:Subtype

CONTACTS_CREATED

Unit: Count

Valid metric filter key: INITIATION_METHOD

Valid groupings and filters: Queue, Channel, Routing Profile, Feature, contact/segmentAttributes/connect:Subtype

Feature is a valid filter but not a valid grouping.

CONTACTS_HANDLED

Unit: Count

Valid metric filter key: INITIATION_METHOD, DISCONNECT_REASON

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Feature, contact/segmentAttributes/connect:Subtype

Feature is a valid filter but not a valid grouping.

CONTACTS_HOLD_ABANDONS

Unit: Count

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, contact/segmentAttributes/connect:Subtype

CONTACTS_ON_HOLD_AGENT_DISCONNECT

Unit: Count

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

CONTACTS_ON_HOLD_CUSTOMER_DISCONNECT

Unit: Count

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

CONTACTS_PUT_ON_HOLD

Unit: Count

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

CONTACTS_TRANSFERRED_OUT_EXTERNAL

Unit: Count

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

CONTACTS_TRANSFERRED_OUT_INTERNAL

Unit: Percent

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

CONTACTS_QUEUED

Unit: Count

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, contact/segmentAttributes/connect:Subtype

CONTACTS_RESOLVED_IN_X

Unit: Count

Valid groupings and filters: Queue, Channel, Routing Profile, contact/segmentAttributes/connect:Subtype

Threshold: For ThresholdValue enter any whole number from 1 to 604800 (inclusive), in seconds. For Comparison, you must enter LT (for \"Less than\").

CONTACTS_TRANSFERRED_OUT

Unit: Count

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Feature, contact/segmentAttributes/connect:Subtype

Feature is a valid filter but not a valid grouping.

CONTACTS_TRANSFERRED_OUT_BY_AGENT

Unit: Count

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, contact/segmentAttributes/connect:Subtype

CONTACTS_TRANSFERRED_OUT_FROM_QUEUE

Unit: Count

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, contact/segmentAttributes/connect:Subtype

MAX_QUEUED_TIME

Unit: Seconds

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, contact/segmentAttributes/connect:Subtype

PERCENT_NON_TALK_TIME

This metric is available only for contacts analyzed by Contact Lens conversational analytics.

Unit: Percentage

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, contact/segmentAttributes/connect:Subtype

PERCENT_TALK_TIME

This metric is available only for contacts analyzed by Contact Lens conversational analytics.

Unit: Percentage

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, contact/segmentAttributes/connect:Subtype

PERCENT_TALK_TIME_AGENT

This metric is available only for contacts analyzed by Contact Lens conversational analytics.

Unit: Percentage

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, contact/segmentAttributes/connect:Subtype

PERCENT_TALK_TIME_CUSTOMER

This metric is available only for contacts analyzed by Contact Lens conversational analytics.

Unit: Percentage

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, contact/segmentAttributes/connect:Subtype

SERVICE_LEVEL

You can include up to 20 SERVICE_LEVEL metrics in a request.

Unit: Percent

Valid groupings and filters: Queue, Channel, Routing Profile

Threshold: For ThresholdValue, enter any whole number from 1 to 604800 (inclusive), in seconds. For Comparison, you must enter LT (for \"Less than\").

SUM_AFTER_CONTACT_WORK_TIME

Unit: Seconds

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

SUM_CONNECTING_TIME_AGENT

Unit: Seconds

Valid metric filter key: INITIATION_METHOD. This metric only supports the following filter keys as INITIATION_METHOD: INBOUND | OUTBOUND | CALLBACK | API

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

The Negate key in Metric Level Filters is not applicable for this metric.

SUM_CONTACT_FLOW_TIME

Unit: Seconds

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

SUM_CONTACT_TIME_AGENT

Unit: Seconds

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

SUM_CONTACTS_ANSWERED_IN_X

Unit: Count

Valid groupings and filters: Queue, Channel, Routing Profile, contact/segmentAttributes/connect:Subtype

Threshold: For ThresholdValue, enter any whole number from 1 to 604800 (inclusive), in seconds. For Comparison, you must enter LT (for \"Less than\").

SUM_CONTACTS_ABANDONED_IN_X

Unit: Count

Valid groupings and filters: Queue, Channel, Routing Profile, contact/segmentAttributes/connect:Subtype

Threshold: For ThresholdValue, enter any whole number from 1 to 604800 (inclusive), in seconds. For Comparison, you must enter LT (for \"Less than\").

SUM_CONTACTS_DISCONNECTED

Valid metric filter key: DISCONNECT_REASON

Unit: Count

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, contact/segmentAttributes/connect:Subtype

SUM_ERROR_STATUS_TIME_AGENT

Unit: Seconds

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

SUM_HANDLE_TIME

Unit: Seconds

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

SUM_HOLD_TIME

Unit: Count

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

SUM_IDLE_TIME_AGENT

Unit: Seconds

Valid groupings and filters: Routing Profile, Agent, Agent Hierarchy

SUM_INTERACTION_AND_HOLD_TIME

Unit: Seconds

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

SUM_INTERACTION_TIME

Unit: Seconds

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

SUM_NON_PRODUCTIVE_TIME_AGENT

Unit: Seconds

Valid groupings and filters: Routing Profile, Agent, Agent Hierarchy

SUM_ONLINE_TIME_AGENT

Unit: Seconds

Valid groupings and filters: Routing Profile, Agent, Agent Hierarchy

SUM_RETRY_CALLBACK_ATTEMPTS

Unit: Count

Valid groupings and filters: Queue, Channel, Routing Profile, contact/segmentAttributes/connect:Subtype

" } }, "MinutesLimit60": { @@ -4193,6 +4539,18 @@ "Application$Namespace": "

Namespace of the application that you want to give access to.

" } }, + "NewChatCreated": { + "base": null, + "refs": { + "SendChatIntegrationEventResponse$NewChatCreated": "

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

" + } + }, + "NewSessionDetails": { + "base": "

Payload of chat properties to apply when starting a new contact.

", + "refs": { + "SendChatIntegrationEventRequest$NewSessionDetails": "

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

" + } + }, "NextToken": { "base": null, "refs": { @@ -4204,6 +4562,8 @@ "GetMetricDataResponse$NextToken": "

If there are additional results, this is the token for the next set of results.

The token expires after 5 minutes from the time it is created. Subsequent requests that use the token must use the same request parameters as the request that generated the token.

", "ListAgentStatusRequest$NextToken": "

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.

", "ListAgentStatusResponse$NextToken": "

If there are additional results, this is the token for the next set of results.

", + "ListAnalyticsDataAssociationsRequest$NextToken": "

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.

", + "ListAnalyticsDataAssociationsResponse$NextToken": "

If there are additional results, this is the token for the next set of results.

", "ListApprovedOriginsRequest$NextToken": "

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.

", "ListApprovedOriginsResponse$NextToken": "

If there are additional results, this is the token for the next set of results.

", "ListBotsRequest$NextToken": "

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.

", @@ -4220,6 +4580,8 @@ "ListEvaluationFormVersionsResponse$NextToken": "

If there are additional results, this is the token for the next set of results.

", "ListEvaluationFormsRequest$NextToken": "

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.

", "ListEvaluationFormsResponse$NextToken": "

If there are additional results, this is the token for the next set of results.

", + "ListFlowAssociationsRequest$NextToken": "

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.

", + "ListFlowAssociationsResponse$NextToken": "

If there are additional results, this is the token for the next set of results.

", "ListHoursOfOperationsRequest$NextToken": "

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.

", "ListHoursOfOperationsResponse$NextToken": "

If there are additional results, this is the token for the next set of results.

", "ListInstanceAttributesRequest$NextToken": "

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.

", @@ -4372,6 +4734,11 @@ "refs": { } }, + "OutputTypeNotFoundException": { + "base": "

Thrown for analyzed content when requested OutputType was not enabled for a given contact. For example, if an OutputType.Raw was requested for a contact that had `RedactedOnly` Redaction policy set in Contact flow.

", + "refs": { + } + }, "PEM": { "base": null, "refs": { @@ -4379,10 +4746,19 @@ "SecurityKey$Key": "

The key of the security key.

" } }, + "ParticipantCapabilities": { + "base": "

The configuration for the allowed capabilities for participants present over the call.

", + "refs": { + "AllowedCapabilities$Customer": "

Information about the customer's video sharing capabilities.

", + "AllowedCapabilities$Agent": "

Information about the agent's video sharing capabilities.

" + } + }, "ParticipantDetails": { "base": "

The customer's details.

", "refs": { - "StartChatContactRequest$ParticipantDetails": "

Information identifying the participant.

" + "NewSessionDetails$ParticipantDetails": null, + "StartChatContactRequest$ParticipantDetails": "

Information identifying the participant.

", + "StartWebRTCContactRequest$ParticipantDetails": null } }, "ParticipantDetailsToAdd": { @@ -4395,13 +4771,20 @@ "base": null, "refs": { "CreateParticipantResponse$ParticipantId": "

The identifier for a chat participant. The participantId for a chat participant is the same throughout the chat lifecycle.

", - "StartChatContactResponse$ParticipantId": "

The identifier for a chat participant. The participantId for a chat participant is the same throughout the chat lifecycle.

" + "RealTimeContactAnalysisSegmentAttachments$ParticipantId": "

The identifier of the participant.

", + "RealTimeContactAnalysisSegmentEvent$ParticipantId": "

The identifier of the participant.

", + "RealTimeContactAnalysisSegmentTranscript$ParticipantId": "

The identifier of the participant.

", + "StartChatContactResponse$ParticipantId": "

The identifier for a chat participant. The participantId for a chat participant is the same throughout the chat lifecycle.

", + "StartWebRTCContactResponse$ParticipantId": "

The identifier for a contact participant. The ParticipantId for a contact participant is the same throughout the contact lifecycle.

" } }, "ParticipantRole": { "base": null, "refs": { - "ParticipantDetailsToAdd$ParticipantRole": "

The role of the participant being added.

" + "ParticipantDetailsToAdd$ParticipantRole": "

The role of the participant being added.

", + "RealTimeContactAnalysisSegmentAttachments$ParticipantRole": "

The role of the participant. For example, is it a customer, agent, or system.

", + "RealTimeContactAnalysisSegmentEvent$ParticipantRole": "

The role of the participant. For example, is it a customer, agent, or system.

", + "RealTimeContactAnalysisSegmentTranscript$ParticipantRole": "

The role of the participant. For example, is it a customer, agent, or system.

" } }, "ParticipantTimerAction": { @@ -4444,7 +4827,8 @@ "base": null, "refs": { "ParticipantTokenCredentials$ParticipantToken": "

The token used by the chat participant to call CreateParticipantConnection. The participant token is valid for the lifetime of a chat participant.

", - "StartChatContactResponse$ParticipantToken": "

The token used by the chat participant to call CreateParticipantConnection. The participant token is valid for the lifetime of a chat participant.

" + "StartChatContactResponse$ParticipantToken": "

The token used by the chat participant to call CreateParticipantConnection. The participant token is valid for the lifetime of a chat participant.

", + "StartWebRTCContactResponse$ParticipantToken": "

The token used by the contact participant to call the CreateParticipantConnection API. The participant token is valid for the lifetime of a contact participant.

" } }, "ParticipantTokenCredentials": { @@ -4523,6 +4907,8 @@ "refs": { "ClaimPhoneNumberRequest$PhoneNumberDescription": "

The description of the phone number.

", "ClaimedPhoneNumberSummary$PhoneNumberDescription": "

The description of the phone number.

", + "ImportPhoneNumberRequest$PhoneNumberDescription": "

The description of the phone number.

", + "ListPhoneNumbersSummary$PhoneNumberDescription": "

The description of the phone number.

", "UpdatePhoneNumberMetadataRequest$PhoneNumberDescription": "

The description of the phone number.

" } }, @@ -4534,6 +4920,7 @@ "ClaimedPhoneNumberSummary$PhoneNumberId": "

A unique identifier for the phone number.

", "DescribePhoneNumberRequest$PhoneNumberId": "

A unique identifier for the phone number.

", "DisassociatePhoneNumberContactFlowRequest$PhoneNumberId": "

A unique identifier for the phone number.

", + "ImportPhoneNumberResponse$PhoneNumberId": "

A unique identifier for the phone number.

", "ListPhoneNumbersSummary$PhoneNumberId": "

A unique identifier for the phone number.

", "OutboundCallerConfig$OutboundCallerIdNumberId": "

The caller ID number.

", "PhoneNumberSummary$Id": "

The identifier of the phone number.

", @@ -4985,15 +5372,15 @@ "QuickConnectType": { "base": null, "refs": { - "QuickConnectConfig$QuickConnectType": "

The type of quick connect. In the Amazon Connect console, when you create a quick connect, you are prompted to assign one of the following types: Agent (USER), External (PHONE_NUMBER), or Queue (QUEUE).

", - "QuickConnectSummary$QuickConnectType": "

The type of quick connect. In the Amazon Connect console, when you create a quick connect, you are prompted to assign one of the following types: Agent (USER), External (PHONE_NUMBER), or Queue (QUEUE).

", + "QuickConnectConfig$QuickConnectType": "

The type of quick connect. In the Amazon Connect admin website, when you create a quick connect, you are prompted to assign one of the following types: Agent (USER), External (PHONE_NUMBER), or Queue (QUEUE).

", + "QuickConnectSummary$QuickConnectType": "

The type of quick connect. In the Amazon Connect admin website, when you create a quick connect, you are prompted to assign one of the following types: Agent (USER), External (PHONE_NUMBER), or Queue (QUEUE).

", "QuickConnectTypes$member": null } }, "QuickConnectTypes": { "base": null, "refs": { - "ListQuickConnectsRequest$QuickConnectTypes": "

The type of quick connect. In the Amazon Connect console, when you create a quick connect, you are prompted to assign one of the following types: Agent (USER), External (PHONE_NUMBER), or Queue (QUEUE).

" + "ListQuickConnectsRequest$QuickConnectTypes": "

The type of quick connect. In the Amazon Connect admin website, when you create a quick connect, you are prompted to assign one of the following types: Agent (USER), External (PHONE_NUMBER), or Queue (QUEUE).

" } }, "QuickConnectsList": { @@ -5016,6 +5403,232 @@ "TaskTemplateConstraints$ReadOnlyFields": "

Lists the fields that are read-only to agents, and cannot be edited.

" } }, + "RealTimeContactAnalysisAttachment": { + "base": "

Object that describes attached file.

", + "refs": { + "RealTimeContactAnalysisAttachments$member": null + } + }, + "RealTimeContactAnalysisAttachments": { + "base": null, + "refs": { + "RealTimeContactAnalysisSegmentAttachments$Attachments": "

List of objects describing an individual attachment.

" + } + }, + "RealTimeContactAnalysisCategoryDetails": { + "base": "

Provides information about the category rule that was matched.

", + "refs": { + "RealTimeContactAnalysisMatchedDetails$value": null + } + }, + "RealTimeContactAnalysisCategoryName": { + "base": null, + "refs": { + "RealTimeContactAnalysisMatchedDetails$key": null + } + }, + "RealTimeContactAnalysisCharacterInterval": { + "base": "

Begin and end offsets for a part of text.

", + "refs": { + "RealTimeContactAnalysisCharacterIntervals$member": null, + "RealTimeContactAnalysisTranscriptItemWithCharacterOffsets$CharacterOffsets": "

List of character intervals within transcript content/text.

", + "RealTimeContactAnalysisTranscriptItemWithContent$CharacterOffsets": null + } + }, + "RealTimeContactAnalysisCharacterIntervals": { + "base": null, + "refs": { + "RealTimeContactAnalysisTranscriptItemRedaction$CharacterOffsets": "

List of character intervals each describing a part of the text that was redacted. For OutputType.Raw, part of the original text that contains data that can be redacted. For OutputType.Redacted, part of the string with redaction tag.

" + } + }, + "RealTimeContactAnalysisContentType": { + "base": null, + "refs": { + "RealTimeContactAnalysisSegmentTranscript$ContentType": "

The type of content of the item. For example, text/plain.

" + } + }, + "RealTimeContactAnalysisEventType": { + "base": null, + "refs": { + "RealTimeContactAnalysisSegmentEvent$EventType": "

Type of the event. For example, application/vnd.amazonaws.connect.event.participant.left.

" + } + }, + "RealTimeContactAnalysisId256": { + "base": null, + "refs": { + "RealTimeContactAnalysisSegmentAttachments$Id": "

The identifier of the segment.

", + "RealTimeContactAnalysisSegmentEvent$Id": "

The identifier of the contact event.

", + "RealTimeContactAnalysisSegmentTranscript$Id": "

The identifier of the transcript.

", + "RealTimeContactAnalysisTranscriptItemWithCharacterOffsets$Id": "

Transcript identifier. Matches the identifier from one of the TranscriptSegments.

", + "RealTimeContactAnalysisTranscriptItemWithContent$Id": "

Transcript identifier. Matches the identifier from one of the TranscriptSegments.

" + } + }, + "RealTimeContactAnalysisIssueDetected": { + "base": "

Potential issues that are detected based on an artificial intelligence analysis of each turn in the conversation.

", + "refs": { + "RealTimeContactAnalysisIssuesDetected$member": null + } + }, + "RealTimeContactAnalysisIssuesDetected": { + "base": null, + "refs": { + "RealTimeContactAnalysisSegmentIssues$IssuesDetected": "

List of the issues detected.

" + } + }, + "RealTimeContactAnalysisMatchedDetails": { + "base": null, + "refs": { + "RealTimeContactAnalysisSegmentCategories$MatchedDetails": "

Map between the name of the matched rule and RealTimeContactAnalysisCategoryDetails.

" + } + }, + "RealTimeContactAnalysisOffset": { + "base": null, + "refs": { + "RealTimeContactAnalysisCharacterInterval$BeginOffsetChar": "

The beginning of the character interval.

", + "RealTimeContactAnalysisCharacterInterval$EndOffsetChar": "

The end of the character interval.

" + } + }, + "RealTimeContactAnalysisOutputType": { + "base": null, + "refs": { + "ListRealtimeContactAnalysisSegmentsV2Request$OutputType": "

The Contact Lens output type to be returned.

" + } + }, + "RealTimeContactAnalysisPointOfInterest": { + "base": "

The section of the contact transcript segment that category rule was detected.

", + "refs": { + "RealTimeContactAnalysisPointsOfInterest$member": null + } + }, + "RealTimeContactAnalysisPointsOfInterest": { + "base": null, + "refs": { + "RealTimeContactAnalysisCategoryDetails$PointsOfInterest": "

List of PointOfInterest - objects describing a single match of a rule.

" + } + }, + "RealTimeContactAnalysisSegmentAttachments": { + "base": "

Segment containing list of attachments.

", + "refs": { + "RealtimeContactAnalysisSegment$Attachments": "

The analyzed attachments.

" + } + }, + "RealTimeContactAnalysisSegmentCategories": { + "base": "

The matched category rules.

", + "refs": { + "RealtimeContactAnalysisSegment$Categories": null + } + }, + "RealTimeContactAnalysisSegmentEvent": { + "base": "

Segment type describing a contact event.

", + "refs": { + "RealtimeContactAnalysisSegment$Event": null + } + }, + "RealTimeContactAnalysisSegmentIssues": { + "base": "

Segment type containing a list of detected issues.

", + "refs": { + "RealtimeContactAnalysisSegment$Issues": null + } + }, + "RealTimeContactAnalysisSegmentTranscript": { + "base": "

The analyzed transcript segment.

", + "refs": { + "RealtimeContactAnalysisSegment$Transcript": null + } + }, + "RealTimeContactAnalysisSegmentType": { + "base": null, + "refs": { + "RealTimeContactAnalysisSegmentTypes$member": null + } + }, + "RealTimeContactAnalysisSegmentTypes": { + "base": null, + "refs": { + "ListRealtimeContactAnalysisSegmentsV2Request$SegmentTypes": "

Enum with segment types . Each value corresponds to a segment type returned in the segments list of the API. Each segment type has its own structure. Different channels may have different sets of supported segment types.

" + } + }, + "RealTimeContactAnalysisSentimentLabel": { + "base": null, + "refs": { + "RealTimeContactAnalysisSegmentTranscript$Sentiment": "

The sentiment detected for this piece of transcript.

" + } + }, + "RealTimeContactAnalysisStatus": { + "base": null, + "refs": { + "ListRealtimeContactAnalysisSegmentsV2Response$Status": "

Status of real-time contact analysis.

" + } + }, + "RealTimeContactAnalysisSupportedChannel": { + "base": null, + "refs": { + "ListRealtimeContactAnalysisSegmentsV2Response$Channel": "

The channel of the contact. Voice will not be returned.

" + } + }, + "RealTimeContactAnalysisTimeData": { + "base": "

Object describing time with which the segment is associated. It can have different representations of time. Currently supported: absoluteTime

", + "refs": { + "RealTimeContactAnalysisSegmentAttachments$Time": "

Field describing the time of the event. It can have different representations of time.

", + "RealTimeContactAnalysisSegmentEvent$Time": "

Field describing the time of the event. It can have different representations of time.

", + "RealTimeContactAnalysisSegmentTranscript$Time": "

Field describing the time of the event. It can have different representations of time.

" + } + }, + "RealTimeContactAnalysisTimeInstant": { + "base": null, + "refs": { + "RealTimeContactAnalysisTimeData$AbsoluteTime": "

Time represented in ISO 8601 format: yyyy-MM-ddThh:mm:ss.SSSZ. For example, 2019-11-08T02:41:28.172Z.

" + } + }, + "RealTimeContactAnalysisTranscriptContent": { + "base": null, + "refs": { + "RealTimeContactAnalysisSegmentTranscript$Content": "

The content of the transcript. Can be redacted.

", + "RealTimeContactAnalysisTranscriptItemWithContent$Content": "

Part of the transcript content that contains identified issue. Can be redacted

" + } + }, + "RealTimeContactAnalysisTranscriptItemRedaction": { + "base": "

Object describing redaction applied to the segment.

", + "refs": { + "RealTimeContactAnalysisSegmentTranscript$Redaction": "

Object describing redaction that was applied to the transcript. If transcript has the field it means part of the transcript was redacted.

" + } + }, + "RealTimeContactAnalysisTranscriptItemWithCharacterOffsets": { + "base": "

Transcript representation containing Id and list of character intervals that are associated with analysis data. For example, this object within a RealTimeContactAnalysisPointOfInterest in Category.MatchedDetails would have character interval describing part of the text that matched category.

", + "refs": { + "RealTimeContactAnalysisTranscriptItemsWithCharacterOffsets$member": null + } + }, + "RealTimeContactAnalysisTranscriptItemWithContent": { + "base": "

Transcript representation containing Id, Content and list of character intervals that are associated with analysis data. For example, this object within an issue detected would describe both content that contains identified issue and intervals where that content is taken from.

", + "refs": { + "RealTimeContactAnalysisTranscriptItemsWithContent$member": null + } + }, + "RealTimeContactAnalysisTranscriptItemsWithCharacterOffsets": { + "base": null, + "refs": { + "RealTimeContactAnalysisPointOfInterest$TranscriptItems": "

List of the transcript items (segments) that are associated with a given point of interest.

" + } + }, + "RealTimeContactAnalysisTranscriptItemsWithContent": { + "base": null, + "refs": { + "RealTimeContactAnalysisIssueDetected$TranscriptItems": "

List of the transcript items (segments) that are associated with a given issue.

" + } + }, + "RealtimeContactAnalysisSegment": { + "base": "

An analyzed segment for a real-time analysis session.

", + "refs": { + "RealtimeContactAnalysisSegments$member": null + } + }, + "RealtimeContactAnalysisSegments": { + "base": null, + "refs": { + "ListRealtimeContactAnalysisSegmentsV2Response$Segments": "

An analyzed transcript or category.

" + } + }, "Reference": { "base": "

Well-formed data on a contact, used by agents to complete a contact request. You can have up to 4,096 UTF-8 bytes across all references for a contact.

", "refs": { @@ -5736,10 +6349,20 @@ "StartChatContactRequest$SegmentAttributes": "

A set of system defined key-value pairs stored on individual contact segments using an attribute map. The attributes are standard Amazon Connect attributes. They can be accessed in flows.

Attribute keys can include only alphanumeric, -, and _.

This field can be used to show channel subtype, such as connect:Guide.

The types application/vnd.amazonaws.connect.message.interactive and application/vnd.amazonaws.connect.message.interactive.response must be present in the SupportedMessagingContentTypes field of this API in order to set SegmentAttributes as { \"connect:Subtype\": {\"valueString\" : \"connect:Guide\" }}.

" } }, + "SendChatIntegrationEventRequest": { + "base": null, + "refs": { + } + }, + "SendChatIntegrationEventResponse": { + "base": null, + "refs": { + } + }, "SendNotificationActionDefinition": { "base": "

Information about the send notification action.

", "refs": { - "RuleAction$SendNotificationAction": "

Information about the send notification action.

Supported only for TriggerEventSource values: OnPostCallAnalysisAvailable | OnRealTimeCallAnalysisAvailable | OnPostChatAnalysisAvailable | OnContactEvaluationSubmit | OnMetricDataUpdate

" + "RuleAction$SendNotificationAction": "

Information about the send notification action.

Supported only for TriggerEventSource values: OnPostCallAnalysisAvailable | OnRealTimeCallAnalysisAvailable | OnRealTimeChatAnalysisAvailable | OnPostChatAnalysisAvailable | OnContactEvaluationSubmit | OnMetricDataUpdate

" } }, "ServiceQuotaExceededException": { @@ -5809,6 +6432,12 @@ "IntegrationAssociationSummary$SourceApplicationName": "

The user-provided, friendly name for the external application.

" } }, + "SourceId": { + "base": null, + "refs": { + "SendChatIntegrationEventRequest$SourceId": "

External identifier of chat customer participant, used in part to uniquely identify a chat. For SMS, this is the E164 phone number of the chat customer participant.

" + } + }, "SourceType": { "base": null, "refs": { @@ -5876,6 +6505,16 @@ "refs": { } }, + "StartWebRTCContactRequest": { + "base": null, + "refs": { + } + }, + "StartWebRTCContactResponse": { + "base": null, + "refs": { + } + }, "Statistic": { "base": null, "refs": { @@ -5928,6 +6567,10 @@ "String": { "base": null, "refs": { + "AnalyticsDataAssociationResult$ResourceShareId": "

The Resource Access Manager share ID.

", + "AssociateAnalyticsDataSetResponse$ResourceShareId": "

The Resource Access Manager share ID that is generated.

", + "ErrorResult$ErrorCode": "

The error code.

", + "ErrorResult$ErrorMessage": "

The corresponding error message for the error code.

", "FailedRequest$FailureReasonMessage": "

Why the request to create a contact failed.

", "HierarchyGroupCondition$Value": "

The value in the hierarchy group condition.

", "InstanceStatusReason$Message": "

The message.

", @@ -5986,6 +6629,12 @@ "refs": { } }, + "Subtype": { + "base": null, + "refs": { + "SendChatIntegrationEventRequest$Subtype": "

Classification of a channel. This is used in part to uniquely identify chat.

Valid value: [\"connect:sms\"]

" + } + }, "SuccessfulRequest": { "base": "

Request for which contact was successfully created.

", "refs": { @@ -6007,6 +6656,7 @@ "SupportedMessagingContentTypes": { "base": null, "refs": { + "NewSessionDetails$SupportedMessagingContentTypes": "

The supported chat message content types. Supported types are text/plain, text/markdown, application/json, application/vnd.amazonaws.connect.message.interactive, and application/vnd.amazonaws.connect.message.interactive.response.

Content types must always contain text/plain. You can then put any other supported type in the list. For example, all the following lists are valid because they contain text/plain: [text/plain, text/markdown, application/json], [text/markdown, text/plain], [text/plain, application/json, application/vnd.amazonaws.connect.message.interactive.response].

", "StartChatContactRequest$SupportedMessagingContentTypes": "

The supported chat message content types. Supported types are text/plain, text/markdown, application/json, application/vnd.amazonaws.connect.message.interactive, and application/vnd.amazonaws.connect.message.interactive.response.

Content types must always contain text/plain. You can then put any other supported type in the list. For example, all the following lists are valid because they contain text/plain: [text/plain, text/markdown, application/json], [text/markdown, text/plain], [text/plain, application/json, application/vnd.amazonaws.connect.message.interactive.response].

The type application/vnd.amazonaws.connect.message.interactive is required to use the Show view flow block.

" } }, @@ -6083,6 +6733,7 @@ "GetTaskTemplateResponse$Tags": "

The tags used to organize, track, or control access for this resource. For example, { \"tags\": {\"key1\":\"value1\", \"key2\":\"value2\"} }.

", "HierarchyGroup$Tags": "

The tags used to organize, track, or control access for this resource. For example, { \"tags\": {\"key1\":\"value1\", \"key2\":\"value2\"} }.

", "HoursOfOperation$Tags": "

The tags used to organize, track, or control access for this resource. For example, { \"tags\": {\"key1\":\"value1\", \"key2\":\"value2\"} }.

", + "ImportPhoneNumberRequest$Tags": "

The tags used to organize, track, or control access for this resource. For example, { \"tags\": {\"key1\":\"value1\", \"key2\":\"value2\"} }.

", "ListTagsForResourceResponse$tags": "

Information about the tags.

", "Prompt$Tags": "

The tags used to organize, track, or control access for this resource. For example, { \"tags\": {\"key1\":\"value1\", \"key2\":\"value2\"} }.

", "Queue$Tags": "

The tags used to organize, track, or control access for this resource. For example, { \"tags\": {\"key1\":\"value1\", \"key2\":\"value2\"} }.

", @@ -6524,7 +7175,12 @@ "base": null, "refs": { "CreateIntegrationAssociationRequest$SourceApplicationUrl": "

The URL for the external application. This field is only required for the EVENT integration type.

", - "IntegrationAssociationSummary$SourceApplicationUrl": "

The URL for the external application.

" + "IntegrationAssociationSummary$SourceApplicationUrl": "

The URL for the external application.

", + "MediaPlacement$AudioHostUrl": "

The audio host URL.

", + "MediaPlacement$AudioFallbackUrl": "

The audio fallback URL.

", + "MediaPlacement$SignalingUrl": "

The signaling URL.

", + "MediaPlacement$TurnControlUrl": "

The turn control URL.

", + "MediaPlacement$EventIngestionUrl": "

The event ingestion URL to which you send client meeting events.

" } }, "Unit": { @@ -7081,6 +7737,12 @@ "UpdateEvaluationFormResponse$EvaluationFormVersion": "

The version of the updated evaluation form resource.

" } }, + "VideoCapability": { + "base": null, + "refs": { + "ParticipantCapabilities$Video": "

The configuration having the video sharing capabilities for participants over the call.

" + } + }, "View": { "base": "

A view resource object. Contains metadata and content necessary to render the view.

", "refs": { diff --git a/models/apis/connect/2017-08-08/paginators-1.json b/models/apis/connect/2017-08-08/paginators-1.json index 5123035101e..71ebb5271b5 100644 --- a/models/apis/connect/2017-08-08/paginators-1.json +++ b/models/apis/connect/2017-08-08/paginators-1.json @@ -78,6 +78,12 @@ "output_token": "NextToken", "result_key": "EvaluationFormSummaryList" }, + "ListFlowAssociations": { + "input_token": "NextToken", + "limit_key": "MaxResults", + "output_token": "NextToken", + "result_key": "FlowAssociationSummaryList" + }, "ListHoursOfOperations": { "input_token": "NextToken", "limit_key": "MaxResults", @@ -160,6 +166,11 @@ "output_token": "NextToken", "result_key": "QuickConnectSummaryList" }, + "ListRealtimeContactAnalysisSegmentsV2": { + "input_token": "NextToken", + "limit_key": "MaxResults", + "output_token": "NextToken" + }, "ListRoutingProfileQueues": { "input_token": "NextToken", "limit_key": "MaxResults", diff --git a/models/apis/customer-profiles/2020-08-15/api-2.json b/models/apis/customer-profiles/2020-08-15/api-2.json index d21e7ccc964..cd488b56bfb 100644 --- a/models/apis/customer-profiles/2020-08-15/api-2.json +++ b/models/apis/customer-profiles/2020-08-15/api-2.json @@ -254,6 +254,22 @@ {"shape":"InternalServerException"} ] }, + "DetectProfileObjectType":{ + "name":"DetectProfileObjectType", + "http":{ + "method":"POST", + "requestUri":"/domains/{DomainName}/detect/object-types" + }, + "input":{"shape":"DetectProfileObjectTypeRequest"}, + "output":{"shape":"DetectProfileObjectTypeResponse"}, + "errors":[ + {"shape":"BadRequestException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServerException"} + ] + }, "GetAutoMergingPreview":{ "name":"GetAutoMergingPreview", "http":{ @@ -1530,6 +1546,39 @@ "UnhealthySince":{"shape":"timestamp"} } }, + "DetectProfileObjectTypeRequest":{ + "type":"structure", + "required":[ + "Objects", + "DomainName" + ], + "members":{ + "Objects":{"shape":"Objects"}, + "DomainName":{ + "shape":"name", + "location":"uri", + "locationName":"DomainName" + } + } + }, + "DetectProfileObjectTypeResponse":{ + "type":"structure", + "members":{ + "DetectedProfileObjectTypes":{"shape":"DetectedProfileObjectTypes"} + } + }, + "DetectedProfileObjectType":{ + "type":"structure", + "members":{ + "SourceLastUpdatedTimestampFormat":{"shape":"string1To255"}, + "Fields":{"shape":"FieldMap"}, + "Keys":{"shape":"KeyMap"} + } + }, + "DetectedProfileObjectTypes":{ + "type":"list", + "member":{"shape":"DetectedProfileObjectType"} + }, "DomainList":{ "type":"list", "member":{"shape":"ListDomainItem"} @@ -2897,6 +2946,13 @@ "key":{"shape":"string1To255"}, "value":{"shape":"typeName"} }, + "Objects":{ + "type":"list", + "member":{"shape":"stringifiedJson"}, + "max":5, + "min":1, + "sensitive":true + }, "Operator":{ "type":"string", "enum":[ diff --git a/models/apis/customer-profiles/2020-08-15/docs-2.json b/models/apis/customer-profiles/2020-08-15/docs-2.json index 382e1b81229..40b29223773 100644 --- a/models/apis/customer-profiles/2020-08-15/docs-2.json +++ b/models/apis/customer-profiles/2020-08-15/docs-2.json @@ -17,6 +17,7 @@ "DeleteProfileObject": "

Removes an object associated with a profile of a given ProfileObjectType.

", "DeleteProfileObjectType": "

Removes a ProfileObjectType from a specific domain as well as removes all the ProfileObjects of that type. It also disables integrations from this specific ProfileObjectType. In addition, it scrubs all of the fields of the standard profile that were populated from this ProfileObjectType.

", "DeleteWorkflow": "

Deletes the specified workflow and all its corresponding resources. This is an async process.

", + "DetectProfileObjectType": "

The process of detecting profile object type mapping by using given objects.

", "GetAutoMergingPreview": "

Tests the auto-merging settings of your Identity Resolution Job without merging your data. It randomly selects a sample of matching groups from the existing matching results, and applies the automerging settings that you provided. You can then view the number of profiles in the sample, the number of matches, and the number of profiles identified to be merged. This enables you to evaluate the accuracy of the attributes in your matching list.

You can't view which profiles are matched and would be merged.

We strongly recommend you use this API to do a dry run of the automerging process before running the Identity Resolution Job. Include at least two matching attributes. If your matching list includes too few attributes (such as only FirstName or only LastName), there may be a large number of matches. This increases the chances of erroneous merges.

", "GetCalculatedAttributeDefinition": "

Provides more information on a calculated attribute definition for Customer Profiles.

", "GetCalculatedAttributeForProfile": "

Retrieve a calculated attribute for a customer profile.

", @@ -80,6 +81,7 @@ "DeleteProfileObjectTypeRequest$DomainName": "

The unique name of the domain.

", "DeleteProfileRequest$DomainName": "

The unique name of the domain.

", "DeleteWorkflowRequest$DomainName": "

The unique name of the domain.

", + "DetectProfileObjectTypeRequest$DomainName": "

The unique name of the domain.

", "EventStreamSummary$DomainName": "

The unique name of the domain.

", "EventStreamSummary$EventStreamName": "

The name of the event stream.

", "FieldMap$key": null, @@ -517,6 +519,28 @@ "EventStreamSummary$DestinationSummary": "

Summary information about the Kinesis data stream.

" } }, + "DetectProfileObjectTypeRequest": { + "base": null, + "refs": { + } + }, + "DetectProfileObjectTypeResponse": { + "base": null, + "refs": { + } + }, + "DetectedProfileObjectType": { + "base": "

Contains ProfileObjectType mapping information from the model.

", + "refs": { + "DetectedProfileObjectTypes$member": null + } + }, + "DetectedProfileObjectTypes": { + "base": null, + "refs": { + "DetectProfileObjectTypeResponse$DetectedProfileObjectTypes": "

Detected ProfileObjectType mappings from given objects. A maximum of one mapping is supported.

" + } + }, "DomainList": { "base": null, "refs": { @@ -606,6 +630,7 @@ "FieldMap": { "base": null, "refs": { + "DetectedProfileObjectType$Fields": "

A map of the name and the ObjectType field.

", "GetProfileObjectTypeResponse$Fields": "

A map of the name and ObjectType field.

", "GetProfileObjectTypeTemplateResponse$Fields": "

A map of the name and ObjectType field.

", "PutProfileObjectTypeRequest$Fields": "

A map of the name and ObjectType field.

", @@ -860,6 +885,7 @@ "KeyMap": { "base": null, "refs": { + "DetectedProfileObjectType$Keys": "

A list of unique keys that can be used to map data to a profile.

", "GetProfileObjectTypeResponse$Keys": "

A list of unique keys that can be used to map data to the profile.

", "GetProfileObjectTypeTemplateResponse$Keys": "

A list of unique keys that can be used to map data to the profile.

", "PutProfileObjectTypeRequest$Keys": "

A list of unique keys that can be used to map data to the profile.

", @@ -1205,6 +1231,12 @@ "PutIntegrationResponse$ObjectTypeNames": "

A map in which each key is an event type from an external application such as Segment or Shopify, and each value is an ObjectTypeName (template) used to ingest the event. It supports the following event types: SegmentIdentify, ShopifyCreateCustomers, ShopifyUpdateCustomers, ShopifyCreateDraftOrders, ShopifyUpdateDraftOrders, ShopifyCreateOrders, and ShopifyUpdatedOrders.

" } }, + "Objects": { + "base": null, + "refs": { + "DetectProfileObjectTypeRequest$Objects": "

A string that is serialized from a JSON object.

" + } + }, "Operator": { "base": null, "refs": { @@ -2058,6 +2090,7 @@ "DeleteProfileObjectRequest$ProfileObjectUniqueKey": "

The unique identifier of the profile object generated by the service.

", "DeleteWorkflowRequest$WorkflowId": "

Unique identifier for the workflow.

", "DestinationSummary$Uri": "

The StreamARN of the destination to deliver profile events to. For example, arn:aws:kinesis:region:account-id:stream/stream-name.

", + "DetectedProfileObjectType$SourceLastUpdatedTimestampFormat": "

The format of sourceLastUpdatedTimestamp that was detected in fields.

", "EmailList$member": null, "EventStreamDestinationDetails$Uri": "

The StreamARN of the destination to deliver profile events to. For example, arn:aws:kinesis:region:account-id:stream/stream-name.

", "EventStreamSummary$EventStreamArn": "

A unique identifier for the event stream.

", @@ -2110,6 +2143,7 @@ "base": null, "refs": { "ListProfileObjectsItem$Object": "

A JSON representation of a ProfileObject that belongs to a profile.

", + "Objects$member": null, "PutProfileObjectRequest$Object": "

A string that is serialized from a JSON object.

" } }, diff --git a/models/apis/customer-profiles/2020-08-15/endpoint-rule-set-1.json b/models/apis/customer-profiles/2020-08-15/endpoint-rule-set-1.json index 02edb0b68db..a20c929fbd5 100644 --- a/models/apis/customer-profiles/2020-08-15/endpoint-rule-set-1.json +++ b/models/apis/customer-profiles/2020-08-15/endpoint-rule-set-1.json @@ -40,7 +40,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -83,7 +82,8 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [ @@ -96,7 +96,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -110,7 +109,6 @@ "assign": "PartitionResult" } ], - "type": "tree", "rules": [ { "conditions": [ @@ -133,7 +131,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -168,7 +165,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [], @@ -179,14 +175,16 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [], "error": "FIPS and DualStack are enabled, but this partition does not support one or both", "type": "error" } - ] + ], + "type": "tree" }, { "conditions": [ @@ -200,14 +198,12 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ { "fn": "booleanEquals", "argv": [ - true, { "fn": "getAttr", "argv": [ @@ -216,11 +212,11 @@ }, "supportsFIPS" ] - } + }, + true ] } ], - "type": "tree", "rules": [ { "conditions": [], @@ -231,14 +227,16 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [], "error": "FIPS is enabled but this partition does not support FIPS", "type": "error" } - ] + ], + "type": "tree" }, { "conditions": [ @@ -252,7 +250,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -272,7 +269,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [], @@ -283,14 +279,16 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" }, { "conditions": [], "error": "DualStack is enabled but this partition does not support DualStack", "type": "error" } - ] + ], + "type": "tree" }, { "conditions": [], @@ -301,9 +299,11 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" } - ] + ], + "type": "tree" }, { "conditions": [], diff --git a/models/apis/qbusiness/2023-11-27/api-2.json b/models/apis/qbusiness/2023-11-27/api-2.json new file mode 100644 index 00000000000..8e584da389f --- /dev/null +++ b/models/apis/qbusiness/2023-11-27/api-2.json @@ -0,0 +1,6198 @@ +{ + "metadata": { + "apiVersion": "2023-11-27", + "endpointPrefix": "qbusiness", + "jsonVersion": "1.1", + "protocol": "rest-json", + "serviceFullName": "QBusiness", + "serviceId": "QBusiness", + "signatureVersion": "v4", + "signingName": "qbusiness", + "uid": "qbusiness-2023-11-27" + }, + "operations": { + "BatchDeleteDocument": { + "errors": [ + { + "shape": "ResourceNotFoundException" + }, + { + "shape": "InternalServerException" + }, + { + "shape": "ConflictException" + }, + { + "shape": "ThrottlingException" + }, + { + "shape": "ValidationException" + }, + { + "shape": "AccessDeniedException" + } + ], + "http": { + "method": "POST", + "requestUri": "/applications/{applicationId}/indices/{indexId}/documents/delete", + "responseCode": 200 + }, + "input": { + "shape": "BatchDeleteDocumentRequest" + }, + "name": "BatchDeleteDocument", + "output": { + "shape": "BatchDeleteDocumentResponse" + } + }, + "BatchPutDocument": { + "errors": [ + { + "shape": "ResourceNotFoundException" + }, + { + "shape": "InternalServerException" + }, + { + "shape": "ConflictException" + }, + { + "shape": "ThrottlingException" + }, + { + "shape": "ValidationException" + }, + { + "shape": "AccessDeniedException" + }, + { + "shape": "ServiceQuotaExceededException" + } + ], + "http": { + "method": "POST", + "requestUri": "/applications/{applicationId}/indices/{indexId}/documents", + "responseCode": 200 + }, + "input": { + "shape": "BatchPutDocumentRequest" + }, + "name": "BatchPutDocument", + "output": { + "shape": "BatchPutDocumentResponse" + } + }, + "ChatSync": { + "errors": [ + { + "shape": "ResourceNotFoundException" + }, + { + "shape": "InternalServerException" + }, + { + "shape": "LicenseNotFoundException" + }, + { + "shape": "ConflictException" + }, + { + "shape": "ThrottlingException" + }, + { + "shape": "ValidationException" + }, + { + "shape": "AccessDeniedException" + } + ], + "http": { + "method": "POST", + "requestUri": "/applications/{applicationId}/conversations?sync", + "responseCode": 200 + }, + "input": { + "shape": "ChatSyncInput" + }, + "name": "ChatSync", + "output": { + "shape": "ChatSyncOutput" + } + }, + "CreateApplication": { + "errors": [ + { + "shape": "ResourceNotFoundException" + }, + { + "shape": "InternalServerException" + }, + { + "shape": "ConflictException" + }, + { + "shape": "ThrottlingException" + }, + { + "shape": "ValidationException" + }, + { + "shape": "AccessDeniedException" + }, + { + "shape": "ServiceQuotaExceededException" + } + ], + "http": { + "method": "POST", + "requestUri": "/applications", + "responseCode": 200 + }, + "idempotent": true, + "input": { + "shape": "CreateApplicationRequest" + }, + "name": "CreateApplication", + "output": { + "shape": "CreateApplicationResponse" + } + }, + "CreateIndex": { + "errors": [ + { + "shape": "ResourceNotFoundException" + }, + { + "shape": "InternalServerException" + }, + { + "shape": "ConflictException" + }, + { + "shape": "ThrottlingException" + }, + { + "shape": "ValidationException" + }, + { + "shape": "AccessDeniedException" + }, + { + "shape": "ServiceQuotaExceededException" + } + ], + "http": { + "method": "POST", + "requestUri": "/applications/{applicationId}/indices", + "responseCode": 200 + }, + "input": { + "shape": "CreateIndexRequest" + }, + "name": "CreateIndex", + "output": { + "shape": "CreateIndexResponse" + } + }, + "CreatePlugin": { + "errors": [ + { + "shape": "ResourceNotFoundException" + }, + { + "shape": "InternalServerException" + }, + { + "shape": "ConflictException" + }, + { + "shape": "ThrottlingException" + }, + { + "shape": "ValidationException" + }, + { + "shape": "AccessDeniedException" + }, + { + "shape": "ServiceQuotaExceededException" + } + ], + "http": { + "method": "POST", + "requestUri": "/applications/{applicationId}/plugins", + "responseCode": 200 + }, + "idempotent": true, + "input": { + "shape": "CreatePluginRequest" + }, + "name": "CreatePlugin", + "output": { + "shape": "CreatePluginResponse" + } + }, + "CreateRetriever": { + "errors": [ + { + "shape": "ResourceNotFoundException" + }, + { + "shape": "InternalServerException" + }, + { + "shape": "ConflictException" + }, + { + "shape": "ThrottlingException" + }, + { + "shape": "ValidationException" + }, + { + "shape": "AccessDeniedException" + }, + { + "shape": "ServiceQuotaExceededException" + } + ], + "http": { + "method": "POST", + "requestUri": "/applications/{applicationId}/retrievers", + "responseCode": 200 + }, + "input": { + "shape": "CreateRetrieverRequest" + }, + "name": "CreateRetriever", + "output": { + "shape": "CreateRetrieverResponse" + } + }, + "CreateUser": { + "errors": [ + { + "shape": "ResourceNotFoundException" + }, + { + "shape": "InternalServerException" + }, + { + "shape": "ConflictException" + }, + { + "shape": "ThrottlingException" + }, + { + "shape": "ValidationException" + }, + { + "shape": "AccessDeniedException" + }, + { + "shape": "ServiceQuotaExceededException" + } + ], + "http": { + "method": "POST", + "requestUri": "/applications/{applicationId}/users", + "responseCode": 200 + }, + "idempotent": true, + "input": { + "shape": "CreateUserRequest" + }, + "name": "CreateUser", + "output": { + "shape": "CreateUserResponse" + } + }, + "CreateWebExperience": { + "errors": [ + { + "shape": "ResourceNotFoundException" + }, + { + "shape": "InternalServerException" + }, + { + "shape": "ConflictException" + }, + { + "shape": "ThrottlingException" + }, + { + "shape": "ValidationException" + }, + { + "shape": "AccessDeniedException" + }, + { + "shape": "ServiceQuotaExceededException" + } + ], + "http": { + "method": "POST", + "requestUri": "/applications/{applicationId}/experiences", + "responseCode": 200 + }, + "input": { + "shape": "CreateWebExperienceRequest" + }, + "name": "CreateWebExperience", + "output": { + "shape": "CreateWebExperienceResponse" + } + }, + "DeleteApplication": { + "errors": [ + { + "shape": "ResourceNotFoundException" + }, + { + "shape": "InternalServerException" + }, + { + "shape": "ConflictException" + }, + { + "shape": "ThrottlingException" + }, + { + "shape": "ValidationException" + }, + { + "shape": "AccessDeniedException" + } + ], + "http": { + "method": "DELETE", + "requestUri": "/applications/{applicationId}", + "responseCode": 200 + }, + "idempotent": true, + "input": { + "shape": "DeleteApplicationRequest" + }, + "name": "DeleteApplication", + "output": { + "shape": "DeleteApplicationResponse" + } + }, + "DeleteChatControlsConfiguration": { + "errors": [ + { + "shape": "ResourceNotFoundException" + }, + { + "shape": "InternalServerException" + }, + { + "shape": "ThrottlingException" + }, + { + "shape": "ValidationException" + }, + { + "shape": "AccessDeniedException" + } + ], + "http": { + "method": "DELETE", + "requestUri": "/applications/{applicationId}/chatcontrols", + "responseCode": 200 + }, + "idempotent": true, + "input": { + "shape": "DeleteChatControlsConfigurationRequest" + }, + "name": "DeleteChatControlsConfiguration", + "output": { + "shape": "DeleteChatControlsConfigurationResponse" + } + }, + "DeleteConversation": { + "errors": [ + { + "shape": "ResourceNotFoundException" + }, + { + "shape": "InternalServerException" + }, + { + "shape": "LicenseNotFoundException" + }, + { + "shape": "ThrottlingException" + }, + { + "shape": "ValidationException" + }, + { + "shape": "AccessDeniedException" + } + ], + "http": { + "method": "DELETE", + "requestUri": "/applications/{applicationId}/conversations/{conversationId}", + "responseCode": 200 + }, + "idempotent": true, + "input": { + "shape": "DeleteConversationRequest" + }, + "name": "DeleteConversation", + "output": { + "shape": "DeleteConversationResponse" + } + }, + "DeleteDataSource": { + "errors": [ + { + "shape": "ResourceNotFoundException" + }, + { + "shape": "InternalServerException" + }, + { + "shape": "ConflictException" + }, + { + "shape": "ThrottlingException" + }, + { + "shape": "ValidationException" + }, + { + "shape": "AccessDeniedException" + } + ], + "http": { + "method": "DELETE", + "requestUri": "/applications/{applicationId}/indices/{indexId}/datasources/{dataSourceId}", + "responseCode": 200 + }, + "idempotent": true, + "input": { + "shape": "DeleteDataSourceRequest" + }, + "name": "DeleteDataSource", + "output": { + "shape": "DeleteDataSourceResponse" + } + }, + "DeleteGroup": { + "errors": [ + { + "shape": "ResourceNotFoundException" + }, + { + "shape": "InternalServerException" + }, + { + "shape": "ConflictException" + }, + { + "shape": "ThrottlingException" + }, + { + "shape": "ValidationException" + }, + { + "shape": "AccessDeniedException" + } + ], + "http": { + "method": "DELETE", + "requestUri": "/applications/{applicationId}/indices/{indexId}/groups/{groupName}", + "responseCode": 200 + }, + "idempotent": true, + "input": { + "shape": "DeleteGroupRequest" + }, + "name": "DeleteGroup", + "output": { + "shape": "DeleteGroupResponse" + } + }, + "DeleteIndex": { + "errors": [ + { + "shape": "ResourceNotFoundException" + }, + { + "shape": "InternalServerException" + }, + { + "shape": "ConflictException" + }, + { + "shape": "ThrottlingException" + }, + { + "shape": "ValidationException" + }, + { + "shape": "AccessDeniedException" + } + ], + "http": { + "method": "DELETE", + "requestUri": "/applications/{applicationId}/indices/{indexId}", + "responseCode": 200 + }, + "idempotent": true, + "input": { + "shape": "DeleteIndexRequest" + }, + "name": "DeleteIndex", + "output": { + "shape": "DeleteIndexResponse" + } + }, + "DeletePlugin": { + "errors": [ + { + "shape": "ResourceNotFoundException" + }, + { + "shape": "InternalServerException" + }, + { + "shape": "ConflictException" + }, + { + "shape": "ThrottlingException" + }, + { + "shape": "ValidationException" + }, + { + "shape": "AccessDeniedException" + } + ], + "http": { + "method": "DELETE", + "requestUri": "/applications/{applicationId}/plugins/{pluginId}", + "responseCode": 200 + }, + "idempotent": true, + "input": { + "shape": "DeletePluginRequest" + }, + "name": "DeletePlugin", + "output": { + "shape": "DeletePluginResponse" + } + }, + "DeleteRetriever": { + "errors": [ + { + "shape": "ResourceNotFoundException" + }, + { + "shape": "InternalServerException" + }, + { + "shape": "ConflictException" + }, + { + "shape": "ThrottlingException" + }, + { + "shape": "ValidationException" + }, + { + "shape": "AccessDeniedException" + } + ], + "http": { + "method": "DELETE", + "requestUri": "/applications/{applicationId}/retrievers/{retrieverId}", + "responseCode": 200 + }, + "idempotent": true, + "input": { + "shape": "DeleteRetrieverRequest" + }, + "name": "DeleteRetriever", + "output": { + "shape": "DeleteRetrieverResponse" + } + }, + "DeleteUser": { + "errors": [ + { + "shape": "ResourceNotFoundException" + }, + { + "shape": "InternalServerException" + }, + { + "shape": "ConflictException" + }, + { + "shape": "ThrottlingException" + }, + { + "shape": "ValidationException" + }, + { + "shape": "AccessDeniedException" + } + ], + "http": { + "method": "DELETE", + "requestUri": "/applications/{applicationId}/users/{userId}", + "responseCode": 200 + }, + "idempotent": true, + "input": { + "shape": "DeleteUserRequest" + }, + "name": "DeleteUser", + "output": { + "shape": "DeleteUserResponse" + } + }, + "DeleteWebExperience": { + "errors": [ + { + "shape": "ResourceNotFoundException" + }, + { + "shape": "InternalServerException" + }, + { + "shape": "ConflictException" + }, + { + "shape": "ThrottlingException" + }, + { + "shape": "ValidationException" + }, + { + "shape": "AccessDeniedException" + } + ], + "http": { + "method": "DELETE", + "requestUri": "/applications/{applicationId}/experiences/{webExperienceId}", + "responseCode": 200 + }, + "idempotent": true, + "input": { + "shape": "DeleteWebExperienceRequest" + }, + "name": "DeleteWebExperience", + "output": { + "shape": "DeleteWebExperienceResponse" + } + }, + "GetApplication": { + "errors": [ + { + "shape": "ResourceNotFoundException" + }, + { + "shape": "InternalServerException" + }, + { + "shape": "ThrottlingException" + }, + { + "shape": "ValidationException" + }, + { + "shape": "AccessDeniedException" + } + ], + "http": { + "method": "GET", + "requestUri": "/applications/{applicationId}", + "responseCode": 200 + }, + "input": { + "shape": "GetApplicationRequest" + }, + "name": "GetApplication", + "output": { + "shape": "GetApplicationResponse" + } + }, + "GetChatControlsConfiguration": { + "errors": [ + { + "shape": "ResourceNotFoundException" + }, + { + "shape": "InternalServerException" + }, + { + "shape": "ThrottlingException" + }, + { + "shape": "ValidationException" + }, + { + "shape": "AccessDeniedException" + } + ], + "http": { + "method": "GET", + "requestUri": "/applications/{applicationId}/chatcontrols", + "responseCode": 200 + }, + "input": { + "shape": "GetChatControlsConfigurationRequest" + }, + "name": "GetChatControlsConfiguration", + "output": { + "shape": "GetChatControlsConfigurationResponse" + } + }, + "GetDataSource": { + "errors": [ + { + "shape": "ResourceNotFoundException" + }, + { + "shape": "InternalServerException" + }, + { + "shape": "ThrottlingException" + }, + { + "shape": "ValidationException" + }, + { + "shape": "AccessDeniedException" + } + ], + "http": { + "method": "GET", + "requestUri": "/applications/{applicationId}/indices/{indexId}/datasources/{dataSourceId}", + "responseCode": 200 + }, + "input": { + "shape": "GetDataSourceRequest" + }, + "name": "GetDataSource", + "output": { + "shape": "GetDataSourceResponse" + } + }, + "GetGroup": { + "errors": [ + { + "shape": "ResourceNotFoundException" + }, + { + "shape": "InternalServerException" + }, + { + "shape": "ConflictException" + }, + { + "shape": "ThrottlingException" + }, + { + "shape": "ValidationException" + }, + { + "shape": "AccessDeniedException" + } + ], + "http": { + "method": "GET", + "requestUri": "/applications/{applicationId}/indices/{indexId}/groups/{groupName}", + "responseCode": 200 + }, + "input": { + "shape": "GetGroupRequest" + }, + "name": "GetGroup", + "output": { + "shape": "GetGroupResponse" + } + }, + "GetIndex": { + "errors": [ + { + "shape": "ResourceNotFoundException" + }, + { + "shape": "InternalServerException" + }, + { + "shape": "ThrottlingException" + }, + { + "shape": "ValidationException" + }, + { + "shape": "AccessDeniedException" + } + ], + "http": { + "method": "GET", + "requestUri": "/applications/{applicationId}/indices/{indexId}", + "responseCode": 200 + }, + "input": { + "shape": "GetIndexRequest" + }, + "name": "GetIndex", + "output": { + "shape": "GetIndexResponse" + } + }, + "GetPlugin": { + "errors": [ + { + "shape": "ResourceNotFoundException" + }, + { + "shape": "InternalServerException" + }, + { + "shape": "ThrottlingException" + }, + { + "shape": "ValidationException" + }, + { + "shape": "AccessDeniedException" + } + ], + "http": { + "method": "GET", + "requestUri": "/applications/{applicationId}/plugins/{pluginId}", + "responseCode": 200 + }, + "input": { + "shape": "GetPluginRequest" + }, + "name": "GetPlugin", + "output": { + "shape": "GetPluginResponse" + } + }, + "GetRetriever": { + "errors": [ + { + "shape": "ResourceNotFoundException" + }, + { + "shape": "InternalServerException" + }, + { + "shape": "ThrottlingException" + }, + { + "shape": "ValidationException" + }, + { + "shape": "AccessDeniedException" + } + ], + "http": { + "method": "GET", + "requestUri": "/applications/{applicationId}/retrievers/{retrieverId}", + "responseCode": 200 + }, + "input": { + "shape": "GetRetrieverRequest" + }, + "name": "GetRetriever", + "output": { + "shape": "GetRetrieverResponse" + } + }, + "GetUser": { + "errors": [ + { + "shape": "ResourceNotFoundException" + }, + { + "shape": "InternalServerException" + }, + { + "shape": "ConflictException" + }, + { + "shape": "ThrottlingException" + }, + { + "shape": "ValidationException" + }, + { + "shape": "AccessDeniedException" + } + ], + "http": { + "method": "GET", + "requestUri": "/applications/{applicationId}/users/{userId}", + "responseCode": 200 + }, + "input": { + "shape": "GetUserRequest" + }, + "name": "GetUser", + "output": { + "shape": "GetUserResponse" + } + }, + "GetWebExperience": { + "errors": [ + { + "shape": "ResourceNotFoundException" + }, + { + "shape": "InternalServerException" + }, + { + "shape": "ThrottlingException" + }, + { + "shape": "ValidationException" + }, + { + "shape": "AccessDeniedException" + } + ], + "http": { + "method": "GET", + "requestUri": "/applications/{applicationId}/experiences/{webExperienceId}", + "responseCode": 200 + }, + "input": { + "shape": "GetWebExperienceRequest" + }, + "name": "GetWebExperience", + "output": { + "shape": "GetWebExperienceResponse" + } + }, + "ListApplications": { + "errors": [ + { + "shape": "InternalServerException" + }, + { + "shape": "ThrottlingException" + }, + { + "shape": "ValidationException" + }, + { + "shape": "AccessDeniedException" + } + ], + "http": { + "method": "GET", + "requestUri": "/applications", + "responseCode": 200 + }, + "input": { + "shape": "ListApplicationsRequest" + }, + "name": "ListApplications", + "output": { + "shape": "ListApplicationsResponse" + } + }, + "ListConversations": { + "errors": [ + { + "shape": "ResourceNotFoundException" + }, + { + "shape": "InternalServerException" + }, + { + "shape": "LicenseNotFoundException" + }, + { + "shape": "ThrottlingException" + }, + { + "shape": "ValidationException" + }, + { + "shape": "AccessDeniedException" + } + ], + "http": { + "method": "GET", + "requestUri": "/applications/{applicationId}/conversations", + "responseCode": 200 + }, + "input": { + "shape": "ListConversationsRequest" + }, + "name": "ListConversations", + "output": { + "shape": "ListConversationsResponse" + } + }, + "ListDataSourceSyncJobs": { + "errors": [ + { + "shape": "ResourceNotFoundException" + }, + { + "shape": "InternalServerException" + }, + { + "shape": "ThrottlingException" + }, + { + "shape": "ValidationException" + }, + { + "shape": "AccessDeniedException" + } + ], + "http": { + "method": "GET", + "requestUri": "/applications/{applicationId}/indices/{indexId}/datasources/{dataSourceId}/syncjobs", + "responseCode": 200 + }, + "input": { + "shape": "ListDataSourceSyncJobsRequest" + }, + "name": "ListDataSourceSyncJobs", + "output": { + "shape": "ListDataSourceSyncJobsResponse" + } + }, + "ListDataSources": { + "errors": [ + { + "shape": "ResourceNotFoundException" + }, + { + "shape": "InternalServerException" + }, + { + "shape": "ThrottlingException" + }, + { + "shape": "ValidationException" + }, + { + "shape": "AccessDeniedException" + } + ], + "http": { + "method": "GET", + "requestUri": "/applications/{applicationId}/indices/{indexId}/datasources", + "responseCode": 200 + }, + "input": { + "shape": "ListDataSourcesRequest" + }, + "name": "ListDataSources", + "output": { + "shape": "ListDataSourcesResponse" + } + }, + "ListDocuments": { + "errors": [ + { + "shape": "ResourceNotFoundException" + }, + { + "shape": "InternalServerException" + }, + { + "shape": "ThrottlingException" + }, + { + "shape": "ValidationException" + }, + { + "shape": "AccessDeniedException" + } + ], + "http": { + "method": "GET", + "requestUri": "/applications/{applicationId}/index/{indexId}/documents", + "responseCode": 200 + }, + "input": { + "shape": "ListDocumentsRequest" + }, + "name": "ListDocuments", + "output": { + "shape": "ListDocumentsResponse" + } + }, + "ListGroups": { + "errors": [ + { + "shape": "ResourceNotFoundException" + }, + { + "shape": "InternalServerException" + }, + { + "shape": "ConflictException" + }, + { + "shape": "ThrottlingException" + }, + { + "shape": "ValidationException" + }, + { + "shape": "AccessDeniedException" + } + ], + "http": { + "method": "GET", + "requestUri": "/applications/{applicationId}/indices/{indexId}/groups", + "responseCode": 200 + }, + "input": { + "shape": "ListGroupsRequest" + }, + "name": "ListGroups", + "output": { + "shape": "ListGroupsResponse" + } + }, + "ListIndices": { + "errors": [ + { + "shape": "ResourceNotFoundException" + }, + { + "shape": "InternalServerException" + }, + { + "shape": "ThrottlingException" + }, + { + "shape": "ValidationException" + }, + { + "shape": "AccessDeniedException" + } + ], + "http": { + "method": "GET", + "requestUri": "/applications/{applicationId}/indices", + "responseCode": 200 + }, + "input": { + "shape": "ListIndicesRequest" + }, + "name": "ListIndices", + "output": { + "shape": "ListIndicesResponse" + } + }, + "ListMessages": { + "errors": [ + { + "shape": "ResourceNotFoundException" + }, + { + "shape": "InternalServerException" + }, + { + "shape": "LicenseNotFoundException" + }, + { + "shape": "ThrottlingException" + }, + { + "shape": "ValidationException" + }, + { + "shape": "AccessDeniedException" + } + ], + "http": { + "method": "GET", + "requestUri": "/applications/{applicationId}/conversations/{conversationId}", + "responseCode": 200 + }, + "input": { + "shape": "ListMessagesRequest" + }, + "name": "ListMessages", + "output": { + "shape": "ListMessagesResponse" + } + }, + "ListPlugins": { + "errors": [ + { + "shape": "ResourceNotFoundException" + }, + { + "shape": "InternalServerException" + }, + { + "shape": "ThrottlingException" + }, + { + "shape": "ValidationException" + }, + { + "shape": "AccessDeniedException" + } + ], + "http": { + "method": "GET", + "requestUri": "/applications/{applicationId}/plugins", + "responseCode": 200 + }, + "input": { + "shape": "ListPluginsRequest" + }, + "name": "ListPlugins", + "output": { + "shape": "ListPluginsResponse" + } + }, + "ListRetrievers": { + "errors": [ + { + "shape": "ResourceNotFoundException" + }, + { + "shape": "InternalServerException" + }, + { + "shape": "ThrottlingException" + }, + { + "shape": "ValidationException" + }, + { + "shape": "AccessDeniedException" + } + ], + "http": { + "method": "GET", + "requestUri": "/applications/{applicationId}/retrievers", + "responseCode": 200 + }, + "input": { + "shape": "ListRetrieversRequest" + }, + "name": "ListRetrievers", + "output": { + "shape": "ListRetrieversResponse" + } + }, + "ListTagsForResource": { + "errors": [ + { + "shape": "ResourceNotFoundException" + }, + { + "shape": "InternalServerException" + }, + { + "shape": "ThrottlingException" + }, + { + "shape": "ValidationException" + }, + { + "shape": "AccessDeniedException" + } + ], + "http": { + "method": "GET", + "requestUri": "/v1/tags/{resourceARN}", + "responseCode": 200 + }, + "input": { + "shape": "ListTagsForResourceRequest" + }, + "name": "ListTagsForResource", + "output": { + "shape": "ListTagsForResourceResponse" + } + }, + "ListWebExperiences": { + "errors": [ + { + "shape": "ResourceNotFoundException" + }, + { + "shape": "InternalServerException" + }, + { + "shape": "ThrottlingException" + }, + { + "shape": "ValidationException" + }, + { + "shape": "AccessDeniedException" + } + ], + "http": { + "method": "GET", + "requestUri": "/applications/{applicationId}/experiences", + "responseCode": 200 + }, + "input": { + "shape": "ListWebExperiencesRequest" + }, + "name": "ListWebExperiences", + "output": { + "shape": "ListWebExperiencesResponse" + } + }, + "PutFeedback": { + "errors": [ + { + "shape": "ResourceNotFoundException" + }, + { + "shape": "InternalServerException" + }, + { + "shape": "ThrottlingException" + }, + { + "shape": "ValidationException" + }, + { + "shape": "AccessDeniedException" + } + ], + "http": { + "method": "POST", + "requestUri": "/applications/{applicationId}/conversations/{conversationId}/messages/{messageId}/feedback", + "responseCode": 200 + }, + "input": { + "shape": "PutFeedbackRequest" + }, + "name": "PutFeedback" + }, + "PutGroup": { + "errors": [ + { + "shape": "ResourceNotFoundException" + }, + { + "shape": "InternalServerException" + }, + { + "shape": "ConflictException" + }, + { + "shape": "ThrottlingException" + }, + { + "shape": "ValidationException" + }, + { + "shape": "AccessDeniedException" + }, + { + "shape": "ServiceQuotaExceededException" + } + ], + "http": { + "method": "PUT", + "requestUri": "/applications/{applicationId}/indices/{indexId}/groups", + "responseCode": 200 + }, + "idempotent": true, + "input": { + "shape": "PutGroupRequest" + }, + "name": "PutGroup", + "output": { + "shape": "PutGroupResponse" + } + }, + "StartDataSourceSyncJob": { + "errors": [ + { + "shape": "ResourceNotFoundException" + }, + { + "shape": "InternalServerException" + }, + { + "shape": "ConflictException" + }, + { + "shape": "ThrottlingException" + }, + { + "shape": "ValidationException" + }, + { + "shape": "AccessDeniedException" + }, + { + "shape": "ServiceQuotaExceededException" + } + ], + "http": { + "method": "POST", + "requestUri": "/applications/{applicationId}/indices/{indexId}/datasources/{dataSourceId}/startsync", + "responseCode": 200 + }, + "input": { + "shape": "StartDataSourceSyncJobRequest" + }, + "name": "StartDataSourceSyncJob", + "output": { + "shape": "StartDataSourceSyncJobResponse" + } + }, + "StopDataSourceSyncJob": { + "errors": [ + { + "shape": "ResourceNotFoundException" + }, + { + "shape": "InternalServerException" + }, + { + "shape": "ThrottlingException" + }, + { + "shape": "ValidationException" + }, + { + "shape": "AccessDeniedException" + } + ], + "http": { + "method": "POST", + "requestUri": "/applications/{applicationId}/indices/{indexId}/datasources/{dataSourceId}/stopsync", + "responseCode": 200 + }, + "input": { + "shape": "StopDataSourceSyncJobRequest" + }, + "name": "StopDataSourceSyncJob", + "output": { + "shape": "StopDataSourceSyncJobResponse" + } + }, + "TagResource": { + "errors": [ + { + "shape": "ResourceNotFoundException" + }, + { + "shape": "InternalServerException" + }, + { + "shape": "ConflictException" + }, + { + "shape": "ThrottlingException" + }, + { + "shape": "ValidationException" + }, + { + "shape": "AccessDeniedException" + } + ], + "http": { + "method": "POST", + "requestUri": "/v1/tags/{resourceARN}", + "responseCode": 200 + }, + "idempotent": true, + "input": { + "shape": "TagResourceRequest" + }, + "name": "TagResource", + "output": { + "shape": "TagResourceResponse" + } + }, + "UntagResource": { + "errors": [ + { + "shape": "ResourceNotFoundException" + }, + { + "shape": "InternalServerException" + }, + { + "shape": "ThrottlingException" + }, + { + "shape": "ValidationException" + }, + { + "shape": "AccessDeniedException" + } + ], + "http": { + "method": "DELETE", + "requestUri": "/v1/tags/{resourceARN}", + "responseCode": 200 + }, + "idempotent": true, + "input": { + "shape": "UntagResourceRequest" + }, + "name": "UntagResource", + "output": { + "shape": "UntagResourceResponse" + } + }, + "UpdateApplication": { + "errors": [ + { + "shape": "ResourceNotFoundException" + }, + { + "shape": "InternalServerException" + }, + { + "shape": "ConflictException" + }, + { + "shape": "ThrottlingException" + }, + { + "shape": "ValidationException" + }, + { + "shape": "AccessDeniedException" + } + ], + "http": { + "method": "PUT", + "requestUri": "/applications/{applicationId}", + "responseCode": 200 + }, + "idempotent": true, + "input": { + "shape": "UpdateApplicationRequest" + }, + "name": "UpdateApplication", + "output": { + "shape": "UpdateApplicationResponse" + } + }, + "UpdateChatControlsConfiguration": { + "errors": [ + { + "shape": "ResourceNotFoundException" + }, + { + "shape": "InternalServerException" + }, + { + "shape": "ConflictException" + }, + { + "shape": "ThrottlingException" + }, + { + "shape": "ValidationException" + }, + { + "shape": "AccessDeniedException" + }, + { + "shape": "ServiceQuotaExceededException" + } + ], + "http": { + "method": "PATCH", + "requestUri": "/applications/{applicationId}/chatcontrols", + "responseCode": 200 + }, + "idempotent": true, + "input": { + "shape": "UpdateChatControlsConfigurationRequest" + }, + "name": "UpdateChatControlsConfiguration", + "output": { + "shape": "UpdateChatControlsConfigurationResponse" + } + }, + "UpdateDataSource": { + "errors": [ + { + "shape": "ResourceNotFoundException" + }, + { + "shape": "InternalServerException" + }, + { + "shape": "ConflictException" + }, + { + "shape": "ThrottlingException" + }, + { + "shape": "ValidationException" + }, + { + "shape": "AccessDeniedException" + } + ], + "http": { + "method": "PUT", + "requestUri": "/applications/{applicationId}/indices/{indexId}/datasources/{dataSourceId}", + "responseCode": 200 + }, + "idempotent": true, + "input": { + "shape": "UpdateDataSourceRequest" + }, + "name": "UpdateDataSource", + "output": { + "shape": "UpdateDataSourceResponse" + } + }, + "UpdateIndex": { + "errors": [ + { + "shape": "ResourceNotFoundException" + }, + { + "shape": "InternalServerException" + }, + { + "shape": "ConflictException" + }, + { + "shape": "ThrottlingException" + }, + { + "shape": "ValidationException" + }, + { + "shape": "AccessDeniedException" + }, + { + "shape": "ServiceQuotaExceededException" + } + ], + "http": { + "method": "PUT", + "requestUri": "/applications/{applicationId}/indices/{indexId}", + "responseCode": 200 + }, + "idempotent": true, + "input": { + "shape": "UpdateIndexRequest" + }, + "name": "UpdateIndex", + "output": { + "shape": "UpdateIndexResponse" + } + }, + "UpdatePlugin": { + "errors": [ + { + "shape": "ResourceNotFoundException" + }, + { + "shape": "InternalServerException" + }, + { + "shape": "ConflictException" + }, + { + "shape": "ThrottlingException" + }, + { + "shape": "ValidationException" + }, + { + "shape": "AccessDeniedException" + }, + { + "shape": "ServiceQuotaExceededException" + } + ], + "http": { + "method": "PUT", + "requestUri": "/applications/{applicationId}/plugins/{pluginId}", + "responseCode": 200 + }, + "idempotent": true, + "input": { + "shape": "UpdatePluginRequest" + }, + "name": "UpdatePlugin", + "output": { + "shape": "UpdatePluginResponse" + } + }, + "UpdateRetriever": { + "errors": [ + { + "shape": "ResourceNotFoundException" + }, + { + "shape": "InternalServerException" + }, + { + "shape": "ConflictException" + }, + { + "shape": "ThrottlingException" + }, + { + "shape": "ValidationException" + }, + { + "shape": "AccessDeniedException" + }, + { + "shape": "ServiceQuotaExceededException" + } + ], + "http": { + "method": "PUT", + "requestUri": "/applications/{applicationId}/retrievers/{retrieverId}", + "responseCode": 200 + }, + "idempotent": true, + "input": { + "shape": "UpdateRetrieverRequest" + }, + "name": "UpdateRetriever", + "output": { + "shape": "UpdateRetrieverResponse" + } + }, + "UpdateUser": { + "errors": [ + { + "shape": "ResourceNotFoundException" + }, + { + "shape": "InternalServerException" + }, + { + "shape": "ThrottlingException" + }, + { + "shape": "ValidationException" + }, + { + "shape": "AccessDeniedException" + }, + { + "shape": "ServiceQuotaExceededException" + } + ], + "http": { + "method": "PUT", + "requestUri": "/applications/{applicationId}/users/{userId}", + "responseCode": 200 + }, + "idempotent": true, + "input": { + "shape": "UpdateUserRequest" + }, + "name": "UpdateUser", + "output": { + "shape": "UpdateUserResponse" + } + }, + "UpdateWebExperience": { + "errors": [ + { + "shape": "ResourceNotFoundException" + }, + { + "shape": "InternalServerException" + }, + { + "shape": "ConflictException" + }, + { + "shape": "ThrottlingException" + }, + { + "shape": "ValidationException" + }, + { + "shape": "AccessDeniedException" + } + ], + "http": { + "method": "PUT", + "requestUri": "/applications/{applicationId}/experiences/{webExperienceId}", + "responseCode": 200 + }, + "idempotent": true, + "input": { + "shape": "UpdateWebExperienceRequest" + }, + "name": "UpdateWebExperience", + "output": { + "shape": "UpdateWebExperienceResponse" + } + } + }, + "shapes": { + "AccessConfiguration": { + "members": { + "accessControls": { + "shape": "AccessControls" + }, + "memberRelation": { + "shape": "MemberRelation" + } + }, + "required": [ + "accessControls" + ], + "type": "structure" + }, + "AccessControl": { + "members": { + "memberRelation": { + "shape": "MemberRelation" + }, + "principals": { + "shape": "Principals" + } + }, + "required": [ + "principals" + ], + "type": "structure" + }, + "AccessControls": { + "member": { + "shape": "AccessControl" + }, + "type": "list" + }, + "AccessDeniedException": { + "error": { + "httpStatusCode": 403, + "senderFault": true + }, + "exception": true, + "members": { + "message": { + "shape": "ErrorMessage" + } + }, + "required": [ + "message" + ], + "type": "structure" + }, + "ActionPayloadFieldKey": { + "min": 1, + "type": "string" + }, + "ActionPayloadFieldNameSeparator": { + "max": 1, + "min": 1, + "type": "string" + }, + "ActionPayloadFieldType": { + "enum": [ + "STRING", + "NUMBER", + "ARRAY", + "BOOLEAN" + ], + "type": "string" + }, + "ActionReview": { + "members": { + "payload": { + "shape": "ActionReviewPayload" + }, + "payloadFieldNameSeparator": { + "shape": "ActionPayloadFieldNameSeparator" + }, + "pluginId": { + "shape": "PluginId" + }, + "pluginType": { + "shape": "PluginType" + } + }, + "type": "structure" + }, + "ActionReviewPayload": { + "key": { + "shape": "ActionPayloadFieldKey" + }, + "type": "map", + "value": { + "shape": "ActionReviewPayloadField" + } + }, + "ActionReviewPayloadField": { + "members": { + "allowedValues": { + "shape": "ActionReviewPayloadFieldAllowedValues" + }, + "displayName": { + "shape": "String" + }, + "displayOrder": { + "shape": "Integer" + }, + "required": { + "shape": "Boolean" + }, + "type": { + "shape": "ActionPayloadFieldType" + } + }, + "type": "structure" + }, + "ActionReviewPayloadFieldAllowedValue": { + "members": {}, + "type": "structure" + }, + "ActionReviewPayloadFieldAllowedValues": { + "member": { + "shape": "ActionReviewPayloadFieldAllowedValue" + }, + "type": "list" + }, + "AmazonResourceName": { + "max": 1011, + "min": 1, + "type": "string" + }, + "Application": { + "members": { + "applicationId": { + "shape": "ApplicationId" + }, + "createdAt": { + "shape": "Timestamp" + }, + "displayName": { + "shape": "ApplicationName" + }, + "status": { + "shape": "ApplicationStatus" + }, + "updatedAt": { + "shape": "Timestamp" + } + }, + "type": "structure" + }, + "ApplicationArn": { + "max": 1284, + "min": 0, + "pattern": "^arn:[a-z0-9-\\.]{1,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[^/].{0,1023}$", + "type": "string" + }, + "ApplicationId": { + "max": 36, + "min": 36, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9-]{35}$", + "type": "string" + }, + "ApplicationName": { + "max": 1000, + "min": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*$", + "type": "string" + }, + "ApplicationStatus": { + "enum": [ + "CREATING", + "ACTIVE", + "DELETING", + "FAILED", + "UPDATING" + ], + "type": "string" + }, + "Applications": { + "member": { + "shape": "Application" + }, + "type": "list" + }, + "AppliedAttachmentsConfiguration": { + "members": { + "attachmentsControlMode": { + "shape": "AttachmentsControlMode" + } + }, + "type": "structure" + }, + "AttachmentInput": { + "members": { + "data": { + "shape": "Blob" + }, + "name": { + "shape": "AttachmentName" + } + }, + "required": [ + "data", + "name" + ], + "type": "structure" + }, + "AttachmentName": { + "max": 1000, + "min": 1, + "pattern": "^\\P{C}*$", + "type": "string" + }, + "AttachmentOutput": { + "members": { + "error": { + "shape": "ErrorDetail" + }, + "name": { + "shape": "AttachmentName" + }, + "status": { + "shape": "AttachmentStatus" + } + }, + "type": "structure" + }, + "AttachmentStatus": { + "enum": [ + "FAILED", + "SUCCEEDED" + ], + "type": "string" + }, + "AttachmentsConfiguration": { + "members": { + "attachmentsControlMode": { + "shape": "AttachmentsControlMode" + } + }, + "required": [ + "attachmentsControlMode" + ], + "type": "structure" + }, + "AttachmentsControlMode": { + "enum": [ + "ENABLED", + "DISABLED" + ], + "type": "string" + }, + "AttachmentsInput": { + "member": { + "shape": "AttachmentInput" + }, + "min": 1, + "type": "list" + }, + "AttachmentsOutput": { + "member": { + "shape": "AttachmentOutput" + }, + "type": "list" + }, + "AttributeFilter": { + "members": { + "andAllFilters": { + "shape": "AttributeFilters" + }, + "containsAll": { + "shape": "DocumentAttribute" + }, + "containsAny": { + "shape": "DocumentAttribute" + }, + "equalsTo": { + "shape": "DocumentAttribute" + }, + "greaterThan": { + "shape": "DocumentAttribute" + }, + "greaterThanOrEquals": { + "shape": "DocumentAttribute" + }, + "lessThan": { + "shape": "DocumentAttribute" + }, + "lessThanOrEquals": { + "shape": "DocumentAttribute" + }, + "notFilter": { + "shape": "AttributeFilter" + }, + "orAllFilters": { + "shape": "AttributeFilters" + } + }, + "type": "structure" + }, + "AttributeFilters": { + "member": { + "shape": "AttributeFilter" + }, + "type": "list" + }, + "AttributeType": { + "enum": [ + "STRING", + "STRING_LIST", + "NUMBER", + "DATE" + ], + "type": "string" + }, + "AttributeValueOperator": { + "enum": [ + "DELETE" + ], + "type": "string" + }, + "BasicAuthConfiguration": { + "members": { + "roleArn": { + "shape": "RoleArn" + }, + "secretArn": { + "shape": "SecretArn" + } + }, + "required": [ + "roleArn", + "secretArn" + ], + "type": "structure" + }, + "BatchDeleteDocumentRequest": { + "members": { + "applicationId": { + "location": "uri", + "locationName": "applicationId", + "shape": "ApplicationId" + }, + "dataSourceSyncId": { + "shape": "ExecutionId" + }, + "documents": { + "shape": "DeleteDocuments" + }, + "indexId": { + "location": "uri", + "locationName": "indexId", + "shape": "IndexId" + } + }, + "required": [ + "applicationId", + "documents", + "indexId" + ], + "type": "structure" + }, + "BatchDeleteDocumentResponse": { + "members": { + "failedDocuments": { + "shape": "FailedDocuments" + } + }, + "type": "structure" + }, + "BatchPutDocumentRequest": { + "members": { + "applicationId": { + "location": "uri", + "locationName": "applicationId", + "shape": "ApplicationId" + }, + "dataSourceSyncId": { + "shape": "ExecutionId" + }, + "documents": { + "shape": "Documents" + }, + "indexId": { + "location": "uri", + "locationName": "indexId", + "shape": "IndexId" + }, + "roleArn": { + "shape": "RoleArn" + } + }, + "required": [ + "applicationId", + "documents", + "indexId" + ], + "type": "structure" + }, + "BatchPutDocumentResponse": { + "members": { + "failedDocuments": { + "shape": "FailedDocuments" + } + }, + "type": "structure" + }, + "Blob": { + "type": "blob" + }, + "BlockedPhrase": { + "max": 36, + "min": 0, + "pattern": "^\\P{C}*$", + "type": "string" + }, + "BlockedPhrases": { + "max": 5, + "member": { + "shape": "BlockedPhrase" + }, + "min": 0, + "type": "list" + }, + "BlockedPhrasesConfiguration": { + "members": { + "blockedPhrases": { + "shape": "BlockedPhrases" + }, + "systemMessageOverride": { + "shape": "SystemMessageOverride" + } + }, + "type": "structure" + }, + "BlockedPhrasesConfigurationUpdate": { + "members": { + "blockedPhrasesToCreateOrUpdate": { + "shape": "BlockedPhrases" + }, + "blockedPhrasesToDelete": { + "shape": "BlockedPhrases" + }, + "systemMessageOverride": { + "shape": "SystemMessageOverride" + } + }, + "type": "structure" + }, + "Boolean": { + "box": true, + "type": "boolean" + }, + "ChatSyncInput": { + "members": { + "applicationId": { + "location": "uri", + "locationName": "applicationId", + "shape": "ApplicationId" + }, + "attachments": { + "shape": "AttachmentsInput" + }, + "attributeFilter": { + "shape": "AttributeFilter" + }, + "clientToken": { + "idempotencyToken": true, + "shape": "ClientToken" + }, + "conversationId": { + "shape": "ConversationId" + }, + "parentMessageId": { + "shape": "MessageId" + }, + "userGroups": { + "location": "querystring", + "locationName": "userGroups", + "shape": "UserGroups" + }, + "userId": { + "location": "querystring", + "locationName": "userId", + "shape": "UserId" + }, + "userMessage": { + "shape": "UserMessage" + } + }, + "required": [ + "applicationId", + "userId" + ], + "type": "structure" + }, + "ChatSyncOutput": { + "members": { + "actionReview": { + "shape": "ActionReview" + }, + "conversationId": { + "shape": "ConversationId" + }, + "failedAttachments": { + "shape": "AttachmentsOutput" + }, + "sourceAttributions": { + "shape": "SourceAttributions" + }, + "systemMessage": { + "shape": "String" + }, + "systemMessageId": { + "shape": "MessageId" + }, + "userMessageId": { + "shape": "MessageId" + } + }, + "type": "structure" + }, + "ClientToken": { + "max": 100, + "min": 1, + "type": "string" + }, + "ConflictException": { + "error": { + "httpStatusCode": 409, + "senderFault": true + }, + "exception": true, + "members": { + "message": { + "shape": "ErrorMessage" + }, + "resourceId": { + "shape": "String" + }, + "resourceType": { + "shape": "String" + } + }, + "required": [ + "message", + "resourceId", + "resourceType" + ], + "type": "structure" + }, + "ContentBlockerRule": { + "members": { + "systemMessageOverride": { + "shape": "SystemMessageOverride" + } + }, + "type": "structure" + }, + "ContentRetrievalRule": { + "members": { + "eligibleDataSources": { + "shape": "EligibleDataSources" + } + }, + "type": "structure" + }, + "ContentType": { + "enum": [ + "PDF", + "HTML", + "MS_WORD", + "PLAIN_TEXT", + "PPT", + "RTF", + "XML", + "XSLT", + "MS_EXCEL", + "CSV", + "JSON", + "MD" + ], + "type": "string" + }, + "Conversation": { + "members": { + "conversationId": { + "shape": "ConversationId" + }, + "startTime": { + "shape": "Timestamp" + }, + "title": { + "shape": "ConversationTitle" + } + }, + "type": "structure" + }, + "ConversationId": { + "max": 36, + "min": 36, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9-]{35}$", + "type": "string" + }, + "ConversationTitle": { + "type": "string" + }, + "Conversations": { + "member": { + "shape": "Conversation" + }, + "type": "list" + }, + "CreateApplicationRequest": { + "members": { + "attachmentsConfiguration": { + "shape": "AttachmentsConfiguration" + }, + "clientToken": { + "idempotencyToken": true, + "shape": "ClientToken" + }, + "description": { + "shape": "Description" + }, + "displayName": { + "shape": "ApplicationName" + }, + "encryptionConfiguration": { + "shape": "EncryptionConfiguration" + }, + "roleArn": { + "shape": "RoleArn" + }, + "tags": { + "shape": "Tags" + } + }, + "required": [ + "displayName", + "roleArn" + ], + "type": "structure" + }, + "CreateApplicationResponse": { + "members": { + "applicationArn": { + "shape": "ApplicationArn" + }, + "applicationId": { + "shape": "ApplicationId" + } + }, + "type": "structure" + }, + "CreateDataSourceResponse": { + "members": { + "dataSourceArn": { + "shape": "DataSourceArn" + }, + "dataSourceId": { + "shape": "DataSourceId" + } + }, + "type": "structure" + }, + "CreateIndexRequest": { + "members": { + "applicationId": { + "location": "uri", + "locationName": "applicationId", + "shape": "ApplicationId" + }, + "capacityConfiguration": { + "shape": "IndexCapacityConfiguration" + }, + "clientToken": { + "idempotencyToken": true, + "shape": "ClientToken" + }, + "description": { + "shape": "Description" + }, + "displayName": { + "shape": "IndexName" + }, + "tags": { + "shape": "Tags" + } + }, + "required": [ + "applicationId", + "displayName" + ], + "type": "structure" + }, + "CreateIndexResponse": { + "members": { + "indexArn": { + "shape": "IndexArn" + }, + "indexId": { + "shape": "IndexId" + } + }, + "type": "structure" + }, + "CreatePluginRequest": { + "members": { + "applicationId": { + "location": "uri", + "locationName": "applicationId", + "shape": "ApplicationId" + }, + "authConfiguration": { + "shape": "PluginAuthConfiguration" + }, + "clientToken": { + "idempotencyToken": true, + "shape": "ClientToken" + }, + "displayName": { + "shape": "PluginName" + }, + "serverUrl": { + "shape": "Url" + }, + "tags": { + "shape": "Tags" + }, + "type": { + "shape": "PluginType" + } + }, + "required": [ + "applicationId", + "authConfiguration", + "displayName", + "serverUrl", + "type" + ], + "type": "structure" + }, + "CreatePluginResponse": { + "members": { + "pluginArn": { + "shape": "PluginArn" + }, + "pluginId": { + "shape": "PluginId" + } + }, + "type": "structure" + }, + "CreateRetrieverRequest": { + "members": { + "applicationId": { + "location": "uri", + "locationName": "applicationId", + "shape": "ApplicationId" + }, + "clientToken": { + "idempotencyToken": true, + "shape": "ClientToken" + }, + "configuration": { + "shape": "RetrieverConfiguration" + }, + "displayName": { + "shape": "RetrieverName" + }, + "roleArn": { + "shape": "RoleArn" + }, + "tags": { + "shape": "Tags" + }, + "type": { + "shape": "RetrieverType" + } + }, + "required": [ + "applicationId", + "configuration", + "displayName", + "type" + ], + "type": "structure" + }, + "CreateRetrieverResponse": { + "members": { + "retrieverArn": { + "shape": "RetrieverArn" + }, + "retrieverId": { + "shape": "RetrieverId" + } + }, + "type": "structure" + }, + "CreateUserRequest": { + "members": { + "applicationId": { + "location": "uri", + "locationName": "applicationId", + "shape": "ApplicationId" + }, + "clientToken": { + "idempotencyToken": true, + "shape": "ClientToken" + }, + "userAliases": { + "shape": "CreateUserRequestUserAliasesList" + }, + "userId": { + "shape": "String" + } + }, + "required": [ + "applicationId", + "userId" + ], + "type": "structure" + }, + "CreateUserRequestUserAliasesList": { + "max": 100, + "member": { + "shape": "UserAlias" + }, + "min": 0, + "type": "list" + }, + "CreateUserResponse": { + "members": {}, + "type": "structure" + }, + "CreateWebExperienceRequest": { + "members": { + "applicationId": { + "location": "uri", + "locationName": "applicationId", + "shape": "ApplicationId" + }, + "clientToken": { + "idempotencyToken": true, + "shape": "ClientToken" + }, + "samplePromptsControlMode": { + "shape": "WebExperienceSamplePromptsControlMode" + }, + "subtitle": { + "shape": "WebExperienceSubtitle" + }, + "tags": { + "shape": "Tags" + }, + "title": { + "shape": "WebExperienceTitle" + }, + "welcomeMessage": { + "shape": "WebExperienceWelcomeMessage" + } + }, + "required": [ + "applicationId" + ], + "type": "structure" + }, + "CreateWebExperienceResponse": { + "members": { + "webExperienceArn": { + "shape": "WebExperienceArn" + }, + "webExperienceId": { + "shape": "WebExperienceId" + } + }, + "type": "structure" + }, + "DataSource": { + "members": { + "createdAt": { + "shape": "Timestamp" + }, + "dataSourceId": { + "shape": "DataSourceId" + }, + "displayName": { + "shape": "DataSourceName" + }, + "status": { + "shape": "DataSourceStatus" + }, + "type": { + "shape": "String" + }, + "updatedAt": { + "shape": "Timestamp" + } + }, + "type": "structure" + }, + "DataSourceArn": { + "max": 1284, + "min": 0, + "pattern": "^arn:[a-z0-9-\\.]{1,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[^/].{0,1023}$", + "type": "string" + }, + "DataSourceId": { + "max": 36, + "min": 36, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9-]{35}$", + "type": "string" + }, + "DataSourceIds": { + "max": 1, + "member": { + "shape": "DataSourceId" + }, + "min": 1, + "type": "list" + }, + "DataSourceName": { + "max": 1000, + "min": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*$", + "type": "string" + }, + "DataSourceStatus": { + "enum": [ + "PENDING_CREATION", + "CREATING", + "ACTIVE", + "DELETING", + "FAILED", + "UPDATING" + ], + "type": "string" + }, + "DataSourceSyncJob": { + "members": { + "dataSourceErrorCode": { + "shape": "String" + }, + "endTime": { + "shape": "Timestamp" + }, + "error": { + "shape": "ErrorDetail" + }, + "executionId": { + "shape": "ExecutionId" + }, + "metrics": { + "shape": "DataSourceSyncJobMetrics" + }, + "startTime": { + "shape": "Timestamp" + }, + "status": { + "shape": "DataSourceSyncJobStatus" + } + }, + "type": "structure" + }, + "DataSourceSyncJobMetrics": { + "members": { + "documentsAdded": { + "shape": "MetricValue" + }, + "documentsDeleted": { + "shape": "MetricValue" + }, + "documentsFailed": { + "shape": "MetricValue" + }, + "documentsModified": { + "shape": "MetricValue" + }, + "documentsScanned": { + "shape": "MetricValue" + } + }, + "type": "structure" + }, + "DataSourceSyncJobStatus": { + "enum": [ + "FAILED", + "SUCCEEDED", + "SYNCING", + "INCOMPLETE", + "STOPPING", + "ABORTED", + "SYNCING_INDEXING" + ], + "type": "string" + }, + "DataSourceSyncJobs": { + "member": { + "shape": "DataSourceSyncJob" + }, + "type": "list" + }, + "DataSourceUserId": { + "max": 1024, + "min": 1, + "pattern": "^\\P{C}*$", + "type": "string" + }, + "DataSourceVpcConfiguration": { + "members": { + "securityGroupIds": { + "shape": "SecurityGroupIds" + }, + "subnetIds": { + "shape": "SubnetIds" + } + }, + "required": [ + "securityGroupIds", + "subnetIds" + ], + "type": "structure" + }, + "DataSources": { + "member": { + "shape": "DataSource" + }, + "type": "list" + }, + "DeleteApplicationRequest": { + "members": { + "applicationId": { + "location": "uri", + "locationName": "applicationId", + "shape": "ApplicationId" + } + }, + "required": [ + "applicationId" + ], + "type": "structure" + }, + "DeleteApplicationResponse": { + "members": {}, + "type": "structure" + }, + "DeleteChatControlsConfigurationRequest": { + "members": { + "applicationId": { + "location": "uri", + "locationName": "applicationId", + "shape": "ApplicationId" + } + }, + "required": [ + "applicationId" + ], + "type": "structure" + }, + "DeleteChatControlsConfigurationResponse": { + "members": {}, + "type": "structure" + }, + "DeleteConversationRequest": { + "members": { + "applicationId": { + "location": "uri", + "locationName": "applicationId", + "shape": "ApplicationId" + }, + "conversationId": { + "location": "uri", + "locationName": "conversationId", + "shape": "ConversationId" + }, + "userId": { + "location": "querystring", + "locationName": "userId", + "shape": "UserId" + } + }, + "required": [ + "applicationId", + "conversationId", + "userId" + ], + "type": "structure" + }, + "DeleteConversationResponse": { + "members": {}, + "type": "structure" + }, + "DeleteDataSourceRequest": { + "members": { + "applicationId": { + "location": "uri", + "locationName": "applicationId", + "shape": "ApplicationId" + }, + "dataSourceId": { + "location": "uri", + "locationName": "dataSourceId", + "shape": "DataSourceId" + }, + "indexId": { + "location": "uri", + "locationName": "indexId", + "shape": "IndexId" + } + }, + "required": [ + "applicationId", + "dataSourceId", + "indexId" + ], + "type": "structure" + }, + "DeleteDataSourceResponse": { + "members": {}, + "type": "structure" + }, + "DeleteDocument": { + "members": { + "documentId": { + "shape": "DocumentId" + } + }, + "required": [ + "documentId" + ], + "type": "structure" + }, + "DeleteDocuments": { + "member": { + "shape": "DeleteDocument" + }, + "type": "list" + }, + "DeleteGroupRequest": { + "members": { + "applicationId": { + "location": "uri", + "locationName": "applicationId", + "shape": "ApplicationId" + }, + "dataSourceId": { + "location": "querystring", + "locationName": "dataSourceId", + "shape": "DataSourceId" + }, + "groupName": { + "location": "uri", + "locationName": "groupName", + "shape": "GroupName" + }, + "indexId": { + "location": "uri", + "locationName": "indexId", + "shape": "IndexId" + } + }, + "required": [ + "applicationId", + "groupName", + "indexId" + ], + "type": "structure" + }, + "DeleteGroupResponse": { + "members": {}, + "type": "structure" + }, + "DeleteIndexRequest": { + "members": { + "applicationId": { + "location": "uri", + "locationName": "applicationId", + "shape": "ApplicationId" + }, + "indexId": { + "location": "uri", + "locationName": "indexId", + "shape": "IndexId" + } + }, + "required": [ + "applicationId", + "indexId" + ], + "type": "structure" + }, + "DeleteIndexResponse": { + "members": {}, + "type": "structure" + }, + "DeletePluginRequest": { + "members": { + "applicationId": { + "location": "uri", + "locationName": "applicationId", + "shape": "ApplicationId" + }, + "pluginId": { + "location": "uri", + "locationName": "pluginId", + "shape": "PluginId" + } + }, + "required": [ + "applicationId", + "pluginId" + ], + "type": "structure" + }, + "DeletePluginResponse": { + "members": {}, + "type": "structure" + }, + "DeleteRetrieverRequest": { + "members": { + "applicationId": { + "location": "uri", + "locationName": "applicationId", + "shape": "ApplicationId" + }, + "retrieverId": { + "location": "uri", + "locationName": "retrieverId", + "shape": "RetrieverId" + } + }, + "required": [ + "applicationId", + "retrieverId" + ], + "type": "structure" + }, + "DeleteRetrieverResponse": { + "members": {}, + "type": "structure" + }, + "DeleteUserRequest": { + "members": { + "applicationId": { + "location": "uri", + "locationName": "applicationId", + "shape": "ApplicationId" + }, + "userId": { + "location": "uri", + "locationName": "userId", + "shape": "String" + } + }, + "required": [ + "applicationId", + "userId" + ], + "type": "structure" + }, + "DeleteUserResponse": { + "members": {}, + "type": "structure" + }, + "DeleteWebExperienceRequest": { + "members": { + "applicationId": { + "location": "uri", + "locationName": "applicationId", + "shape": "ApplicationId" + }, + "webExperienceId": { + "location": "uri", + "locationName": "webExperienceId", + "shape": "WebExperienceId" + } + }, + "required": [ + "applicationId", + "webExperienceId" + ], + "type": "structure" + }, + "DeleteWebExperienceResponse": { + "members": {}, + "type": "structure" + }, + "Description": { + "max": 1000, + "min": 0, + "pattern": "^\\P{C}*$", + "type": "string" + }, + "Document": { + "members": { + "accessConfiguration": { + "shape": "AccessConfiguration" + }, + "attributes": { + "shape": "DocumentAttributes" + }, + "content": { + "shape": "DocumentContent" + }, + "contentType": { + "shape": "ContentType" + }, + "documentEnrichmentConfiguration": { + "shape": "DocumentEnrichmentConfiguration" + }, + "id": { + "shape": "DocumentId" + }, + "title": { + "shape": "Title" + } + }, + "required": [ + "id" + ], + "type": "structure" + }, + "DocumentAttribute": { + "members": { + "name": { + "shape": "DocumentAttributeKey" + }, + "value": { + "shape": "DocumentAttributeValue" + } + }, + "required": [ + "name", + "value" + ], + "type": "structure" + }, + "DocumentAttributeCondition": { + "members": { + "key": { + "shape": "DocumentAttributeKey" + }, + "operator": { + "shape": "DocumentEnrichmentConditionOperator" + }, + "value": { + "shape": "DocumentAttributeValue" + } + }, + "required": [ + "key", + "operator" + ], + "type": "structure" + }, + "DocumentAttributeConfiguration": { + "members": { + "name": { + "shape": "String" + }, + "search": { + "shape": "Status" + }, + "type": { + "shape": "AttributeType" + } + }, + "type": "structure" + }, + "DocumentAttributeConfigurations": { + "max": 500, + "member": { + "shape": "DocumentAttributeConfiguration" + }, + "min": 1, + "type": "list" + }, + "DocumentAttributeKey": { + "max": 200, + "min": 1, + "pattern": "^[a-zA-Z0-9_][a-zA-Z0-9_-]*$", + "type": "string" + }, + "DocumentAttributeStringListValue": { + "member": { + "shape": "String" + }, + "type": "list" + }, + "DocumentAttributeTarget": { + "members": { + "attributeValueOperator": { + "shape": "AttributeValueOperator" + }, + "key": { + "shape": "DocumentAttributeKey" + }, + "value": { + "shape": "DocumentAttributeValue" + } + }, + "required": [ + "key" + ], + "type": "structure" + }, + "DocumentAttributeValue": { + "members": { + "dateValue": { + "shape": "Timestamp" + }, + "longValue": { + "shape": "Long" + }, + "stringListValue": { + "shape": "DocumentAttributeStringListValue" + }, + "stringValue": { + "shape": "DocumentAttributeValueStringValueString" + } + }, + "type": "structure", + "union": true + }, + "DocumentAttributeValueStringValueString": { + "max": 2048, + "min": 0, + "type": "string" + }, + "DocumentAttributes": { + "max": 500, + "member": { + "shape": "DocumentAttribute" + }, + "min": 1, + "type": "list" + }, + "DocumentContent": { + "members": { + "blob": { + "shape": "Blob" + }, + "s3": { + "shape": "S3" + } + }, + "type": "structure", + "union": true + }, + "DocumentContentOperator": { + "enum": [ + "DELETE" + ], + "type": "string" + }, + "DocumentDetailList": { + "member": { + "shape": "DocumentDetails" + }, + "type": "list" + }, + "DocumentDetails": { + "members": { + "createdAt": { + "shape": "Timestamp" + }, + "documentId": { + "shape": "DocumentId" + }, + "error": { + "shape": "ErrorDetail" + }, + "status": { + "shape": "DocumentStatus" + }, + "updatedAt": { + "shape": "Timestamp" + } + }, + "type": "structure" + }, + "DocumentEnrichmentConditionOperator": { + "enum": [ + "GREATER_THAN", + "GREATER_THAN_OR_EQUALS", + "LESS_THAN", + "LESS_THAN_OR_EQUALS", + "EQUALS", + "NOT_EQUALS", + "CONTAINS", + "NOT_CONTAINS", + "EXISTS", + "NOT_EXISTS", + "BEGINS_WITH" + ], + "type": "string" + }, + "DocumentEnrichmentConfiguration": { + "members": { + "inlineConfigurations": { + "shape": "InlineDocumentEnrichmentConfigurations" + }, + "postExtractionHookConfiguration": { + "shape": "HookConfiguration" + }, + "preExtractionHookConfiguration": { + "shape": "HookConfiguration" + } + }, + "type": "structure" + }, + "DocumentId": { + "max": 1825, + "min": 1, + "pattern": "^\\P{C}*$", + "type": "string" + }, + "DocumentStatus": { + "enum": [ + "RECEIVED", + "PROCESSING", + "INDEXED", + "UPDATED", + "FAILED", + "DELETING", + "DELETED", + "DOCUMENT_FAILED_TO_INDEX" + ], + "type": "string" + }, + "Documents": { + "max": 10, + "member": { + "shape": "Document" + }, + "min": 1, + "type": "list" + }, + "EligibleDataSource": { + "members": { + "dataSourceId": { + "shape": "DataSourceId" + }, + "indexId": { + "shape": "IndexId" + } + }, + "type": "structure" + }, + "EligibleDataSources": { + "max": 5, + "member": { + "shape": "EligibleDataSource" + }, + "min": 0, + "type": "list" + }, + "EncryptionConfiguration": { + "members": { + "kmsKeyId": { + "shape": "KmsKeyId" + } + }, + "type": "structure" + }, + "ErrorCode": { + "enum": [ + "InternalError", + "InvalidRequest", + "ResourceInactive", + "ResourceNotFound" + ], + "type": "string" + }, + "ErrorDetail": { + "members": { + "errorCode": { + "shape": "ErrorCode" + }, + "errorMessage": { + "shape": "ErrorMessage" + } + }, + "type": "structure" + }, + "ErrorMessage": { + "max": 2048, + "min": 1, + "pattern": "^\\P{C}*$", + "type": "string" + }, + "ExampleChatMessage": { + "max": 350, + "min": 0, + "pattern": "^\\P{C}*$", + "type": "string" + }, + "ExampleChatMessages": { + "max": 5, + "member": { + "shape": "ExampleChatMessage" + }, + "min": 0, + "type": "list" + }, + "ExecutionId": { + "max": 36, + "min": 36, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9-]{35}$", + "type": "string" + }, + "FailedDocument": { + "members": { + "dataSourceId": { + "shape": "DataSourceId" + }, + "error": { + "shape": "ErrorDetail" + }, + "id": { + "shape": "DocumentId" + } + }, + "type": "structure" + }, + "FailedDocuments": { + "member": { + "shape": "FailedDocument" + }, + "type": "list" + }, + "GetApplicationRequest": { + "members": { + "applicationId": { + "location": "uri", + "locationName": "applicationId", + "shape": "ApplicationId" + } + }, + "required": [ + "applicationId" + ], + "type": "structure" + }, + "GetApplicationResponse": { + "members": { + "applicationArn": { + "shape": "ApplicationArn" + }, + "applicationId": { + "shape": "ApplicationId" + }, + "attachmentsConfiguration": { + "shape": "AppliedAttachmentsConfiguration" + }, + "createdAt": { + "shape": "Timestamp" + }, + "description": { + "shape": "Description" + }, + "displayName": { + "shape": "ApplicationName" + }, + "encryptionConfiguration": { + "shape": "EncryptionConfiguration" + }, + "error": { + "shape": "ErrorDetail" + }, + "roleArn": { + "shape": "RoleArn" + }, + "status": { + "shape": "ApplicationStatus" + }, + "updatedAt": { + "shape": "Timestamp" + } + }, + "type": "structure" + }, + "GetChatControlsConfigurationRequest": { + "members": { + "applicationId": { + "location": "uri", + "locationName": "applicationId", + "shape": "ApplicationId" + }, + "maxResults": { + "location": "querystring", + "locationName": "maxResults", + "shape": "MaxResultsIntegerForGetTopicConfigurations" + }, + "nextToken": { + "location": "querystring", + "locationName": "nextToken", + "shape": "NextToken" + } + }, + "required": [ + "applicationId" + ], + "type": "structure" + }, + "GetChatControlsConfigurationResponse": { + "members": { + "blockedPhrases": { + "shape": "BlockedPhrasesConfiguration" + }, + "nextToken": { + "shape": "NextToken" + }, + "responseScope": { + "shape": "ResponseScope" + }, + "topicConfigurations": { + "shape": "TopicConfigurations" + } + }, + "type": "structure" + }, + "GetDataSourceRequest": { + "members": { + "applicationId": { + "location": "uri", + "locationName": "applicationId", + "shape": "ApplicationId" + }, + "dataSourceId": { + "location": "uri", + "locationName": "dataSourceId", + "shape": "DataSourceId" + }, + "indexId": { + "location": "uri", + "locationName": "indexId", + "shape": "IndexId" + } + }, + "required": [ + "applicationId", + "dataSourceId", + "indexId" + ], + "type": "structure" + }, + "GetDataSourceResponse": { + "members": { + "applicationId": { + "shape": "ApplicationId" + }, + "createdAt": { + "shape": "Timestamp" + }, + "dataSourceArn": { + "shape": "DataSourceArn" + }, + "dataSourceId": { + "shape": "DataSourceId" + }, + "description": { + "shape": "Description" + }, + "displayName": { + "shape": "DataSourceName" + }, + "documentEnrichmentConfiguration": { + "shape": "DocumentEnrichmentConfiguration" + }, + "error": { + "shape": "ErrorDetail" + }, + "indexId": { + "shape": "IndexId" + }, + "roleArn": { + "shape": "RoleArn" + }, + "status": { + "shape": "DataSourceStatus" + }, + "syncSchedule": { + "shape": "SyncSchedule" + }, + "type": { + "shape": "String" + }, + "updatedAt": { + "shape": "Timestamp" + }, + "vpcConfiguration": { + "shape": "DataSourceVpcConfiguration" + } + }, + "type": "structure" + }, + "GetGroupRequest": { + "members": { + "applicationId": { + "location": "uri", + "locationName": "applicationId", + "shape": "ApplicationId" + }, + "dataSourceId": { + "location": "querystring", + "locationName": "dataSourceId", + "shape": "DataSourceId" + }, + "groupName": { + "location": "uri", + "locationName": "groupName", + "shape": "GroupName" + }, + "indexId": { + "location": "uri", + "locationName": "indexId", + "shape": "IndexId" + } + }, + "required": [ + "applicationId", + "groupName", + "indexId" + ], + "type": "structure" + }, + "GetGroupResponse": { + "members": { + "status": { + "shape": "GroupStatusDetail" + }, + "statusHistory": { + "shape": "GroupStatusDetails" + } + }, + "type": "structure" + }, + "GetIndexRequest": { + "members": { + "applicationId": { + "location": "uri", + "locationName": "applicationId", + "shape": "ApplicationId" + }, + "indexId": { + "location": "uri", + "locationName": "indexId", + "shape": "IndexId" + } + }, + "required": [ + "applicationId", + "indexId" + ], + "type": "structure" + }, + "GetIndexResponse": { + "members": { + "applicationId": { + "shape": "ApplicationId" + }, + "capacityConfiguration": { + "shape": "IndexCapacityConfiguration" + }, + "createdAt": { + "shape": "Timestamp" + }, + "description": { + "shape": "Description" + }, + "displayName": { + "shape": "IndexName" + }, + "documentAttributeConfigurations": { + "shape": "DocumentAttributeConfigurations" + }, + "error": { + "shape": "ErrorDetail" + }, + "indexArn": { + "shape": "IndexArn" + }, + "indexId": { + "shape": "IndexId" + }, + "indexStatistics": { + "shape": "IndexStatistics" + }, + "status": { + "shape": "IndexStatus" + }, + "updatedAt": { + "shape": "Timestamp" + } + }, + "type": "structure" + }, + "GetPluginRequest": { + "members": { + "applicationId": { + "location": "uri", + "locationName": "applicationId", + "shape": "ApplicationId" + }, + "pluginId": { + "location": "uri", + "locationName": "pluginId", + "shape": "PluginId" + } + }, + "required": [ + "applicationId", + "pluginId" + ], + "type": "structure" + }, + "GetPluginResponse": { + "members": { + "applicationId": { + "shape": "ApplicationId" + }, + "authConfiguration": { + "shape": "PluginAuthConfiguration" + }, + "createdAt": { + "shape": "Timestamp" + }, + "displayName": { + "shape": "PluginName" + }, + "pluginArn": { + "shape": "PluginArn" + }, + "pluginId": { + "shape": "PluginId" + }, + "serverUrl": { + "shape": "Url" + }, + "state": { + "shape": "PluginState" + }, + "type": { + "shape": "PluginType" + }, + "updatedAt": { + "shape": "Timestamp" + } + }, + "type": "structure" + }, + "GetRetrieverRequest": { + "members": { + "applicationId": { + "location": "uri", + "locationName": "applicationId", + "shape": "ApplicationId" + }, + "retrieverId": { + "location": "uri", + "locationName": "retrieverId", + "shape": "RetrieverId" + } + }, + "required": [ + "applicationId", + "retrieverId" + ], + "type": "structure" + }, + "GetRetrieverResponse": { + "members": { + "applicationId": { + "shape": "ApplicationId" + }, + "configuration": { + "shape": "RetrieverConfiguration" + }, + "createdAt": { + "shape": "Timestamp" + }, + "displayName": { + "shape": "RetrieverName" + }, + "retrieverArn": { + "shape": "RetrieverArn" + }, + "retrieverId": { + "shape": "RetrieverId" + }, + "roleArn": { + "shape": "RoleArn" + }, + "status": { + "shape": "RetrieverStatus" + }, + "type": { + "shape": "RetrieverType" + }, + "updatedAt": { + "shape": "Timestamp" + } + }, + "type": "structure" + }, + "GetUserRequest": { + "members": { + "applicationId": { + "location": "uri", + "locationName": "applicationId", + "shape": "ApplicationId" + }, + "userId": { + "location": "uri", + "locationName": "userId", + "shape": "String" + } + }, + "required": [ + "applicationId", + "userId" + ], + "type": "structure" + }, + "GetUserResponse": { + "members": { + "userAliases": { + "shape": "UserAliases" + } + }, + "type": "structure" + }, + "GetWebExperienceRequest": { + "members": { + "applicationId": { + "location": "uri", + "locationName": "applicationId", + "shape": "ApplicationId" + }, + "webExperienceId": { + "location": "uri", + "locationName": "webExperienceId", + "shape": "WebExperienceId" + } + }, + "required": [ + "applicationId", + "webExperienceId" + ], + "type": "structure" + }, + "GetWebExperienceResponse": { + "members": { + "applicationId": { + "shape": "ApplicationId" + }, + "authenticationConfiguration": { + "shape": "WebExperienceAuthConfiguration" + }, + "createdAt": { + "shape": "Timestamp" + }, + "defaultEndpoint": { + "shape": "Url" + }, + "error": { + "shape": "ErrorDetail" + }, + "samplePromptsControlMode": { + "shape": "WebExperienceSamplePromptsControlMode" + }, + "status": { + "shape": "WebExperienceStatus" + }, + "subtitle": { + "shape": "WebExperienceSubtitle" + }, + "title": { + "shape": "WebExperienceTitle" + }, + "updatedAt": { + "shape": "Timestamp" + }, + "webExperienceArn": { + "shape": "WebExperienceArn" + }, + "webExperienceId": { + "shape": "WebExperienceId" + }, + "welcomeMessage": { + "shape": "WebExperienceWelcomeMessage" + } + }, + "type": "structure" + }, + "GroupMembers": { + "members": { + "memberGroups": { + "shape": "MemberGroups" + }, + "memberUsers": { + "shape": "MemberUsers" + } + }, + "type": "structure" + }, + "GroupName": { + "max": 1024, + "min": 1, + "pattern": "^\\P{C}*$", + "type": "string" + }, + "GroupStatus": { + "enum": [ + "FAILED", + "SUCCEEDED", + "PROCESSING", + "DELETING", + "DELETED" + ], + "type": "string" + }, + "GroupStatusDetail": { + "members": { + "errorDetail": { + "shape": "ErrorDetail" + }, + "lastUpdatedAt": { + "shape": "Timestamp" + }, + "status": { + "shape": "GroupStatus" + } + }, + "type": "structure" + }, + "GroupStatusDetails": { + "member": { + "shape": "GroupStatusDetail" + }, + "type": "list" + }, + "GroupSummary": { + "members": { + "groupName": { + "shape": "GroupName" + } + }, + "type": "structure" + }, + "GroupSummaryList": { + "member": { + "shape": "GroupSummary" + }, + "type": "list" + }, + "HookConfiguration": { + "members": { + "invocationCondition": { + "shape": "DocumentAttributeCondition" + }, + "lambdaArn": { + "shape": "LambdaArn" + }, + "roleArn": { + "shape": "RoleArn" + }, + "s3BucketName": { + "shape": "S3BucketName" + } + }, + "type": "structure" + }, + "Index": { + "members": { + "createdAt": { + "shape": "Timestamp" + }, + "displayName": { + "shape": "IndexName" + }, + "indexId": { + "shape": "IndexId" + }, + "status": { + "shape": "IndexStatus" + }, + "updatedAt": { + "shape": "Timestamp" + } + }, + "type": "structure" + }, + "IndexArn": { + "max": 1284, + "min": 0, + "pattern": "^arn:[a-z0-9-\\.]{1,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[^/].{0,1023}$", + "type": "string" + }, + "IndexCapacityConfiguration": { + "members": { + "units": { + "shape": "IndexCapacityInteger" + } + }, + "type": "structure" + }, + "IndexCapacityInteger": { + "box": true, + "min": 1, + "type": "integer" + }, + "IndexId": { + "max": 36, + "min": 36, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9-]{35}$", + "type": "string" + }, + "IndexName": { + "max": 1000, + "min": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*$", + "type": "string" + }, + "IndexStatistics": { + "members": { + "textDocumentStatistics": { + "shape": "TextDocumentStatistics" + } + }, + "type": "structure" + }, + "IndexStatus": { + "enum": [ + "CREATING", + "ACTIVE", + "DELETING", + "FAILED", + "UPDATING" + ], + "type": "string" + }, + "IndexedTextBytes": { + "box": true, + "min": 0, + "type": "long" + }, + "IndexedTextDocument": { + "box": true, + "min": 0, + "type": "integer" + }, + "Indices": { + "member": { + "shape": "Index" + }, + "type": "list" + }, + "InlineDocumentEnrichmentConfiguration": { + "members": { + "condition": { + "shape": "DocumentAttributeCondition" + }, + "documentContentOperator": { + "shape": "DocumentContentOperator" + }, + "target": { + "shape": "DocumentAttributeTarget" + } + }, + "type": "structure" + }, + "InlineDocumentEnrichmentConfigurations": { + "max": 100, + "member": { + "shape": "InlineDocumentEnrichmentConfiguration" + }, + "min": 1, + "type": "list" + }, + "Integer": { + "box": true, + "type": "integer" + }, + "InternalServerException": { + "error": { + "httpStatusCode": 500 + }, + "exception": true, + "fault": true, + "members": { + "message": { + "shape": "ErrorMessage" + } + }, + "required": [ + "message" + ], + "type": "structure" + }, + "KendraIndexConfiguration": { + "members": { + "indexId": { + "shape": "KendraIndexId" + } + }, + "required": [ + "indexId" + ], + "type": "structure" + }, + "KendraIndexId": { + "max": 36, + "min": 36, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9-]{35}$", + "type": "string" + }, + "KmsKeyId": { + "max": 2048, + "min": 1, + "sensitive": true, + "type": "string" + }, + "LambdaArn": { + "max": 2048, + "min": 1, + "pattern": "^arn:aws[a-zA-Z-]*:lambda:[a-z-]*-[0-9]:[0-9]{12}:function:[a-zA-Z0-9-_]+(/[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})?(:[a-zA-Z0-9-_]+)?$", + "type": "string" + }, + "LicenseNotFoundException": { + "error": { + "httpStatusCode": 400, + "senderFault": true + }, + "exception": true, + "members": { + "message": { + "shape": "ErrorMessage" + } + }, + "required": [ + "message" + ], + "type": "structure" + }, + "ListApplicationsRequest": { + "members": { + "maxResults": { + "location": "querystring", + "locationName": "maxResults", + "shape": "MaxResultsIntegerForListApplications" + }, + "nextToken": { + "location": "querystring", + "locationName": "nextToken", + "shape": "NextToken" + } + }, + "type": "structure" + }, + "ListApplicationsResponse": { + "members": { + "applications": { + "shape": "Applications" + }, + "nextToken": { + "shape": "NextToken" + } + }, + "type": "structure" + }, + "ListConversationsRequest": { + "members": { + "applicationId": { + "location": "uri", + "locationName": "applicationId", + "shape": "ApplicationId" + }, + "maxResults": { + "location": "querystring", + "locationName": "maxResults", + "shape": "MaxResultsIntegerForListConversations" + }, + "nextToken": { + "location": "querystring", + "locationName": "nextToken", + "shape": "NextToken" + }, + "userId": { + "location": "querystring", + "locationName": "userId", + "shape": "UserId" + } + }, + "required": [ + "applicationId", + "userId" + ], + "type": "structure" + }, + "ListConversationsResponse": { + "members": { + "conversations": { + "shape": "Conversations" + }, + "nextToken": { + "shape": "NextToken" + } + }, + "type": "structure" + }, + "ListDataSourceSyncJobsRequest": { + "members": { + "applicationId": { + "location": "uri", + "locationName": "applicationId", + "shape": "ApplicationId" + }, + "dataSourceId": { + "location": "uri", + "locationName": "dataSourceId", + "shape": "DataSourceId" + }, + "endTime": { + "location": "querystring", + "locationName": "endTime", + "shape": "Timestamp" + }, + "indexId": { + "location": "uri", + "locationName": "indexId", + "shape": "IndexId" + }, + "maxResults": { + "location": "querystring", + "locationName": "maxResults", + "shape": "MaxResultsIntegerForListDataSourcesSyncJobs" + }, + "nextToken": { + "location": "querystring", + "locationName": "nextToken", + "shape": "NextToken" + }, + "startTime": { + "location": "querystring", + "locationName": "startTime", + "shape": "Timestamp" + }, + "statusFilter": { + "location": "querystring", + "locationName": "syncStatus", + "shape": "DataSourceSyncJobStatus" + } + }, + "required": [ + "applicationId", + "dataSourceId", + "indexId" + ], + "type": "structure" + }, + "ListDataSourceSyncJobsResponse": { + "members": { + "history": { + "shape": "DataSourceSyncJobs" + }, + "nextToken": { + "shape": "NextToken" + } + }, + "type": "structure" + }, + "ListDataSourcesRequest": { + "members": { + "applicationId": { + "location": "uri", + "locationName": "applicationId", + "shape": "ApplicationId" + }, + "indexId": { + "location": "uri", + "locationName": "indexId", + "shape": "IndexId" + }, + "maxResults": { + "location": "querystring", + "locationName": "maxResults", + "shape": "MaxResultsIntegerForListDataSources" + }, + "nextToken": { + "location": "querystring", + "locationName": "nextToken", + "shape": "NextToken" + } + }, + "required": [ + "applicationId", + "indexId" + ], + "type": "structure" + }, + "ListDataSourcesResponse": { + "members": { + "dataSources": { + "shape": "DataSources" + }, + "nextToken": { + "shape": "NextToken" + } + }, + "type": "structure" + }, + "ListDocumentsRequest": { + "members": { + "applicationId": { + "location": "uri", + "locationName": "applicationId", + "shape": "ApplicationId" + }, + "dataSourceIds": { + "location": "querystring", + "locationName": "dataSourceIds", + "shape": "DataSourceIds" + }, + "indexId": { + "location": "uri", + "locationName": "indexId", + "shape": "IndexId" + }, + "maxResults": { + "location": "querystring", + "locationName": "maxResults", + "shape": "MaxResultsIntegerForListDocuments" + }, + "nextToken": { + "location": "querystring", + "locationName": "nextToken", + "shape": "NextToken" + } + }, + "required": [ + "applicationId", + "indexId" + ], + "type": "structure" + }, + "ListDocumentsResponse": { + "members": { + "documentDetailList": { + "shape": "DocumentDetailList" + }, + "nextToken": { + "shape": "NextToken" + } + }, + "type": "structure" + }, + "ListGroupsRequest": { + "members": { + "applicationId": { + "location": "uri", + "locationName": "applicationId", + "shape": "ApplicationId" + }, + "dataSourceId": { + "location": "querystring", + "locationName": "dataSourceId", + "shape": "DataSourceId" + }, + "indexId": { + "location": "uri", + "locationName": "indexId", + "shape": "IndexId" + }, + "maxResults": { + "location": "querystring", + "locationName": "maxResults", + "shape": "MaxResultsIntegerForListGroupsRequest" + }, + "nextToken": { + "location": "querystring", + "locationName": "nextToken", + "shape": "NextToken" + }, + "updatedEarlierThan": { + "location": "querystring", + "locationName": "updatedEarlierThan", + "shape": "Timestamp" + } + }, + "required": [ + "applicationId", + "indexId", + "updatedEarlierThan" + ], + "type": "structure" + }, + "ListGroupsResponse": { + "members": { + "items": { + "shape": "GroupSummaryList" + }, + "nextToken": { + "shape": "NextToken" + } + }, + "type": "structure" + }, + "ListIndicesRequest": { + "members": { + "applicationId": { + "location": "uri", + "locationName": "applicationId", + "shape": "ApplicationId" + }, + "maxResults": { + "location": "querystring", + "locationName": "maxResults", + "shape": "MaxResultsIntegerForListIndices" + }, + "nextToken": { + "location": "querystring", + "locationName": "nextToken", + "shape": "NextToken" + } + }, + "required": [ + "applicationId" + ], + "type": "structure" + }, + "ListIndicesResponse": { + "members": { + "indices": { + "shape": "Indices" + }, + "nextToken": { + "shape": "NextToken" + } + }, + "type": "structure" + }, + "ListMessagesRequest": { + "members": { + "applicationId": { + "location": "uri", + "locationName": "applicationId", + "shape": "ApplicationId" + }, + "conversationId": { + "location": "uri", + "locationName": "conversationId", + "shape": "ConversationId" + }, + "maxResults": { + "location": "querystring", + "locationName": "maxResults", + "shape": "MaxResultsIntegerForListMessages" + }, + "nextToken": { + "location": "querystring", + "locationName": "nextToken", + "shape": "NextToken" + }, + "userId": { + "location": "querystring", + "locationName": "userId", + "shape": "UserId" + } + }, + "required": [ + "applicationId", + "conversationId", + "userId" + ], + "type": "structure" + }, + "ListMessagesResponse": { + "members": { + "messages": { + "shape": "Messages" + }, + "nextToken": { + "shape": "NextToken" + } + }, + "type": "structure" + }, + "ListPluginsRequest": { + "members": { + "applicationId": { + "location": "uri", + "locationName": "applicationId", + "shape": "ApplicationId" + }, + "maxResults": { + "location": "querystring", + "locationName": "maxResults", + "shape": "MaxResultsIntegerForListPlugins" + }, + "nextToken": { + "location": "querystring", + "locationName": "nextToken", + "shape": "NextToken" + } + }, + "required": [ + "applicationId" + ], + "type": "structure" + }, + "ListPluginsResponse": { + "members": { + "nextToken": { + "shape": "NextToken" + }, + "plugins": { + "shape": "Plugins" + } + }, + "type": "structure" + }, + "ListRetrieversRequest": { + "members": { + "applicationId": { + "location": "uri", + "locationName": "applicationId", + "shape": "ApplicationId" + }, + "maxResults": { + "location": "querystring", + "locationName": "maxResults", + "shape": "MaxResultsIntegerForListRetrieversRequest" + }, + "nextToken": { + "location": "querystring", + "locationName": "nextToken", + "shape": "NextToken" + } + }, + "required": [ + "applicationId" + ], + "type": "structure" + }, + "ListRetrieversResponse": { + "members": { + "nextToken": { + "shape": "NextToken" + }, + "retrievers": { + "shape": "Retrievers" + } + }, + "type": "structure" + }, + "ListTagsForResourceRequest": { + "members": { + "resourceARN": { + "location": "uri", + "locationName": "resourceARN", + "shape": "AmazonResourceName" + } + }, + "required": [ + "resourceARN" + ], + "type": "structure" + }, + "ListTagsForResourceResponse": { + "members": { + "tags": { + "shape": "Tags" + } + }, + "type": "structure" + }, + "ListWebExperiencesRequest": { + "members": { + "applicationId": { + "location": "uri", + "locationName": "applicationId", + "shape": "ApplicationId" + }, + "maxResults": { + "location": "querystring", + "locationName": "maxResults", + "shape": "MaxResultsIntegerForListWebExperiencesRequest" + }, + "nextToken": { + "location": "querystring", + "locationName": "nextToken", + "shape": "NextToken" + } + }, + "required": [ + "applicationId" + ], + "type": "structure" + }, + "ListWebExperiencesResponse": { + "members": { + "nextToken": { + "shape": "NextToken" + }, + "webExperiences": { + "shape": "WebExperiences" + } + }, + "type": "structure" + }, + "Long": { + "box": true, + "type": "long" + }, + "MaxResultsIntegerForGetTopicConfigurations": { + "box": true, + "max": 50, + "min": 1, + "type": "integer" + }, + "MaxResultsIntegerForListApplications": { + "box": true, + "max": 100, + "min": 1, + "type": "integer" + }, + "MaxResultsIntegerForListConversations": { + "box": true, + "max": 100, + "min": 1, + "type": "integer" + }, + "MaxResultsIntegerForListDataSources": { + "box": true, + "max": 10, + "min": 1, + "type": "integer" + }, + "MaxResultsIntegerForListDataSourcesSyncJobs": { + "box": true, + "max": 10, + "min": 1, + "type": "integer" + }, + "MaxResultsIntegerForListDocuments": { + "box": true, + "max": 100, + "min": 1, + "type": "integer" + }, + "MaxResultsIntegerForListGroupsRequest": { + "box": true, + "max": 10, + "min": 1, + "type": "integer" + }, + "MaxResultsIntegerForListIndices": { + "box": true, + "max": 100, + "min": 1, + "type": "integer" + }, + "MaxResultsIntegerForListMessages": { + "box": true, + "max": 100, + "min": 1, + "type": "integer" + }, + "MaxResultsIntegerForListPlugins": { + "box": true, + "max": 50, + "min": 1, + "type": "integer" + }, + "MaxResultsIntegerForListRetrieversRequest": { + "box": true, + "max": 50, + "min": 1, + "type": "integer" + }, + "MaxResultsIntegerForListWebExperiencesRequest": { + "box": true, + "max": 100, + "min": 1, + "type": "integer" + }, + "MemberGroup": { + "members": { + "groupName": { + "shape": "GroupName" + }, + "type": { + "shape": "MembershipType" + } + }, + "required": [ + "groupName" + ], + "type": "structure" + }, + "MemberGroups": { + "max": 1000, + "member": { + "shape": "MemberGroup" + }, + "min": 1, + "type": "list" + }, + "MemberRelation": { + "enum": [ + "AND", + "OR" + ], + "type": "string" + }, + "MemberUser": { + "members": { + "type": { + "shape": "MembershipType" + }, + "userId": { + "shape": "DataSourceUserId" + } + }, + "required": [ + "userId" + ], + "type": "structure" + }, + "MemberUsers": { + "max": 1000, + "member": { + "shape": "MemberUser" + }, + "min": 1, + "type": "list" + }, + "MembershipType": { + "enum": [ + "INDEX", + "DATASOURCE" + ], + "type": "string" + }, + "Message": { + "members": { + "actionReview": { + "shape": "ActionReview" + }, + "attachments": { + "shape": "AttachmentsOutput" + }, + "body": { + "shape": "MessageBody" + }, + "messageId": { + "shape": "String" + }, + "sourceAttribution": { + "shape": "SourceAttributions" + }, + "time": { + "shape": "Timestamp" + }, + "type": { + "shape": "MessageType" + } + }, + "type": "structure" + }, + "MessageBody": { + "max": 1000, + "min": 0, + "pattern": "^\\P{C}*$}$", + "type": "string" + }, + "MessageId": { + "max": 36, + "min": 36, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9-]{35}$", + "type": "string" + }, + "MessageType": { + "enum": [ + "USER", + "SYSTEM" + ], + "type": "string" + }, + "MessageUsefulness": { + "enum": [ + "USEFUL", + "NOT_USEFUL" + ], + "type": "string" + }, + "MessageUsefulnessComment": { + "max": 1000, + "min": 0, + "pattern": "^\\P{C}*$", + "type": "string" + }, + "MessageUsefulnessFeedback": { + "members": { + "comment": { + "shape": "MessageUsefulnessComment" + }, + "reason": { + "shape": "MessageUsefulnessReason" + }, + "submittedAt": { + "shape": "Timestamp" + }, + "usefulness": { + "shape": "MessageUsefulness" + } + }, + "required": [ + "submittedAt", + "usefulness" + ], + "type": "structure" + }, + "MessageUsefulnessReason": { + "enum": [ + "NOT_FACTUALLY_CORRECT", + "HARMFUL_OR_UNSAFE", + "INCORRECT_OR_MISSING_SOURCES", + "NOT_HELPFUL", + "FACTUALLY_CORRECT", + "COMPLETE", + "RELEVANT_SOURCES", + "HELPFUL" + ], + "type": "string" + }, + "Messages": { + "member": { + "shape": "Message" + }, + "type": "list" + }, + "MetricValue": { + "pattern": "^(([1-9][0-9]*)|0)$", + "type": "string" + }, + "NativeIndexConfiguration": { + "members": { + "indexId": { + "shape": "IndexId" + } + }, + "required": [ + "indexId" + ], + "type": "structure" + }, + "NextToken": { + "max": 800, + "min": 1, + "type": "string" + }, + "OAuth2ClientCredentialConfiguration": { + "members": { + "roleArn": { + "shape": "RoleArn" + }, + "secretArn": { + "shape": "SecretArn" + } + }, + "required": [ + "roleArn", + "secretArn" + ], + "type": "structure" + }, + "Plugin": { + "members": { + "createdAt": { + "shape": "Timestamp" + }, + "displayName": { + "shape": "PluginName" + }, + "pluginId": { + "shape": "PluginId" + }, + "serverUrl": { + "shape": "Url" + }, + "state": { + "shape": "PluginState" + }, + "type": { + "shape": "PluginType" + }, + "updatedAt": { + "shape": "Timestamp" + } + }, + "type": "structure" + }, + "PluginArn": { + "max": 1284, + "min": 0, + "pattern": "^arn:[a-z0-9-\\.]{1,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[^/].{0,1023}$", + "type": "string" + }, + "PluginAuthConfiguration": { + "members": { + "basicAuthConfiguration": { + "shape": "BasicAuthConfiguration" + }, + "oAuth2ClientCredentialConfiguration": { + "shape": "OAuth2ClientCredentialConfiguration" + } + }, + "type": "structure", + "union": true + }, + "PluginId": { + "max": 36, + "min": 36, + "pattern": "^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$", + "type": "string" + }, + "PluginName": { + "max": 100, + "min": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*$", + "type": "string" + }, + "PluginState": { + "enum": [ + "ENABLED", + "DISABLED" + ], + "type": "string" + }, + "PluginType": { + "enum": [ + "SERVICE_NOW", + "SALESFORCE", + "JIRA", + "ZENDESK" + ], + "type": "string" + }, + "Plugins": { + "member": { + "shape": "Plugin" + }, + "type": "list" + }, + "Principal": { + "members": { + "group": { + "shape": "PrincipalGroup" + }, + "user": { + "shape": "PrincipalUser" + } + }, + "type": "structure", + "union": true + }, + "PrincipalGroup": { + "members": { + "access": { + "shape": "ReadAccessType" + }, + "membershipType": { + "shape": "MembershipType" + }, + "name": { + "shape": "GroupName" + } + }, + "required": [ + "access" + ], + "type": "structure" + }, + "PrincipalUser": { + "members": { + "access": { + "shape": "ReadAccessType" + }, + "id": { + "shape": "UserId" + }, + "membershipType": { + "shape": "MembershipType" + } + }, + "required": [ + "access" + ], + "type": "structure" + }, + "Principals": { + "member": { + "shape": "Principal" + }, + "type": "list" + }, + "PutFeedbackRequest": { + "members": { + "applicationId": { + "location": "uri", + "locationName": "applicationId", + "shape": "ApplicationId" + }, + "conversationId": { + "location": "uri", + "locationName": "conversationId", + "shape": "ConversationId" + }, + "messageCopiedAt": { + "shape": "Timestamp" + }, + "messageId": { + "location": "uri", + "locationName": "messageId", + "shape": "SystemMessageId" + }, + "messageUsefulness": { + "shape": "MessageUsefulnessFeedback" + }, + "userId": { + "location": "querystring", + "locationName": "userId", + "shape": "UserId" + } + }, + "required": [ + "applicationId", + "conversationId", + "messageId", + "userId" + ], + "type": "structure" + }, + "PutGroupRequest": { + "members": { + "applicationId": { + "location": "uri", + "locationName": "applicationId", + "shape": "ApplicationId" + }, + "dataSourceId": { + "shape": "DataSourceId" + }, + "groupMembers": { + "shape": "GroupMembers" + }, + "groupName": { + "shape": "GroupName" + }, + "indexId": { + "location": "uri", + "locationName": "indexId", + "shape": "IndexId" + }, + "type": { + "shape": "MembershipType" + } + }, + "required": [ + "applicationId", + "groupMembers", + "groupName", + "indexId", + "type" + ], + "type": "structure" + }, + "PutGroupResponse": { + "members": {}, + "type": "structure" + }, + "ReadAccessType": { + "enum": [ + "ALLOW", + "DENY" + ], + "type": "string" + }, + "ResourceNotFoundException": { + "error": { + "httpStatusCode": 404, + "senderFault": true + }, + "exception": true, + "members": { + "message": { + "shape": "ErrorMessage" + }, + "resourceId": { + "shape": "String" + }, + "resourceType": { + "shape": "String" + } + }, + "required": [ + "message", + "resourceId", + "resourceType" + ], + "type": "structure" + }, + "ResponseScope": { + "enum": [ + "ENTERPRISE_CONTENT_ONLY", + "EXTENDED_KNOWLEDGE_ENABLED" + ], + "type": "string" + }, + "Retriever": { + "members": { + "applicationId": { + "shape": "ApplicationId" + }, + "displayName": { + "shape": "RetrieverName" + }, + "retrieverId": { + "shape": "RetrieverId" + }, + "status": { + "shape": "RetrieverStatus" + }, + "type": { + "shape": "RetrieverType" + } + }, + "type": "structure" + }, + "RetrieverArn": { + "max": 1284, + "min": 0, + "pattern": "^arn:[a-z0-9-\\.]{1,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[^/].{0,1023}$", + "type": "string" + }, + "RetrieverConfiguration": { + "members": { + "kendraIndexConfiguration": { + "shape": "KendraIndexConfiguration" + }, + "nativeIndexConfiguration": { + "shape": "NativeIndexConfiguration" + } + }, + "type": "structure", + "union": true + }, + "RetrieverId": { + "max": 36, + "min": 36, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9-]{35}$", + "type": "string" + }, + "RetrieverName": { + "max": 1000, + "min": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*$", + "type": "string" + }, + "RetrieverStatus": { + "enum": [ + "CREATING", + "ACTIVE", + "FAILED" + ], + "type": "string" + }, + "RetrieverType": { + "enum": [ + "NATIVE_INDEX", + "KENDRA_INDEX" + ], + "type": "string" + }, + "Retrievers": { + "member": { + "shape": "Retriever" + }, + "type": "list" + }, + "RoleArn": { + "max": 1284, + "min": 0, + "pattern": "^arn:[a-z0-9-\\.]{1,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[^/].{0,1023}$", + "type": "string" + }, + "Rule": { + "members": { + "excludedUsersAndGroups": { + "shape": "UsersAndGroups" + }, + "includedUsersAndGroups": { + "shape": "UsersAndGroups" + }, + "ruleConfiguration": { + "shape": "RuleConfiguration" + }, + "ruleType": { + "shape": "RuleType" + } + }, + "required": [ + "ruleType" + ], + "type": "structure" + }, + "RuleConfiguration": { + "members": { + "contentBlockerRule": { + "shape": "ContentBlockerRule" + }, + "contentRetrievalRule": { + "shape": "ContentRetrievalRule" + } + }, + "type": "structure", + "union": true + }, + "RuleType": { + "enum": [ + "CONTENT_BLOCKER_RULE", + "CONTENT_RETRIEVAL_RULE" + ], + "type": "string" + }, + "Rules": { + "max": 10, + "member": { + "shape": "Rule" + }, + "min": 0, + "type": "list" + }, + "S3": { + "members": { + "bucket": { + "shape": "S3BucketName" + }, + "key": { + "shape": "S3ObjectKey" + } + }, + "required": [ + "bucket", + "key" + ], + "type": "structure" + }, + "S3BucketName": { + "max": 63, + "min": 1, + "pattern": "^[a-z0-9][\\.\\-a-z0-9]{1,61}[a-z0-9]$", + "type": "string" + }, + "S3ObjectKey": { + "max": 1024, + "min": 1, + "type": "string" + }, + "SamlAttribute": { + "max": 256, + "min": 1, + "type": "string" + }, + "SamlConfiguration": { + "members": { + "metadataXML": { + "shape": "SamlMetadataXML" + }, + "roleArn": { + "shape": "RoleArn" + }, + "userGroupAttribute": { + "shape": "SamlAttribute" + }, + "userIdAttribute": { + "shape": "SamlAttribute" + } + }, + "required": [ + "metadataXML", + "roleArn", + "userIdAttribute" + ], + "type": "structure" + }, + "SamlMetadataXML": { + "max": 10000000, + "min": 1000, + "pattern": "^.*$", + "type": "string" + }, + "SecretArn": { + "max": 1284, + "min": 0, + "pattern": "^arn:[a-z0-9-\\.]{1,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[^/].{0,1023}$", + "type": "string" + }, + "SecurityGroupId": { + "max": 200, + "min": 1, + "pattern": "^[-0-9a-zA-Z]+$", + "type": "string" + }, + "SecurityGroupIds": { + "max": 10, + "member": { + "shape": "SecurityGroupId" + }, + "min": 1, + "type": "list" + }, + "ServiceQuotaExceededException": { + "error": { + "httpStatusCode": 402, + "senderFault": true + }, + "exception": true, + "members": { + "message": { + "shape": "ErrorMessage" + }, + "resourceId": { + "shape": "String" + }, + "resourceType": { + "shape": "String" + } + }, + "required": [ + "message", + "resourceId", + "resourceType" + ], + "type": "structure" + }, + "SourceAttribution": { + "members": { + "citationNumber": { + "shape": "Integer" + }, + "snippet": { + "shape": "String" + }, + "textMessageSegments": { + "shape": "TextSegmentList" + }, + "title": { + "shape": "String" + }, + "updatedAt": { + "shape": "Timestamp" + }, + "url": { + "shape": "String" + } + }, + "type": "structure" + }, + "SourceAttributions": { + "member": { + "shape": "SourceAttribution" + }, + "type": "list" + }, + "StartDataSourceSyncJobRequest": { + "members": { + "applicationId": { + "location": "uri", + "locationName": "applicationId", + "shape": "ApplicationId" + }, + "dataSourceId": { + "location": "uri", + "locationName": "dataSourceId", + "shape": "DataSourceId" + }, + "indexId": { + "location": "uri", + "locationName": "indexId", + "shape": "IndexId" + } + }, + "required": [ + "applicationId", + "dataSourceId", + "indexId" + ], + "type": "structure" + }, + "StartDataSourceSyncJobResponse": { + "members": { + "executionId": { + "shape": "ExecutionId" + } + }, + "type": "structure" + }, + "Status": { + "enum": [ + "ENABLED", + "DISABLED" + ], + "type": "string" + }, + "StopDataSourceSyncJobRequest": { + "members": { + "applicationId": { + "location": "uri", + "locationName": "applicationId", + "shape": "ApplicationId" + }, + "dataSourceId": { + "location": "uri", + "locationName": "dataSourceId", + "shape": "DataSourceId" + }, + "indexId": { + "location": "uri", + "locationName": "indexId", + "shape": "IndexId" + } + }, + "required": [ + "applicationId", + "dataSourceId", + "indexId" + ], + "type": "structure" + }, + "StopDataSourceSyncJobResponse": { + "members": {}, + "type": "structure" + }, + "String": { + "max": 2048, + "min": 1, + "type": "string" + }, + "SubnetId": { + "max": 200, + "min": 1, + "pattern": "^[-0-9a-zA-Z]+$", + "type": "string" + }, + "SubnetIds": { + "member": { + "shape": "SubnetId" + }, + "type": "list" + }, + "SyncSchedule": { + "max": 998, + "min": 0, + "pattern": "^\\P{C}*$", + "type": "string" + }, + "SystemMessageId": { + "max": 36, + "min": 36, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9-]{35}$", + "type": "string" + }, + "SystemMessageOverride": { + "max": 350, + "min": 0, + "pattern": "^\\P{C}*$", + "type": "string" + }, + "Tag": { + "members": { + "key": { + "shape": "TagKey" + }, + "value": { + "shape": "TagValue" + } + }, + "required": [ + "key", + "value" + ], + "type": "structure" + }, + "TagKey": { + "max": 128, + "min": 1, + "type": "string" + }, + "TagKeys": { + "max": 200, + "member": { + "shape": "TagKey" + }, + "min": 0, + "type": "list" + }, + "TagResourceRequest": { + "members": { + "resourceARN": { + "location": "uri", + "locationName": "resourceARN", + "shape": "AmazonResourceName" + }, + "tags": { + "shape": "Tags" + } + }, + "required": [ + "resourceARN", + "tags" + ], + "type": "structure" + }, + "TagResourceResponse": { + "members": {}, + "type": "structure" + }, + "TagValue": { + "max": 256, + "min": 0, + "type": "string" + }, + "Tags": { + "max": 200, + "member": { + "shape": "Tag" + }, + "min": 0, + "type": "list" + }, + "TextDocumentStatistics": { + "members": { + "indexedTextBytes": { + "shape": "IndexedTextBytes" + }, + "indexedTextDocumentCount": { + "shape": "IndexedTextDocument" + } + }, + "type": "structure" + }, + "TextSegment": { + "members": { + "beginOffset": { + "shape": "Integer" + }, + "endOffset": { + "shape": "Integer" + } + }, + "type": "structure" + }, + "TextSegmentList": { + "member": { + "shape": "TextSegment" + }, + "type": "list" + }, + "ThrottlingException": { + "error": { + "httpStatusCode": 429, + "senderFault": true + }, + "exception": true, + "members": { + "message": { + "shape": "ErrorMessage" + } + }, + "required": [ + "message" + ], + "type": "structure" + }, + "Timestamp": { + "type": "timestamp" + }, + "Title": { + "max": 1024, + "min": 1, + "type": "string" + }, + "TopicConfiguration": { + "members": { + "description": { + "shape": "TopicDescription" + }, + "exampleChatMessages": { + "shape": "ExampleChatMessages" + }, + "name": { + "shape": "TopicConfigurationName" + }, + "rules": { + "shape": "Rules" + } + }, + "required": [ + "name", + "rules" + ], + "type": "structure" + }, + "TopicConfigurationName": { + "max": 36, + "min": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9-]{0,35}$", + "type": "string" + }, + "TopicConfigurations": { + "max": 10, + "member": { + "shape": "TopicConfiguration" + }, + "min": 0, + "type": "list" + }, + "TopicDescription": { + "max": 350, + "min": 0, + "pattern": "^\\P{C}*$", + "type": "string" + }, + "UntagResourceRequest": { + "members": { + "resourceARN": { + "location": "uri", + "locationName": "resourceARN", + "shape": "AmazonResourceName" + }, + "tagKeys": { + "location": "querystring", + "locationName": "tagKeys", + "shape": "TagKeys" + } + }, + "required": [ + "resourceARN", + "tagKeys" + ], + "type": "structure" + }, + "UntagResourceResponse": { + "members": {}, + "type": "structure" + }, + "UpdateApplicationRequest": { + "members": { + "applicationId": { + "location": "uri", + "locationName": "applicationId", + "shape": "ApplicationId" + }, + "attachmentsConfiguration": { + "shape": "AttachmentsConfiguration" + }, + "description": { + "shape": "Description" + }, + "displayName": { + "shape": "ApplicationName" + }, + "roleArn": { + "shape": "RoleArn" + } + }, + "required": [ + "applicationId" + ], + "type": "structure" + }, + "UpdateApplicationResponse": { + "members": {}, + "type": "structure" + }, + "UpdateChatControlsConfigurationRequest": { + "members": { + "applicationId": { + "location": "uri", + "locationName": "applicationId", + "shape": "ApplicationId" + }, + "blockedPhrasesConfigurationUpdate": { + "shape": "BlockedPhrasesConfigurationUpdate" + }, + "clientToken": { + "idempotencyToken": true, + "shape": "ClientToken" + }, + "responseScope": { + "shape": "ResponseScope" + }, + "topicConfigurationsToCreateOrUpdate": { + "shape": "TopicConfigurations" + }, + "topicConfigurationsToDelete": { + "shape": "TopicConfigurations" + } + }, + "required": [ + "applicationId" + ], + "type": "structure" + }, + "UpdateChatControlsConfigurationResponse": { + "members": {}, + "type": "structure" + }, + "UpdateDataSourceRequest": { + "members": { + "applicationId": { + "location": "uri", + "locationName": "applicationId", + "shape": "ApplicationId" + }, + "dataSourceId": { + "location": "uri", + "locationName": "dataSourceId", + "shape": "DataSourceId" + }, + "description": { + "shape": "Description" + }, + "displayName": { + "shape": "DataSourceName" + }, + "documentEnrichmentConfiguration": { + "shape": "DocumentEnrichmentConfiguration" + }, + "indexId": { + "location": "uri", + "locationName": "indexId", + "shape": "IndexId" + }, + "roleArn": { + "shape": "RoleArn" + }, + "syncSchedule": { + "shape": "SyncSchedule" + }, + "vpcConfiguration": { + "shape": "DataSourceVpcConfiguration" + } + }, + "required": [ + "applicationId", + "dataSourceId", + "indexId" + ], + "type": "structure" + }, + "UpdateDataSourceResponse": { + "members": {}, + "type": "structure" + }, + "UpdateIndexRequest": { + "members": { + "applicationId": { + "location": "uri", + "locationName": "applicationId", + "shape": "ApplicationId" + }, + "capacityConfiguration": { + "shape": "IndexCapacityConfiguration" + }, + "description": { + "shape": "Description" + }, + "displayName": { + "shape": "ApplicationName" + }, + "documentAttributeConfigurations": { + "shape": "DocumentAttributeConfigurations" + }, + "indexId": { + "location": "uri", + "locationName": "indexId", + "shape": "IndexId" + } + }, + "required": [ + "applicationId", + "indexId" + ], + "type": "structure" + }, + "UpdateIndexResponse": { + "members": {}, + "type": "structure" + }, + "UpdatePluginRequest": { + "members": { + "applicationId": { + "location": "uri", + "locationName": "applicationId", + "shape": "ApplicationId" + }, + "authConfiguration": { + "shape": "PluginAuthConfiguration" + }, + "displayName": { + "shape": "PluginName" + }, + "pluginId": { + "location": "uri", + "locationName": "pluginId", + "shape": "PluginId" + }, + "serverUrl": { + "shape": "Url" + }, + "state": { + "shape": "PluginState" + } + }, + "required": [ + "applicationId", + "pluginId" + ], + "type": "structure" + }, + "UpdatePluginResponse": { + "members": {}, + "type": "structure" + }, + "UpdateRetrieverRequest": { + "members": { + "applicationId": { + "location": "uri", + "locationName": "applicationId", + "shape": "ApplicationId" + }, + "configuration": { + "shape": "RetrieverConfiguration" + }, + "displayName": { + "shape": "RetrieverName" + }, + "retrieverId": { + "location": "uri", + "locationName": "retrieverId", + "shape": "RetrieverId" + }, + "roleArn": { + "shape": "RoleArn" + } + }, + "required": [ + "applicationId", + "retrieverId" + ], + "type": "structure" + }, + "UpdateRetrieverResponse": { + "members": {}, + "type": "structure" + }, + "UpdateUserRequest": { + "members": { + "applicationId": { + "location": "uri", + "locationName": "applicationId", + "shape": "ApplicationId" + }, + "userAliasesToDelete": { + "shape": "UserAliases" + }, + "userAliasesToUpdate": { + "shape": "UserAliases" + }, + "userId": { + "location": "uri", + "locationName": "userId", + "shape": "String" + } + }, + "required": [ + "applicationId", + "userId" + ], + "type": "structure" + }, + "UpdateUserResponse": { + "members": { + "userAliasesAdded": { + "shape": "UserAliases" + }, + "userAliasesDeleted": { + "shape": "UserAliases" + }, + "userAliasesUpdated": { + "shape": "UserAliases" + } + }, + "type": "structure" + }, + "UpdateWebExperienceRequest": { + "members": { + "applicationId": { + "location": "uri", + "locationName": "applicationId", + "shape": "ApplicationId" + }, + "authenticationConfiguration": { + "shape": "WebExperienceAuthConfiguration" + }, + "samplePromptsControlMode": { + "shape": "WebExperienceSamplePromptsControlMode" + }, + "subtitle": { + "shape": "WebExperienceSubtitle" + }, + "title": { + "shape": "WebExperienceTitle" + }, + "webExperienceId": { + "location": "uri", + "locationName": "webExperienceId", + "shape": "WebExperienceId" + }, + "welcomeMessage": { + "shape": "WebExperienceWelcomeMessage" + } + }, + "required": [ + "applicationId", + "webExperienceId" + ], + "type": "structure" + }, + "UpdateWebExperienceResponse": { + "members": {}, + "type": "structure" + }, + "Url": { + "max": 2048, + "min": 1, + "pattern": "^(https?|ftp|file)://([^\\s]*)$", + "type": "string" + }, + "UserAlias": { + "members": { + "dataSourceId": { + "shape": "DataSourceId" + }, + "indexId": { + "shape": "IndexId" + }, + "userId": { + "shape": "String" + } + }, + "required": [ + "userId" + ], + "type": "structure" + }, + "UserAliases": { + "member": { + "shape": "UserAlias" + }, + "type": "list" + }, + "UserGroups": { + "member": { + "shape": "String" + }, + "type": "list" + }, + "UserId": { + "max": 1024, + "min": 1, + "pattern": "^\\P{C}*$", + "type": "string" + }, + "UserIds": { + "member": { + "shape": "String" + }, + "type": "list" + }, + "UserMessage": { + "max": 7000, + "min": 1, + "type": "string" + }, + "UsersAndGroups": { + "members": { + "userGroups": { + "shape": "UserGroups" + }, + "userIds": { + "shape": "UserIds" + } + }, + "type": "structure" + }, + "ValidationException": { + "error": { + "httpStatusCode": 400, + "senderFault": true + }, + "exception": true, + "members": { + "fields": { + "shape": "ValidationExceptionFields" + }, + "message": { + "shape": "ErrorMessage" + }, + "reason": { + "shape": "ValidationExceptionReason" + } + }, + "required": [ + "message", + "reason" + ], + "type": "structure" + }, + "ValidationExceptionField": { + "members": { + "message": { + "shape": "String" + }, + "name": { + "shape": "String" + } + }, + "required": [ + "message", + "name" + ], + "type": "structure" + }, + "ValidationExceptionFields": { + "member": { + "shape": "ValidationExceptionField" + }, + "type": "list" + }, + "ValidationExceptionReason": { + "enum": [ + "CANNOT_PARSE", + "FIELD_VALIDATION_FAILED", + "UNKNOWN_OPERATION" + ], + "type": "string" + }, + "WebExperience": { + "members": { + "createdAt": { + "shape": "Timestamp" + }, + "defaultEndpoint": { + "shape": "Url" + }, + "status": { + "shape": "WebExperienceStatus" + }, + "updatedAt": { + "shape": "Timestamp" + }, + "webExperienceId": { + "shape": "WebExperienceId" + } + }, + "type": "structure" + }, + "WebExperienceArn": { + "max": 1284, + "min": 0, + "pattern": "^arn:[a-z0-9-\\.]{1,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[a-z0-9-\\.]{0,63}:[^/].{0,1023}$", + "type": "string" + }, + "WebExperienceAuthConfiguration": { + "members": { + "samlConfiguration": { + "shape": "SamlConfiguration" + } + }, + "type": "structure", + "union": true + }, + "WebExperienceId": { + "max": 36, + "min": 36, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9-]*$", + "type": "string" + }, + "WebExperienceSamplePromptsControlMode": { + "enum": [ + "ENABLED", + "DISABLED" + ], + "type": "string" + }, + "WebExperienceStatus": { + "enum": [ + "CREATING", + "ACTIVE", + "DELETING", + "FAILED", + "PENDING_AUTH_CONFIG" + ], + "type": "string" + }, + "WebExperienceSubtitle": { + "max": 500, + "min": 0, + "pattern": "^\\P{C}*$", + "type": "string" + }, + "WebExperienceTitle": { + "max": 500, + "min": 0, + "pattern": "^\\P{C}*$", + "type": "string" + }, + "WebExperienceWelcomeMessage": { + "max": 300, + "min": 0, + "type": "string" + }, + "WebExperiences": { + "member": { + "shape": "WebExperience" + }, + "type": "list" + } + }, + "version": "2.0" +} \ No newline at end of file diff --git a/models/apis/qbusiness/2023-11-27/docs-2.json b/models/apis/qbusiness/2023-11-27/docs-2.json new file mode 100644 index 00000000000..f8ff1185d51 --- /dev/null +++ b/models/apis/qbusiness/2023-11-27/docs-2.json @@ -0,0 +1,2473 @@ +{ + "version": "2.0", + "service": "

", + "operations": { + "BatchDeleteDocument": "

Asynchronously deletes one or more documents added using the BatchPutDocument API from an Amazon Q index.

You can see the progress of the deletion, and any error messages related to the process, by using CloudWatch.

", + "BatchPutDocument": "

Adds one or more documents to an Amazon Q index.

You use this API to:

You can see the progress of the deletion, and any error messages related to the process, by using CloudWatch.

", + "ChatSync": "

Starts or continues a non-streaming Amazon Q conversation.

", + "CreateApplication": "

Creates an Amazon Q application.

", + "CreateDataSource": "

Creates a data source connector for an Amazon Q application.

CreateDataSource is a synchronous operation. The operation returns 200 if the data source was successfully created. Otherwise, an exception is raised.

", + "CreateIndex": "

Creates an Amazon Q index.

To determine if index creation has completed, check the Status field returned from a call to DescribeIndex. The Status field is set to ACTIVE when the index is ready to use.

Once the index is active, you can index your documents using the BatchPutDocument API or the CreateDataSource API.

", + "CreatePlugin": "

Creates an Amazon Q plugin.

", + "CreateRetriever": "

Adds a retriever to your Amazon Q application.

", + "CreateUser": "

Creates a universally unique identifier (UUID) mapped to a list of local user ids within an application.

", + "CreateWebExperience": "

Creates an Amazon Q web experience.

", + "DeleteApplication": "

Deletes an Amazon Q application.

", + "DeleteChatControlsConfiguration": "

Deletes chat controls configured for an existing Amazon Q application.

", + "DeleteConversation": "

Deletes an Amazon Q web experience conversation.

", + "DeleteDataSource": "

Deletes an Amazon Q data source connector. While the data source is being deleted, the Status field returned by a call to the DescribeDataSource API is set to DELETING.

", + "DeleteGroup": "

Deletes a group so that all users and sub groups that belong to the group can no longer access documents only available to that group. For example, after deleting the group \"Summer Interns\", all interns who belonged to that group no longer see intern-only documents in their chat results.

If you want to delete, update, or replace users or sub groups of a group, you need to use the PutGroup operation. For example, if a user in the group \"Engineering\" leaves the engineering team and another user takes their place, you provide an updated list of users or sub groups that belong to the \"Engineering\" group when calling PutGroup.

", + "DeleteIndex": "

Deletes an Amazon Q index.

", + "DeletePlugin": "

Deletes an Amazon Q plugin.

", + "DeleteRetriever": "

Deletes the retriever used by an Amazon Q application.

", + "DeleteUser": "

Deletes a user by email id.

", + "DeleteWebExperience": "

Deletes an Amazon Q web experience.

", + "GetApplication": "

Gets information about an existing Amazon Q application.

", + "GetChatControlsConfiguration": "

Gets information about an chat controls configured for an existing Amazon Q application.

", + "GetDataSource": "

Gets information about an existing Amazon Q data source connector.

", + "GetGroup": "

Describes a group by group name.

", + "GetIndex": "

Gets information about an existing Amazon Q index.

", + "GetPlugin": "

Gets information about an existing Amazon Q plugin.

", + "GetRetriever": "

Gets information about an existing retriever used by an Amazon Q application.

", + "GetUser": "

Describes the universally unique identifier (UUID) associated with a local user in a data source.

", + "GetWebExperience": "

Gets information about an existing Amazon Q web experience.

", + "ListApplications": "

Lists Amazon Q applications.

", + "ListConversations": "

Lists one or more Amazon Q conversations.

", + "ListDataSourceSyncJobs": "

Get information about an Amazon Q data source connector synchronization.

", + "ListDataSources": "

Lists the Amazon Q data source connectors that you have created.

", + "ListDocuments": "

A list of documents attached to an index.

", + "ListGroups": "

Provides a list of groups that are mapped to users.

", + "ListIndices": "

Lists the Amazon Q indices you have created.

", + "ListMessages": "

Gets a list of messages associated with an Amazon Q web experience.

", + "ListPlugins": "

Lists configured Amazon Q plugins.

", + "ListRetrievers": "

Lists the retriever used by an Amazon Q application.

", + "ListTagsForResource": "

Gets a list of tags associated with a specified resource. Amazon Q applications and data sources can have tags associated with them.

", + "ListWebExperiences": "

Lists one or more Amazon Q Web Experiences.

", + "PutFeedback": "

Enables your end user to to provide feedback on their Amazon Q generated chat responses.

", + "PutGroup": "

Create, or updates, a mapping of users—who have access to a document—to groups.

You can also map sub groups to groups. For example, the group \"Company Intellectual Property Teams\" includes sub groups \"Research\" and \"Engineering\". These sub groups include their own list of users or people who work in these teams. Only users who work in research and engineering, and therefore belong in the intellectual property group, can see top-secret company documents in their Amazon Q chat results.

", + "StartDataSourceSyncJob": "

Starts a data source connector synchronization job. If a synchronization job is already in progress, Amazon Q returns a ConflictException.

", + "StopDataSourceSyncJob": "

Stops an Amazon Q data source connector synchronization job already in progress.

", + "TagResource": "

Adds the specified tag to the specified Amazon Q application or data source resource. If the tag already exists, the existing value is replaced with the new value.

", + "UntagResource": "

Removes a tag from an Amazon Q application or a data source.

", + "UpdateApplication": "

Updates an existing Amazon Q application.

", + "UpdateChatControlsConfiguration": "

Updates an set of chat controls configured for an existing Amazon Q application.

", + "UpdateDataSource": "

Updates an existing Amazon Q data source connector.

", + "UpdateIndex": "

Updates an Amazon Q index.

", + "UpdatePlugin": "

Updates an Amazon Q plugin.

", + "UpdateRetriever": "

Updates the retriever used for your Amazon Q application.

", + "UpdateUser": "

Updates a information associated with a user id.

", + "UpdateWebExperience": "

Updates an Amazon Q web experience.

" + }, + "shapes": { + "AccessConfiguration": { + "base": "

Used to configure access permissions for a document.

", + "refs": { + "Document$accessConfiguration": "

Configuration information for access permission to a document.

" + } + }, + "AccessControl": { + "base": "

A list of principals. Each principal can be either a USER or a GROUP and can be designated document access permissions of either ALLOW or DENY.

", + "refs": { + "AccessControls$member": null + } + }, + "AccessControls": { + "base": null, + "refs": { + "AccessConfiguration$accessControls": "

A list of AccessControlList objects.

" + } + }, + "AccessDeniedException": { + "base": "

You don't have access to perform this action. Make sure you have the required permission policies and user accounts and try again.

", + "refs": { + } + }, + "ActionExecution": { + "base": "

Performs an Amazon Q plugin action during a non-streaming chat conversation.

", + "refs": { + "ChatSyncInput$actionExecution": "

A request from an end user to perform an Amazon Q plugin action.

", + "Message$actionExecution": null + } + }, + "ActionExecutionPayload": { + "base": null, + "refs": { + "ActionExecution$payload": "

A mapping of field names to the field values in input that an end user provides to Amazon Q requests to perform their plugin action.

" + } + }, + "ActionExecutionPayloadField": { + "base": "

A user input field in an plugin action execution payload.

", + "refs": { + "ActionExecutionPayload$value": null + } + }, + "ActionPayloadFieldKey": { + "base": null, + "refs": { + "ActionExecutionPayload$key": null, + "ActionReviewPayload$key": null + } + }, + "ActionPayloadFieldNameSeparator": { + "base": null, + "refs": { + "ActionExecution$payloadFieldNameSeparator": "

A string used to retain information about the hierarchical contexts within an action execution event payload.

", + "ActionReview$payloadFieldNameSeparator": "

A string used to retain information about the hierarchical contexts within an action review payload.

" + } + }, + "ActionPayloadFieldType": { + "base": null, + "refs": { + "ActionReviewPayloadField$type": "

The type of field.

" + } + }, + "ActionPayloadFieldValue": { + "base": null, + "refs": { + "ActionExecutionPayloadField$value": "

The content of a user input field in an plugin action execution payload.

", + "ActionReviewPayloadField$value": "

The field value.

", + "ActionReviewPayloadFieldAllowedValue$displayValue": "

The name of the field.

", + "ActionReviewPayloadFieldAllowedValue$value": "

The field value.

" + } + }, + "ActionReview": { + "base": "

An output event that Amazon Q returns to an user who wants to perform a plugin action during a non-streaming chat conversation. It contains information about the selected action with a list of possible user input fields, some pre-populated by Amazon Q.

", + "refs": { + "ChatSyncOutput$actionReview": "

A request from Amazon Q to the end user for information Amazon Q needs to successfully complete a requested plugin action.

", + "Message$actionReview": null + } + }, + "ActionReviewPayload": { + "base": null, + "refs": { + "ActionReview$payload": "

Field values that an end user needs to provide to Amazon Q for Amazon Q to perform the requested plugin action.

" + } + }, + "ActionReviewPayloadField": { + "base": "

A user input field in an plugin action review payload.

", + "refs": { + "ActionReviewPayload$value": null + } + }, + "ActionReviewPayloadFieldAllowedValue": { + "base": "

Information about the field values that an end user can use to provide to Amazon Q for Amazon Q to perform the requested plugin action.

", + "refs": { + "ActionReviewPayloadFieldAllowedValues$member": null + } + }, + "ActionReviewPayloadFieldAllowedValues": { + "base": null, + "refs": { + "ActionReviewPayloadField$allowedValues": "

Information about the field values that an end user can use to provide to Amazon Q for Amazon Q to perform the requested plugin action.

" + } + }, + "AmazonResourceName": { + "base": null, + "refs": { + "ListTagsForResourceRequest$resourceARN": "

The Amazon Resource Name (ARN) of the Amazon Q application or data source to get a list of tags for.

", + "TagResourceRequest$resourceARN": "

The Amazon Resource Name (ARN) of the Amazon Q application or data source to tag.

", + "UntagResourceRequest$resourceARN": "

The Amazon Resource Name (ARN) of the Amazon Q application, or data source to remove the tag from.

" + } + }, + "Application": { + "base": "

Summary information for an Amazon Q application.

", + "refs": { + "Applications$member": null + } + }, + "ApplicationArn": { + "base": null, + "refs": { + "CreateApplicationResponse$applicationArn": "

The Amazon Resource Name (ARN) of the Amazon Q application.

", + "GetApplicationResponse$applicationArn": "

The Amazon Resource Name (ARN) of the Amazon Q application.

" + } + }, + "ApplicationId": { + "base": null, + "refs": { + "Application$applicationId": "

The identifier for the Amazon Q application.

", + "BatchDeleteDocumentRequest$applicationId": "

The identifier of the Amazon Q application.

", + "BatchPutDocumentRequest$applicationId": "

The identifier of the Amazon Q application.

", + "ChatSyncInput$applicationId": "

The identifier of the Amazon Q application linked to the Amazon Q conversation.

", + "CreateApplicationResponse$applicationId": "

The identifier of the Amazon Q application.

", + "CreateDataSourceRequest$applicationId": "

The identifier of the Amazon Q application the data source will be attached to.

", + "CreateIndexRequest$applicationId": "

The identifier of the Amazon Q application using the index.

", + "CreatePluginRequest$applicationId": "

The identifier of the application that will contain the plugin.

", + "CreateRetrieverRequest$applicationId": "

The identifier of your Amazon Q application.

", + "CreateUserRequest$applicationId": "

The identifier of the application for which the user mapping will be created.

", + "CreateWebExperienceRequest$applicationId": "

The identifier of the Amazon Q web experience.

", + "DeleteApplicationRequest$applicationId": "

The identifier of the Amazon Q application.

", + "DeleteChatControlsConfigurationRequest$applicationId": "

The identifier of the application the chat controls have been configured for.

", + "DeleteConversationRequest$applicationId": "

The identifier of the Amazon Q application associated with the conversation.

", + "DeleteDataSourceRequest$applicationId": "

The identifier of the Amazon Q application used with the data source connector.

", + "DeleteGroupRequest$applicationId": "

The identifier of the application in which the group mapping belongs.

", + "DeleteIndexRequest$applicationId": "

The identifier of the Amazon Q application the Amazon Q index is linked to.

", + "DeletePluginRequest$applicationId": "

The identifier the application attached to the Amazon Q plugin.

", + "DeleteRetrieverRequest$applicationId": "

The identifier of the Amazon Q application using the retriever.

", + "DeleteUserRequest$applicationId": "

The identifier of the application from which the user is being deleted.

", + "DeleteWebExperienceRequest$applicationId": "

The identifier of the Amazon Q application linked to the Amazon Q web experience.

", + "GetApplicationRequest$applicationId": "

The identifier of the Amazon Q application.

", + "GetApplicationResponse$applicationId": "

The identifier of the Amazon Q application.

", + "GetChatControlsConfigurationRequest$applicationId": "

The identifier of the application for which the chat controls are configured.

", + "GetDataSourceRequest$applicationId": "

The identifier of the Amazon Q application.

", + "GetDataSourceResponse$applicationId": "

The identifier of the Amazon Q application.

", + "GetGroupRequest$applicationId": "

The identifier of the application id the group is attached to.

", + "GetIndexRequest$applicationId": "

The identifier of the Amazon Q application connected to the index.

", + "GetIndexResponse$applicationId": "

The identifier of the Amazon Q application associated with the index.

", + "GetPluginRequest$applicationId": "

The identifier of the application which contains the plugin.

", + "GetPluginResponse$applicationId": "

The identifier of the application which contains the plugin.

", + "GetRetrieverRequest$applicationId": "

The identifier of the Amazon Q application using the retriever.

", + "GetRetrieverResponse$applicationId": "

The identifier of the Amazon Q application using the retriever.

", + "GetUserRequest$applicationId": "

The identifier of the application connected to the user.

", + "GetWebExperienceRequest$applicationId": "

The identifier of the Amazon Q application linked to the web experience.

", + "GetWebExperienceResponse$applicationId": "

The identifier of the Amazon Q application linked to the web experience.

", + "ListConversationsRequest$applicationId": "

The identifier of the Amazon Q application.

", + "ListDataSourceSyncJobsRequest$applicationId": "

The identifier of the Amazon Q application connected to the data source.

", + "ListDataSourcesRequest$applicationId": "

The identifier of the Amazon Q application linked to the data source connectors.

", + "ListDocumentsRequest$applicationId": "

The identifier of the application id the documents are attached to.

", + "ListGroupsRequest$applicationId": "

The identifier of the application for getting a list of groups mapped to users.

", + "ListIndicesRequest$applicationId": "

The identifier of the Amazon Q application connected to the index.

", + "ListMessagesRequest$applicationId": "

The identifier for the Amazon Q application.

", + "ListPluginsRequest$applicationId": "

The identifier of the application the plugin is attached to.

", + "ListRetrieversRequest$applicationId": "

The identifier of the Amazon Q application using the retriever.

", + "ListWebExperiencesRequest$applicationId": "

The identifier of the Amazon Q application linked to the listed web experiences.

", + "PutFeedbackRequest$applicationId": "

The identifier of the application associated with the feedback.

", + "PutGroupRequest$applicationId": "

The identifier of the application in which the user and group mapping belongs.

", + "Retriever$applicationId": "

The identifier of the Amazon Q application using the retriever.

", + "StartDataSourceSyncJobRequest$applicationId": "

The identifier of Amazon Q application the data source is connected to.

", + "StopDataSourceSyncJobRequest$applicationId": "

The identifier of the Amazon Q application that the data source is connected to.

", + "UpdateApplicationRequest$applicationId": "

The identifier of the Amazon Q application.

", + "UpdateChatControlsConfigurationRequest$applicationId": "

The identifier of the application for which the chat controls are configured.

", + "UpdateDataSourceRequest$applicationId": "

The identifier of the Amazon Q application the data source is attached to.

", + "UpdateIndexRequest$applicationId": "

The identifier of the Amazon Q application connected to the index.

", + "UpdatePluginRequest$applicationId": "

The identifier of the application the plugin is attached to.

", + "UpdateRetrieverRequest$applicationId": "

The identifier of your Amazon Q application.

", + "UpdateUserRequest$applicationId": "

The identifier of the application the user is attached to.

", + "UpdateWebExperienceRequest$applicationId": "

The identifier of the Amazon Q application attached to the web experience.

" + } + }, + "ApplicationName": { + "base": null, + "refs": { + "Application$displayName": "

The name of the Amazon Q application.

", + "CreateApplicationRequest$displayName": "

A name for the Amazon Q application.

", + "GetApplicationResponse$displayName": "

The name of the Amazon Q application.

", + "UpdateApplicationRequest$displayName": "

A name for the Amazon Q application.

", + "UpdateIndexRequest$displayName": "

The name of the Amazon Q index.

" + } + }, + "ApplicationStatus": { + "base": null, + "refs": { + "Application$status": "

The status of the Amazon Q application. The application is ready to use when the status is ACTIVE.

", + "GetApplicationResponse$status": "

The status of the Amazon Q application.

" + } + }, + "Applications": { + "base": null, + "refs": { + "ListApplicationsResponse$applications": "

An array of summary information on the configuration of one or more Amazon Q applications.

" + } + }, + "AppliedAttachmentsConfiguration": { + "base": "

Configuration information about the file upload during chat feature for your application.

", + "refs": { + "GetApplicationResponse$attachmentsConfiguration": "

Settings for whether end users can upload files directly during chat.

" + } + }, + "AttachmentInput": { + "base": "

A file directly uploaded into a web experience chat.

", + "refs": { + "AttachmentsInput$member": null + } + }, + "AttachmentName": { + "base": null, + "refs": { + "AttachmentInput$name": "

The name of the file.

", + "AttachmentOutput$name": "

The name of a file uploaded during chat.

" + } + }, + "AttachmentOutput": { + "base": "

The details of a file uploaded during chat.

", + "refs": { + "AttachmentsOutput$member": null + } + }, + "AttachmentStatus": { + "base": null, + "refs": { + "AttachmentOutput$status": "

The status of a file uploaded during chat.

" + } + }, + "AttachmentsConfiguration": { + "base": "

Configuration information for the file upload during chat feature.

", + "refs": { + "CreateApplicationRequest$attachmentsConfiguration": "

An option to allow end users to upload files directly during chat.

", + "UpdateApplicationRequest$attachmentsConfiguration": "

An option to allow end users to upload files directly during chat.

" + } + }, + "AttachmentsControlMode": { + "base": null, + "refs": { + "AppliedAttachmentsConfiguration$attachmentsControlMode": "

Information about whether file upload during chat functionality is activated for your application.

", + "AttachmentsConfiguration$attachmentsControlMode": "

Status information about whether file upload functionality is activated or deactivated for your end user.

" + } + }, + "AttachmentsInput": { + "base": null, + "refs": { + "ChatSyncInput$attachments": "

A list of files uploaded directly during chat. You can upload a maximum of 5 files of upto 10 MB each.

" + } + }, + "AttachmentsOutput": { + "base": null, + "refs": { + "ChatSyncOutput$failedAttachments": "

A list of files which failed to upload during chat.

", + "Message$attachments": "

A file directly uploaded into an Amazon Q web experience chat.

" + } + }, + "AttributeFilter": { + "base": "

Enables filtering of Amazon Q web experience responses based on document attributes or metadata fields.

", + "refs": { + "AttributeFilter$notFilter": "

Performs a logical NOT operation on all supplied filters.

", + "AttributeFilters$member": null, + "ChatSyncInput$attributeFilter": "

Enables filtering of Amazon Q web experience responses based on document attributes or metadata fields.

" + } + }, + "AttributeFilters": { + "base": null, + "refs": { + "AttributeFilter$andAllFilters": "

Performs a logical AND operation on all supplied filters.

", + "AttributeFilter$orAllFilters": "

Performs a logical OR operation on all supplied filters.

" + } + }, + "AttributeType": { + "base": null, + "refs": { + "DocumentAttributeConfiguration$type": "

The type of document attribute.

" + } + }, + "AttributeValueOperator": { + "base": null, + "refs": { + "DocumentAttributeTarget$attributeValueOperator": "

TRUE to delete the existing target value for your specified target attribute key. You cannot create a target value and set this to TRUE.

" + } + }, + "BasicAuthConfiguration": { + "base": "

Information about the basic authentication credentials used to configure a plugin.

", + "refs": { + "PluginAuthConfiguration$basicAuthConfiguration": "

Information about the basic authentication credentials used to configure a plugin.

" + } + }, + "BatchDeleteDocumentRequest": { + "base": null, + "refs": { + } + }, + "BatchDeleteDocumentResponse": { + "base": null, + "refs": { + } + }, + "BatchPutDocumentRequest": { + "base": null, + "refs": { + } + }, + "BatchPutDocumentResponse": { + "base": null, + "refs": { + } + }, + "Blob": { + "base": null, + "refs": { + "AttachmentInput$data": "

The data contained within the uploaded file.

", + "DocumentContent$blob": "

The contents of the document. Documents passed to the blob parameter must be base64 encoded. Your code might not need to encode the document file bytes if you're using an Amazon Web Services SDK to call Amazon Q APIs. If you are calling the Amazon Q endpoint directly using REST, you must base64 encode the contents before sending.

" + } + }, + "BlockedPhrase": { + "base": null, + "refs": { + "BlockedPhrases$member": null + } + }, + "BlockedPhrases": { + "base": null, + "refs": { + "BlockedPhrasesConfiguration$blockedPhrases": "

A list of phrases blocked from a Amazon Q web experience chat.

", + "BlockedPhrasesConfigurationUpdate$blockedPhrasesToCreateOrUpdate": "

Creates or updates a blocked phrases configuration in your Amazon Q application.

", + "BlockedPhrasesConfigurationUpdate$blockedPhrasesToDelete": "

Deletes a blocked phrases configuration in your Amazon Q application.

" + } + }, + "BlockedPhrasesConfiguration": { + "base": "

Provides information about the phrases blocked from chat by your chat control configuration.

", + "refs": { + "GetChatControlsConfigurationResponse$blockedPhrases": "

The phrases blocked from chat by your chat control configuration.

" + } + }, + "BlockedPhrasesConfigurationUpdate": { + "base": "

Updates a blocked phrases configuration in your Amazon Q application.

", + "refs": { + "UpdateChatControlsConfigurationRequest$blockedPhrasesConfigurationUpdate": "

The phrases blocked from chat by your chat control configuration.

" + } + }, + "Boolean": { + "base": null, + "refs": { + "ActionReviewPayloadField$required": "

Information about whether the field is required.

" + } + }, + "ChatSyncInput": { + "base": null, + "refs": { + } + }, + "ChatSyncOutput": { + "base": null, + "refs": { + } + }, + "ClientToken": { + "base": null, + "refs": { + "ChatSyncInput$clientToken": "

A token that you provide to identify a chat request.

", + "CreateApplicationRequest$clientToken": "

A token that you provide to identify the request to create your Amazon Q application.

", + "CreateDataSourceRequest$clientToken": "

A token you provide to identify a request to create a data source connector. Multiple calls to the CreateDataSource API with the same client token will create only one data source connector.

", + "CreateIndexRequest$clientToken": "

A token that you provide to identify the request to create an index. Multiple calls to the CreateIndex API with the same client token will create only one index.

", + "CreatePluginRequest$clientToken": "

A token that you provide to identify the request to create your Amazon Q plugin.

", + "CreateRetrieverRequest$clientToken": "

A token that you provide to identify the request to create your Amazon Q application retriever.

", + "CreateUserRequest$clientToken": "

A token that you provide to identify the request to create your Amazon Q user mapping.

", + "CreateWebExperienceRequest$clientToken": "

A token you provide to identify a request to create an Amazon Q web experience.

", + "UpdateChatControlsConfigurationRequest$clientToken": "

A token that you provide to identify the request to update a Amazon Q application chat configuration.

" + } + }, + "ConflictException": { + "base": "

You are trying to perform an action that conflicts with the current status of your resource. Fix any inconsistences with your resources and try again.

", + "refs": { + } + }, + "ContentBlockerRule": { + "base": "

A rule for configuring how Amazon Q responds when it encounters a a blocked topic. You can configure a custom message to inform your end users that they have asked about a restricted topic and suggest any next steps they should take.

", + "refs": { + "RuleConfiguration$contentBlockerRule": "

A rule for configuring how Amazon Q responds when it encounters a a blocked topic.

" + } + }, + "ContentRetrievalRule": { + "base": "

Rules for retrieving content from data sources connected to a Amazon Q application for a specific topic control configuration.

", + "refs": { + "RuleConfiguration$contentRetrievalRule": null + } + }, + "ContentType": { + "base": null, + "refs": { + "Document$contentType": "

The file type of the document in the Blob field.

If you want to index snippets or subsets of HTML documents instead of the entirety of the HTML documents, you add the HTML start and closing tags (<HTML>content</HTML>) around the content.

" + } + }, + "Conversation": { + "base": "

A conversation in an Amazon Q application.

", + "refs": { + "Conversations$member": null + } + }, + "ConversationId": { + "base": null, + "refs": { + "ChatSyncInput$conversationId": "

The identifier of the Amazon Q conversation.

", + "ChatSyncOutput$conversationId": "

The identifier of the Amazon Q conversation.

", + "Conversation$conversationId": "

The identifier of the Amazon Q conversation.

", + "DeleteConversationRequest$conversationId": "

The identifier of the Amazon Q web experience conversation being deleted.

", + "ListMessagesRequest$conversationId": "

The identifier of the Amazon Q web experience conversation.

", + "PutFeedbackRequest$conversationId": "

The identifier of the conversation the feedback is attached to.

" + } + }, + "ConversationTitle": { + "base": null, + "refs": { + "Conversation$title": "

The title of the conversation.

" + } + }, + "Conversations": { + "base": null, + "refs": { + "ListConversationsResponse$conversations": "

An array of summary information on the configuration of one or more Amazon Q web experiences.

" + } + }, + "CreateApplicationRequest": { + "base": null, + "refs": { + } + }, + "CreateApplicationResponse": { + "base": null, + "refs": { + } + }, + "CreateDataSourceRequest": { + "base": null, + "refs": { + } + }, + "CreateDataSourceResponse": { + "base": null, + "refs": { + } + }, + "CreateIndexRequest": { + "base": null, + "refs": { + } + }, + "CreateIndexResponse": { + "base": null, + "refs": { + } + }, + "CreatePluginRequest": { + "base": null, + "refs": { + } + }, + "CreatePluginResponse": { + "base": null, + "refs": { + } + }, + "CreateRetrieverRequest": { + "base": null, + "refs": { + } + }, + "CreateRetrieverResponse": { + "base": null, + "refs": { + } + }, + "CreateUserRequest": { + "base": null, + "refs": { + } + }, + "CreateUserRequestUserAliasesList": { + "base": null, + "refs": { + "CreateUserRequest$userAliases": "

The list of user aliases in the mapping.

" + } + }, + "CreateUserResponse": { + "base": null, + "refs": { + } + }, + "CreateWebExperienceRequest": { + "base": null, + "refs": { + } + }, + "CreateWebExperienceResponse": { + "base": null, + "refs": { + } + }, + "DataSource": { + "base": "

A data source in an Amazon Q application.

", + "refs": { + "DataSources$member": null + } + }, + "DataSourceArn": { + "base": null, + "refs": { + "CreateDataSourceResponse$dataSourceArn": "

The Amazon Resource Name (ARN) of a data source in an Amazon Q application.

", + "GetDataSourceResponse$dataSourceArn": "

The Amazon Resource Name (ARN) of the data source.

" + } + }, + "DataSourceConfiguration": { + "base": "

Provides the configuration information for an Amazon Q data source.

", + "refs": { + "CreateDataSourceRequest$configuration": "

Configuration information to connect to your data source repository. For configuration templates for your specific data source, see Supported connectors.

", + "GetDataSourceResponse$configuration": "

The details of how the data source connector is configured.

", + "UpdateDataSourceRequest$configuration": null + } + }, + "DataSourceId": { + "base": null, + "refs": { + "CreateDataSourceResponse$dataSourceId": "

The identifier of the data source connector.

", + "DataSource$dataSourceId": "

The identifier of the Amazon Q data source.

", + "DataSourceIds$member": null, + "DeleteDataSourceRequest$dataSourceId": "

The identifier of the data source connector that you want to delete.

", + "DeleteGroupRequest$dataSourceId": "

The identifier of the data source linked to the group

A group can be tied to multiple data sources. You can delete a group from accessing documents in a certain data source. For example, the groups \"Research\", \"Engineering\", and \"Sales and Marketing\" are all tied to the company's documents stored in the data sources Confluence and Salesforce. You want to delete \"Research\" and \"Engineering\" groups from Salesforce, so that these groups cannot access customer-related documents stored in Salesforce. Only \"Sales and Marketing\" should access documents in the Salesforce data source.

", + "EligibleDataSource$dataSourceId": "

The identifier of the data source.

", + "FailedDocument$dataSourceId": "

The identifier of the Amazon Q data source connector that contains the failed document.

", + "GetDataSourceRequest$dataSourceId": "

The identifier of the data source connector.

", + "GetDataSourceResponse$dataSourceId": "

The identifier of the data source connector.

", + "GetGroupRequest$dataSourceId": "

The identifier of the data source the group is attached to.

", + "ListDataSourceSyncJobsRequest$dataSourceId": "

The identifier of the data source connector.

", + "ListGroupsRequest$dataSourceId": "

The identifier of the data source for getting a list of groups mapped to users.

", + "PutGroupRequest$dataSourceId": "

The identifier of the data source for which you want to map users to their groups. This is useful if a group is tied to multiple data sources, but you only want the group to access documents of a certain data source. For example, the groups \"Research\", \"Engineering\", and \"Sales and Marketing\" are all tied to the company's documents stored in the data sources Confluence and Salesforce. However, \"Sales and Marketing\" team only needs access to customer-related documents stored in Salesforce.

", + "StartDataSourceSyncJobRequest$dataSourceId": "

The identifier of the data source connector.

", + "StopDataSourceSyncJobRequest$dataSourceId": "

The identifier of the data source connector.

", + "UpdateDataSourceRequest$dataSourceId": "

The identifier of the data source connector.

", + "UserAlias$dataSourceId": "

The identifier of the data source that the user aliases are associated with.

" + } + }, + "DataSourceIds": { + "base": null, + "refs": { + "ListDocumentsRequest$dataSourceIds": "

The identifier of the data sources the documents are attached to.

" + } + }, + "DataSourceName": { + "base": null, + "refs": { + "CreateDataSourceRequest$displayName": "

A name for the data source connector.

", + "DataSource$displayName": "

The name of the Amazon Q data source.

", + "GetDataSourceResponse$displayName": "

The name for the data source connector.

", + "UpdateDataSourceRequest$displayName": "

A name of the data source connector.

" + } + }, + "DataSourceStatus": { + "base": null, + "refs": { + "DataSource$status": "

The status of the Amazon Q data source.

", + "GetDataSourceResponse$status": "

The current status of the data source connector. When the Status field value is FAILED, the ErrorMessage field contains a description of the error that caused the data source connector to fail.

" + } + }, + "DataSourceSyncJob": { + "base": "

Provides information about an Amazon Q data source connector synchronization job.

", + "refs": { + "DataSourceSyncJobs$member": null + } + }, + "DataSourceSyncJobMetrics": { + "base": "

Maps a batch delete document request to a specific Amazon Q data source connector sync job.

", + "refs": { + "DataSourceSyncJob$metrics": "

Maps a batch delete document request to a specific data source sync job. This is optional and should only be supplied when documents are deleted by a data source connector.

" + } + }, + "DataSourceSyncJobStatus": { + "base": null, + "refs": { + "DataSourceSyncJob$status": "

The status of the synchronization job. When the Status field is set to SUCCEEDED, the synchronization job is done. If the status code is FAILED, the ErrorCode and ErrorMessage fields give you the reason for the failure.

", + "ListDataSourceSyncJobsRequest$statusFilter": "

Only returns synchronization jobs with the Status field equal to the specified status.

" + } + }, + "DataSourceSyncJobs": { + "base": null, + "refs": { + "ListDataSourceSyncJobsResponse$history": "

A history of synchronization jobs for the data source connector.

" + } + }, + "DataSourceUserId": { + "base": null, + "refs": { + "MemberUser$userId": "

The identifier of the user you want to map to a group.

" + } + }, + "DataSourceVpcConfiguration": { + "base": "

Provides configuration information needed to connect to an Amazon VPC (Virtual Private Cloud).

", + "refs": { + "CreateDataSourceRequest$vpcConfiguration": "

Configuration information for an Amazon VPC (Virtual Private Cloud) to connect to your data source. For more information, see Using Amazon VPC with Amazon Q connectors.

", + "GetDataSourceResponse$vpcConfiguration": "

Configuration information for an Amazon VPC (Virtual Private Cloud) to connect to your data source.

", + "UpdateDataSourceRequest$vpcConfiguration": null + } + }, + "DataSources": { + "base": null, + "refs": { + "ListDataSourcesResponse$dataSources": "

An array of summary information for one or more data source connector.

" + } + }, + "DeleteApplicationRequest": { + "base": null, + "refs": { + } + }, + "DeleteApplicationResponse": { + "base": null, + "refs": { + } + }, + "DeleteChatControlsConfigurationRequest": { + "base": null, + "refs": { + } + }, + "DeleteChatControlsConfigurationResponse": { + "base": null, + "refs": { + } + }, + "DeleteConversationRequest": { + "base": null, + "refs": { + } + }, + "DeleteConversationResponse": { + "base": null, + "refs": { + } + }, + "DeleteDataSourceRequest": { + "base": null, + "refs": { + } + }, + "DeleteDataSourceResponse": { + "base": null, + "refs": { + } + }, + "DeleteDocument": { + "base": "

A document deleted from an Amazon Q data source connector.

", + "refs": { + "DeleteDocuments$member": null + } + }, + "DeleteDocuments": { + "base": null, + "refs": { + "BatchDeleteDocumentRequest$documents": "

Documents deleted from the Amazon Q index.

" + } + }, + "DeleteGroupRequest": { + "base": null, + "refs": { + } + }, + "DeleteGroupResponse": { + "base": null, + "refs": { + } + }, + "DeleteIndexRequest": { + "base": null, + "refs": { + } + }, + "DeleteIndexResponse": { + "base": null, + "refs": { + } + }, + "DeletePluginRequest": { + "base": null, + "refs": { + } + }, + "DeletePluginResponse": { + "base": null, + "refs": { + } + }, + "DeleteRetrieverRequest": { + "base": null, + "refs": { + } + }, + "DeleteRetrieverResponse": { + "base": null, + "refs": { + } + }, + "DeleteUserRequest": { + "base": null, + "refs": { + } + }, + "DeleteUserResponse": { + "base": null, + "refs": { + } + }, + "DeleteWebExperienceRequest": { + "base": null, + "refs": { + } + }, + "DeleteWebExperienceResponse": { + "base": null, + "refs": { + } + }, + "Description": { + "base": null, + "refs": { + "CreateApplicationRequest$description": "

A description for the Amazon Q application.

", + "CreateDataSourceRequest$description": "

A description for the data source connector.

", + "CreateIndexRequest$description": "

A description for the Amazon Q index.

", + "GetApplicationResponse$description": "

A description for the Amazon Q application.

", + "GetDataSourceResponse$description": "

The description for the data source connector.

", + "GetIndexResponse$description": "

The description for the Amazon Q index.

", + "UpdateApplicationRequest$description": "

A description for the Amazon Q application.

", + "UpdateDataSourceRequest$description": "

The description of the data source connector.

", + "UpdateIndexRequest$description": "

The description of the Amazon Q index.

" + } + }, + "Document": { + "base": "

A document in an Amazon Q application.

", + "refs": { + "Documents$member": null + } + }, + "DocumentAttribute": { + "base": "

A document attribute or metadata field.

", + "refs": { + "AttributeFilter$containsAll": "

Returns true when a document contains all the specified document attributes or metadata fields.

", + "AttributeFilter$containsAny": "

Returns true when a document contains any of the specified document attributes or metadata fields.

", + "AttributeFilter$equalsTo": "

Performs an equals operation on two document attributes or metadata fields.

", + "AttributeFilter$greaterThan": "

Performs a greater than operation on two document attributes or metadata fields. Use with a document attribute of type Date or Long.

", + "AttributeFilter$greaterThanOrEquals": "

Performs a greater or equals than operation on two document attributes or metadata fields. Use with a document attribute of type Date or Long.

", + "AttributeFilter$lessThan": "

Performs a less than operation on two document attributes or metadata fields. Use with a document attribute of type Date or Long.

", + "AttributeFilter$lessThanOrEquals": "

Performs a less than or equals operation on two document attributes or metadata fields. Use with a document attribute of type Date or Long.

", + "DocumentAttributes$member": null + } + }, + "DocumentAttributeCondition": { + "base": "

The condition used for the target document attribute or metadata field when ingesting documents into Amazon Q. You use this with DocumentAttributeTarget to apply the condition.

For example, you can create the 'Department' target field and have it prefill department names associated with the documents based on information in the 'Source_URI' field. Set the condition that if the 'Source_URI' field contains 'financial' in its URI value, then prefill the target field 'Department' with the target value 'Finance' for the document.

Amazon Q can't create a target field if it has not already been created as an index field. After you create your index field, you can create a document metadata field using DocumentAttributeTarget. Amazon Q then will map your newly created metadata field to your index field.

", + "refs": { + "HookConfiguration$invocationCondition": "

The condition used for when a Lambda function should be invoked.

For example, you can specify a condition that if there are empty date-time values, then Amazon Q should invoke a function that inserts the current date-time.

", + "InlineDocumentEnrichmentConfiguration$condition": null + } + }, + "DocumentAttributeConfiguration": { + "base": "

Configuration information for document attributes. Document attributes are metadata or fields associated with your documents. For example, the company department name associated with each document.

For more information, see Understanding document attributes.

", + "refs": { + "DocumentAttributeConfigurations$member": null + } + }, + "DocumentAttributeConfigurations": { + "base": null, + "refs": { + "GetIndexResponse$documentAttributeConfigurations": "

Configuration information for document attributes or metadata. Document metadata are fields associated with your documents. For example, the company department name associated with each document. For more information, see Understanding document attributes.

", + "UpdateIndexRequest$documentAttributeConfigurations": "

Configuration information for document metadata or fields. Document metadata are fields or attributes associated with your documents. For example, the company department name associated with each document. For more information, see Understanding document attributes.

" + } + }, + "DocumentAttributeKey": { + "base": null, + "refs": { + "DocumentAttribute$name": "

The identifier for the attribute.

", + "DocumentAttributeCondition$key": "

The identifier of the document attribute used for the condition.

For example, 'Source_URI' could be an identifier for the attribute or metadata field that contains source URIs associated with the documents.

Amazon Q currently doesn't support _document_body as an attribute key used for the condition.

", + "DocumentAttributeTarget$key": "

The identifier of the target document attribute or metadata field. For example, 'Department' could be an identifier for the target attribute or metadata field that includes the department names associated with the documents.

" + } + }, + "DocumentAttributeStringListValue": { + "base": null, + "refs": { + "DocumentAttributeValue$stringListValue": "

A list of strings.

" + } + }, + "DocumentAttributeTarget": { + "base": "

The target document attribute or metadata field you want to alter when ingesting documents into Amazon Q.

For example, you can delete all customer identification numbers associated with the documents, stored in the document metadata field called 'Customer_ID' by setting the target key as 'Customer_ID' and the deletion flag to TRUE. This removes all customer ID values in the field 'Customer_ID'. This would scrub personally identifiable information from each document's metadata.

Amazon Q can't create a target field if it has not already been created as an index field. After you create your index field, you can create a document metadata field using DocumentAttributeTarget . Amazon Q will then map your newly created document attribute to your index field.

You can also use this with DocumentAttributeCondition .

", + "refs": { + "InlineDocumentEnrichmentConfiguration$target": null + } + }, + "DocumentAttributeValue": { + "base": "

The value of a document attribute. You can only provide one value for a document attribute.

", + "refs": { + "DocumentAttribute$value": "

The value of the attribute.

", + "DocumentAttributeCondition$value": null, + "DocumentAttributeTarget$value": null + } + }, + "DocumentAttributeValueStringValueString": { + "base": null, + "refs": { + "DocumentAttributeValue$stringValue": "

A string.

" + } + }, + "DocumentAttributes": { + "base": null, + "refs": { + "Document$attributes": "

Custom attributes to apply to the document for refining Amazon Q web experience responses.

" + } + }, + "DocumentContent": { + "base": "

The contents of a document.

", + "refs": { + "Document$content": "

The contents of the document.

" + } + }, + "DocumentContentOperator": { + "base": null, + "refs": { + "InlineDocumentEnrichmentConfiguration$documentContentOperator": "

TRUE to delete content if the condition used for the target attribute is met.

" + } + }, + "DocumentDetailList": { + "base": null, + "refs": { + "ListDocumentsResponse$documentDetailList": "

A list of document details.

" + } + }, + "DocumentDetails": { + "base": "

The details of a document within an Amazon Q index.

", + "refs": { + "DocumentDetailList$member": null + } + }, + "DocumentEnrichmentConditionOperator": { + "base": null, + "refs": { + "DocumentAttributeCondition$operator": "

The identifier of the document attribute used for the condition.

For example, 'Source_URI' could be an identifier for the attribute or metadata field that contains source URIs associated with the documents.

Amazon Kendra currently does not support _document_body as an attribute key used for the condition.

" + } + }, + "DocumentEnrichmentConfiguration": { + "base": "

Provides the configuration information for altering document metadata and content during the document ingestion process.

For more information, see Custom document enrichment.

", + "refs": { + "CreateDataSourceRequest$documentEnrichmentConfiguration": null, + "Document$documentEnrichmentConfiguration": "

The configuration information for altering document metadata and content during the document ingestion process.

", + "GetDataSourceResponse$documentEnrichmentConfiguration": null, + "UpdateDataSourceRequest$documentEnrichmentConfiguration": null + } + }, + "DocumentId": { + "base": null, + "refs": { + "DeleteDocument$documentId": "

The identifier of the deleted document.

", + "Document$id": "

The identifier of the document.

", + "DocumentDetails$documentId": "

The identifier of the document.

", + "FailedDocument$id": "

The identifier of the document that couldn't be removed from the Amazon Q index.

" + } + }, + "DocumentStatus": { + "base": null, + "refs": { + "DocumentDetails$status": "

The current status of the document.

" + } + }, + "Documents": { + "base": null, + "refs": { + "BatchPutDocumentRequest$documents": "

One or more documents to add to the index.

" + } + }, + "EligibleDataSource": { + "base": "

The identifier of the data source Amazon Q will generate responses from.

", + "refs": { + "EligibleDataSources$member": null + } + }, + "EligibleDataSources": { + "base": null, + "refs": { + "ContentRetrievalRule$eligibleDataSources": "

Specifies data sources in a Amazon Q application to use for content generation.

" + } + }, + "EncryptionConfiguration": { + "base": "

Provides the identifier of the KMS key used to encrypt data indexed by Amazon Q. Amazon Q doesn't support asymmetric keys.

", + "refs": { + "CreateApplicationRequest$encryptionConfiguration": "

The identifier of the KMS key that is used to encrypt your data. Amazon Q doesn't support asymmetric keys.

", + "GetApplicationResponse$encryptionConfiguration": "

The identifier of the Amazon Web Services KMS key that is used to encrypt your data. Amazon Q doesn't support asymmetric keys.

" + } + }, + "ErrorCode": { + "base": null, + "refs": { + "ErrorDetail$errorCode": "

The code associated with the data source sync error.

" + } + }, + "ErrorDetail": { + "base": "

Provides information about a data source sync error.

", + "refs": { + "AttachmentOutput$error": "

An error associated with a file uploaded during chat.

", + "DataSourceSyncJob$error": "

If the Status field is set to FAILED, the ErrorCode field indicates the reason the synchronization failed.

", + "DocumentDetails$error": "

An error message associated with the document.

", + "FailedDocument$error": "

An explanation for why the document couldn't be removed from the index.

", + "GetApplicationResponse$error": "

If the Status field is set to ERROR, the ErrorMessage field contains a description of the error that caused the synchronization to fail.

", + "GetDataSourceResponse$error": "

When the Status field value is FAILED, the ErrorMessage field contains a description of the error that caused the data source connector to fail.

", + "GetIndexResponse$error": "

When the Status field value is FAILED, the ErrorMessage field contains a message that explains why.

", + "GetWebExperienceResponse$error": "

When the Status field value is FAILED, the ErrorMessage field contains a description of the error that caused the data source connector to fail.

", + "GroupStatusDetail$errorDetail": "

The details of an error associated a group status.

" + } + }, + "ErrorMessage": { + "base": null, + "refs": { + "AccessDeniedException$message": null, + "ConflictException$message": "

The message describing a ConflictException.

", + "ErrorDetail$errorMessage": "

The message explaining the data source sync error.

", + "InternalServerException$message": null, + "LicenseNotFoundException$message": null, + "ResourceNotFoundException$message": "

The message describing a ResourceNotFoundException.

", + "ServiceQuotaExceededException$message": "

The message describing a ServiceQuotaExceededException.

", + "ThrottlingException$message": null, + "ValidationException$message": "

The message describing the ValidationException.

" + } + }, + "ExampleChatMessage": { + "base": null, + "refs": { + "ExampleChatMessages$member": null + } + }, + "ExampleChatMessages": { + "base": null, + "refs": { + "TopicConfiguration$exampleChatMessages": "

A list of example phrases that you expect the end user to use in relation to the topic.

" + } + }, + "ExecutionId": { + "base": null, + "refs": { + "BatchDeleteDocumentRequest$dataSourceSyncId": "

The identifier of the data source sync during which the documents were deleted.

", + "BatchPutDocumentRequest$dataSourceSyncId": "

The identifier of the data source sync during which the documents were added.

", + "DataSourceSyncJob$executionId": "

The identifier of a data source synchronization job.

", + "StartDataSourceSyncJobResponse$executionId": "

The identifier for a particular synchronization job.

" + } + }, + "FailedDocument": { + "base": "

A list of documents that could not be removed from an Amazon Q index. Each entry contains an error message that indicates why the document couldn't be removed from the index.

", + "refs": { + "FailedDocuments$member": null + } + }, + "FailedDocuments": { + "base": null, + "refs": { + "BatchDeleteDocumentResponse$failedDocuments": "

A list of documents that couldn't be removed from the Amazon Q index. Each entry contains an error message that indicates why the document couldn't be removed from the index.

", + "BatchPutDocumentResponse$failedDocuments": "

A list of documents that were not added to the Amazon Q index because the document failed a validation check. Each document contains an error message that indicates why the document couldn't be added to the index.

" + } + }, + "GetApplicationRequest": { + "base": null, + "refs": { + } + }, + "GetApplicationResponse": { + "base": null, + "refs": { + } + }, + "GetChatControlsConfigurationRequest": { + "base": null, + "refs": { + } + }, + "GetChatControlsConfigurationResponse": { + "base": null, + "refs": { + } + }, + "GetDataSourceRequest": { + "base": null, + "refs": { + } + }, + "GetDataSourceResponse": { + "base": null, + "refs": { + } + }, + "GetGroupRequest": { + "base": null, + "refs": { + } + }, + "GetGroupResponse": { + "base": null, + "refs": { + } + }, + "GetIndexRequest": { + "base": null, + "refs": { + } + }, + "GetIndexResponse": { + "base": null, + "refs": { + } + }, + "GetPluginRequest": { + "base": null, + "refs": { + } + }, + "GetPluginResponse": { + "base": null, + "refs": { + } + }, + "GetRetrieverRequest": { + "base": null, + "refs": { + } + }, + "GetRetrieverResponse": { + "base": null, + "refs": { + } + }, + "GetUserRequest": { + "base": null, + "refs": { + } + }, + "GetUserResponse": { + "base": null, + "refs": { + } + }, + "GetWebExperienceRequest": { + "base": null, + "refs": { + } + }, + "GetWebExperienceResponse": { + "base": null, + "refs": { + } + }, + "GroupMembers": { + "base": "

A list of users or sub groups that belong to a group. This is for generating Amazon Q chat results only from document a user has access to.

", + "refs": { + "PutGroupRequest$groupMembers": null + } + }, + "GroupName": { + "base": null, + "refs": { + "DeleteGroupRequest$groupName": "

The name of the group you want to delete.

", + "GetGroupRequest$groupName": "

The name of the group.

", + "GroupSummary$groupName": "

The name of the group the summary information is for.

", + "MemberGroup$groupName": "

The name of the sub group.

", + "PrincipalGroup$name": "

The name of the group.

", + "PutGroupRequest$groupName": "

The list that contains your users or sub groups that belong the same group. For example, the group \"Company\" includes the user \"CEO\" and the sub groups \"Research\", \"Engineering\", and \"Sales and Marketing\".

If you have more than 1000 users and/or sub groups for a single group, you need to provide the path to the S3 file that lists your users and sub groups for a group. Your sub groups can contain more than 1000 users, but the list of sub groups that belong to a group (and/or users) must be no more than 1000.

" + } + }, + "GroupStatus": { + "base": null, + "refs": { + "GroupStatusDetail$status": "

The status of a group.

" + } + }, + "GroupStatusDetail": { + "base": "

Provides the details of a group's status.

", + "refs": { + "GetGroupResponse$status": "

The current status of the group.

", + "GroupStatusDetails$member": null + } + }, + "GroupStatusDetails": { + "base": null, + "refs": { + "GetGroupResponse$statusHistory": "

The status history of the group.

" + } + }, + "GroupSummary": { + "base": "

Summary information for groups.

", + "refs": { + "GroupSummaryList$member": null + } + }, + "GroupSummaryList": { + "base": null, + "refs": { + "ListGroupsResponse$items": "

Summary information for list of groups that are mapped to users.

" + } + }, + "HookConfiguration": { + "base": "

Provides the configuration information for invoking a Lambda function in Lambda to alter document metadata and content when ingesting documents into Amazon Q.

You can configure your Lambda function using PreExtractionHookConfiguration if you want to apply advanced alterations on the original or raw documents.

If you want to apply advanced alterations on the Amazon Q structured documents, you must configure your Lambda function using PostExtractionHookConfiguration.

You can only invoke one Lambda function. However, this function can invoke other functions it requires.

For more information, see Custom document enrichment.

", + "refs": { + "DocumentEnrichmentConfiguration$postExtractionHookConfiguration": null, + "DocumentEnrichmentConfiguration$preExtractionHookConfiguration": null + } + }, + "Index": { + "base": "

Summary information for your Amazon Q index.

", + "refs": { + "Indices$member": null + } + }, + "IndexArn": { + "base": null, + "refs": { + "CreateIndexResponse$indexArn": "

The Amazon Resource Name (ARN) of an Amazon Q index.

", + "GetIndexResponse$indexArn": "

The Amazon Resource Name (ARN) of the Amazon Q index.

" + } + }, + "IndexCapacityConfiguration": { + "base": "

Provides information about index capacity configuration.

", + "refs": { + "CreateIndexRequest$capacityConfiguration": "

The capacity units you want to provision for your index. You can add and remove capacity to fit your usage needs.

", + "GetIndexResponse$capacityConfiguration": "

The storage capacity units chosen for your Amazon Q index.

", + "UpdateIndexRequest$capacityConfiguration": "

The storage capacity units you want to provision for your Amazon Q index. You can add and remove capacity to fit your usage needs.

" + } + }, + "IndexCapacityInteger": { + "base": null, + "refs": { + "IndexCapacityConfiguration$units": "

The number of storage units configured for an Amazon Q index.

" + } + }, + "IndexId": { + "base": null, + "refs": { + "BatchDeleteDocumentRequest$indexId": "

The identifier of the Amazon Q index that contains the documents to delete.

", + "BatchPutDocumentRequest$indexId": "

The identifier of the Amazon Q index to add the documents to.

", + "CreateDataSourceRequest$indexId": "

The identifier of the index that you want to use with the data source connector.

", + "CreateIndexResponse$indexId": "

The identifier for the Amazon Q index.

", + "DeleteDataSourceRequest$indexId": "

The identifier of the index used with the data source connector.

", + "DeleteGroupRequest$indexId": "

The identifier of the index you want to delete the group from.

", + "DeleteIndexRequest$indexId": "

The identifier of the Amazon Q index.

", + "EligibleDataSource$indexId": "

The identifier of the index the data source is attached to.

", + "GetDataSourceRequest$indexId": "

The identfier of the index used with the data source connector.

", + "GetDataSourceResponse$indexId": "

The identifier of the index linked to the data source connector.

", + "GetGroupRequest$indexId": "

The identifier of the index the group is attached to.

", + "GetIndexRequest$indexId": "

The identifier of the Amazon Q index you want information on.

", + "GetIndexResponse$indexId": "

The identifier of the Amazon Q index.

", + "Index$indexId": "

The identifier for the index.

", + "ListDataSourceSyncJobsRequest$indexId": "

The identifier of the index used with the Amazon Q data source connector.

", + "ListDataSourcesRequest$indexId": "

The identifier of the index used with one or more data source connectors.

", + "ListDocumentsRequest$indexId": "

The identifier of the index the documents are attached to.

", + "ListGroupsRequest$indexId": "

The identifier of the index for getting a list of groups mapped to users.

", + "NativeIndexConfiguration$indexId": "

The identifier for the Amazon Q index.

", + "PutGroupRequest$indexId": "

The identifier of the index in which you want to map users to their groups.

", + "StartDataSourceSyncJobRequest$indexId": "

The identifier of the index used with the data source connector.

", + "StopDataSourceSyncJobRequest$indexId": "

The identifier of the index used with the Amazon Q data source connector.

", + "UpdateDataSourceRequest$indexId": "

The identifier of the index attached to the data source connector.

", + "UpdateIndexRequest$indexId": "

The identifier of the Amazon Q index.

", + "UserAlias$indexId": "

The identifier of the index that the user aliases are associated with.

" + } + }, + "IndexName": { + "base": null, + "refs": { + "CreateIndexRequest$displayName": "

A name for the Amazon Q index.

", + "GetIndexResponse$displayName": "

The name of the Amazon Q index.

", + "Index$displayName": "

The name of the index.

" + } + }, + "IndexStatistics": { + "base": "

Provides information about the number of documents in an index.

", + "refs": { + "GetIndexResponse$indexStatistics": "

Provides information about the number of documents indexed.

" + } + }, + "IndexStatus": { + "base": null, + "refs": { + "GetIndexResponse$status": "

The current status of the index. When the value is ACTIVE, the index is ready for use. If the Status field value is FAILED, the ErrorMessage field contains a message that explains why.

", + "Index$status": "

The current status of the index. When the status is ACTIVE, the index is ready.

" + } + }, + "IndexedTextBytes": { + "base": null, + "refs": { + "TextDocumentStatistics$indexedTextBytes": "

The total size, in bytes, of the indexed documents.

" + } + }, + "IndexedTextDocument": { + "base": null, + "refs": { + "TextDocumentStatistics$indexedTextDocumentCount": "

The number of text documents indexed.

" + } + }, + "Indices": { + "base": null, + "refs": { + "ListIndicesResponse$indices": "

An array of information on the items in one or more indexes.

" + } + }, + "InlineDocumentEnrichmentConfiguration": { + "base": "

Provides the configuration information for applying basic logic to alter document metadata and content when ingesting documents into Amazon Q.

To apply advanced logic, to go beyond what you can do with basic logic, see HookConfiguration .

For more information, see Custom document enrichment.

", + "refs": { + "InlineDocumentEnrichmentConfigurations$member": null + } + }, + "InlineDocumentEnrichmentConfigurations": { + "base": null, + "refs": { + "DocumentEnrichmentConfiguration$inlineConfigurations": "

Configuration information to alter document attributes or metadata fields and content when ingesting documents into Amazon Q.

" + } + }, + "Integer": { + "base": null, + "refs": { + "ActionReviewPayloadField$displayOrder": "

The display order of fields in a payload.

", + "SourceAttribution$citationNumber": "

The number attached to a citation in an Amazon Q generated response.

", + "TextSegment$beginOffset": "

The zero-based location in the response string where the source attribution starts.

", + "TextSegment$endOffset": "

The zero-based location in the response string where the source attribution ends.

" + } + }, + "InternalServerException": { + "base": "

An issue occurred with the internal server used for your Amazon Q service. Wait some minutes and try again, or contact Support for help.

", + "refs": { + } + }, + "KendraIndexConfiguration": { + "base": "

Stores an Amazon Kendra index as a retriever.

", + "refs": { + "RetrieverConfiguration$kendraIndexConfiguration": "

Provides information on how the Amazon Kendra index used as a retriever for your Amazon Q application is configured.

" + } + }, + "KendraIndexId": { + "base": null, + "refs": { + "KendraIndexConfiguration$indexId": "

The identifier of the Amazon Kendra index.

" + } + }, + "KmsKeyId": { + "base": null, + "refs": { + "EncryptionConfiguration$kmsKeyId": "

The identifier of the KMS key. Amazon Q doesn't support asymmetric keys.

" + } + }, + "LambdaArn": { + "base": null, + "refs": { + "HookConfiguration$lambdaArn": "

The Amazon Resource Name (ARN) of a role with permission to run a Lambda function during ingestion. For more information, see IAM roles for Custom Document Enrichment (CDE).

" + } + }, + "LicenseNotFoundException": { + "base": "

You don't have permissions to perform the action because your license is inactive. Ask your admin to activate your license and try again after your licence is active.

", + "refs": { + } + }, + "ListApplicationsRequest": { + "base": null, + "refs": { + } + }, + "ListApplicationsResponse": { + "base": null, + "refs": { + } + }, + "ListConversationsRequest": { + "base": null, + "refs": { + } + }, + "ListConversationsResponse": { + "base": null, + "refs": { + } + }, + "ListDataSourceSyncJobsRequest": { + "base": null, + "refs": { + } + }, + "ListDataSourceSyncJobsResponse": { + "base": null, + "refs": { + } + }, + "ListDataSourcesRequest": { + "base": null, + "refs": { + } + }, + "ListDataSourcesResponse": { + "base": null, + "refs": { + } + }, + "ListDocumentsRequest": { + "base": null, + "refs": { + } + }, + "ListDocumentsResponse": { + "base": null, + "refs": { + } + }, + "ListGroupsRequest": { + "base": null, + "refs": { + } + }, + "ListGroupsResponse": { + "base": null, + "refs": { + } + }, + "ListIndicesRequest": { + "base": null, + "refs": { + } + }, + "ListIndicesResponse": { + "base": null, + "refs": { + } + }, + "ListMessagesRequest": { + "base": null, + "refs": { + } + }, + "ListMessagesResponse": { + "base": null, + "refs": { + } + }, + "ListPluginsRequest": { + "base": null, + "refs": { + } + }, + "ListPluginsResponse": { + "base": null, + "refs": { + } + }, + "ListRetrieversRequest": { + "base": null, + "refs": { + } + }, + "ListRetrieversResponse": { + "base": null, + "refs": { + } + }, + "ListTagsForResourceRequest": { + "base": null, + "refs": { + } + }, + "ListTagsForResourceResponse": { + "base": null, + "refs": { + } + }, + "ListWebExperiencesRequest": { + "base": null, + "refs": { + } + }, + "ListWebExperiencesResponse": { + "base": null, + "refs": { + } + }, + "Long": { + "base": null, + "refs": { + "DocumentAttributeValue$longValue": "

A long integer value.

" + } + }, + "MaxResultsIntegerForGetTopicConfigurations": { + "base": null, + "refs": { + "GetChatControlsConfigurationRequest$maxResults": "

The maximum number of configured chat controls to return.

" + } + }, + "MaxResultsIntegerForListApplications": { + "base": null, + "refs": { + "ListApplicationsRequest$maxResults": "

The maximum number of Amazon Q applications to return.

" + } + }, + "MaxResultsIntegerForListConversations": { + "base": null, + "refs": { + "ListConversationsRequest$maxResults": "

The maximum number of Amazon Q conversations to return.

" + } + }, + "MaxResultsIntegerForListDataSources": { + "base": null, + "refs": { + "ListDataSourcesRequest$maxResults": "

The maximum number of data source connectors to return.

" + } + }, + "MaxResultsIntegerForListDataSourcesSyncJobs": { + "base": null, + "refs": { + "ListDataSourceSyncJobsRequest$maxResults": "

The maximum number of synchronization jobs to return in the response.

" + } + }, + "MaxResultsIntegerForListDocuments": { + "base": null, + "refs": { + "ListDocumentsRequest$maxResults": "

The maximum number of documents to return.

" + } + }, + "MaxResultsIntegerForListGroupsRequest": { + "base": null, + "refs": { + "ListGroupsRequest$maxResults": "

The maximum number of returned groups that are mapped to users.

" + } + }, + "MaxResultsIntegerForListIndices": { + "base": null, + "refs": { + "ListIndicesRequest$maxResults": "

The maximum number of indices to return.

" + } + }, + "MaxResultsIntegerForListMessages": { + "base": null, + "refs": { + "ListMessagesRequest$maxResults": "

The maximum number of messages to return.

" + } + }, + "MaxResultsIntegerForListPlugins": { + "base": null, + "refs": { + "ListPluginsRequest$maxResults": "

The maximum number of documents to return.

" + } + }, + "MaxResultsIntegerForListRetrieversRequest": { + "base": null, + "refs": { + "ListRetrieversRequest$maxResults": "

The maximum number of retrievers returned.

" + } + }, + "MaxResultsIntegerForListWebExperiencesRequest": { + "base": null, + "refs": { + "ListWebExperiencesRequest$maxResults": "

The maximum number of Amazon Q Web Experiences to return.

" + } + }, + "MemberGroup": { + "base": "

The sub groups that belong to a group.

", + "refs": { + "MemberGroups$member": null + } + }, + "MemberGroups": { + "base": null, + "refs": { + "GroupMembers$memberGroups": "

A list of sub groups that belong to a group. For example, the sub groups \"Research\", \"Engineering\", and \"Sales and Marketing\" all belong to the group \"Company\".

" + } + }, + "MemberRelation": { + "base": null, + "refs": { + "AccessConfiguration$memberRelation": "

Describes the member relation within the AccessControlList object.

", + "AccessControl$memberRelation": "

Describes the member relation within a principal list.

" + } + }, + "MemberUser": { + "base": "

The users that belong to a group.

", + "refs": { + "MemberUsers$member": null + } + }, + "MemberUsers": { + "base": null, + "refs": { + "GroupMembers$memberUsers": "

A list of users that belong to a group. For example, a list of interns all belong to the \"Interns\" group.

" + } + }, + "MembershipType": { + "base": null, + "refs": { + "MemberGroup$type": "

The type of the sub group.

", + "MemberUser$type": "

The type of the user.

", + "PrincipalGroup$membershipType": "

The type of group.

", + "PrincipalUser$membershipType": "

The type of group.

", + "PutGroupRequest$type": "

The type of the group.

" + } + }, + "Message": { + "base": "

A message in an Amazon Q web experience.

", + "refs": { + "Messages$member": null + } + }, + "MessageBody": { + "base": null, + "refs": { + "Message$body": "

The content of the Amazon Q web experience message.

" + } + }, + "MessageId": { + "base": null, + "refs": { + "ChatSyncInput$parentMessageId": "

The identifier of the previous end user text input message in a conversation.

", + "ChatSyncOutput$systemMessageId": "

The identifier of an Amazon Q AI generated message within the conversation.

", + "ChatSyncOutput$userMessageId": "

The identifier of an Amazon Q end user text input message within the conversation.

" + } + }, + "MessageType": { + "base": null, + "refs": { + "Message$type": "

The type of Amazon Q message, whether HUMAN or AI generated.

" + } + }, + "MessageUsefulness": { + "base": null, + "refs": { + "MessageUsefulnessFeedback$usefulness": "

The usefulness value assigned by an end user to a message.

" + } + }, + "MessageUsefulnessComment": { + "base": null, + "refs": { + "MessageUsefulnessFeedback$comment": "

A comment given by an end user on the usefulness of an AI-generated chat message.

" + } + }, + "MessageUsefulnessFeedback": { + "base": "

End user feedback on an AI-generated web experience chat message usefulness.

", + "refs": { + "PutFeedbackRequest$messageUsefulness": "

The feedback usefulness value given by the user to the chat message.

" + } + }, + "MessageUsefulnessReason": { + "base": null, + "refs": { + "MessageUsefulnessFeedback$reason": "

The reason for a usefulness rating.

" + } + }, + "Messages": { + "base": null, + "refs": { + "ListMessagesResponse$messages": "

An array of information on one or more messages.

" + } + }, + "MetricValue": { + "base": null, + "refs": { + "DataSourceSyncJobMetrics$documentsAdded": "

The current count of documents added from the data source during the data source sync.

", + "DataSourceSyncJobMetrics$documentsDeleted": "

The current count of documents deleted from the data source during the data source sync.

", + "DataSourceSyncJobMetrics$documentsFailed": "

The current count of documents that failed to sync from the data source during the data source sync.

", + "DataSourceSyncJobMetrics$documentsModified": "

The current count of documents modified in the data source during the data source sync.

", + "DataSourceSyncJobMetrics$documentsScanned": "

The current count of documents crawled by the ongoing sync job in the data source.

" + } + }, + "NativeIndexConfiguration": { + "base": "

Configuration information for an Amazon Q index.

", + "refs": { + "RetrieverConfiguration$nativeIndexConfiguration": "

Provides information on how a Amazon Q index used as a retriever for your Amazon Q application is configured.

" + } + }, + "NextToken": { + "base": null, + "refs": { + "GetChatControlsConfigurationRequest$nextToken": "

If the maxResults response was incomplete because there is more data to retrieve, Amazon Q returns a pagination token in the response. You can use this pagination token to retrieve the next set of Amazon Q chat controls configured.

", + "GetChatControlsConfigurationResponse$nextToken": "

If the maxResults response was incomplete because there is more data to retrieve, Amazon Q returns a pagination token in the response. You can use this pagination token to retrieve the next set of Amazon Q chat controls configured.

", + "ListApplicationsRequest$nextToken": "

If the maxResults response was incomplete because there is more data to retrieve, Amazon Q returns a pagination token in the response. You can use this pagination token to retrieve the next set of Amazon Q applications.

", + "ListApplicationsResponse$nextToken": "

If the response is truncated, Amazon Q returns this token. You can use this token in a subsequent request to retrieve the next set of applications.

", + "ListConversationsRequest$nextToken": "

If the maxResults response was incomplete because there is more data to retrieve, Amazon Q returns a pagination token in the response. You can use this pagination token to retrieve the next set of Amazon Q conversations.

", + "ListConversationsResponse$nextToken": "

If the response is truncated, Amazon Q returns this token, which you can use in a later request to list the next set of messages.

", + "ListDataSourceSyncJobsRequest$nextToken": "

If the maxResults response was incpmplete because there is more data to retriever, Amazon Q returns a pagination token in the response. You can use this pagination token to retrieve the next set of responses.

", + "ListDataSourceSyncJobsResponse$nextToken": "

If the response is truncated, Amazon Q returns this token. You can use this token in any subsequent request to retrieve the next set of jobs.

", + "ListDataSourcesRequest$nextToken": "

If the maxResults response was incomplete because there is more data to retrieve, Amazon Q returns a pagination token in the response. You can use this pagination token to retrieve the next set of Amazon Q data source connectors.

", + "ListDataSourcesResponse$nextToken": "

If the response is truncated, Amazon Q returns this token. You can use this token in a subsequent request to retrieve the next set of data source connectors.

", + "ListDocumentsRequest$nextToken": "

If the maxResults response was incomplete because there is more data to retrieve, Amazon Q returns a pagination token in the response. You can use this pagination token to retrieve the next set of documents.

", + "ListDocumentsResponse$nextToken": "

If the maxResults response was incomplete because there is more data to retrieve, Amazon Q returns a pagination token in the response. You can use this pagination token to retrieve the next set of documents.

", + "ListGroupsRequest$nextToken": "

If the previous response was incomplete (because there is more data to retrieve), Amazon Q returns a pagination token in the response. You can use this pagination token to retrieve the next set of groups that are mapped to users.

", + "ListGroupsResponse$nextToken": "

If the response is truncated, Amazon Q returns this token that you can use in the subsequent request to retrieve the next set of groups that are mapped to users.

", + "ListIndicesRequest$nextToken": "

If the maxResults response was incomplete because there is more data to retrieve, Amazon Q returns a pagination token in the response. You can use this pagination token to retrieve the next set of Amazon Q indices.

", + "ListIndicesResponse$nextToken": "

If the response is truncated, Amazon Q returns this token that you can use in the subsequent request to retrieve the next set of indexes.

", + "ListMessagesRequest$nextToken": "

If the number of retrievers returned exceeds maxResults, Amazon Q returns a next token as a pagination token to retrieve the next set of messages.

", + "ListMessagesResponse$nextToken": "

If the response is truncated, Amazon Q returns this token, which you can use in a later request to list the next set of messages.

", + "ListPluginsRequest$nextToken": "

If the maxResults response was incomplete because there is more data to retrieve, Amazon Q returns a pagination token in the response. You can use this pagination token to retrieve the next set of plugins.

", + "ListPluginsResponse$nextToken": "

If the maxResults response was incomplete because there is more data to retrieve, Amazon Q returns a pagination token in the response. You can use this pagination token to retrieve the next set of plugins.

", + "ListRetrieversRequest$nextToken": "

If the number of retrievers returned exceeds maxResults, Amazon Q returns a next token as a pagination token to retrieve the next set of retrievers.

", + "ListRetrieversResponse$nextToken": "

If the response is truncated, Amazon Q returns this token, which you can use in a later request to list the next set of retrievers.

", + "ListWebExperiencesRequest$nextToken": "

If the maxResults response was incomplete because there is more data to retrieve, Amazon Q returns a pagination token in the response. You can use this pagination token to retrieve the next set of Amazon Q conversations.

", + "ListWebExperiencesResponse$nextToken": "

If the response is truncated, Amazon Q returns this token, which you can use in a later request to list the next set of messages.

" + } + }, + "OAuth2ClientCredentialConfiguration": { + "base": "

Information about the OAuth 2.0 authentication credential/token used to configure a plugin.

", + "refs": { + "PluginAuthConfiguration$oAuth2ClientCredentialConfiguration": "

Information about the OAuth 2.0 authentication credential/token used to configure a plugin.

" + } + }, + "Plugin": { + "base": "

Information about an Amazon Q plugin and its configuration.

", + "refs": { + "Plugins$member": null + } + }, + "PluginArn": { + "base": null, + "refs": { + "CreatePluginResponse$pluginArn": "

The Amazon Resource Name (ARN) of a plugin.

", + "GetPluginResponse$pluginArn": "

The Amazon Resource Name (ARN) of the role with permission to access resources needed to create the plugin.

" + } + }, + "PluginAuthConfiguration": { + "base": "

Authentication configuration information for an Amazon Q plugin.

", + "refs": { + "CreatePluginRequest$authConfiguration": null, + "GetPluginResponse$authConfiguration": null, + "UpdatePluginRequest$authConfiguration": "

The authentication configuration the plugin is using.

" + } + }, + "PluginId": { + "base": null, + "refs": { + "ActionExecution$pluginId": "

The identifier of the plugin the action is attached to.

", + "ActionReview$pluginId": "

The identifier of the plugin associated with the action review.

", + "CreatePluginResponse$pluginId": "

The identifier of the plugin created.

", + "DeletePluginRequest$pluginId": "

The identifier of the plugin being deleted.

", + "GetPluginRequest$pluginId": "

The identifier of the plugin.

", + "GetPluginResponse$pluginId": "

The identifier of the plugin.

", + "Plugin$pluginId": "

The identifier of the plugin.

", + "UpdatePluginRequest$pluginId": "

The identifier of the plugin.

" + } + }, + "PluginName": { + "base": null, + "refs": { + "CreatePluginRequest$displayName": "

A the name for your plugin.

", + "GetPluginResponse$displayName": "

The name of the plugin.

", + "Plugin$displayName": "

The name of the plugin.

", + "UpdatePluginRequest$displayName": "

The name of the plugin.

" + } + }, + "PluginState": { + "base": null, + "refs": { + "GetPluginResponse$state": "

The current state of the plugin.

", + "Plugin$state": "

The current status of the plugin.

", + "UpdatePluginRequest$state": "

The status of the plugin.

" + } + }, + "PluginType": { + "base": null, + "refs": { + "ActionReview$pluginType": "

The type of plugin.

", + "CreatePluginRequest$type": "

The type of plugin you want to create.

", + "GetPluginResponse$type": "

The type of the plugin.

", + "Plugin$type": "

The type of the plugin.

" + } + }, + "Plugins": { + "base": null, + "refs": { + "ListPluginsResponse$plugins": "

Information about a configured plugin.

" + } + }, + "Principal": { + "base": "

Provides user and group information used for filtering documents to use for generating Amazon Q conversation responses.

", + "refs": { + "Principals$member": null + } + }, + "PrincipalGroup": { + "base": "

Provides information about a group associated with the principal.

", + "refs": { + "Principal$group": "

The group associated with the principal.

" + } + }, + "PrincipalUser": { + "base": "

Provides information about a user associated with a principal.

", + "refs": { + "Principal$user": "

The user associated with the principal.

" + } + }, + "Principals": { + "base": null, + "refs": { + "AccessControl$principals": "

Contains a list of principals, where a principal can be either a USER or a GROUP. Each principal can be have the following type of document access: ALLOW or DENY.

" + } + }, + "PutFeedbackRequest": { + "base": null, + "refs": { + } + }, + "PutGroupRequest": { + "base": null, + "refs": { + } + }, + "PutGroupResponse": { + "base": null, + "refs": { + } + }, + "ReadAccessType": { + "base": null, + "refs": { + "PrincipalGroup$access": "

Provides information about whether to allow or deny access to the principal.

", + "PrincipalUser$access": "

Provides information about whether to allow or deny access to the principal.

" + } + }, + "ResourceNotFoundException": { + "base": "

The resource you want to use doesn’t exist. Make sure you have provided the correct resource and try again.

", + "refs": { + } + }, + "ResponseScope": { + "base": null, + "refs": { + "GetChatControlsConfigurationResponse$responseScope": "

The response scope configured for a Amazon Q application. This determines whether your application uses its retrieval augmented generation (RAG) system to generate answers only from your enterprise data, or also uses the large language models (LLM) knowledge to respons to end user questions in chat.

", + "UpdateChatControlsConfigurationRequest$responseScope": "

The response scope configured for your application. This determines whether your application uses its retrieval augmented generation (RAG) system to generate answers only from your enterprise data, or also uses the large language models (LLM) knowledge to respons to end user questions in chat.

" + } + }, + "Retriever": { + "base": "

Summary information for the retriever used for your Amazon Q application.

", + "refs": { + "Retrievers$member": null + } + }, + "RetrieverArn": { + "base": null, + "refs": { + "CreateRetrieverResponse$retrieverArn": "

The Amazon Resource Name (ARN) of an IAM role associated with a retriever.

", + "GetRetrieverResponse$retrieverArn": "

The Amazon Resource Name (ARN) of the IAM role associated with the retriever.

" + } + }, + "RetrieverConfiguration": { + "base": "

Provides information on how the retriever used for your Amazon Q application is configured.

", + "refs": { + "CreateRetrieverRequest$configuration": null, + "GetRetrieverResponse$configuration": null, + "UpdateRetrieverRequest$configuration": null + } + }, + "RetrieverId": { + "base": null, + "refs": { + "CreateRetrieverResponse$retrieverId": "

The identifier of the retriever you are using.

", + "DeleteRetrieverRequest$retrieverId": "

The identifier of the retriever being deleted.

", + "GetRetrieverRequest$retrieverId": "

The identifier of the retriever.

", + "GetRetrieverResponse$retrieverId": "

The identifier of the retriever.

", + "Retriever$retrieverId": "

The identifier of the retriever used by your Amazon Q application.

", + "UpdateRetrieverRequest$retrieverId": "

The identifier of your retriever.

" + } + }, + "RetrieverName": { + "base": null, + "refs": { + "CreateRetrieverRequest$displayName": "

The name of your retriever.

", + "GetRetrieverResponse$displayName": "

The name of the retriever.

", + "Retriever$displayName": "

The name of your retriever.

", + "UpdateRetrieverRequest$displayName": "

The name of your retriever.

" + } + }, + "RetrieverStatus": { + "base": null, + "refs": { + "GetRetrieverResponse$status": "

The status of the retriever.

", + "Retriever$status": "

The status of your retriever.

" + } + }, + "RetrieverType": { + "base": null, + "refs": { + "CreateRetrieverRequest$type": "

The type of retriever you are using.

", + "GetRetrieverResponse$type": "

The type of the retriever.

", + "Retriever$type": "

The type of your retriever.

" + } + }, + "Retrievers": { + "base": null, + "refs": { + "ListRetrieversResponse$retrievers": "

An array of summary information for one or more retrievers.

" + } + }, + "RoleArn": { + "base": null, + "refs": { + "BasicAuthConfiguration$roleArn": "

The ARN of an IAM role used by Amazon Q to access the basic authentication credentials stored in a Secrets Manager secret.

", + "BatchPutDocumentRequest$roleArn": "

The Amazon Resource Name (ARN) of an IAM role with permission to access your S3 bucket.

", + "CreateApplicationRequest$roleArn": "

The Amazon Resource Name (ARN) of an IAM role with permissions to access your Amazon CloudWatch logs and metrics.

", + "CreateDataSourceRequest$roleArn": "

The Amazon Resource Name (ARN) of an IAM role with permission to access the data source and required resources.

", + "CreateRetrieverRequest$roleArn": "

The ARN of an IAM role used by Amazon Q to access the basic authentication credentials stored in a Secrets Manager secret.

", + "GetApplicationResponse$roleArn": "

The Amazon Resource Name (ARN) of the IAM with permissions to access your CloudWatch logs and metrics.

", + "GetDataSourceResponse$roleArn": "

The Amazon Resource Name (ARN) of the role with permission to access the data source and required resources.

", + "GetRetrieverResponse$roleArn": "

The Amazon Resource Name (ARN) of the role with the permission to access the retriever and required resources.

", + "HookConfiguration$roleArn": "

The Amazon Resource Name (ARN) of a role with permission to run PreExtractionHookConfiguration and PostExtractionHookConfiguration for altering document metadata and content during the document ingestion process.

", + "OAuth2ClientCredentialConfiguration$roleArn": "

The ARN of an IAM role used by Amazon Q to access the OAuth 2.0 authentication credentials stored in a Secrets Manager secret.

", + "SamlConfiguration$roleArn": "

The Amazon Resource Name (ARN) of an IAM role assumed by users when they authenticate into their Amazon Q web experience, containing the relevant Amazon Q permissions for conversing with Amazon Q.

", + "UpdateApplicationRequest$roleArn": "

An Amazon Web Services Identity and Access Management (IAM) role that gives Amazon Q permission to access Amazon CloudWatch logs and metrics.

", + "UpdateDataSourceRequest$roleArn": "

The Amazon Resource Name (ARN) of an IAM role with permission to access the data source and required resources.

", + "UpdateRetrieverRequest$roleArn": "

The Amazon Resource Name (ARN) of an IAM role with permission to access the retriever and required resources.

" + } + }, + "Rule": { + "base": "

Guardrail rules for an Amazon Q application. Amazon Q supports only one rule at a time.

", + "refs": { + "Rules$member": null + } + }, + "RuleConfiguration": { + "base": "

Provides configuration information about a rule.

", + "refs": { + "Rule$ruleConfiguration": "

The configuration information for a rule.

" + } + }, + "RuleType": { + "base": null, + "refs": { + "Rule$ruleType": "

The type fo rule.

" + } + }, + "Rules": { + "base": null, + "refs": { + "TopicConfiguration$rules": "

Rules defined for a topic configuration.

" + } + }, + "S3": { + "base": "

Information required for Amazon Q to find a specific file in an Amazon S3 bucket.

", + "refs": { + "DocumentContent$s3": "

The path to the document in an Amazon S3 bucket.

" + } + }, + "S3BucketName": { + "base": null, + "refs": { + "HookConfiguration$s3BucketName": "

Stores the original, raw documents or the structured, parsed documents before and after altering them. For more information, see Data contracts for Lambda functions.

", + "S3$bucket": "

The name of the S3 bucket that contains the file.

" + } + }, + "S3ObjectKey": { + "base": null, + "refs": { + "S3$key": "

The name of the file.

" + } + }, + "SamlAttribute": { + "base": null, + "refs": { + "SamlConfiguration$userGroupAttribute": "

The group attribute name in your IdP that maps to user groups.

", + "SamlConfiguration$userIdAttribute": "

The user attribute name in your IdP that maps to the user email.

" + } + }, + "SamlConfiguration": { + "base": "

Provides the SAML 2.0 compliant identity provider (IdP) configuration information Amazon Q needs to deploy a Amazon Q web experience.

", + "refs": { + "WebExperienceAuthConfiguration$samlConfiguration": null + } + }, + "SamlMetadataXML": { + "base": null, + "refs": { + "SamlConfiguration$metadataXML": "

The metadata XML that your IdP generated.

" + } + }, + "SecretArn": { + "base": null, + "refs": { + "BasicAuthConfiguration$secretArn": "

The ARN of the Secrets Manager secret that stores the basic authentication credentials used for plugin configuration..

", + "OAuth2ClientCredentialConfiguration$secretArn": "

The ARN of the Secrets Manager secret that stores the OAuth 2.0 credentials/token used for plugin configuration.

" + } + }, + "SecurityGroupId": { + "base": null, + "refs": { + "SecurityGroupIds$member": null + } + }, + "SecurityGroupIds": { + "base": null, + "refs": { + "DataSourceVpcConfiguration$securityGroupIds": "

A list of identifiers of security groups within your Amazon VPC. The security groups should enable Amazon Q to connect to the data source.

" + } + }, + "ServiceQuotaExceededException": { + "base": "

You have exceeded the set limits for your Amazon Q service.

", + "refs": { + } + }, + "SourceAttribution": { + "base": "

The documents used to generate an Amazon Q web experience response.

", + "refs": { + "SourceAttributions$member": null + } + }, + "SourceAttributions": { + "base": null, + "refs": { + "ChatSyncOutput$sourceAttributions": "

The source documents used to generate the conversation response.

", + "Message$sourceAttribution": "

The source documents used to generate Amazon Q web experience message.

" + } + }, + "StartDataSourceSyncJobRequest": { + "base": null, + "refs": { + } + }, + "StartDataSourceSyncJobResponse": { + "base": null, + "refs": { + } + }, + "Status": { + "base": null, + "refs": { + "DocumentAttributeConfiguration$search": "

Information about whether the document attribute can be used by an end user to search for information on their web experience.

" + } + }, + "StopDataSourceSyncJobRequest": { + "base": null, + "refs": { + } + }, + "StopDataSourceSyncJobResponse": { + "base": null, + "refs": { + } + }, + "String": { + "base": null, + "refs": { + "ActionReviewPayloadField$displayName": "

The name of the field.

", + "ChatSyncOutput$systemMessage": "

An AI-generated message in a conversation.

", + "ConflictException$resourceId": "

The identifier of the resource affected.

", + "ConflictException$resourceType": "

The type of the resource affected.

", + "CreateUserRequest$userId": "

The user emails attached to a user mapping.

", + "DataSource$type": "

The type of the Amazon Q data source.

", + "DataSourceSyncJob$dataSourceErrorCode": "

If the reason that the synchronization failed is due to an error with the underlying data source, this field contains a code that identifies the error.

", + "DeleteUserRequest$userId": "

The user email being deleted.

", + "DocumentAttributeConfiguration$name": "

The name of the document attribute.

", + "DocumentAttributeStringListValue$member": null, + "GetDataSourceResponse$type": "

The type of the data source connector. For example, S3.

", + "GetUserRequest$userId": "

The user email address attached to the user.

", + "Message$messageId": "

The identifier of the Amazon Q web experience message.

", + "ResourceNotFoundException$resourceId": "

The identifier of the resource affected.

", + "ResourceNotFoundException$resourceType": "

The type of the resource affected.

", + "ServiceQuotaExceededException$resourceId": "

The identifier of the resource affected.

", + "ServiceQuotaExceededException$resourceType": "

The type of the resource affected.

", + "SourceAttribution$snippet": "

The content extract from the document on which the generated response is based.

", + "SourceAttribution$title": "

The title of the document which is the source for the Amazon Q generated response.

", + "SourceAttribution$url": "

The URL of the document which is the source for the Amazon Q generated response.

", + "UpdateUserRequest$userId": "

The email id attached to the user.

", + "UserAlias$userId": "

The identifier of the user id associated with the user aliases.

", + "UserGroups$member": null, + "UserIds$member": null, + "ValidationExceptionField$message": "

A message about the validation exception.

", + "ValidationExceptionField$name": "

The field name where the invalid entry was detected.

" + } + }, + "SubnetId": { + "base": null, + "refs": { + "SubnetIds$member": null + } + }, + "SubnetIds": { + "base": null, + "refs": { + "DataSourceVpcConfiguration$subnetIds": "

A list of identifiers for subnets within your Amazon VPC. The subnets should be able to connect to each other in the VPC, and they should have outgoing access to the Internet through a NAT device.

" + } + }, + "SyncSchedule": { + "base": null, + "refs": { + "CreateDataSourceRequest$syncSchedule": "

Sets the frequency for Amazon Q to check the documents in your data source repository and update your index. If you don't set a schedule, Amazon Q won't periodically update the index.

Specify a cron- format schedule string or an empty string to indicate that the index is updated on demand. You can't specify the Schedule parameter when the Type parameter is set to CUSTOM. If you do, you receive a ValidationException exception.

", + "GetDataSourceResponse$syncSchedule": "

The schedule for Amazon Q to update the index.

", + "UpdateDataSourceRequest$syncSchedule": "

The chosen update frequency for your data source.

" + } + }, + "SystemMessageId": { + "base": null, + "refs": { + "PutFeedbackRequest$messageId": "

The identifier of the chat message that the feedback was given for.

" + } + }, + "SystemMessageOverride": { + "base": null, + "refs": { + "BlockedPhrasesConfiguration$systemMessageOverride": "

The configured custom message displayed to an end user informing them that they've used a blocked phrase during chat.

", + "BlockedPhrasesConfigurationUpdate$systemMessageOverride": "

The configured custom message displayed to your end user when they use blocked phrase during chat.

", + "ContentBlockerRule$systemMessageOverride": "

The configured custom message displayed to an end user informing them that they've used a blocked phrase during chat.

" + } + }, + "Tag": { + "base": "

A list of key/value pairs that identify an index, FAQ, or data source. Tag keys and values can consist of Unicode letters, digits, white space, and any of the following symbols: _ . : / = + - @.

", + "refs": { + "Tags$member": null + } + }, + "TagKey": { + "base": null, + "refs": { + "Tag$key": "

The key for the tag. Keys are not case sensitive and must be unique for the Amazon Q application or data source.

", + "TagKeys$member": null + } + }, + "TagKeys": { + "base": null, + "refs": { + "UntagResourceRequest$tagKeys": "

A list of tag keys to remove from the Amazon Q application or data source. If a tag key does not exist on the resource, it is ignored.

" + } + }, + "TagResourceRequest": { + "base": null, + "refs": { + } + }, + "TagResourceResponse": { + "base": null, + "refs": { + } + }, + "TagValue": { + "base": null, + "refs": { + "Tag$value": "

The value associated with the tag. The value may be an empty string but it can't be null.

" + } + }, + "Tags": { + "base": null, + "refs": { + "CreateApplicationRequest$tags": "

A list of key-value pairs that identify or categorize your Amazon Q application. You can also use tags to help control access to the application. Tag keys and values can consist of Unicode letters, digits, white space, and any of the following symbols: _ . : / = + - @.

", + "CreateDataSourceRequest$tags": "

A list of key-value pairs that identify or categorize the data source connector. You can also use tags to help control access to the data source connector. Tag keys and values can consist of Unicode letters, digits, white space, and any of the following symbols: _ . : / = + - @.

", + "CreateIndexRequest$tags": "

A list of key-value pairs that identify or categorize the index. You can also use tags to help control access to the index. Tag keys and values can consist of Unicode letters, digits, white space, and any of the following symbols: _ . : / = + - @.

", + "CreatePluginRequest$tags": "

A list of key-value pairs that identify or categorize the data source connector. You can also use tags to help control access to the data source connector. Tag keys and values can consist of Unicode letters, digits, white space, and any of the following symbols: _ . : / = + - @.

", + "CreateRetrieverRequest$tags": "

A list of key-value pairs that identify or categorize the retriever. You can also use tags to help control access to the retriever. Tag keys and values can consist of Unicode letters, digits, white space, and any of the following symbols: _ . : / = + - @.

", + "CreateWebExperienceRequest$tags": "

A list of key-value pairs that identify or categorize your Amazon Q web experience. You can also use tags to help control access to the web experience. Tag keys and values can consist of Unicode letters, digits, white space, and any of the following symbols: _ . : / = + - @.

", + "ListTagsForResourceResponse$tags": "

A list of tags associated with the Amazon Q application or data source.

", + "TagResourceRequest$tags": "

A list of tag keys to add to the Amazon Q application or data source. If a tag already exists, the existing value is replaced with the new value.

" + } + }, + "TextDocumentStatistics": { + "base": "

Provides information about text documents in an index.

", + "refs": { + "IndexStatistics$textDocumentStatistics": "

The number of documents indexed.

" + } + }, + "TextSegment": { + "base": "

Provides information about a text extract in a chat response that can be attributed to a source document.

", + "refs": { + "TextSegmentList$member": null + } + }, + "TextSegmentList": { + "base": null, + "refs": { + "SourceAttribution$textMessageSegments": "

A text extract from a source document that is used for source attribution.

" + } + }, + "ThrottlingException": { + "base": "

The request was denied due to throttling. Reduce the number of requests and try again.

", + "refs": { + } + }, + "Timestamp": { + "base": null, + "refs": { + "Application$createdAt": "

The Unix timestamp when the Amazon Q application was created.

", + "Application$updatedAt": "

The Unix timestamp when the Amazon Q application was last updated.

", + "Conversation$startTime": "

The start time of the conversation.

", + "DataSource$createdAt": "

The Unix timestamp when the Amazon Q data source was created.

", + "DataSource$updatedAt": "

The Unix timestamp when the Amazon Q data source was last updated.

", + "DataSourceSyncJob$endTime": "

The Unix timestamp when the synchronization job completed.

", + "DataSourceSyncJob$startTime": "

The Unix time stamp when the data source synchronization job started.

", + "DocumentAttributeValue$dateValue": "

A date expressed as an ISO 8601 string.

It's important for the time zone to be included in the ISO 8601 date-time format. For example, 2012-03-25T12:30:10+01:00 is the ISO 8601 date-time format for March 25th 2012 at 12:30PM (plus 10 seconds) in Central European Time.

", + "DocumentDetails$createdAt": "

The timestamp for when the document was created.

", + "DocumentDetails$updatedAt": "

The timestamp for when the document was last updated.

", + "GetApplicationResponse$createdAt": "

The Unix timestamp when the Amazon Q application was last updated.

", + "GetApplicationResponse$updatedAt": "

The Unix timestamp when the Amazon Q application was last updated.

", + "GetDataSourceResponse$createdAt": "

The Unix timestamp when the data source connector was created.

", + "GetDataSourceResponse$updatedAt": "

The Unix timestamp when the data source connector was last updated.

", + "GetIndexResponse$createdAt": "

The Unix timestamp when the Amazon Q index was created.

", + "GetIndexResponse$updatedAt": "

The Unix timestamp when the Amazon Q index was last updated.

", + "GetPluginResponse$createdAt": "

The timestamp for when the plugin was created.

", + "GetPluginResponse$updatedAt": "

The timestamp for when the plugin was last updated.

", + "GetRetrieverResponse$createdAt": "

The Unix timestamp when the retriever was created.

", + "GetRetrieverResponse$updatedAt": "

The Unix timestamp when the retriever was last updated.

", + "GetWebExperienceResponse$createdAt": "

The Unix timestamp when the retriever was created.

", + "GetWebExperienceResponse$updatedAt": "

The Unix timestamp when the data source connector was last updated.

", + "GroupStatusDetail$lastUpdatedAt": "

The Unix timestamp when the Amazon Q application was last updated.

", + "Index$createdAt": "

The Unix timestamp when the index was created.

", + "Index$updatedAt": "

The Unix timestamp when the index was last updated.

", + "ListDataSourceSyncJobsRequest$endTime": "

The end time of the data source connector sync.

", + "ListDataSourceSyncJobsRequest$startTime": "

The start time of the data source connector sync.

", + "ListGroupsRequest$updatedEarlierThan": "

The timestamp identifier used for the latest PUT or DELETE action for mapping users to their groups.

", + "Message$time": "

The timestamp of the first Amazon Q web experience message.

", + "MessageUsefulnessFeedback$submittedAt": "

The timestamp for when the feedback was submitted.

", + "Plugin$createdAt": "

The timestamp for when the plugin was created.

", + "Plugin$updatedAt": "

The timestamp for when the plugin was last updated.

", + "PutFeedbackRequest$messageCopiedAt": "

The timestamp for when the feedback was recorded.

", + "SourceAttribution$updatedAt": "

The Unix timestamp when the Amazon Q application was last updated.

", + "WebExperience$createdAt": "

The Unix timestamp when the Amazon Q application was last updated.

", + "WebExperience$updatedAt": "

The Unix timestamp when your Amazon Q web experience was updated.

" + } + }, + "Title": { + "base": null, + "refs": { + "Document$title": "

The title of the document.

" + } + }, + "TopicConfiguration": { + "base": "

The topic specific controls configured for an Amazon Q application.

", + "refs": { + "TopicConfigurations$member": null + } + }, + "TopicConfigurationName": { + "base": null, + "refs": { + "TopicConfiguration$name": "

A name for your topic control configuration.

" + } + }, + "TopicConfigurations": { + "base": null, + "refs": { + "GetChatControlsConfigurationResponse$topicConfigurations": "

The topic specific controls configured for a Amazon Q application.

", + "UpdateChatControlsConfigurationRequest$topicConfigurationsToCreateOrUpdate": "

The configured topic specific chat controls you want to update.

", + "UpdateChatControlsConfigurationRequest$topicConfigurationsToDelete": "

The configured topic specific chat controls you want to delete.

" + } + }, + "TopicDescription": { + "base": null, + "refs": { + "TopicConfiguration$description": "

A description for your topic control configuration. Use this outline how the large language model (LLM) should use this topic control configuration.

" + } + }, + "UntagResourceRequest": { + "base": null, + "refs": { + } + }, + "UntagResourceResponse": { + "base": null, + "refs": { + } + }, + "UpdateApplicationRequest": { + "base": null, + "refs": { + } + }, + "UpdateApplicationResponse": { + "base": null, + "refs": { + } + }, + "UpdateChatControlsConfigurationRequest": { + "base": null, + "refs": { + } + }, + "UpdateChatControlsConfigurationResponse": { + "base": null, + "refs": { + } + }, + "UpdateDataSourceRequest": { + "base": null, + "refs": { + } + }, + "UpdateDataSourceResponse": { + "base": null, + "refs": { + } + }, + "UpdateIndexRequest": { + "base": null, + "refs": { + } + }, + "UpdateIndexResponse": { + "base": null, + "refs": { + } + }, + "UpdatePluginRequest": { + "base": null, + "refs": { + } + }, + "UpdatePluginResponse": { + "base": null, + "refs": { + } + }, + "UpdateRetrieverRequest": { + "base": null, + "refs": { + } + }, + "UpdateRetrieverResponse": { + "base": null, + "refs": { + } + }, + "UpdateUserRequest": { + "base": null, + "refs": { + } + }, + "UpdateUserResponse": { + "base": null, + "refs": { + } + }, + "UpdateWebExperienceRequest": { + "base": null, + "refs": { + } + }, + "UpdateWebExperienceResponse": { + "base": null, + "refs": { + } + }, + "Url": { + "base": null, + "refs": { + "CreatePluginRequest$serverUrl": "

The source URL used for plugin configuration.

", + "GetPluginResponse$serverUrl": "

The source URL used for plugin configuration.

", + "GetWebExperienceResponse$defaultEndpoint": "

The endpoint of your Amazon Q web experience.

", + "Plugin$serverUrl": "

The plugin server URL used for configuration.

", + "UpdatePluginRequest$serverUrl": "

The source URL used for plugin configuration.

", + "WebExperience$defaultEndpoint": "

The endpoint URLs for your Amazon Q web experience. The URLs are unique and fully hosted by Amazon Web Services.

" + } + }, + "UserAlias": { + "base": "

Aliases attached to a user id within an Amazon Q application.

", + "refs": { + "CreateUserRequestUserAliasesList$member": null, + "UserAliases$member": null + } + }, + "UserAliases": { + "base": null, + "refs": { + "GetUserResponse$userAliases": "

A list of user aliases attached to a user.

", + "UpdateUserRequest$userAliasesToDelete": "

The user aliases attached to the user id that are to be deleted.

", + "UpdateUserRequest$userAliasesToUpdate": "

The user aliases attached to the user id that are to be updated.

", + "UpdateUserResponse$userAliasesAdded": "

The user aliases that have been to be added to a user id.

", + "UpdateUserResponse$userAliasesDeleted": "

The user aliases that have been deleted from a user id.

", + "UpdateUserResponse$userAliasesUpdated": "

The user aliases attached to a user id that have been updated.

" + } + }, + "UserGroups": { + "base": null, + "refs": { + "ChatSyncInput$userGroups": "

The groups that a user associated with the chat input belongs to.

", + "UsersAndGroups$userGroups": "

The user groups associated with a topic control rule.

" + } + }, + "UserId": { + "base": null, + "refs": { + "ChatSyncInput$userId": "

The identifier of the user attached to the chat input.

", + "DeleteConversationRequest$userId": "

The identifier of the user who is deleting the conversation.

", + "ListConversationsRequest$userId": "

The identifier of the user involved in the Amazon Q web experience conversation.

", + "ListMessagesRequest$userId": "

The identifier of the user involved in the Amazon Q web experience conversation.

", + "PrincipalUser$id": "

The identifier of the user.

", + "PutFeedbackRequest$userId": "

The identifier of the user giving the feedback.

" + } + }, + "UserIds": { + "base": null, + "refs": { + "UsersAndGroups$userIds": "

The user ids associated with a topic control rule.

" + } + }, + "UserMessage": { + "base": null, + "refs": { + "ChatSyncInput$userMessage": "

A end user message in a conversation.

" + } + }, + "UsersAndGroups": { + "base": "

Provides information about users and groups associated with a topic control rule.

", + "refs": { + "Rule$excludedUsersAndGroups": "

Users and groups to be excluded from a rule.

", + "Rule$includedUsersAndGroups": "

Users and groups to be included in a rule.

" + } + }, + "ValidationException": { + "base": "

The input doesn't meet the constraints set by the Amazon Q service. Provide the correct input and try again.

", + "refs": { + } + }, + "ValidationExceptionField": { + "base": "

The input failed to meet the constraints specified by Amazon Q in a specified field.

", + "refs": { + "ValidationExceptionFields$member": null + } + }, + "ValidationExceptionFields": { + "base": null, + "refs": { + "ValidationException$fields": "

The input field(s) that failed validation.

" + } + }, + "ValidationExceptionReason": { + "base": null, + "refs": { + "ValidationException$reason": "

The reason for the ValidationException.

" + } + }, + "WebExperience": { + "base": "

Provides information for an Amazon Q web experience.

", + "refs": { + "WebExperiences$member": null + } + }, + "WebExperienceArn": { + "base": null, + "refs": { + "CreateWebExperienceResponse$webExperienceArn": "

The Amazon Resource Name (ARN) of an Amazon Q web experience.

", + "GetWebExperienceResponse$webExperienceArn": "

The Amazon Resource Name (ARN) of the role with the permission to access the Amazon Q web experience and required resources.

" + } + }, + "WebExperienceAuthConfiguration": { + "base": "

Provides the authorization configuration information needed to deploy a Amazon Q web experience to end users.

", + "refs": { + "GetWebExperienceResponse$authenticationConfiguration": "

The authentication configuration information for your Amazon Q web experience.

", + "UpdateWebExperienceRequest$authenticationConfiguration": "

The authentication configuration of the Amazon Q web experience.

" + } + }, + "WebExperienceId": { + "base": null, + "refs": { + "CreateWebExperienceResponse$webExperienceId": "

The identifier of the Amazon Q web experience.

", + "DeleteWebExperienceRequest$webExperienceId": "

The identifier of the Amazon Q web experience being deleted.

", + "GetWebExperienceRequest$webExperienceId": "

The identifier of the Amazon Q web experience.

", + "GetWebExperienceResponse$webExperienceId": "

The identifier of the Amazon Q web experience.

", + "UpdateWebExperienceRequest$webExperienceId": "

The identifier of the Amazon Q web experience.

", + "WebExperience$webExperienceId": "

The identifier of your Amazon Q web experience.

" + } + }, + "WebExperienceSamplePromptsControlMode": { + "base": null, + "refs": { + "CreateWebExperienceRequest$samplePromptsControlMode": "

Determines whether sample prompts are enabled in the web experience for an end user.

", + "GetWebExperienceResponse$samplePromptsControlMode": "

Determines whether sample prompts are enabled in the web experience for an end user.

", + "UpdateWebExperienceRequest$samplePromptsControlMode": "

Determines whether sample prompts are enabled in the web experience for an end user.

" + } + }, + "WebExperienceStatus": { + "base": null, + "refs": { + "GetWebExperienceResponse$status": "

The current status of the Amazon Q web experience. When the Status field value is FAILED, the ErrorMessage field contains a description of the error that caused the data source connector to fail.

", + "WebExperience$status": "

The status of your Amazon Q web experience.

" + } + }, + "WebExperienceSubtitle": { + "base": null, + "refs": { + "CreateWebExperienceRequest$subtitle": "

A subtitle to personalize your Amazon Q web experience.

", + "GetWebExperienceResponse$subtitle": "

The subtitle for your Amazon Q web experience.

", + "UpdateWebExperienceRequest$subtitle": "

The subtitle of the Amazon Q web experience.

" + } + }, + "WebExperienceTitle": { + "base": null, + "refs": { + "CreateWebExperienceRequest$title": "

The title for your Amazon Q web experience.

", + "GetWebExperienceResponse$title": "

The title for your Amazon Q web experience.

", + "UpdateWebExperienceRequest$title": "

The title of the Amazon Q web experience.

" + } + }, + "WebExperienceWelcomeMessage": { + "base": null, + "refs": { + "CreateWebExperienceRequest$welcomeMessage": "

The customized welcome message for end users of an Amazon Q web experience.

", + "GetWebExperienceResponse$welcomeMessage": "

The customized welcome message for end users of an Amazon Q web experience.

", + "UpdateWebExperienceRequest$welcomeMessage": "

A customized welcome message for an end user in an Amazon Q web experience.

" + } + }, + "WebExperiences": { + "base": null, + "refs": { + "ListWebExperiencesResponse$webExperiences": "

An array of summary information for one or more Amazon Q experiences.

" + } + } + } +} diff --git a/models/apis/qbusiness/2023-11-27/endpoint-rule-set-1.json b/models/apis/qbusiness/2023-11-27/endpoint-rule-set-1.json new file mode 100644 index 00000000000..b82f5c2551f --- /dev/null +++ b/models/apis/qbusiness/2023-11-27/endpoint-rule-set-1.json @@ -0,0 +1,247 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Region" + } + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + }, + true + ] + } + ], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://qbusiness-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [], + "endpoint": { + "url": "https://qbusiness.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + }, + true + ] + } + ], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://qbusiness-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [], + "endpoint": { + "url": "https://qbusiness.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "Invalid Configuration: Missing Region", + "type": "error" + } + ] +} \ No newline at end of file diff --git a/models/apis/qbusiness/2023-11-27/endpoint-tests-1.json b/models/apis/qbusiness/2023-11-27/endpoint-tests-1.json new file mode 100644 index 00000000000..9e9effe71f9 --- /dev/null +++ b/models/apis/qbusiness/2023-11-27/endpoint-tests-1.json @@ -0,0 +1,119 @@ +{ + "testCases": [ + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://qbusiness-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://qbusiness.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://qbusiness-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseFIPS": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://qbusiness.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://qbusiness-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://qbusiness.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with region set and fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with region not set and fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "Missing region", + "expect": { + "error": "Invalid Configuration: Missing Region" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/models/apis/qbusiness/2023-11-27/examples-1.json b/models/apis/qbusiness/2023-11-27/examples-1.json new file mode 100644 index 00000000000..0ea7e3b0bbe --- /dev/null +++ b/models/apis/qbusiness/2023-11-27/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/models/apis/qbusiness/2023-11-27/paginators-1.json b/models/apis/qbusiness/2023-11-27/paginators-1.json new file mode 100644 index 00000000000..d9de477c925 --- /dev/null +++ b/models/apis/qbusiness/2023-11-27/paginators-1.json @@ -0,0 +1,76 @@ +{ + "pagination": { + "GetChatControlsConfiguration": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults", + "result_key": "topicConfigurations" + }, + "ListApplications": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults", + "result_key": "applications" + }, + "ListConversations": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults", + "result_key": "conversations" + }, + "ListDataSourceSyncJobs": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults", + "result_key": "history" + }, + "ListDataSources": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults", + "result_key": "dataSources" + }, + "ListDocuments": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults", + "result_key": "documentDetailList" + }, + "ListGroups": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults", + "result_key": "items" + }, + "ListIndices": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults", + "result_key": "indices" + }, + "ListMessages": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults", + "result_key": "messages" + }, + "ListPlugins": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults", + "result_key": "plugins" + }, + "ListRetrievers": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults", + "result_key": "retrievers" + }, + "ListWebExperiences": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults", + "result_key": "webExperiences" + } + } +} diff --git a/models/apis/qconnect/2020-10-19/api-2.json b/models/apis/qconnect/2020-10-19/api-2.json new file mode 100644 index 00000000000..7f800701f0a --- /dev/null +++ b/models/apis/qconnect/2020-10-19/api-2.json @@ -0,0 +1,3085 @@ +{ + "version":"2.0", + "metadata":{ + "apiVersion":"2020-10-19", + "endpointPrefix":"wisdom", + "jsonVersion":"1.1", + "protocol":"rest-json", + "serviceFullName":"Amazon Q Connect", + "serviceId":"QConnect", + "signatureVersion":"v4", + "signingName":"wisdom", + "uid":"qconnect-2020-10-19" + }, + "operations":{ + "CreateAssistant":{ + "name":"CreateAssistant", + "http":{ + "method":"POST", + "requestUri":"/assistants", + "responseCode":200 + }, + "input":{"shape":"CreateAssistantRequest"}, + "output":{"shape":"CreateAssistantResponse"}, + "errors":[ + {"shape":"ConflictException"}, + {"shape":"ValidationException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"AccessDeniedException"} + ], + "idempotent":true + }, + "CreateAssistantAssociation":{ + "name":"CreateAssistantAssociation", + "http":{ + "method":"POST", + "requestUri":"/assistants/{assistantId}/associations", + "responseCode":200 + }, + "input":{"shape":"CreateAssistantAssociationRequest"}, + "output":{"shape":"CreateAssistantAssociationResponse"}, + "errors":[ + {"shape":"ConflictException"}, + {"shape":"ValidationException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"} + ], + "idempotent":true + }, + "CreateContent":{ + "name":"CreateContent", + "http":{ + "method":"POST", + "requestUri":"/knowledgeBases/{knowledgeBaseId}/contents", + "responseCode":200 + }, + "input":{"shape":"CreateContentRequest"}, + "output":{"shape":"CreateContentResponse"}, + "errors":[ + {"shape":"ConflictException"}, + {"shape":"ValidationException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"} + ], + "idempotent":true + }, + "CreateKnowledgeBase":{ + "name":"CreateKnowledgeBase", + "http":{ + "method":"POST", + "requestUri":"/knowledgeBases", + "responseCode":200 + }, + "input":{"shape":"CreateKnowledgeBaseRequest"}, + "output":{"shape":"CreateKnowledgeBaseResponse"}, + "errors":[ + {"shape":"ConflictException"}, + {"shape":"ValidationException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"AccessDeniedException"} + ], + "idempotent":true + }, + "CreateQuickResponse":{ + "name":"CreateQuickResponse", + "http":{ + "method":"POST", + "requestUri":"/knowledgeBases/{knowledgeBaseId}/quickResponses", + "responseCode":200 + }, + "input":{"shape":"CreateQuickResponseRequest"}, + "output":{"shape":"CreateQuickResponseResponse"}, + "errors":[ + {"shape":"ConflictException"}, + {"shape":"ValidationException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"} + ], + "idempotent":true + }, + "CreateSession":{ + "name":"CreateSession", + "http":{ + "method":"POST", + "requestUri":"/assistants/{assistantId}/sessions", + "responseCode":200 + }, + "input":{"shape":"CreateSessionRequest"}, + "output":{"shape":"CreateSessionResponse"}, + "errors":[ + {"shape":"ConflictException"}, + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"} + ], + "idempotent":true + }, + "DeleteAssistant":{ + "name":"DeleteAssistant", + "http":{ + "method":"DELETE", + "requestUri":"/assistants/{assistantId}", + "responseCode":204 + }, + "input":{"shape":"DeleteAssistantRequest"}, + "output":{"shape":"DeleteAssistantResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"} + ], + "idempotent":true + }, + "DeleteAssistantAssociation":{ + "name":"DeleteAssistantAssociation", + "http":{ + "method":"DELETE", + "requestUri":"/assistants/{assistantId}/associations/{assistantAssociationId}", + "responseCode":204 + }, + "input":{"shape":"DeleteAssistantAssociationRequest"}, + "output":{"shape":"DeleteAssistantAssociationResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"} + ], + "idempotent":true + }, + "DeleteContent":{ + "name":"DeleteContent", + "http":{ + "method":"DELETE", + "requestUri":"/knowledgeBases/{knowledgeBaseId}/contents/{contentId}", + "responseCode":204 + }, + "input":{"shape":"DeleteContentRequest"}, + "output":{"shape":"DeleteContentResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"} + ], + "idempotent":true + }, + "DeleteImportJob":{ + "name":"DeleteImportJob", + "http":{ + "method":"DELETE", + "requestUri":"/knowledgeBases/{knowledgeBaseId}/importJobs/{importJobId}", + "responseCode":204 + }, + "input":{"shape":"DeleteImportJobRequest"}, + "output":{"shape":"DeleteImportJobResponse"}, + "errors":[ + {"shape":"ConflictException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"} + ], + "idempotent":true + }, + "DeleteKnowledgeBase":{ + "name":"DeleteKnowledgeBase", + "http":{ + "method":"DELETE", + "requestUri":"/knowledgeBases/{knowledgeBaseId}", + "responseCode":204 + }, + "input":{"shape":"DeleteKnowledgeBaseRequest"}, + "output":{"shape":"DeleteKnowledgeBaseResponse"}, + "errors":[ + {"shape":"ConflictException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"} + ], + "idempotent":true + }, + "DeleteQuickResponse":{ + "name":"DeleteQuickResponse", + "http":{ + "method":"DELETE", + "requestUri":"/knowledgeBases/{knowledgeBaseId}/quickResponses/{quickResponseId}", + "responseCode":204 + }, + "input":{"shape":"DeleteQuickResponseRequest"}, + "output":{"shape":"DeleteQuickResponseResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"} + ], + "idempotent":true + }, + "GetAssistant":{ + "name":"GetAssistant", + "http":{ + "method":"GET", + "requestUri":"/assistants/{assistantId}", + "responseCode":200 + }, + "input":{"shape":"GetAssistantRequest"}, + "output":{"shape":"GetAssistantResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"} + ] + }, + "GetAssistantAssociation":{ + "name":"GetAssistantAssociation", + "http":{ + "method":"GET", + "requestUri":"/assistants/{assistantId}/associations/{assistantAssociationId}", + "responseCode":200 + }, + "input":{"shape":"GetAssistantAssociationRequest"}, + "output":{"shape":"GetAssistantAssociationResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"} + ] + }, + "GetContent":{ + "name":"GetContent", + "http":{ + "method":"GET", + "requestUri":"/knowledgeBases/{knowledgeBaseId}/contents/{contentId}", + "responseCode":200 + }, + "input":{"shape":"GetContentRequest"}, + "output":{"shape":"GetContentResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"} + ] + }, + "GetContentSummary":{ + "name":"GetContentSummary", + "http":{ + "method":"GET", + "requestUri":"/knowledgeBases/{knowledgeBaseId}/contents/{contentId}/summary", + "responseCode":200 + }, + "input":{"shape":"GetContentSummaryRequest"}, + "output":{"shape":"GetContentSummaryResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"} + ] + }, + "GetImportJob":{ + "name":"GetImportJob", + "http":{ + "method":"GET", + "requestUri":"/knowledgeBases/{knowledgeBaseId}/importJobs/{importJobId}", + "responseCode":200 + }, + "input":{"shape":"GetImportJobRequest"}, + "output":{"shape":"GetImportJobResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"} + ] + }, + "GetKnowledgeBase":{ + "name":"GetKnowledgeBase", + "http":{ + "method":"GET", + "requestUri":"/knowledgeBases/{knowledgeBaseId}", + "responseCode":200 + }, + "input":{"shape":"GetKnowledgeBaseRequest"}, + "output":{"shape":"GetKnowledgeBaseResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"} + ] + }, + "GetQuickResponse":{ + "name":"GetQuickResponse", + "http":{ + "method":"GET", + "requestUri":"/knowledgeBases/{knowledgeBaseId}/quickResponses/{quickResponseId}", + "responseCode":200 + }, + "input":{"shape":"GetQuickResponseRequest"}, + "output":{"shape":"GetQuickResponseResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"} + ] + }, + "GetRecommendations":{ + "name":"GetRecommendations", + "http":{ + "method":"GET", + "requestUri":"/assistants/{assistantId}/sessions/{sessionId}/recommendations", + "responseCode":200 + }, + "input":{"shape":"GetRecommendationsRequest"}, + "output":{"shape":"GetRecommendationsResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"} + ] + }, + "GetSession":{ + "name":"GetSession", + "http":{ + "method":"GET", + "requestUri":"/assistants/{assistantId}/sessions/{sessionId}", + "responseCode":200 + }, + "input":{"shape":"GetSessionRequest"}, + "output":{"shape":"GetSessionResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"} + ] + }, + "ListAssistantAssociations":{ + "name":"ListAssistantAssociations", + "http":{ + "method":"GET", + "requestUri":"/assistants/{assistantId}/associations", + "responseCode":200 + }, + "input":{"shape":"ListAssistantAssociationsRequest"}, + "output":{"shape":"ListAssistantAssociationsResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"} + ] + }, + "ListAssistants":{ + "name":"ListAssistants", + "http":{ + "method":"GET", + "requestUri":"/assistants", + "responseCode":200 + }, + "input":{"shape":"ListAssistantsRequest"}, + "output":{"shape":"ListAssistantsResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"} + ] + }, + "ListContents":{ + "name":"ListContents", + "http":{ + "method":"GET", + "requestUri":"/knowledgeBases/{knowledgeBaseId}/contents", + "responseCode":200 + }, + "input":{"shape":"ListContentsRequest"}, + "output":{"shape":"ListContentsResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"} + ] + }, + "ListImportJobs":{ + "name":"ListImportJobs", + "http":{ + "method":"GET", + "requestUri":"/knowledgeBases/{knowledgeBaseId}/importJobs", + "responseCode":200 + }, + "input":{"shape":"ListImportJobsRequest"}, + "output":{"shape":"ListImportJobsResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"} + ] + }, + "ListKnowledgeBases":{ + "name":"ListKnowledgeBases", + "http":{ + "method":"GET", + "requestUri":"/knowledgeBases", + "responseCode":200 + }, + "input":{"shape":"ListKnowledgeBasesRequest"}, + "output":{"shape":"ListKnowledgeBasesResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"} + ] + }, + "ListQuickResponses":{ + "name":"ListQuickResponses", + "http":{ + "method":"GET", + "requestUri":"/knowledgeBases/{knowledgeBaseId}/quickResponses", + "responseCode":200 + }, + "input":{"shape":"ListQuickResponsesRequest"}, + "output":{"shape":"ListQuickResponsesResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"} + ] + }, + "ListTagsForResource":{ + "name":"ListTagsForResource", + "http":{ + "method":"GET", + "requestUri":"/tags/{resourceArn}", + "responseCode":200 + }, + "input":{"shape":"ListTagsForResourceRequest"}, + "output":{"shape":"ListTagsForResourceResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"} + ] + }, + "NotifyRecommendationsReceived":{ + "name":"NotifyRecommendationsReceived", + "http":{ + "method":"POST", + "requestUri":"/assistants/{assistantId}/sessions/{sessionId}/recommendations/notify", + "responseCode":200 + }, + "input":{"shape":"NotifyRecommendationsReceivedRequest"}, + "output":{"shape":"NotifyRecommendationsReceivedResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"} + ], + "idempotent":true + }, + "QueryAssistant":{ + "name":"QueryAssistant", + "http":{ + "method":"POST", + "requestUri":"/assistants/{assistantId}/query", + "responseCode":200 + }, + "input":{"shape":"QueryAssistantRequest"}, + "output":{"shape":"QueryAssistantResponse"}, + "errors":[ + {"shape":"RequestTimeoutException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"} + ] + }, + "RemoveKnowledgeBaseTemplateUri":{ + "name":"RemoveKnowledgeBaseTemplateUri", + "http":{ + "method":"DELETE", + "requestUri":"/knowledgeBases/{knowledgeBaseId}/templateUri", + "responseCode":204 + }, + "input":{"shape":"RemoveKnowledgeBaseTemplateUriRequest"}, + "output":{"shape":"RemoveKnowledgeBaseTemplateUriResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"} + ] + }, + "SearchContent":{ + "name":"SearchContent", + "http":{ + "method":"POST", + "requestUri":"/knowledgeBases/{knowledgeBaseId}/search", + "responseCode":200 + }, + "input":{"shape":"SearchContentRequest"}, + "output":{"shape":"SearchContentResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"} + ] + }, + "SearchQuickResponses":{ + "name":"SearchQuickResponses", + "http":{ + "method":"POST", + "requestUri":"/knowledgeBases/{knowledgeBaseId}/search/quickResponses", + "responseCode":200 + }, + "input":{"shape":"SearchQuickResponsesRequest"}, + "output":{"shape":"SearchQuickResponsesResponse"}, + "errors":[ + {"shape":"RequestTimeoutException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"} + ] + }, + "SearchSessions":{ + "name":"SearchSessions", + "http":{ + "method":"POST", + "requestUri":"/assistants/{assistantId}/searchSessions", + "responseCode":200 + }, + "input":{"shape":"SearchSessionsRequest"}, + "output":{"shape":"SearchSessionsResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"} + ] + }, + "StartContentUpload":{ + "name":"StartContentUpload", + "http":{ + "method":"POST", + "requestUri":"/knowledgeBases/{knowledgeBaseId}/upload", + "responseCode":200 + }, + "input":{"shape":"StartContentUploadRequest"}, + "output":{"shape":"StartContentUploadResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"} + ] + }, + "StartImportJob":{ + "name":"StartImportJob", + "http":{ + "method":"POST", + "requestUri":"/knowledgeBases/{knowledgeBaseId}/importJobs", + "responseCode":200 + }, + "input":{"shape":"StartImportJobRequest"}, + "output":{"shape":"StartImportJobResponse"}, + "errors":[ + {"shape":"ConflictException"}, + {"shape":"ValidationException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"} + ], + "idempotent":true + }, + "TagResource":{ + "name":"TagResource", + "http":{ + "method":"POST", + "requestUri":"/tags/{resourceArn}", + "responseCode":200 + }, + "input":{"shape":"TagResourceRequest"}, + "output":{"shape":"TagResourceResponse"}, + "errors":[ + {"shape":"TooManyTagsException"}, + {"shape":"ResourceNotFoundException"} + ], + "idempotent":true + }, + "UntagResource":{ + "name":"UntagResource", + "http":{ + "method":"DELETE", + "requestUri":"/tags/{resourceArn}", + "responseCode":200 + }, + "input":{"shape":"UntagResourceRequest"}, + "output":{"shape":"UntagResourceResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"} + ], + "idempotent":true + }, + "UpdateContent":{ + "name":"UpdateContent", + "http":{ + "method":"POST", + "requestUri":"/knowledgeBases/{knowledgeBaseId}/contents/{contentId}", + "responseCode":200 + }, + "input":{"shape":"UpdateContentRequest"}, + "output":{"shape":"UpdateContentResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"PreconditionFailedException"}, + {"shape":"ResourceNotFoundException"} + ] + }, + "UpdateKnowledgeBaseTemplateUri":{ + "name":"UpdateKnowledgeBaseTemplateUri", + "http":{ + "method":"POST", + "requestUri":"/knowledgeBases/{knowledgeBaseId}/templateUri", + "responseCode":200 + }, + "input":{"shape":"UpdateKnowledgeBaseTemplateUriRequest"}, + "output":{"shape":"UpdateKnowledgeBaseTemplateUriResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"} + ] + }, + "UpdateQuickResponse":{ + "name":"UpdateQuickResponse", + "http":{ + "method":"POST", + "requestUri":"/knowledgeBases/{knowledgeBaseId}/quickResponses/{quickResponseId}", + "responseCode":200 + }, + "input":{"shape":"UpdateQuickResponseRequest"}, + "output":{"shape":"UpdateQuickResponseResponse"}, + "errors":[ + {"shape":"ConflictException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"PreconditionFailedException"}, + {"shape":"ResourceNotFoundException"} + ] + } + }, + "shapes":{ + "AccessDeniedException":{ + "type":"structure", + "members":{ + "message":{"shape":"String"} + }, + "error":{ + "httpStatusCode":403, + "senderFault":true + }, + "exception":true + }, + "AppIntegrationsConfiguration":{ + "type":"structure", + "required":["appIntegrationArn"], + "members":{ + "appIntegrationArn":{"shape":"GenericArn"}, + "objectFields":{"shape":"ObjectFieldsList"} + } + }, + "Arn":{ + "type":"string", + "pattern":"^arn:[a-z-]*?:wisdom:[a-z0-9-]*?:[0-9]{12}:[a-z-]*?/[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}(?:/[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12})?$" + }, + "AssistantAssociationData":{ + "type":"structure", + "required":[ + "assistantArn", + "assistantAssociationArn", + "assistantAssociationId", + "assistantId", + "associationData", + "associationType" + ], + "members":{ + "assistantArn":{"shape":"Arn"}, + "assistantAssociationArn":{"shape":"Arn"}, + "assistantAssociationId":{"shape":"Uuid"}, + "assistantId":{"shape":"Uuid"}, + "associationData":{"shape":"AssistantAssociationOutputData"}, + "associationType":{"shape":"AssociationType"}, + "tags":{"shape":"Tags"} + } + }, + "AssistantAssociationInputData":{ + "type":"structure", + "members":{ + "knowledgeBaseId":{"shape":"Uuid"} + }, + "union":true + }, + "AssistantAssociationOutputData":{ + "type":"structure", + "members":{ + "knowledgeBaseAssociation":{"shape":"KnowledgeBaseAssociationData"} + }, + "union":true + }, + "AssistantAssociationSummary":{ + "type":"structure", + "required":[ + "assistantArn", + "assistantAssociationArn", + "assistantAssociationId", + "assistantId", + "associationData", + "associationType" + ], + "members":{ + "assistantArn":{"shape":"Arn"}, + "assistantAssociationArn":{"shape":"Arn"}, + "assistantAssociationId":{"shape":"Uuid"}, + "assistantId":{"shape":"Uuid"}, + "associationData":{"shape":"AssistantAssociationOutputData"}, + "associationType":{"shape":"AssociationType"}, + "tags":{"shape":"Tags"} + } + }, + "AssistantAssociationSummaryList":{ + "type":"list", + "member":{"shape":"AssistantAssociationSummary"} + }, + "AssistantCapabilityConfiguration":{ + "type":"structure", + "members":{ + "type":{"shape":"AssistantCapabilityType"} + } + }, + "AssistantCapabilityType":{ + "type":"string", + "enum":[ + "V1", + "V2" + ] + }, + "AssistantData":{ + "type":"structure", + "required":[ + "assistantArn", + "assistantId", + "name", + "status", + "type" + ], + "members":{ + "assistantArn":{"shape":"Arn"}, + "assistantId":{"shape":"Uuid"}, + "capabilityConfiguration":{"shape":"AssistantCapabilityConfiguration"}, + "description":{"shape":"Description"}, + "integrationConfiguration":{"shape":"AssistantIntegrationConfiguration"}, + "name":{"shape":"Name"}, + "serverSideEncryptionConfiguration":{"shape":"ServerSideEncryptionConfiguration"}, + "status":{"shape":"AssistantStatus"}, + "tags":{"shape":"Tags"}, + "type":{"shape":"AssistantType"} + } + }, + "AssistantIntegrationConfiguration":{ + "type":"structure", + "members":{ + "topicIntegrationArn":{"shape":"GenericArn"} + } + }, + "AssistantList":{ + "type":"list", + "member":{"shape":"AssistantSummary"} + }, + "AssistantStatus":{ + "type":"string", + "enum":[ + "CREATE_IN_PROGRESS", + "CREATE_FAILED", + "ACTIVE", + "DELETE_IN_PROGRESS", + "DELETE_FAILED", + "DELETED" + ] + }, + "AssistantSummary":{ + "type":"structure", + "required":[ + "assistantArn", + "assistantId", + "name", + "status", + "type" + ], + "members":{ + "assistantArn":{"shape":"Arn"}, + "assistantId":{"shape":"Uuid"}, + "capabilityConfiguration":{"shape":"AssistantCapabilityConfiguration"}, + "description":{"shape":"Description"}, + "integrationConfiguration":{"shape":"AssistantIntegrationConfiguration"}, + "name":{"shape":"Name"}, + "serverSideEncryptionConfiguration":{"shape":"ServerSideEncryptionConfiguration"}, + "status":{"shape":"AssistantStatus"}, + "tags":{"shape":"Tags"}, + "type":{"shape":"AssistantType"} + } + }, + "AssistantType":{ + "type":"string", + "enum":["AGENT"] + }, + "AssociationType":{ + "type":"string", + "enum":["KNOWLEDGE_BASE"] + }, + "Boolean":{ + "type":"boolean", + "box":true + }, + "Channel":{ + "type":"string", + "max":10, + "min":1, + "sensitive":true + }, + "Channels":{ + "type":"list", + "member":{"shape":"Channel"} + }, + "ClientToken":{ + "type":"string", + "max":4096, + "min":1 + }, + "Configuration":{ + "type":"structure", + "members":{ + "connectConfiguration":{"shape":"ConnectConfiguration"} + }, + "union":true + }, + "ConflictException":{ + "type":"structure", + "members":{ + "message":{"shape":"String"} + }, + "error":{ + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + "ConnectConfiguration":{ + "type":"structure", + "members":{ + "instanceId":{"shape":"NonEmptyString"} + } + }, + "ContactAttributeKey":{"type":"string"}, + "ContactAttributeKeys":{ + "type":"list", + "member":{"shape":"ContactAttributeKey"}, + "sensitive":true + }, + "ContactAttributeValue":{"type":"string"}, + "ContactAttributes":{ + "type":"map", + "key":{"shape":"ContactAttributeKey"}, + "value":{"shape":"ContactAttributeValue"}, + "sensitive":true + }, + "ContentData":{ + "type":"structure", + "required":[ + "contentArn", + "contentId", + "contentType", + "knowledgeBaseArn", + "knowledgeBaseId", + "metadata", + "name", + "revisionId", + "status", + "title", + "url", + "urlExpiry" + ], + "members":{ + "contentArn":{"shape":"Arn"}, + "contentId":{"shape":"Uuid"}, + "contentType":{"shape":"ContentType"}, + "knowledgeBaseArn":{"shape":"Arn"}, + "knowledgeBaseId":{"shape":"Uuid"}, + "linkOutUri":{"shape":"Uri"}, + "metadata":{"shape":"ContentMetadata"}, + "name":{"shape":"Name"}, + "revisionId":{"shape":"NonEmptyString"}, + "status":{"shape":"ContentStatus"}, + "tags":{"shape":"Tags"}, + "title":{"shape":"ContentTitle"}, + "url":{"shape":"Url"}, + "urlExpiry":{"shape":"SyntheticTimestamp_epoch_seconds"} + } + }, + "ContentDataDetails":{ + "type":"structure", + "required":[ + "rankingData", + "textData" + ], + "members":{ + "rankingData":{"shape":"RankingData"}, + "textData":{"shape":"TextData"} + } + }, + "ContentMetadata":{ + "type":"map", + "key":{"shape":"NonEmptyString"}, + "value":{"shape":"NonEmptyString"}, + "max":10, + "min":0 + }, + "ContentReference":{ + "type":"structure", + "members":{ + "contentArn":{"shape":"Arn"}, + "contentId":{"shape":"Uuid"}, + "knowledgeBaseArn":{"shape":"Arn"}, + "knowledgeBaseId":{"shape":"Uuid"} + } + }, + "ContentStatus":{ + "type":"string", + "enum":[ + "CREATE_IN_PROGRESS", + "CREATE_FAILED", + "ACTIVE", + "DELETE_IN_PROGRESS", + "DELETE_FAILED", + "DELETED", + "UPDATE_FAILED" + ] + }, + "ContentSummary":{ + "type":"structure", + "required":[ + "contentArn", + "contentId", + "contentType", + "knowledgeBaseArn", + "knowledgeBaseId", + "metadata", + "name", + "revisionId", + "status", + "title" + ], + "members":{ + "contentArn":{"shape":"Arn"}, + "contentId":{"shape":"Uuid"}, + "contentType":{"shape":"ContentType"}, + "knowledgeBaseArn":{"shape":"Arn"}, + "knowledgeBaseId":{"shape":"Uuid"}, + "metadata":{"shape":"ContentMetadata"}, + "name":{"shape":"Name"}, + "revisionId":{"shape":"NonEmptyString"}, + "status":{"shape":"ContentStatus"}, + "tags":{"shape":"Tags"}, + "title":{"shape":"ContentTitle"} + } + }, + "ContentSummaryList":{ + "type":"list", + "member":{"shape":"ContentSummary"} + }, + "ContentTitle":{ + "type":"string", + "max":255, + "min":1 + }, + "ContentType":{ + "type":"string", + "pattern":"^(text/(plain|html|csv))|(application/(pdf|vnd\\.openxmlformats-officedocument\\.wordprocessingml\\.document))|(application/x\\.wisdom-json;source=(salesforce|servicenow|zendesk))$" + }, + "CreateAssistantAssociationRequest":{ + "type":"structure", + "required":[ + "assistantId", + "association", + "associationType" + ], + "members":{ + "assistantId":{ + "shape":"UuidOrArn", + "location":"uri", + "locationName":"assistantId" + }, + "association":{"shape":"AssistantAssociationInputData"}, + "associationType":{"shape":"AssociationType"}, + "clientToken":{ + "shape":"ClientToken", + "idempotencyToken":true + }, + "tags":{"shape":"Tags"} + } + }, + "CreateAssistantAssociationResponse":{ + "type":"structure", + "members":{ + "assistantAssociation":{"shape":"AssistantAssociationData"} + } + }, + "CreateAssistantRequest":{ + "type":"structure", + "required":[ + "name", + "type" + ], + "members":{ + "clientToken":{ + "shape":"ClientToken", + "idempotencyToken":true + }, + "description":{"shape":"Description"}, + "name":{"shape":"Name"}, + "serverSideEncryptionConfiguration":{"shape":"ServerSideEncryptionConfiguration"}, + "tags":{"shape":"Tags"}, + "type":{"shape":"AssistantType"} + } + }, + "CreateAssistantResponse":{ + "type":"structure", + "members":{ + "assistant":{"shape":"AssistantData"} + } + }, + "CreateContentRequest":{ + "type":"structure", + "required":[ + "knowledgeBaseId", + "name", + "uploadId" + ], + "members":{ + "clientToken":{ + "shape":"NonEmptyString", + "idempotencyToken":true + }, + "knowledgeBaseId":{ + "shape":"UuidOrArn", + "location":"uri", + "locationName":"knowledgeBaseId" + }, + "metadata":{"shape":"ContentMetadata"}, + "name":{"shape":"Name"}, + "overrideLinkOutUri":{"shape":"Uri"}, + "tags":{"shape":"Tags"}, + "title":{"shape":"ContentTitle"}, + "uploadId":{"shape":"UploadId"} + } + }, + "CreateContentResponse":{ + "type":"structure", + "members":{ + "content":{"shape":"ContentData"} + } + }, + "CreateKnowledgeBaseRequest":{ + "type":"structure", + "required":[ + "knowledgeBaseType", + "name" + ], + "members":{ + "clientToken":{ + "shape":"NonEmptyString", + "idempotencyToken":true + }, + "description":{"shape":"Description"}, + "knowledgeBaseType":{"shape":"KnowledgeBaseType"}, + "name":{"shape":"Name"}, + "renderingConfiguration":{"shape":"RenderingConfiguration"}, + "serverSideEncryptionConfiguration":{"shape":"ServerSideEncryptionConfiguration"}, + "sourceConfiguration":{"shape":"SourceConfiguration"}, + "tags":{"shape":"Tags"} + } + }, + "CreateKnowledgeBaseResponse":{ + "type":"structure", + "members":{ + "knowledgeBase":{"shape":"KnowledgeBaseData"} + } + }, + "CreateQuickResponseRequest":{ + "type":"structure", + "required":[ + "content", + "knowledgeBaseId", + "name" + ], + "members":{ + "channels":{"shape":"Channels"}, + "clientToken":{ + "shape":"NonEmptyString", + "idempotencyToken":true + }, + "content":{"shape":"QuickResponseDataProvider"}, + "contentType":{"shape":"QuickResponseType"}, + "description":{"shape":"QuickResponseDescription"}, + "groupingConfiguration":{"shape":"GroupingConfiguration"}, + "isActive":{"shape":"Boolean"}, + "knowledgeBaseId":{ + "shape":"UuidOrArn", + "location":"uri", + "locationName":"knowledgeBaseId" + }, + "language":{"shape":"LanguageCode"}, + "name":{"shape":"QuickResponseName"}, + "shortcutKey":{"shape":"ShortCutKey"}, + "tags":{"shape":"Tags"} + } + }, + "CreateQuickResponseResponse":{ + "type":"structure", + "members":{ + "quickResponse":{"shape":"QuickResponseData"} + } + }, + "CreateSessionRequest":{ + "type":"structure", + "required":[ + "assistantId", + "name" + ], + "members":{ + "assistantId":{ + "shape":"UuidOrArn", + "location":"uri", + "locationName":"assistantId" + }, + "clientToken":{ + "shape":"ClientToken", + "idempotencyToken":true + }, + "description":{"shape":"Description"}, + "name":{"shape":"Name"}, + "tags":{"shape":"Tags"} + } + }, + "CreateSessionResponse":{ + "type":"structure", + "members":{ + "session":{"shape":"SessionData"} + } + }, + "DataDetails":{ + "type":"structure", + "members":{ + "contentData":{"shape":"ContentDataDetails"}, + "generativeData":{"shape":"GenerativeDataDetails"}, + "sourceContentData":{"shape":"SourceContentDataDetails"} + }, + "union":true + }, + "DataReference":{ + "type":"structure", + "members":{ + "contentReference":{"shape":"ContentReference"}, + "generativeReference":{"shape":"GenerativeReference"} + }, + "union":true + }, + "DataSummary":{ + "type":"structure", + "required":[ + "details", + "reference" + ], + "members":{ + "details":{"shape":"DataDetails"}, + "reference":{"shape":"DataReference"} + } + }, + "DataSummaryList":{ + "type":"list", + "member":{"shape":"DataSummary"} + }, + "DeleteAssistantAssociationRequest":{ + "type":"structure", + "required":[ + "assistantAssociationId", + "assistantId" + ], + "members":{ + "assistantAssociationId":{ + "shape":"UuidOrArn", + "location":"uri", + "locationName":"assistantAssociationId" + }, + "assistantId":{ + "shape":"UuidOrArn", + "location":"uri", + "locationName":"assistantId" + } + } + }, + "DeleteAssistantAssociationResponse":{ + "type":"structure", + "members":{ + } + }, + "DeleteAssistantRequest":{ + "type":"structure", + "required":["assistantId"], + "members":{ + "assistantId":{ + "shape":"UuidOrArn", + "location":"uri", + "locationName":"assistantId" + } + } + }, + "DeleteAssistantResponse":{ + "type":"structure", + "members":{ + } + }, + "DeleteContentRequest":{ + "type":"structure", + "required":[ + "contentId", + "knowledgeBaseId" + ], + "members":{ + "contentId":{ + "shape":"UuidOrArn", + "location":"uri", + "locationName":"contentId" + }, + "knowledgeBaseId":{ + "shape":"UuidOrArn", + "location":"uri", + "locationName":"knowledgeBaseId" + } + } + }, + "DeleteContentResponse":{ + "type":"structure", + "members":{ + } + }, + "DeleteImportJobRequest":{ + "type":"structure", + "required":[ + "importJobId", + "knowledgeBaseId" + ], + "members":{ + "importJobId":{ + "shape":"Uuid", + "location":"uri", + "locationName":"importJobId" + }, + "knowledgeBaseId":{ + "shape":"UuidOrArn", + "location":"uri", + "locationName":"knowledgeBaseId" + } + } + }, + "DeleteImportJobResponse":{ + "type":"structure", + "members":{ + } + }, + "DeleteKnowledgeBaseRequest":{ + "type":"structure", + "required":["knowledgeBaseId"], + "members":{ + "knowledgeBaseId":{ + "shape":"UuidOrArn", + "location":"uri", + "locationName":"knowledgeBaseId" + } + } + }, + "DeleteKnowledgeBaseResponse":{ + "type":"structure", + "members":{ + } + }, + "DeleteQuickResponseRequest":{ + "type":"structure", + "required":[ + "knowledgeBaseId", + "quickResponseId" + ], + "members":{ + "knowledgeBaseId":{ + "shape":"UuidOrArn", + "location":"uri", + "locationName":"knowledgeBaseId" + }, + "quickResponseId":{ + "shape":"UuidOrArn", + "location":"uri", + "locationName":"quickResponseId" + } + } + }, + "DeleteQuickResponseResponse":{ + "type":"structure", + "members":{ + } + }, + "Description":{ + "type":"string", + "max":255, + "min":1, + "pattern":"^[a-zA-Z0-9\\s_.,-]+" + }, + "Document":{ + "type":"structure", + "required":["contentReference"], + "members":{ + "contentReference":{"shape":"ContentReference"}, + "excerpt":{"shape":"DocumentText"}, + "title":{"shape":"DocumentText"} + } + }, + "DocumentText":{ + "type":"structure", + "members":{ + "highlights":{"shape":"Highlights"}, + "text":{"shape":"SensitiveString"} + } + }, + "ExternalSource":{ + "type":"string", + "enum":["AMAZON_CONNECT"] + }, + "ExternalSourceConfiguration":{ + "type":"structure", + "required":[ + "configuration", + "source" + ], + "members":{ + "configuration":{"shape":"Configuration"}, + "source":{"shape":"ExternalSource"} + } + }, + "Filter":{ + "type":"structure", + "required":[ + "field", + "operator", + "value" + ], + "members":{ + "field":{"shape":"FilterField"}, + "operator":{"shape":"FilterOperator"}, + "value":{"shape":"NonEmptyString"} + } + }, + "FilterField":{ + "type":"string", + "enum":["NAME"] + }, + "FilterList":{ + "type":"list", + "member":{"shape":"Filter"} + }, + "FilterOperator":{ + "type":"string", + "enum":["EQUALS"] + }, + "GenerativeDataDetails":{ + "type":"structure", + "required":[ + "completion", + "rankingData", + "references" + ], + "members":{ + "completion":{"shape":"SensitiveString"}, + "rankingData":{"shape":"RankingData"}, + "references":{"shape":"DataSummaryList"} + } + }, + "GenerativeReference":{ + "type":"structure", + "members":{ + "generationId":{"shape":"Uuid"}, + "modelId":{"shape":"LlmModelId"} + } + }, + "GenericArn":{ + "type":"string", + "max":2048, + "min":1, + "pattern":"^arn:[a-z-]+?:[a-z-]+?:[a-z0-9-]*?:([0-9]{12})?:[a-zA-Z0-9-:/]+$" + }, + "GetAssistantAssociationRequest":{ + "type":"structure", + "required":[ + "assistantAssociationId", + "assistantId" + ], + "members":{ + "assistantAssociationId":{ + "shape":"UuidOrArn", + "location":"uri", + "locationName":"assistantAssociationId" + }, + "assistantId":{ + "shape":"UuidOrArn", + "location":"uri", + "locationName":"assistantId" + } + } + }, + "GetAssistantAssociationResponse":{ + "type":"structure", + "members":{ + "assistantAssociation":{"shape":"AssistantAssociationData"} + } + }, + "GetAssistantRequest":{ + "type":"structure", + "required":["assistantId"], + "members":{ + "assistantId":{ + "shape":"UuidOrArn", + "location":"uri", + "locationName":"assistantId" + } + } + }, + "GetAssistantResponse":{ + "type":"structure", + "members":{ + "assistant":{"shape":"AssistantData"} + } + }, + "GetContentRequest":{ + "type":"structure", + "required":[ + "contentId", + "knowledgeBaseId" + ], + "members":{ + "contentId":{ + "shape":"UuidOrArn", + "location":"uri", + "locationName":"contentId" + }, + "knowledgeBaseId":{ + "shape":"UuidOrArn", + "location":"uri", + "locationName":"knowledgeBaseId" + } + } + }, + "GetContentResponse":{ + "type":"structure", + "members":{ + "content":{"shape":"ContentData"} + } + }, + "GetContentSummaryRequest":{ + "type":"structure", + "required":[ + "contentId", + "knowledgeBaseId" + ], + "members":{ + "contentId":{ + "shape":"UuidOrArn", + "location":"uri", + "locationName":"contentId" + }, + "knowledgeBaseId":{ + "shape":"UuidOrArn", + "location":"uri", + "locationName":"knowledgeBaseId" + } + } + }, + "GetContentSummaryResponse":{ + "type":"structure", + "members":{ + "contentSummary":{"shape":"ContentSummary"} + } + }, + "GetImportJobRequest":{ + "type":"structure", + "required":[ + "importJobId", + "knowledgeBaseId" + ], + "members":{ + "importJobId":{ + "shape":"Uuid", + "location":"uri", + "locationName":"importJobId" + }, + "knowledgeBaseId":{ + "shape":"UuidOrArn", + "location":"uri", + "locationName":"knowledgeBaseId" + } + } + }, + "GetImportJobResponse":{ + "type":"structure", + "members":{ + "importJob":{"shape":"ImportJobData"} + } + }, + "GetKnowledgeBaseRequest":{ + "type":"structure", + "required":["knowledgeBaseId"], + "members":{ + "knowledgeBaseId":{ + "shape":"UuidOrArn", + "location":"uri", + "locationName":"knowledgeBaseId" + } + } + }, + "GetKnowledgeBaseResponse":{ + "type":"structure", + "members":{ + "knowledgeBase":{"shape":"KnowledgeBaseData"} + } + }, + "GetQuickResponseRequest":{ + "type":"structure", + "required":[ + "knowledgeBaseId", + "quickResponseId" + ], + "members":{ + "knowledgeBaseId":{ + "shape":"UuidOrArn", + "location":"uri", + "locationName":"knowledgeBaseId" + }, + "quickResponseId":{ + "shape":"UuidOrArn", + "location":"uri", + "locationName":"quickResponseId" + } + } + }, + "GetQuickResponseResponse":{ + "type":"structure", + "members":{ + "quickResponse":{"shape":"QuickResponseData"} + } + }, + "GetRecommendationsRequest":{ + "type":"structure", + "required":[ + "assistantId", + "sessionId" + ], + "members":{ + "assistantId":{ + "shape":"UuidOrArn", + "location":"uri", + "locationName":"assistantId" + }, + "maxResults":{ + "shape":"MaxResults", + "location":"querystring", + "locationName":"maxResults" + }, + "sessionId":{ + "shape":"UuidOrArn", + "location":"uri", + "locationName":"sessionId" + }, + "waitTimeSeconds":{ + "shape":"WaitTimeSeconds", + "location":"querystring", + "locationName":"waitTimeSeconds" + } + } + }, + "GetRecommendationsResponse":{ + "type":"structure", + "required":["recommendations"], + "members":{ + "recommendations":{"shape":"RecommendationList"}, + "triggers":{"shape":"RecommendationTriggerList"} + } + }, + "GetSessionRequest":{ + "type":"structure", + "required":[ + "assistantId", + "sessionId" + ], + "members":{ + "assistantId":{ + "shape":"UuidOrArn", + "location":"uri", + "locationName":"assistantId" + }, + "sessionId":{ + "shape":"UuidOrArn", + "location":"uri", + "locationName":"sessionId" + } + } + }, + "GetSessionResponse":{ + "type":"structure", + "members":{ + "session":{"shape":"SessionData"} + } + }, + "GroupingConfiguration":{ + "type":"structure", + "members":{ + "criteria":{"shape":"GroupingCriteria"}, + "values":{"shape":"GroupingValues"} + } + }, + "GroupingCriteria":{ + "type":"string", + "max":100, + "min":1, + "sensitive":true + }, + "GroupingValue":{ + "type":"string", + "max":2048, + "min":1, + "sensitive":true + }, + "GroupingValues":{ + "type":"list", + "member":{"shape":"GroupingValue"} + }, + "Headers":{ + "type":"map", + "key":{"shape":"NonEmptyString"}, + "value":{"shape":"NonEmptyString"} + }, + "Highlight":{ + "type":"structure", + "members":{ + "beginOffsetInclusive":{"shape":"HighlightOffset"}, + "endOffsetExclusive":{"shape":"HighlightOffset"} + } + }, + "HighlightOffset":{"type":"integer"}, + "Highlights":{ + "type":"list", + "member":{"shape":"Highlight"} + }, + "ImportJobData":{ + "type":"structure", + "required":[ + "createdTime", + "importJobId", + "importJobType", + "knowledgeBaseArn", + "knowledgeBaseId", + "lastModifiedTime", + "status", + "uploadId", + "url", + "urlExpiry" + ], + "members":{ + "createdTime":{"shape":"SyntheticTimestamp_epoch_seconds"}, + "externalSourceConfiguration":{"shape":"ExternalSourceConfiguration"}, + "failedRecordReport":{"shape":"Url"}, + "importJobId":{"shape":"Uuid"}, + "importJobType":{"shape":"ImportJobType"}, + "knowledgeBaseArn":{"shape":"Arn"}, + "knowledgeBaseId":{"shape":"Uuid"}, + "lastModifiedTime":{"shape":"SyntheticTimestamp_epoch_seconds"}, + "metadata":{"shape":"ContentMetadata"}, + "status":{"shape":"ImportJobStatus"}, + "uploadId":{"shape":"UploadId"}, + "url":{"shape":"Url"}, + "urlExpiry":{"shape":"SyntheticTimestamp_epoch_seconds"} + } + }, + "ImportJobList":{ + "type":"list", + "member":{"shape":"ImportJobSummary"} + }, + "ImportJobStatus":{ + "type":"string", + "enum":[ + "START_IN_PROGRESS", + "FAILED", + "COMPLETE", + "DELETE_IN_PROGRESS", + "DELETE_FAILED", + "DELETED" + ] + }, + "ImportJobSummary":{ + "type":"structure", + "required":[ + "createdTime", + "importJobId", + "importJobType", + "knowledgeBaseArn", + "knowledgeBaseId", + "lastModifiedTime", + "status", + "uploadId" + ], + "members":{ + "createdTime":{"shape":"SyntheticTimestamp_epoch_seconds"}, + "externalSourceConfiguration":{"shape":"ExternalSourceConfiguration"}, + "importJobId":{"shape":"Uuid"}, + "importJobType":{"shape":"ImportJobType"}, + "knowledgeBaseArn":{"shape":"Arn"}, + "knowledgeBaseId":{"shape":"Uuid"}, + "lastModifiedTime":{"shape":"SyntheticTimestamp_epoch_seconds"}, + "metadata":{"shape":"ContentMetadata"}, + "status":{"shape":"ImportJobStatus"}, + "uploadId":{"shape":"UploadId"} + } + }, + "ImportJobType":{ + "type":"string", + "enum":["QUICK_RESPONSES"] + }, + "KnowledgeBaseAssociationData":{ + "type":"structure", + "members":{ + "knowledgeBaseArn":{"shape":"Arn"}, + "knowledgeBaseId":{"shape":"Uuid"} + } + }, + "KnowledgeBaseData":{ + "type":"structure", + "required":[ + "knowledgeBaseArn", + "knowledgeBaseId", + "knowledgeBaseType", + "name", + "status" + ], + "members":{ + "description":{"shape":"Description"}, + "knowledgeBaseArn":{"shape":"Arn"}, + "knowledgeBaseId":{"shape":"Uuid"}, + "knowledgeBaseType":{"shape":"KnowledgeBaseType"}, + "lastContentModificationTime":{"shape":"SyntheticTimestamp_epoch_seconds"}, + "name":{"shape":"Name"}, + "renderingConfiguration":{"shape":"RenderingConfiguration"}, + "serverSideEncryptionConfiguration":{"shape":"ServerSideEncryptionConfiguration"}, + "sourceConfiguration":{"shape":"SourceConfiguration"}, + "status":{"shape":"KnowledgeBaseStatus"}, + "tags":{"shape":"Tags"} + } + }, + "KnowledgeBaseList":{ + "type":"list", + "member":{"shape":"KnowledgeBaseSummary"} + }, + "KnowledgeBaseStatus":{ + "type":"string", + "enum":[ + "CREATE_IN_PROGRESS", + "CREATE_FAILED", + "ACTIVE", + "DELETE_IN_PROGRESS", + "DELETE_FAILED", + "DELETED" + ] + }, + "KnowledgeBaseSummary":{ + "type":"structure", + "required":[ + "knowledgeBaseArn", + "knowledgeBaseId", + "knowledgeBaseType", + "name", + "status" + ], + "members":{ + "description":{"shape":"Description"}, + "knowledgeBaseArn":{"shape":"Arn"}, + "knowledgeBaseId":{"shape":"Uuid"}, + "knowledgeBaseType":{"shape":"KnowledgeBaseType"}, + "name":{"shape":"Name"}, + "renderingConfiguration":{"shape":"RenderingConfiguration"}, + "serverSideEncryptionConfiguration":{"shape":"ServerSideEncryptionConfiguration"}, + "sourceConfiguration":{"shape":"SourceConfiguration"}, + "status":{"shape":"KnowledgeBaseStatus"}, + "tags":{"shape":"Tags"} + } + }, + "KnowledgeBaseType":{ + "type":"string", + "enum":[ + "EXTERNAL", + "CUSTOM", + "QUICK_RESPONSES" + ] + }, + "LanguageCode":{ + "type":"string", + "max":5, + "min":2 + }, + "ListAssistantAssociationsRequest":{ + "type":"structure", + "required":["assistantId"], + "members":{ + "assistantId":{ + "shape":"UuidOrArn", + "location":"uri", + "locationName":"assistantId" + }, + "maxResults":{ + "shape":"MaxResults", + "location":"querystring", + "locationName":"maxResults" + }, + "nextToken":{ + "shape":"NextToken", + "location":"querystring", + "locationName":"nextToken" + } + } + }, + "ListAssistantAssociationsResponse":{ + "type":"structure", + "required":["assistantAssociationSummaries"], + "members":{ + "assistantAssociationSummaries":{"shape":"AssistantAssociationSummaryList"}, + "nextToken":{"shape":"NextToken"} + } + }, + "ListAssistantsRequest":{ + "type":"structure", + "members":{ + "maxResults":{ + "shape":"MaxResults", + "location":"querystring", + "locationName":"maxResults" + }, + "nextToken":{ + "shape":"NextToken", + "location":"querystring", + "locationName":"nextToken" + } + } + }, + "ListAssistantsResponse":{ + "type":"structure", + "required":["assistantSummaries"], + "members":{ + "assistantSummaries":{"shape":"AssistantList"}, + "nextToken":{"shape":"NextToken"} + } + }, + "ListContentsRequest":{ + "type":"structure", + "required":["knowledgeBaseId"], + "members":{ + "knowledgeBaseId":{ + "shape":"UuidOrArn", + "location":"uri", + "locationName":"knowledgeBaseId" + }, + "maxResults":{ + "shape":"MaxResults", + "location":"querystring", + "locationName":"maxResults" + }, + "nextToken":{ + "shape":"NextToken", + "location":"querystring", + "locationName":"nextToken" + } + } + }, + "ListContentsResponse":{ + "type":"structure", + "required":["contentSummaries"], + "members":{ + "contentSummaries":{"shape":"ContentSummaryList"}, + "nextToken":{"shape":"NextToken"} + } + }, + "ListImportJobsRequest":{ + "type":"structure", + "required":["knowledgeBaseId"], + "members":{ + "knowledgeBaseId":{ + "shape":"UuidOrArn", + "location":"uri", + "locationName":"knowledgeBaseId" + }, + "maxResults":{ + "shape":"MaxResults", + "location":"querystring", + "locationName":"maxResults" + }, + "nextToken":{ + "shape":"NonEmptyString", + "location":"querystring", + "locationName":"nextToken" + } + } + }, + "ListImportJobsResponse":{ + "type":"structure", + "required":["importJobSummaries"], + "members":{ + "importJobSummaries":{"shape":"ImportJobList"}, + "nextToken":{"shape":"NonEmptyString"} + } + }, + "ListKnowledgeBasesRequest":{ + "type":"structure", + "members":{ + "maxResults":{ + "shape":"MaxResults", + "location":"querystring", + "locationName":"maxResults" + }, + "nextToken":{ + "shape":"NonEmptyString", + "location":"querystring", + "locationName":"nextToken" + } + } + }, + "ListKnowledgeBasesResponse":{ + "type":"structure", + "required":["knowledgeBaseSummaries"], + "members":{ + "knowledgeBaseSummaries":{"shape":"KnowledgeBaseList"}, + "nextToken":{"shape":"NonEmptyString"} + } + }, + "ListQuickResponsesRequest":{ + "type":"structure", + "required":["knowledgeBaseId"], + "members":{ + "knowledgeBaseId":{ + "shape":"UuidOrArn", + "location":"uri", + "locationName":"knowledgeBaseId" + }, + "maxResults":{ + "shape":"MaxResults", + "location":"querystring", + "locationName":"maxResults" + }, + "nextToken":{ + "shape":"NonEmptyString", + "location":"querystring", + "locationName":"nextToken" + } + } + }, + "ListQuickResponsesResponse":{ + "type":"structure", + "required":["quickResponseSummaries"], + "members":{ + "nextToken":{"shape":"NonEmptyString"}, + "quickResponseSummaries":{"shape":"QuickResponseSummaryList"} + } + }, + "ListTagsForResourceRequest":{ + "type":"structure", + "required":["resourceArn"], + "members":{ + "resourceArn":{ + "shape":"Arn", + "location":"uri", + "locationName":"resourceArn" + } + } + }, + "ListTagsForResourceResponse":{ + "type":"structure", + "members":{ + "tags":{"shape":"Tags"} + } + }, + "LlmModelId":{ + "type":"string", + "max":128, + "min":1 + }, + "MaxResults":{ + "type":"integer", + "box":true, + "max":100, + "min":1 + }, + "Name":{ + "type":"string", + "max":255, + "min":1, + "pattern":"^[a-zA-Z0-9\\s_.,-]+" + }, + "NextToken":{ + "type":"string", + "max":2048, + "min":1 + }, + "NonEmptyString":{ + "type":"string", + "max":4096, + "min":1 + }, + "NotifyRecommendationsReceivedError":{ + "type":"structure", + "members":{ + "message":{"shape":"NotifyRecommendationsReceivedErrorMessage"}, + "recommendationId":{"shape":"RecommendationId"} + } + }, + "NotifyRecommendationsReceivedErrorList":{ + "type":"list", + "member":{"shape":"NotifyRecommendationsReceivedError"} + }, + "NotifyRecommendationsReceivedErrorMessage":{"type":"string"}, + "NotifyRecommendationsReceivedRequest":{ + "type":"structure", + "required":[ + "assistantId", + "recommendationIds", + "sessionId" + ], + "members":{ + "assistantId":{ + "shape":"UuidOrArn", + "location":"uri", + "locationName":"assistantId" + }, + "recommendationIds":{"shape":"RecommendationIdList"}, + "sessionId":{ + "shape":"UuidOrArn", + "location":"uri", + "locationName":"sessionId" + } + } + }, + "NotifyRecommendationsReceivedResponse":{ + "type":"structure", + "members":{ + "errors":{"shape":"NotifyRecommendationsReceivedErrorList"}, + "recommendationIds":{"shape":"RecommendationIdList"} + } + }, + "ObjectFieldsList":{ + "type":"list", + "member":{"shape":"NonEmptyString"}, + "max":100, + "min":1 + }, + "Order":{ + "type":"string", + "enum":[ + "ASC", + "DESC" + ] + }, + "PreconditionFailedException":{ + "type":"structure", + "members":{ + "message":{"shape":"String"} + }, + "error":{ + "httpStatusCode":412, + "senderFault":true + }, + "exception":true + }, + "Priority":{ + "type":"string", + "enum":[ + "HIGH", + "MEDIUM", + "LOW" + ] + }, + "QueryAssistantRequest":{ + "type":"structure", + "required":[ + "assistantId", + "queryText" + ], + "members":{ + "assistantId":{ + "shape":"UuidOrArn", + "location":"uri", + "locationName":"assistantId" + }, + "maxResults":{"shape":"MaxResults"}, + "nextToken":{"shape":"NextToken"}, + "queryCondition":{"shape":"QueryConditionExpression"}, + "queryText":{"shape":"QueryText"}, + "sessionId":{"shape":"UuidOrArn"} + } + }, + "QueryAssistantResponse":{ + "type":"structure", + "required":["results"], + "members":{ + "nextToken":{"shape":"NextToken"}, + "results":{"shape":"QueryResultsList"} + } + }, + "QueryCondition":{ + "type":"structure", + "members":{ + "single":{"shape":"QueryConditionItem"} + }, + "union":true + }, + "QueryConditionComparisonOperator":{ + "type":"string", + "enum":["EQUALS"] + }, + "QueryConditionExpression":{ + "type":"list", + "member":{"shape":"QueryCondition"}, + "max":1, + "min":0 + }, + "QueryConditionFieldName":{ + "type":"string", + "enum":["RESULT_TYPE"] + }, + "QueryConditionItem":{ + "type":"structure", + "required":[ + "comparator", + "field", + "value" + ], + "members":{ + "comparator":{"shape":"QueryConditionComparisonOperator"}, + "field":{"shape":"QueryConditionFieldName"}, + "value":{"shape":"NonEmptyString"} + } + }, + "QueryRecommendationTriggerData":{ + "type":"structure", + "members":{ + "text":{"shape":"QueryText"} + } + }, + "QueryResultType":{ + "type":"string", + "enum":[ + "KNOWLEDGE_CONTENT", + "GENERATIVE_ANSWER" + ] + }, + "QueryResultsList":{ + "type":"list", + "member":{"shape":"ResultData"} + }, + "QueryText":{ + "type":"string", + "max":1024, + "min":0, + "sensitive":true + }, + "QuickResponseContent":{ + "type":"string", + "max":1024, + "min":1, + "sensitive":true + }, + "QuickResponseContentProvider":{ + "type":"structure", + "members":{ + "content":{"shape":"QuickResponseContent"} + }, + "union":true + }, + "QuickResponseContents":{ + "type":"structure", + "members":{ + "markdown":{"shape":"QuickResponseContentProvider"}, + "plainText":{"shape":"QuickResponseContentProvider"} + } + }, + "QuickResponseData":{ + "type":"structure", + "required":[ + "contentType", + "createdTime", + "knowledgeBaseArn", + "knowledgeBaseId", + "lastModifiedTime", + "name", + "quickResponseArn", + "quickResponseId", + "status" + ], + "members":{ + "channels":{"shape":"Channels"}, + "contentType":{"shape":"QuickResponseType"}, + "contents":{"shape":"QuickResponseContents"}, + "createdTime":{"shape":"SyntheticTimestamp_epoch_seconds"}, + "description":{"shape":"QuickResponseDescription"}, + "groupingConfiguration":{"shape":"GroupingConfiguration"}, + "isActive":{"shape":"Boolean"}, + "knowledgeBaseArn":{"shape":"Arn"}, + "knowledgeBaseId":{"shape":"Uuid"}, + "language":{"shape":"LanguageCode"}, + "lastModifiedBy":{"shape":"GenericArn"}, + "lastModifiedTime":{"shape":"SyntheticTimestamp_epoch_seconds"}, + "name":{"shape":"QuickResponseName"}, + "quickResponseArn":{"shape":"Arn"}, + "quickResponseId":{"shape":"Uuid"}, + "shortcutKey":{"shape":"ShortCutKey"}, + "status":{"shape":"QuickResponseStatus"}, + "tags":{"shape":"Tags"} + } + }, + "QuickResponseDataProvider":{ + "type":"structure", + "members":{ + "content":{"shape":"QuickResponseContent"} + }, + "union":true + }, + "QuickResponseDescription":{ + "type":"string", + "max":255, + "min":1 + }, + "QuickResponseFilterField":{ + "type":"structure", + "required":[ + "name", + "operator" + ], + "members":{ + "includeNoExistence":{"shape":"Boolean"}, + "name":{"shape":"NonEmptyString"}, + "operator":{"shape":"QuickResponseFilterOperator"}, + "values":{"shape":"QuickResponseFilterValueList"} + } + }, + "QuickResponseFilterFieldList":{ + "type":"list", + "member":{"shape":"QuickResponseFilterField"}, + "max":10, + "min":0 + }, + "QuickResponseFilterOperator":{ + "type":"string", + "enum":[ + "EQUALS", + "PREFIX" + ] + }, + "QuickResponseFilterValue":{ + "type":"string", + "max":2048, + "min":1 + }, + "QuickResponseFilterValueList":{ + "type":"list", + "member":{"shape":"QuickResponseFilterValue"}, + "max":5, + "min":1 + }, + "QuickResponseName":{ + "type":"string", + "max":40, + "min":1 + }, + "QuickResponseOrderField":{ + "type":"structure", + "required":["name"], + "members":{ + "name":{"shape":"NonEmptyString"}, + "order":{"shape":"Order"} + } + }, + "QuickResponseQueryField":{ + "type":"structure", + "required":[ + "name", + "operator", + "values" + ], + "members":{ + "allowFuzziness":{"shape":"Boolean"}, + "name":{"shape":"NonEmptyString"}, + "operator":{"shape":"QuickResponseQueryOperator"}, + "priority":{"shape":"Priority"}, + "values":{"shape":"QuickResponseQueryValueList"} + } + }, + "QuickResponseQueryFieldList":{ + "type":"list", + "member":{"shape":"QuickResponseQueryField"}, + "max":4, + "min":0 + }, + "QuickResponseQueryOperator":{ + "type":"string", + "enum":[ + "CONTAINS", + "CONTAINS_AND_PREFIX" + ] + }, + "QuickResponseQueryValue":{ + "type":"string", + "max":1024, + "min":1 + }, + "QuickResponseQueryValueList":{ + "type":"list", + "member":{"shape":"QuickResponseQueryValue"}, + "max":5, + "min":1 + }, + "QuickResponseSearchExpression":{ + "type":"structure", + "members":{ + "filters":{"shape":"QuickResponseFilterFieldList"}, + "orderOnField":{"shape":"QuickResponseOrderField"}, + "queries":{"shape":"QuickResponseQueryFieldList"} + } + }, + "QuickResponseSearchResultData":{ + "type":"structure", + "required":[ + "contentType", + "contents", + "createdTime", + "isActive", + "knowledgeBaseArn", + "knowledgeBaseId", + "lastModifiedTime", + "name", + "quickResponseArn", + "quickResponseId", + "status" + ], + "members":{ + "attributesInterpolated":{"shape":"ContactAttributeKeys"}, + "attributesNotInterpolated":{"shape":"ContactAttributeKeys"}, + "channels":{"shape":"Channels"}, + "contentType":{"shape":"QuickResponseType"}, + "contents":{"shape":"QuickResponseContents"}, + "createdTime":{"shape":"SyntheticTimestamp_epoch_seconds"}, + "description":{"shape":"QuickResponseDescription"}, + "groupingConfiguration":{"shape":"GroupingConfiguration"}, + "isActive":{"shape":"Boolean"}, + "knowledgeBaseArn":{"shape":"Arn"}, + "knowledgeBaseId":{"shape":"Uuid"}, + "language":{"shape":"LanguageCode"}, + "lastModifiedBy":{"shape":"GenericArn"}, + "lastModifiedTime":{"shape":"SyntheticTimestamp_epoch_seconds"}, + "name":{"shape":"QuickResponseName"}, + "quickResponseArn":{"shape":"Arn"}, + "quickResponseId":{"shape":"Uuid"}, + "shortcutKey":{"shape":"ShortCutKey"}, + "status":{"shape":"QuickResponseStatus"}, + "tags":{"shape":"Tags"} + } + }, + "QuickResponseSearchResultsList":{ + "type":"list", + "member":{"shape":"QuickResponseSearchResultData"} + }, + "QuickResponseStatus":{ + "type":"string", + "enum":[ + "CREATE_IN_PROGRESS", + "CREATE_FAILED", + "CREATED", + "DELETE_IN_PROGRESS", + "DELETE_FAILED", + "DELETED", + "UPDATE_IN_PROGRESS", + "UPDATE_FAILED" + ] + }, + "QuickResponseSummary":{ + "type":"structure", + "required":[ + "contentType", + "createdTime", + "knowledgeBaseArn", + "knowledgeBaseId", + "lastModifiedTime", + "name", + "quickResponseArn", + "quickResponseId", + "status" + ], + "members":{ + "channels":{"shape":"Channels"}, + "contentType":{"shape":"QuickResponseType"}, + "createdTime":{"shape":"SyntheticTimestamp_epoch_seconds"}, + "description":{"shape":"QuickResponseDescription"}, + "isActive":{"shape":"Boolean"}, + "knowledgeBaseArn":{"shape":"Arn"}, + "knowledgeBaseId":{"shape":"Uuid"}, + "lastModifiedBy":{"shape":"GenericArn"}, + "lastModifiedTime":{"shape":"SyntheticTimestamp_epoch_seconds"}, + "name":{"shape":"QuickResponseName"}, + "quickResponseArn":{"shape":"Arn"}, + "quickResponseId":{"shape":"Uuid"}, + "status":{"shape":"QuickResponseStatus"}, + "tags":{"shape":"Tags"} + } + }, + "QuickResponseSummaryList":{ + "type":"list", + "member":{"shape":"QuickResponseSummary"} + }, + "QuickResponseType":{ + "type":"string", + "pattern":"^(application/x\\.quickresponse;format=(plain|markdown))$" + }, + "RankingData":{ + "type":"structure", + "members":{ + "relevanceLevel":{"shape":"RelevanceLevel"}, + "relevanceScore":{"shape":"RelevanceScore"} + } + }, + "RecommendationData":{ + "type":"structure", + "required":["recommendationId"], + "members":{ + "data":{"shape":"DataSummary"}, + "document":{"shape":"Document"}, + "recommendationId":{"shape":"RecommendationId"}, + "relevanceLevel":{"shape":"RelevanceLevel"}, + "relevanceScore":{"shape":"RelevanceScore"}, + "type":{"shape":"RecommendationType"} + } + }, + "RecommendationId":{ + "type":"string", + "max":2048, + "min":1 + }, + "RecommendationIdList":{ + "type":"list", + "member":{"shape":"RecommendationId"}, + "max":25, + "min":0 + }, + "RecommendationList":{ + "type":"list", + "member":{"shape":"RecommendationData"} + }, + "RecommendationSourceType":{ + "type":"string", + "enum":[ + "ISSUE_DETECTION", + "RULE_EVALUATION", + "OTHER" + ] + }, + "RecommendationTrigger":{ + "type":"structure", + "required":[ + "data", + "id", + "recommendationIds", + "source", + "type" + ], + "members":{ + "data":{"shape":"RecommendationTriggerData"}, + "id":{"shape":"Uuid"}, + "recommendationIds":{"shape":"RecommendationIdList"}, + "source":{"shape":"RecommendationSourceType"}, + "type":{"shape":"RecommendationTriggerType"} + } + }, + "RecommendationTriggerData":{ + "type":"structure", + "members":{ + "query":{"shape":"QueryRecommendationTriggerData"} + }, + "union":true + }, + "RecommendationTriggerList":{ + "type":"list", + "member":{"shape":"RecommendationTrigger"} + }, + "RecommendationTriggerType":{ + "type":"string", + "enum":[ + "QUERY", + "GENERATIVE" + ] + }, + "RecommendationType":{ + "type":"string", + "enum":[ + "KNOWLEDGE_CONTENT", + "GENERATIVE_RESPONSE", + "GENERATIVE_ANSWER" + ] + }, + "RelevanceLevel":{ + "type":"string", + "enum":[ + "HIGH", + "MEDIUM", + "LOW" + ] + }, + "RelevanceScore":{ + "type":"double", + "min":0.0 + }, + "RemoveKnowledgeBaseTemplateUriRequest":{ + "type":"structure", + "required":["knowledgeBaseId"], + "members":{ + "knowledgeBaseId":{ + "shape":"UuidOrArn", + "location":"uri", + "locationName":"knowledgeBaseId" + } + } + }, + "RemoveKnowledgeBaseTemplateUriResponse":{ + "type":"structure", + "members":{ + } + }, + "RenderingConfiguration":{ + "type":"structure", + "members":{ + "templateUri":{"shape":"Uri"} + } + }, + "RequestTimeoutException":{ + "type":"structure", + "members":{ + "message":{"shape":"String"} + }, + "error":{ + "httpStatusCode":408, + "senderFault":true + }, + "exception":true, + "retryable":{"throttling":false} + }, + "ResourceNotFoundException":{ + "type":"structure", + "members":{ + "message":{"shape":"String"}, + "resourceName":{"shape":"String"} + }, + "error":{ + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + "ResultData":{ + "type":"structure", + "required":["resultId"], + "members":{ + "data":{"shape":"DataSummary"}, + "document":{"shape":"Document"}, + "relevanceScore":{"shape":"RelevanceScore"}, + "resultId":{"shape":"Uuid"}, + "type":{"shape":"QueryResultType"} + } + }, + "SearchContentRequest":{ + "type":"structure", + "required":[ + "knowledgeBaseId", + "searchExpression" + ], + "members":{ + "knowledgeBaseId":{ + "shape":"UuidOrArn", + "location":"uri", + "locationName":"knowledgeBaseId" + }, + "maxResults":{ + "shape":"MaxResults", + "location":"querystring", + "locationName":"maxResults" + }, + "nextToken":{ + "shape":"NextToken", + "location":"querystring", + "locationName":"nextToken" + }, + "searchExpression":{"shape":"SearchExpression"} + } + }, + "SearchContentResponse":{ + "type":"structure", + "required":["contentSummaries"], + "members":{ + "contentSummaries":{"shape":"ContentSummaryList"}, + "nextToken":{"shape":"NextToken"} + } + }, + "SearchExpression":{ + "type":"structure", + "required":["filters"], + "members":{ + "filters":{"shape":"FilterList"} + } + }, + "SearchQuickResponsesRequest":{ + "type":"structure", + "required":[ + "knowledgeBaseId", + "searchExpression" + ], + "members":{ + "attributes":{"shape":"ContactAttributes"}, + "knowledgeBaseId":{ + "shape":"UuidOrArn", + "location":"uri", + "locationName":"knowledgeBaseId" + }, + "maxResults":{ + "shape":"MaxResults", + "location":"querystring", + "locationName":"maxResults" + }, + "nextToken":{ + "shape":"NonEmptyString", + "location":"querystring", + "locationName":"nextToken" + }, + "searchExpression":{"shape":"QuickResponseSearchExpression"} + } + }, + "SearchQuickResponsesResponse":{ + "type":"structure", + "required":["results"], + "members":{ + "nextToken":{"shape":"NonEmptyString"}, + "results":{"shape":"QuickResponseSearchResultsList"} + } + }, + "SearchSessionsRequest":{ + "type":"structure", + "required":[ + "assistantId", + "searchExpression" + ], + "members":{ + "assistantId":{ + "shape":"UuidOrArn", + "location":"uri", + "locationName":"assistantId" + }, + "maxResults":{ + "shape":"MaxResults", + "location":"querystring", + "locationName":"maxResults" + }, + "nextToken":{ + "shape":"NextToken", + "location":"querystring", + "locationName":"nextToken" + }, + "searchExpression":{"shape":"SearchExpression"} + } + }, + "SearchSessionsResponse":{ + "type":"structure", + "required":["sessionSummaries"], + "members":{ + "nextToken":{"shape":"NextToken"}, + "sessionSummaries":{"shape":"SessionSummaries"} + } + }, + "SensitiveString":{ + "type":"string", + "sensitive":true + }, + "ServerSideEncryptionConfiguration":{ + "type":"structure", + "members":{ + "kmsKeyId":{"shape":"NonEmptyString"} + } + }, + "ServiceQuotaExceededException":{ + "type":"structure", + "members":{ + "message":{"shape":"String"} + }, + "error":{ + "httpStatusCode":402, + "senderFault":true + }, + "exception":true + }, + "SessionData":{ + "type":"structure", + "required":[ + "name", + "sessionArn", + "sessionId" + ], + "members":{ + "description":{"shape":"Description"}, + "integrationConfiguration":{"shape":"SessionIntegrationConfiguration"}, + "name":{"shape":"Name"}, + "sessionArn":{"shape":"Arn"}, + "sessionId":{"shape":"Uuid"}, + "tags":{"shape":"Tags"} + } + }, + "SessionIntegrationConfiguration":{ + "type":"structure", + "members":{ + "topicIntegrationArn":{"shape":"GenericArn"} + } + }, + "SessionSummaries":{ + "type":"list", + "member":{"shape":"SessionSummary"} + }, + "SessionSummary":{ + "type":"structure", + "required":[ + "assistantArn", + "assistantId", + "sessionArn", + "sessionId" + ], + "members":{ + "assistantArn":{"shape":"Arn"}, + "assistantId":{"shape":"Uuid"}, + "sessionArn":{"shape":"Arn"}, + "sessionId":{"shape":"Uuid"} + } + }, + "ShortCutKey":{ + "type":"string", + "max":10, + "min":1 + }, + "SourceConfiguration":{ + "type":"structure", + "members":{ + "appIntegrations":{"shape":"AppIntegrationsConfiguration"} + }, + "union":true + }, + "SourceContentDataDetails":{ + "type":"structure", + "required":[ + "id", + "rankingData", + "textData", + "type" + ], + "members":{ + "id":{"shape":"Uuid"}, + "rankingData":{"shape":"RankingData"}, + "textData":{"shape":"TextData"}, + "type":{"shape":"SourceContentType"} + } + }, + "SourceContentType":{ + "type":"string", + "enum":["KNOWLEDGE_CONTENT"] + }, + "StartContentUploadRequest":{ + "type":"structure", + "required":[ + "contentType", + "knowledgeBaseId" + ], + "members":{ + "contentType":{"shape":"ContentType"}, + "knowledgeBaseId":{ + "shape":"UuidOrArn", + "location":"uri", + "locationName":"knowledgeBaseId" + }, + "presignedUrlTimeToLive":{"shape":"TimeToLive"} + } + }, + "StartContentUploadResponse":{ + "type":"structure", + "required":[ + "headersToInclude", + "uploadId", + "url", + "urlExpiry" + ], + "members":{ + "headersToInclude":{"shape":"Headers"}, + "uploadId":{"shape":"UploadId"}, + "url":{"shape":"Url"}, + "urlExpiry":{"shape":"SyntheticTimestamp_epoch_seconds"} + } + }, + "StartImportJobRequest":{ + "type":"structure", + "required":[ + "importJobType", + "knowledgeBaseId", + "uploadId" + ], + "members":{ + "clientToken":{ + "shape":"NonEmptyString", + "idempotencyToken":true + }, + "externalSourceConfiguration":{"shape":"ExternalSourceConfiguration"}, + "importJobType":{"shape":"ImportJobType"}, + "knowledgeBaseId":{ + "shape":"UuidOrArn", + "location":"uri", + "locationName":"knowledgeBaseId" + }, + "metadata":{"shape":"ContentMetadata"}, + "uploadId":{"shape":"UploadId"} + } + }, + "StartImportJobResponse":{ + "type":"structure", + "members":{ + "importJob":{"shape":"ImportJobData"} + } + }, + "String":{"type":"string"}, + "SyntheticTimestamp_epoch_seconds":{ + "type":"timestamp", + "timestampFormat":"unixTimestamp" + }, + "TagKey":{ + "type":"string", + "max":128, + "min":1, + "pattern":"^(?!aws:)[a-zA-Z+-=._:/]+$" + }, + "TagKeyList":{ + "type":"list", + "member":{"shape":"TagKey"}, + "max":50, + "min":1 + }, + "TagResourceRequest":{ + "type":"structure", + "required":[ + "resourceArn", + "tags" + ], + "members":{ + "resourceArn":{ + "shape":"Arn", + "location":"uri", + "locationName":"resourceArn" + }, + "tags":{"shape":"Tags"} + } + }, + "TagResourceResponse":{ + "type":"structure", + "members":{ + } + }, + "TagValue":{ + "type":"string", + "max":256, + "min":1 + }, + "Tags":{ + "type":"map", + "key":{"shape":"TagKey"}, + "value":{"shape":"TagValue"} + }, + "TextData":{ + "type":"structure", + "members":{ + "excerpt":{"shape":"DocumentText"}, + "title":{"shape":"DocumentText"} + } + }, + "TimeToLive":{ + "type":"integer", + "box":true, + "max":60, + "min":1 + }, + "TooManyTagsException":{ + "type":"structure", + "members":{ + "message":{"shape":"String"}, + "resourceName":{"shape":"String"} + }, + "error":{ + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "UntagResourceRequest":{ + "type":"structure", + "required":[ + "resourceArn", + "tagKeys" + ], + "members":{ + "resourceArn":{ + "shape":"Arn", + "location":"uri", + "locationName":"resourceArn" + }, + "tagKeys":{ + "shape":"TagKeyList", + "location":"querystring", + "locationName":"tagKeys" + } + } + }, + "UntagResourceResponse":{ + "type":"structure", + "members":{ + } + }, + "UpdateContentRequest":{ + "type":"structure", + "required":[ + "contentId", + "knowledgeBaseId" + ], + "members":{ + "contentId":{ + "shape":"UuidOrArn", + "location":"uri", + "locationName":"contentId" + }, + "knowledgeBaseId":{ + "shape":"UuidOrArn", + "location":"uri", + "locationName":"knowledgeBaseId" + }, + "metadata":{"shape":"ContentMetadata"}, + "overrideLinkOutUri":{"shape":"Uri"}, + "removeOverrideLinkOutUri":{"shape":"Boolean"}, + "revisionId":{"shape":"NonEmptyString"}, + "title":{"shape":"ContentTitle"}, + "uploadId":{"shape":"UploadId"} + } + }, + "UpdateContentResponse":{ + "type":"structure", + "members":{ + "content":{"shape":"ContentData"} + } + }, + "UpdateKnowledgeBaseTemplateUriRequest":{ + "type":"structure", + "required":[ + "knowledgeBaseId", + "templateUri" + ], + "members":{ + "knowledgeBaseId":{ + "shape":"UuidOrArn", + "location":"uri", + "locationName":"knowledgeBaseId" + }, + "templateUri":{"shape":"Uri"} + } + }, + "UpdateKnowledgeBaseTemplateUriResponse":{ + "type":"structure", + "members":{ + "knowledgeBase":{"shape":"KnowledgeBaseData"} + } + }, + "UpdateQuickResponseRequest":{ + "type":"structure", + "required":[ + "knowledgeBaseId", + "quickResponseId" + ], + "members":{ + "channels":{"shape":"Channels"}, + "content":{"shape":"QuickResponseDataProvider"}, + "contentType":{"shape":"QuickResponseType"}, + "description":{"shape":"QuickResponseDescription"}, + "groupingConfiguration":{"shape":"GroupingConfiguration"}, + "isActive":{"shape":"Boolean"}, + "knowledgeBaseId":{ + "shape":"UuidOrArn", + "location":"uri", + "locationName":"knowledgeBaseId" + }, + "language":{"shape":"LanguageCode"}, + "name":{"shape":"QuickResponseName"}, + "quickResponseId":{ + "shape":"UuidOrArn", + "location":"uri", + "locationName":"quickResponseId" + }, + "removeDescription":{"shape":"Boolean"}, + "removeGroupingConfiguration":{"shape":"Boolean"}, + "removeShortcutKey":{"shape":"Boolean"}, + "shortcutKey":{"shape":"ShortCutKey"} + } + }, + "UpdateQuickResponseResponse":{ + "type":"structure", + "members":{ + "quickResponse":{"shape":"QuickResponseData"} + } + }, + "UploadId":{ + "type":"string", + "max":1200, + "min":1 + }, + "Uri":{ + "type":"string", + "max":4096, + "min":1 + }, + "Url":{ + "type":"string", + "max":4096, + "min":1, + "sensitive":true + }, + "Uuid":{ + "type":"string", + "pattern":"^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$" + }, + "UuidOrArn":{ + "type":"string", + "pattern":"^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$|^arn:[a-z-]*?:wisdom:[a-z0-9-]*?:[0-9]{12}:[a-z-]*?/[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}(?:/[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12})?$" + }, + "ValidationException":{ + "type":"structure", + "members":{ + "message":{"shape":"String"} + }, + "error":{ + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "WaitTimeSeconds":{ + "type":"integer", + "max":20, + "min":0 + } + } +} diff --git a/models/apis/qconnect/2020-10-19/docs-2.json b/models/apis/qconnect/2020-10-19/docs-2.json new file mode 100644 index 00000000000..08a2b6dd4b3 --- /dev/null +++ b/models/apis/qconnect/2020-10-19/docs-2.json @@ -0,0 +1,1781 @@ +{ + "version": "2.0", + "service": "

Amazon Q in Connect is a generative AI customer service assistant. It is an LLM-enhanced evolution of Amazon Connect Wisdom that delivers real-time recommendations to help contact center agents resolve customer issues quickly and accurately.

Amazon Q automatically detects customer intent during calls and chats using conversational analytics and natural language understanding (NLU). It then provides agents with immediate, real-time generative responses and suggested actions, and links to relevant documents and articles. Agents can also query Amazon Q directly using natural language or keywords to answer customer requests.

Use the Amazon Q in Connect APIs to create an assistant and a knowledge base, for example, or manage content by uploading custom files.

For more information, see Use Amazon Q in Connect for generative AI powered agent assistance in real-time in the Amazon Connect Administrator Guide.

", + "operations": { + "CreateAssistant": "

Creates an Amazon Q in Connect assistant.

", + "CreateAssistantAssociation": "

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.

", + "CreateContent": "

Creates Amazon Q content. Before to calling this API, use StartContentUpload to upload an asset.

", + "CreateKnowledgeBase": "

Creates a knowledge base.

When using this API, you cannot reuse Amazon AppIntegrations 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:

  1. Call DeleteKnowledgeBase.

  2. Call DeleteDataIntegration.

  3. Call CreateDataIntegration to recreate the DataIntegration or a create different one.

  4. Call CreateKnowledgeBase.

", + "CreateQuickResponse": "

Creates a Amazon Q quick response.

", + "CreateSession": "

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.

", + "DeleteAssistant": "

Deletes an assistant.

", + "DeleteAssistantAssociation": "

Deletes an assistant association.

", + "DeleteContent": "

Deletes the content.

", + "DeleteImportJob": "

Deletes the quick response import job.

", + "DeleteKnowledgeBase": "

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 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 and CreateDataIntegration in the Amazon AppIntegrations API Reference.

", + "DeleteQuickResponse": "

Deletes a quick response.

", + "GetAssistant": "

Retrieves information about an assistant.

", + "GetAssistantAssociation": "

Retrieves information about an assistant association.

", + "GetContent": "

Retrieves content, including a pre-signed URL to download the content.

", + "GetContentSummary": "

Retrieves summary information about the content.

", + "GetImportJob": "

Retrieves the started import job.

", + "GetKnowledgeBase": "

Retrieves information about the knowledge base.

", + "GetQuickResponse": "

Retrieves the quick response.

", + "GetRecommendations": "

Retrieves recommendations for the specified session. To avoid retrieving the same recommendations in subsequent calls, use NotifyRecommendationsReceived. 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.

", + "GetSession": "

Retrieves information for a specified session.

", + "ListAssistantAssociations": "

Lists information about assistant associations.

", + "ListAssistants": "

Lists information about assistants.

", + "ListContents": "

Lists the content.

", + "ListImportJobs": "

Lists information about import jobs.

", + "ListKnowledgeBases": "

Lists the knowledge bases.

", + "ListQuickResponses": "

Lists information about quick response.

", + "ListTagsForResource": "

Lists the tags for the specified resource.

", + "NotifyRecommendationsReceived": "

Removes the specified recommendations from the specified assistant's queue of newly available recommendations. You can use this API in conjunction with GetRecommendations and a waitTimeSeconds input for long-polling behavior and avoiding duplicate recommendations.

", + "QueryAssistant": "

Performs a manual search against the specified assistant. To retrieve recommendations for an assistant, use GetRecommendations.

", + "RemoveKnowledgeBaseTemplateUri": "

Removes a URI template from a knowledge base.

", + "SearchContent": "

Searches for content in a specified knowledge base. Can be used to get a specific content resource by its name.

", + "SearchQuickResponses": "

Searches existing Amazon Q quick responses in a Amazon Q knowledge base.

", + "SearchSessions": "

Searches for sessions.

", + "StartContentUpload": "

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 to finalize the content creation process or UpdateContent to modify an existing resource. You can only upload content to a knowledge base of type CUSTOM.

", + "StartImportJob": "

Start an asynchronous job to import Amazon Q resources from an uploaded source file. Before calling this API, use StartContentUpload to upload an asset that contains the resource data.

", + "TagResource": "

Adds the specified tags to the specified resource.

", + "UntagResource": "

Removes the specified tags from the specified resource.

", + "UpdateContent": "

Updates information about the content.

", + "UpdateKnowledgeBaseTemplateUri": "

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.

", + "UpdateQuickResponse": "

Updates an existing Amazon Q quick response.

" + }, + "shapes": { + "AccessDeniedException": { + "base": "

You do not have sufficient access to perform this action.

", + "refs": { + } + }, + "AppIntegrationsConfiguration": { + "base": "

Configuration information for Amazon AppIntegrations to automatically ingest content.

", + "refs": { + "SourceConfiguration$appIntegrations": "

Configuration information for Amazon AppIntegrations to automatically ingest content.

" + } + }, + "Arn": { + "base": null, + "refs": { + "AssistantAssociationData$assistantArn": "

The Amazon Resource Name (ARN) of the Amazon Q assistant.

", + "AssistantAssociationData$assistantAssociationArn": "

The Amazon Resource Name (ARN) of the assistant association.

", + "AssistantAssociationSummary$assistantArn": "

The Amazon Resource Name (ARN) of the Amazon Q assistant.

", + "AssistantAssociationSummary$assistantAssociationArn": "

The Amazon Resource Name (ARN) of the assistant association.

", + "AssistantData$assistantArn": "

The Amazon Resource Name (ARN) of the Amazon Q assistant.

", + "AssistantSummary$assistantArn": "

The Amazon Resource Name (ARN) of the Amazon Q assistant.

", + "ContentData$contentArn": "

The Amazon Resource Name (ARN) of the content.

", + "ContentData$knowledgeBaseArn": "

The Amazon Resource Name (ARN) of the knowledge base.

", + "ContentReference$contentArn": "

The Amazon Resource Name (ARN) of the content.

", + "ContentReference$knowledgeBaseArn": "

The Amazon Resource Name (ARN) of the knowledge base.

", + "ContentSummary$contentArn": "

The Amazon Resource Name (ARN) of the content.

", + "ContentSummary$knowledgeBaseArn": "

The Amazon Resource Name (ARN) of the knowledge base.

", + "ImportJobData$knowledgeBaseArn": "

The Amazon Resource Name (ARN) of the knowledge base.

", + "ImportJobSummary$knowledgeBaseArn": "

The Amazon Resource Name (ARN) of the knowledge base.

", + "KnowledgeBaseAssociationData$knowledgeBaseArn": "

The Amazon Resource Name (ARN) of the knowledge base.

", + "KnowledgeBaseData$knowledgeBaseArn": "

The Amazon Resource Name (ARN) of the knowledge base.

", + "KnowledgeBaseSummary$knowledgeBaseArn": "

The Amazon Resource Name (ARN) of the knowledge base.

", + "ListTagsForResourceRequest$resourceArn": "

The Amazon Resource Name (ARN) of the resource.

", + "QuickResponseData$knowledgeBaseArn": "

The Amazon Resource Name (ARN) of the knowledge base.

", + "QuickResponseData$quickResponseArn": "

The Amazon Resource Name (ARN) of the quick response.

", + "QuickResponseSearchResultData$knowledgeBaseArn": "

The Amazon Resource Name (ARN) of the knowledge base.

", + "QuickResponseSearchResultData$quickResponseArn": "

The Amazon Resource Name (ARN) of the quick response.

", + "QuickResponseSummary$knowledgeBaseArn": "

The Amazon Resource Name (ARN) of the knowledge base.

", + "QuickResponseSummary$quickResponseArn": "

The Amazon Resource Name (ARN) of the quick response.

", + "SessionData$sessionArn": "

The Amazon Resource Name (ARN) of the session.

", + "SessionSummary$assistantArn": "

The Amazon Resource Name (ARN) of the Amazon Q assistant.

", + "SessionSummary$sessionArn": "

The Amazon Resource Name (ARN) of the session.

", + "TagResourceRequest$resourceArn": "

The Amazon Resource Name (ARN) of the resource.

", + "UntagResourceRequest$resourceArn": "

The Amazon Resource Name (ARN) of the resource.

" + } + }, + "AssistantAssociationData": { + "base": "

Information about the assistant association.

", + "refs": { + "CreateAssistantAssociationResponse$assistantAssociation": "

The assistant association.

", + "GetAssistantAssociationResponse$assistantAssociation": "

The assistant association.

" + } + }, + "AssistantAssociationInputData": { + "base": "

The data that is input into Amazon Q as a result of the assistant association.

", + "refs": { + "CreateAssistantAssociationRequest$association": "

The identifier of the associated resource.

" + } + }, + "AssistantAssociationOutputData": { + "base": "

The data that is output as a result of the assistant association.

", + "refs": { + "AssistantAssociationData$associationData": "

A union type that currently has a single argument, the knowledge base ID.

", + "AssistantAssociationSummary$associationData": "

The association data.

" + } + }, + "AssistantAssociationSummary": { + "base": "

Summary information about the assistant association.

", + "refs": { + "AssistantAssociationSummaryList$member": null + } + }, + "AssistantAssociationSummaryList": { + "base": null, + "refs": { + "ListAssistantAssociationsResponse$assistantAssociationSummaries": "

Summary information about assistant associations.

" + } + }, + "AssistantCapabilityConfiguration": { + "base": "

The capability configuration for a Amazon Q assistant.

", + "refs": { + "AssistantData$capabilityConfiguration": "

The configuration information for the Amazon Q assistant capability.

", + "AssistantSummary$capabilityConfiguration": "

The configuration information for the Amazon Q assistant capability.

" + } + }, + "AssistantCapabilityType": { + "base": null, + "refs": { + "AssistantCapabilityConfiguration$type": "

The type of Amazon Q assistant capability.

" + } + }, + "AssistantData": { + "base": "

The assistant data.

", + "refs": { + "CreateAssistantResponse$assistant": "

Information about the assistant.

", + "GetAssistantResponse$assistant": "

Information about the assistant.

" + } + }, + "AssistantIntegrationConfiguration": { + "base": "

The configuration information for the Amazon Q assistant integration.

", + "refs": { + "AssistantData$integrationConfiguration": "

The configuration information for the Amazon Q assistant integration.

", + "AssistantSummary$integrationConfiguration": "

The configuration information for the Amazon Q assistant integration.

" + } + }, + "AssistantList": { + "base": null, + "refs": { + "ListAssistantsResponse$assistantSummaries": "

Information about the assistants.

" + } + }, + "AssistantStatus": { + "base": null, + "refs": { + "AssistantData$status": "

The status of the assistant.

", + "AssistantSummary$status": "

The status of the assistant.

" + } + }, + "AssistantSummary": { + "base": "

Summary information about the assistant.

", + "refs": { + "AssistantList$member": null + } + }, + "AssistantType": { + "base": null, + "refs": { + "AssistantData$type": "

The type of assistant.

", + "AssistantSummary$type": "

The type of the assistant.

", + "CreateAssistantRequest$type": "

The type of assistant.

" + } + }, + "AssociationType": { + "base": null, + "refs": { + "AssistantAssociationData$associationType": "

The type of association.

", + "AssistantAssociationSummary$associationType": "

The type of association.

", + "CreateAssistantAssociationRequest$associationType": "

The type of association.

" + } + }, + "Boolean": { + "base": null, + "refs": { + "CreateQuickResponseRequest$isActive": "

Whether the quick response is active.

", + "QuickResponseData$isActive": "

Whether the quick response is active.

", + "QuickResponseFilterField$includeNoExistence": "

Whether to treat null value as a match for the attribute field.

", + "QuickResponseQueryField$allowFuzziness": "

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.

", + "QuickResponseSearchResultData$isActive": "

Whether the quick response is active.

", + "QuickResponseSummary$isActive": "

Whether the quick response is active.

", + "UpdateContentRequest$removeOverrideLinkOutUri": "

Unset the existing overrideLinkOutUri if it exists.

", + "UpdateQuickResponseRequest$isActive": "

Whether the quick response is active.

", + "UpdateQuickResponseRequest$removeDescription": "

Whether to remove the description from the quick response.

", + "UpdateQuickResponseRequest$removeGroupingConfiguration": "

Whether to remove the grouping configuration of the quick response.

", + "UpdateQuickResponseRequest$removeShortcutKey": "

Whether to remove the shortcut key of the quick response.

" + } + }, + "Channel": { + "base": null, + "refs": { + "Channels$member": null + } + }, + "Channels": { + "base": null, + "refs": { + "CreateQuickResponseRequest$channels": "

The Amazon Connect channels this quick response applies to.

", + "QuickResponseData$channels": "

The Amazon Connect contact channels this quick response applies to. The supported contact channel types include Chat.

", + "QuickResponseSearchResultData$channels": "

The Amazon Connect contact channels this quick response applies to. The supported contact channel types include Chat.

", + "QuickResponseSummary$channels": "

The Amazon Connect contact channels this quick response applies to. The supported contact channel types include Chat.

", + "UpdateQuickResponseRequest$channels": "

The Amazon Connect contact channels this quick response applies to. The supported contact channel types include Chat.

" + } + }, + "ClientToken": { + "base": null, + "refs": { + "CreateAssistantAssociationRequest$clientToken": "

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.

", + "CreateAssistantRequest$clientToken": "

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.

", + "CreateSessionRequest$clientToken": "

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.

" + } + }, + "Configuration": { + "base": "

The configuration information of the external data source.

", + "refs": { + "ExternalSourceConfiguration$configuration": "

The configuration information of the external data source.

" + } + }, + "ConflictException": { + "base": "

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.

", + "refs": { + } + }, + "ConnectConfiguration": { + "base": "

The configuration information of the Amazon Connect data source.

", + "refs": { + "Configuration$connectConfiguration": "

The configuration information of the Amazon Connect data source.

" + } + }, + "ContactAttributeKey": { + "base": null, + "refs": { + "ContactAttributeKeys$member": null, + "ContactAttributes$key": null + } + }, + "ContactAttributeKeys": { + "base": null, + "refs": { + "QuickResponseSearchResultData$attributesInterpolated": "

The user defined contact attributes that are resolved when the search result is returned.

", + "QuickResponseSearchResultData$attributesNotInterpolated": "

The user defined contact attributes that are not resolved when the search result is returned.

" + } + }, + "ContactAttributeValue": { + "base": null, + "refs": { + "ContactAttributes$value": null + } + }, + "ContactAttributes": { + "base": null, + "refs": { + "SearchQuickResponsesRequest$attributes": "

The user-defined Amazon Connect contact attributes to be resolved when search results are returned.

" + } + }, + "ContentData": { + "base": "

Information about the content.

", + "refs": { + "CreateContentResponse$content": "

The content.

", + "GetContentResponse$content": "

The content.

", + "UpdateContentResponse$content": "

The content.

" + } + }, + "ContentDataDetails": { + "base": "

Details about the content data.

", + "refs": { + "DataDetails$contentData": "

Details about the content data.

" + } + }, + "ContentMetadata": { + "base": null, + "refs": { + "ContentData$metadata": "

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.

", + "ContentSummary$metadata": "

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.

", + "CreateContentRequest$metadata": "

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.

", + "ImportJobData$metadata": "

The metadata fields of the imported Amazon Q resources.

", + "ImportJobSummary$metadata": "

The metadata fields of the imported Amazon Q resources.

", + "StartImportJobRequest$metadata": "

The metadata fields of the imported Amazon Q resources.

", + "UpdateContentRequest$metadata": "

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.

" + } + }, + "ContentReference": { + "base": "

Reference information about the content.

", + "refs": { + "DataReference$contentReference": null, + "Document$contentReference": "

A reference to the content resource.

" + } + }, + "ContentStatus": { + "base": null, + "refs": { + "ContentData$status": "

The status of the content.

", + "ContentSummary$status": "

The status of the content.

" + } + }, + "ContentSummary": { + "base": "

Summary information about the content.

", + "refs": { + "ContentSummaryList$member": null, + "GetContentSummaryResponse$contentSummary": "

The content summary.

" + } + }, + "ContentSummaryList": { + "base": null, + "refs": { + "ListContentsResponse$contentSummaries": "

Information about the content.

", + "SearchContentResponse$contentSummaries": "

Summary information about the content.

" + } + }, + "ContentTitle": { + "base": null, + "refs": { + "ContentData$title": "

The title of the content.

", + "ContentSummary$title": "

The title of the content.

", + "CreateContentRequest$title": "

The title of the content. If not set, the title is equal to the name.

", + "UpdateContentRequest$title": "

The title of the content.

" + } + }, + "ContentType": { + "base": null, + "refs": { + "ContentData$contentType": "

The media type of the content.

", + "ContentSummary$contentType": "

The media type of the content.

", + "StartContentUploadRequest$contentType": "

The type of content to upload.

" + } + }, + "CreateAssistantAssociationRequest": { + "base": null, + "refs": { + } + }, + "CreateAssistantAssociationResponse": { + "base": null, + "refs": { + } + }, + "CreateAssistantRequest": { + "base": null, + "refs": { + } + }, + "CreateAssistantResponse": { + "base": null, + "refs": { + } + }, + "CreateContentRequest": { + "base": null, + "refs": { + } + }, + "CreateContentResponse": { + "base": null, + "refs": { + } + }, + "CreateKnowledgeBaseRequest": { + "base": null, + "refs": { + } + }, + "CreateKnowledgeBaseResponse": { + "base": null, + "refs": { + } + }, + "CreateQuickResponseRequest": { + "base": null, + "refs": { + } + }, + "CreateQuickResponseResponse": { + "base": null, + "refs": { + } + }, + "CreateSessionRequest": { + "base": null, + "refs": { + } + }, + "CreateSessionResponse": { + "base": null, + "refs": { + } + }, + "DataDetails": { + "base": "

Details about the data.

", + "refs": { + "DataSummary$details": "

Details about the data.

" + } + }, + "DataReference": { + "base": "

Reference data.

", + "refs": { + "DataSummary$reference": "

Reference information about the content.

" + } + }, + "DataSummary": { + "base": "

Summary of the data.

", + "refs": { + "DataSummaryList$member": null, + "RecommendationData$data": "

Summary of the recommended content.

", + "ResultData$data": "

Summary of the recommended content.

" + } + }, + "DataSummaryList": { + "base": null, + "refs": { + "GenerativeDataDetails$references": "

The references used to generative the LLM response.

" + } + }, + "DeleteAssistantAssociationRequest": { + "base": null, + "refs": { + } + }, + "DeleteAssistantAssociationResponse": { + "base": null, + "refs": { + } + }, + "DeleteAssistantRequest": { + "base": null, + "refs": { + } + }, + "DeleteAssistantResponse": { + "base": null, + "refs": { + } + }, + "DeleteContentRequest": { + "base": null, + "refs": { + } + }, + "DeleteContentResponse": { + "base": null, + "refs": { + } + }, + "DeleteImportJobRequest": { + "base": null, + "refs": { + } + }, + "DeleteImportJobResponse": { + "base": null, + "refs": { + } + }, + "DeleteKnowledgeBaseRequest": { + "base": null, + "refs": { + } + }, + "DeleteKnowledgeBaseResponse": { + "base": null, + "refs": { + } + }, + "DeleteQuickResponseRequest": { + "base": null, + "refs": { + } + }, + "DeleteQuickResponseResponse": { + "base": null, + "refs": { + } + }, + "Description": { + "base": null, + "refs": { + "AssistantData$description": "

The description.

", + "AssistantSummary$description": "

The description of the assistant.

", + "CreateAssistantRequest$description": "

The description of the assistant.

", + "CreateKnowledgeBaseRequest$description": "

The description.

", + "CreateSessionRequest$description": "

The description.

", + "KnowledgeBaseData$description": "

The description.

", + "KnowledgeBaseSummary$description": "

The description of the knowledge base.

", + "SessionData$description": "

The description of the session.

" + } + }, + "Document": { + "base": "

The document.

", + "refs": { + "RecommendationData$document": "

The recommended document.

", + "ResultData$document": "

The document.

" + } + }, + "DocumentText": { + "base": "

The text of the document.

", + "refs": { + "Document$excerpt": "

The excerpt from the document.

", + "Document$title": "

The title of the document.

", + "TextData$excerpt": null, + "TextData$title": null + } + }, + "ExternalSource": { + "base": null, + "refs": { + "ExternalSourceConfiguration$source": "

The type of the external data source.

" + } + }, + "ExternalSourceConfiguration": { + "base": "

The configuration information of the external data source.

", + "refs": { + "ImportJobData$externalSourceConfiguration": null, + "ImportJobSummary$externalSourceConfiguration": "

The configuration information of the external source that the resource data are imported from.

", + "StartImportJobRequest$externalSourceConfiguration": "

The configuration information of the external source that the resource data are imported from.

" + } + }, + "Filter": { + "base": "

A search filter.

", + "refs": { + "FilterList$member": null + } + }, + "FilterField": { + "base": null, + "refs": { + "Filter$field": "

The field on which to filter.

" + } + }, + "FilterList": { + "base": null, + "refs": { + "SearchExpression$filters": "

The search expression filters.

" + } + }, + "FilterOperator": { + "base": null, + "refs": { + "Filter$operator": "

The operator to use for comparing the field’s value with the provided value.

" + } + }, + "GenerativeDataDetails": { + "base": "

Details about generative data.

", + "refs": { + "DataDetails$generativeData": "

Details about the generative data.

" + } + }, + "GenerativeReference": { + "base": "

Reference information about generative content.

", + "refs": { + "DataReference$generativeReference": "

Reference information about the generative content.

" + } + }, + "GenericArn": { + "base": null, + "refs": { + "AppIntegrationsConfiguration$appIntegrationArn": "

The Amazon Resource Name (ARN) of the AppIntegrations DataIntegration to use for ingesting content.

", + "AssistantIntegrationConfiguration$topicIntegrationArn": "

The Amazon Resource Name (ARN) of the integrated Amazon SNS topic used for streaming chat messages.

", + "QuickResponseData$lastModifiedBy": "

The Amazon Resource Name (ARN) of the user who last updated the quick response data.

", + "QuickResponseSearchResultData$lastModifiedBy": "

The Amazon Resource Name (ARN) of the user who last updated the quick response search result data.

", + "QuickResponseSummary$lastModifiedBy": "

The Amazon Resource Name (ARN) of the user who last updated the quick response data.

", + "SessionIntegrationConfiguration$topicIntegrationArn": "

The Amazon Resource Name (ARN) of the integrated Amazon SNS topic used for streaming chat messages.

" + } + }, + "GetAssistantAssociationRequest": { + "base": null, + "refs": { + } + }, + "GetAssistantAssociationResponse": { + "base": null, + "refs": { + } + }, + "GetAssistantRequest": { + "base": null, + "refs": { + } + }, + "GetAssistantResponse": { + "base": null, + "refs": { + } + }, + "GetContentRequest": { + "base": null, + "refs": { + } + }, + "GetContentResponse": { + "base": null, + "refs": { + } + }, + "GetContentSummaryRequest": { + "base": null, + "refs": { + } + }, + "GetContentSummaryResponse": { + "base": null, + "refs": { + } + }, + "GetImportJobRequest": { + "base": null, + "refs": { + } + }, + "GetImportJobResponse": { + "base": null, + "refs": { + } + }, + "GetKnowledgeBaseRequest": { + "base": null, + "refs": { + } + }, + "GetKnowledgeBaseResponse": { + "base": null, + "refs": { + } + }, + "GetQuickResponseRequest": { + "base": null, + "refs": { + } + }, + "GetQuickResponseResponse": { + "base": null, + "refs": { + } + }, + "GetRecommendationsRequest": { + "base": null, + "refs": { + } + }, + "GetRecommendationsResponse": { + "base": null, + "refs": { + } + }, + "GetSessionRequest": { + "base": null, + "refs": { + } + }, + "GetSessionResponse": { + "base": null, + "refs": { + } + }, + "GroupingConfiguration": { + "base": "

The configuration information of the grouping of Amazon Q users.

", + "refs": { + "CreateQuickResponseRequest$groupingConfiguration": "

The configuration information of the user groups that the quick response is accessible to.

", + "QuickResponseData$groupingConfiguration": "

The configuration information of the user groups that the quick response is accessible to.

", + "QuickResponseSearchResultData$groupingConfiguration": "

The configuration information of the user groups that the quick response is accessible to.

", + "UpdateQuickResponseRequest$groupingConfiguration": "

The updated grouping configuration of the quick response.

" + } + }, + "GroupingCriteria": { + "base": null, + "refs": { + "GroupingConfiguration$criteria": "

The criteria used for grouping Amazon Q users.

The following is the list of supported criteria values.

" + } + }, + "GroupingValue": { + "base": null, + "refs": { + "GroupingValues$member": null + } + }, + "GroupingValues": { + "base": null, + "refs": { + "GroupingConfiguration$values": "

The list of values that define different groups of Amazon Q users.

" + } + }, + "Headers": { + "base": null, + "refs": { + "StartContentUploadResponse$headersToInclude": "

The headers to include in the upload.

" + } + }, + "Highlight": { + "base": "

Offset specification to describe highlighting of document excerpts for rendering search results and recommendations.

", + "refs": { + "Highlights$member": null + } + }, + "HighlightOffset": { + "base": null, + "refs": { + "Highlight$beginOffsetInclusive": "

The offset for the start of the highlight.

", + "Highlight$endOffsetExclusive": "

The offset for the end of the highlight.

" + } + }, + "Highlights": { + "base": null, + "refs": { + "DocumentText$highlights": "

Highlights in the document text.

" + } + }, + "ImportJobData": { + "base": "

Summary information about the import job.

", + "refs": { + "GetImportJobResponse$importJob": "

The import job.

", + "StartImportJobResponse$importJob": "

The import job.

" + } + }, + "ImportJobList": { + "base": null, + "refs": { + "ListImportJobsResponse$importJobSummaries": "

Summary information about the import jobs.

" + } + }, + "ImportJobStatus": { + "base": null, + "refs": { + "ImportJobData$status": "

The status of the import job.

", + "ImportJobSummary$status": "

The status of the import job.

" + } + }, + "ImportJobSummary": { + "base": "

Summary information about the import job.

", + "refs": { + "ImportJobList$member": null + } + }, + "ImportJobType": { + "base": null, + "refs": { + "ImportJobData$importJobType": "

The type of the import job.

", + "ImportJobSummary$importJobType": "

The type of import job.

", + "StartImportJobRequest$importJobType": "

The type of the import job.

" + } + }, + "KnowledgeBaseAssociationData": { + "base": "

Association information about the knowledge base.

", + "refs": { + "AssistantAssociationOutputData$knowledgeBaseAssociation": "

The knowledge base where output data is sent.

" + } + }, + "KnowledgeBaseData": { + "base": "

Information about the knowledge base.

", + "refs": { + "CreateKnowledgeBaseResponse$knowledgeBase": "

The knowledge base.

", + "GetKnowledgeBaseResponse$knowledgeBase": "

The knowledge base.

", + "UpdateKnowledgeBaseTemplateUriResponse$knowledgeBase": "

The knowledge base to update.

" + } + }, + "KnowledgeBaseList": { + "base": null, + "refs": { + "ListKnowledgeBasesResponse$knowledgeBaseSummaries": "

Information about the knowledge bases.

" + } + }, + "KnowledgeBaseStatus": { + "base": null, + "refs": { + "KnowledgeBaseData$status": "

The status of the knowledge base.

", + "KnowledgeBaseSummary$status": "

The status of the knowledge base summary.

" + } + }, + "KnowledgeBaseSummary": { + "base": "

Summary information about the knowledge base.

", + "refs": { + "KnowledgeBaseList$member": null + } + }, + "KnowledgeBaseType": { + "base": null, + "refs": { + "CreateKnowledgeBaseRequest$knowledgeBaseType": "

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.

", + "KnowledgeBaseData$knowledgeBaseType": "

The type of knowledge base.

", + "KnowledgeBaseSummary$knowledgeBaseType": "

The type of knowledge base.

" + } + }, + "LanguageCode": { + "base": null, + "refs": { + "CreateQuickResponseRequest$language": "

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

", + "QuickResponseData$language": "

The language code value for the language in which the quick response is written.

", + "QuickResponseSearchResultData$language": "

The language code value for the language in which the quick response is written.

", + "UpdateQuickResponseRequest$language": "

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

" + } + }, + "ListAssistantAssociationsRequest": { + "base": null, + "refs": { + } + }, + "ListAssistantAssociationsResponse": { + "base": null, + "refs": { + } + }, + "ListAssistantsRequest": { + "base": null, + "refs": { + } + }, + "ListAssistantsResponse": { + "base": null, + "refs": { + } + }, + "ListContentsRequest": { + "base": null, + "refs": { + } + }, + "ListContentsResponse": { + "base": null, + "refs": { + } + }, + "ListImportJobsRequest": { + "base": null, + "refs": { + } + }, + "ListImportJobsResponse": { + "base": null, + "refs": { + } + }, + "ListKnowledgeBasesRequest": { + "base": null, + "refs": { + } + }, + "ListKnowledgeBasesResponse": { + "base": null, + "refs": { + } + }, + "ListQuickResponsesRequest": { + "base": null, + "refs": { + } + }, + "ListQuickResponsesResponse": { + "base": null, + "refs": { + } + }, + "ListTagsForResourceRequest": { + "base": null, + "refs": { + } + }, + "ListTagsForResourceResponse": { + "base": null, + "refs": { + } + }, + "LlmModelId": { + "base": null, + "refs": { + "GenerativeReference$modelId": "

The identifier of the LLM model.

" + } + }, + "MaxResults": { + "base": null, + "refs": { + "GetRecommendationsRequest$maxResults": "

The maximum number of results to return per page.

", + "ListAssistantAssociationsRequest$maxResults": "

The maximum number of results to return per page.

", + "ListAssistantsRequest$maxResults": "

The maximum number of results to return per page.

", + "ListContentsRequest$maxResults": "

The maximum number of results to return per page.

", + "ListImportJobsRequest$maxResults": "

The maximum number of results to return per page.

", + "ListKnowledgeBasesRequest$maxResults": "

The maximum number of results to return per page.

", + "ListQuickResponsesRequest$maxResults": "

The maximum number of results to return per page.

", + "QueryAssistantRequest$maxResults": "

The maximum number of results to return per page.

", + "SearchContentRequest$maxResults": "

The maximum number of results to return per page.

", + "SearchQuickResponsesRequest$maxResults": "

The maximum number of results to return per page.

", + "SearchSessionsRequest$maxResults": "

The maximum number of results to return per page.

" + } + }, + "Name": { + "base": null, + "refs": { + "AssistantData$name": "

The name.

", + "AssistantSummary$name": "

The name of the assistant.

", + "ContentData$name": "

The name of the content.

", + "ContentSummary$name": "

The name of the content.

", + "CreateAssistantRequest$name": "

The name of the assistant.

", + "CreateContentRequest$name": "

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 API.

", + "CreateKnowledgeBaseRequest$name": "

The name of the knowledge base.

", + "CreateSessionRequest$name": "

The name of the session.

", + "KnowledgeBaseData$name": "

The name of the knowledge base.

", + "KnowledgeBaseSummary$name": "

The name of the knowledge base.

", + "SessionData$name": "

The name of the session.

" + } + }, + "NextToken": { + "base": null, + "refs": { + "ListAssistantAssociationsRequest$nextToken": "

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.

", + "ListAssistantAssociationsResponse$nextToken": "

If there are additional results, this is the token for the next set of results.

", + "ListAssistantsRequest$nextToken": "

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.

", + "ListAssistantsResponse$nextToken": "

If there are additional results, this is the token for the next set of results.

", + "ListContentsRequest$nextToken": "

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.

", + "ListContentsResponse$nextToken": "

If there are additional results, this is the token for the next set of results.

", + "QueryAssistantRequest$nextToken": "

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.

", + "QueryAssistantResponse$nextToken": "

If there are additional results, this is the token for the next set of results.

", + "SearchContentRequest$nextToken": "

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.

", + "SearchContentResponse$nextToken": "

If there are additional results, this is the token for the next set of results.

", + "SearchSessionsRequest$nextToken": "

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.

", + "SearchSessionsResponse$nextToken": "

If there are additional results, this is the token for the next set of results.

" + } + }, + "NonEmptyString": { + "base": null, + "refs": { + "ConnectConfiguration$instanceId": "

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

", + "ContentData$revisionId": "

The identifier of the content revision.

", + "ContentMetadata$key": null, + "ContentMetadata$value": null, + "ContentSummary$revisionId": "

The identifier of the revision of the content.

", + "CreateContentRequest$clientToken": "

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.

", + "CreateKnowledgeBaseRequest$clientToken": "

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.

", + "CreateQuickResponseRequest$clientToken": "

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.

", + "Filter$value": "

The desired field value on which to filter.

", + "Headers$key": null, + "Headers$value": null, + "ListImportJobsRequest$nextToken": "

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.

", + "ListImportJobsResponse$nextToken": "

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.

", + "ListKnowledgeBasesRequest$nextToken": "

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.

", + "ListKnowledgeBasesResponse$nextToken": "

If there are additional results, this is the token for the next set of results.

", + "ListQuickResponsesRequest$nextToken": "

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.

", + "ListQuickResponsesResponse$nextToken": "

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.

", + "ObjectFieldsList$member": null, + "QueryConditionItem$value": "

The value for the query condition to query on.

", + "QuickResponseFilterField$name": "

The name of the attribute field to filter the quick responses by.

", + "QuickResponseOrderField$name": "

The name of the attribute to order the quick response query results by.

", + "QuickResponseQueryField$name": "

The name of the attribute to query the quick responses by.

", + "SearchQuickResponsesRequest$nextToken": "

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.

", + "SearchQuickResponsesResponse$nextToken": "

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.

", + "ServerSideEncryptionConfiguration$kmsKeyId": "

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. For information about valid ID values, see Key identifiers (KeyId).

", + "StartImportJobRequest$clientToken": "

The tags used to organize, track, or control access for this resource.

", + "UpdateContentRequest$revisionId": "

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.

" + } + }, + "NotifyRecommendationsReceivedError": { + "base": "

An error occurred when creating a recommendation.

", + "refs": { + "NotifyRecommendationsReceivedErrorList$member": null + } + }, + "NotifyRecommendationsReceivedErrorList": { + "base": null, + "refs": { + "NotifyRecommendationsReceivedResponse$errors": "

The identifiers of recommendations that are causing errors.

" + } + }, + "NotifyRecommendationsReceivedErrorMessage": { + "base": null, + "refs": { + "NotifyRecommendationsReceivedError$message": "

A recommendation is causing an error.

" + } + }, + "NotifyRecommendationsReceivedRequest": { + "base": null, + "refs": { + } + }, + "NotifyRecommendationsReceivedResponse": { + "base": null, + "refs": { + } + }, + "ObjectFieldsList": { + "base": null, + "refs": { + "AppIntegrationsConfiguration$objectFields": "

The fields from the source that are made available to your agents in Amazon Q. Optional if ObjectConfiguration is included in the provided DataIntegration.

Make sure to include additional fields. These fields are indexed and used to source recommendations.

" + } + }, + "Order": { + "base": null, + "refs": { + "QuickResponseOrderField$order": "

The order at which the quick responses are sorted by.

" + } + }, + "PreconditionFailedException": { + "base": "

The provided revisionId does not match, indicating the content has been modified since it was last read.

", + "refs": { + } + }, + "Priority": { + "base": null, + "refs": { + "QuickResponseQueryField$priority": "

The importance of the attribute field when calculating query result relevancy scores. The value set for this parameter affects the ordering of search results.

" + } + }, + "QueryAssistantRequest": { + "base": null, + "refs": { + } + }, + "QueryAssistantResponse": { + "base": null, + "refs": { + } + }, + "QueryCondition": { + "base": "

Information about how to query content.

", + "refs": { + "QueryConditionExpression$member": null + } + }, + "QueryConditionComparisonOperator": { + "base": null, + "refs": { + "QueryConditionItem$comparator": "

The comparison operator for query condition to query on.

" + } + }, + "QueryConditionExpression": { + "base": null, + "refs": { + "QueryAssistantRequest$queryCondition": "

Information about how to query content.

" + } + }, + "QueryConditionFieldName": { + "base": null, + "refs": { + "QueryConditionItem$field": "

The name of the field for query condition to query on.

" + } + }, + "QueryConditionItem": { + "base": "

The condition for the query.

", + "refs": { + "QueryCondition$single": "

The condition for the query.

" + } + }, + "QueryRecommendationTriggerData": { + "base": "

Data associated with the QUERY RecommendationTriggerType.

", + "refs": { + "RecommendationTriggerData$query": "

Data associated with the QUERY RecommendationTriggerType.

" + } + }, + "QueryResultType": { + "base": null, + "refs": { + "ResultData$type": "

The type of the query result.

" + } + }, + "QueryResultsList": { + "base": null, + "refs": { + "QueryAssistantResponse$results": "

The results of the query.

" + } + }, + "QueryText": { + "base": null, + "refs": { + "QueryAssistantRequest$queryText": "

The text to search for.

", + "QueryRecommendationTriggerData$text": "

The text associated with the recommendation trigger.

" + } + }, + "QuickResponseContent": { + "base": null, + "refs": { + "QuickResponseContentProvider$content": "

The content of the quick response.

", + "QuickResponseDataProvider$content": "

The content of the quick response.

" + } + }, + "QuickResponseContentProvider": { + "base": "

The container quick response content.

", + "refs": { + "QuickResponseContents$markdown": null, + "QuickResponseContents$plainText": null + } + }, + "QuickResponseContents": { + "base": "

The content of the quick response stored in different media types.

", + "refs": { + "QuickResponseData$contents": "

The contents of the quick response.

", + "QuickResponseSearchResultData$contents": "

The contents of the quick response.

" + } + }, + "QuickResponseData": { + "base": "

Information about the quick response.

", + "refs": { + "CreateQuickResponseResponse$quickResponse": "

The quick response.

", + "GetQuickResponseResponse$quickResponse": "

The quick response.

", + "UpdateQuickResponseResponse$quickResponse": "

The quick response.

" + } + }, + "QuickResponseDataProvider": { + "base": "

The container of quick response data.

", + "refs": { + "CreateQuickResponseRequest$content": "

The content of the quick response.

", + "UpdateQuickResponseRequest$content": "

The updated content of the quick response.

" + } + }, + "QuickResponseDescription": { + "base": null, + "refs": { + "CreateQuickResponseRequest$description": "

The description of the quick response.

", + "QuickResponseData$description": "

The description of the quick response.

", + "QuickResponseSearchResultData$description": "

The description of the quick response.

", + "QuickResponseSummary$description": "

The description of the quick response.

", + "UpdateQuickResponseRequest$description": "

The updated description of the quick response.

" + } + }, + "QuickResponseFilterField": { + "base": "

The quick response fields to filter the quick response query results by.

The following is the list of supported field names.

", + "refs": { + "QuickResponseFilterFieldList$member": null + } + }, + "QuickResponseFilterFieldList": { + "base": null, + "refs": { + "QuickResponseSearchExpression$filters": "

The configuration of filtering rules applied to quick response query results.

" + } + }, + "QuickResponseFilterOperator": { + "base": null, + "refs": { + "QuickResponseFilterField$operator": "

The operator to use for filtering.

" + } + }, + "QuickResponseFilterValue": { + "base": null, + "refs": { + "QuickResponseFilterValueList$member": null + } + }, + "QuickResponseFilterValueList": { + "base": null, + "refs": { + "QuickResponseFilterField$values": "

The values of attribute field to filter the quick response by.

" + } + }, + "QuickResponseName": { + "base": null, + "refs": { + "CreateQuickResponseRequest$name": "

The name of the quick response.

", + "QuickResponseData$name": "

The name of the quick response.

", + "QuickResponseSearchResultData$name": "

The name of the quick response.

", + "QuickResponseSummary$name": "

The name of the quick response.

", + "UpdateQuickResponseRequest$name": "

The name of the quick response.

" + } + }, + "QuickResponseOrderField": { + "base": "

The quick response fields to order the quick response query results by.

The following is the list of supported field names.

", + "refs": { + "QuickResponseSearchExpression$orderOnField": "

The quick response attribute fields on which the query results are ordered.

" + } + }, + "QuickResponseQueryField": { + "base": "

The quick response fields to query quick responses by.

The following is the list of supported field names.

", + "refs": { + "QuickResponseQueryFieldList$member": null + } + }, + "QuickResponseQueryFieldList": { + "base": null, + "refs": { + "QuickResponseSearchExpression$queries": "

The quick response query expressions.

" + } + }, + "QuickResponseQueryOperator": { + "base": null, + "refs": { + "QuickResponseQueryField$operator": "

The operator to use for matching attribute field values in the query.

" + } + }, + "QuickResponseQueryValue": { + "base": null, + "refs": { + "QuickResponseQueryValueList$member": null + } + }, + "QuickResponseQueryValueList": { + "base": null, + "refs": { + "QuickResponseQueryField$values": "

The values of the attribute to query the quick responses by.

" + } + }, + "QuickResponseSearchExpression": { + "base": "

Information about the import job.

", + "refs": { + "SearchQuickResponsesRequest$searchExpression": "

The search expression for querying the quick response.

" + } + }, + "QuickResponseSearchResultData": { + "base": "

The result of quick response search.

", + "refs": { + "QuickResponseSearchResultsList$member": null + } + }, + "QuickResponseSearchResultsList": { + "base": null, + "refs": { + "SearchQuickResponsesResponse$results": "

The results of the quick response search.

" + } + }, + "QuickResponseStatus": { + "base": null, + "refs": { + "QuickResponseData$status": "

The status of the quick response data.

", + "QuickResponseSearchResultData$status": "

The resource status of the quick response.

", + "QuickResponseSummary$status": "

The resource status of the quick response.

" + } + }, + "QuickResponseSummary": { + "base": "

The summary information about the quick response.

", + "refs": { + "QuickResponseSummaryList$member": null + } + }, + "QuickResponseSummaryList": { + "base": null, + "refs": { + "ListQuickResponsesResponse$quickResponseSummaries": "

Summary information about the quick responses.

" + } + }, + "QuickResponseType": { + "base": null, + "refs": { + "CreateQuickResponseRequest$contentType": "

The media type of the quick response content.

", + "QuickResponseData$contentType": "

The media type of the quick response content.

", + "QuickResponseSearchResultData$contentType": "

The media type of the quick response content.

", + "QuickResponseSummary$contentType": "

The media type of the quick response content.

", + "UpdateQuickResponseRequest$contentType": "

The media type of the quick response content.

" + } + }, + "RankingData": { + "base": "

Details about the source content ranking data.

", + "refs": { + "ContentDataDetails$rankingData": "

Details about the content ranking data.

", + "GenerativeDataDetails$rankingData": "

Details about the generative content ranking data.

", + "SourceContentDataDetails$rankingData": "

Details about the source content ranking data.

" + } + }, + "RecommendationData": { + "base": "

Information about the recommendation.

", + "refs": { + "RecommendationList$member": null + } + }, + "RecommendationId": { + "base": null, + "refs": { + "NotifyRecommendationsReceivedError$recommendationId": "

The identifier of the recommendation that is in error.

", + "RecommendationData$recommendationId": "

The identifier of the recommendation.

", + "RecommendationIdList$member": null + } + }, + "RecommendationIdList": { + "base": null, + "refs": { + "NotifyRecommendationsReceivedRequest$recommendationIds": "

The identifiers of the recommendations.

", + "NotifyRecommendationsReceivedResponse$recommendationIds": "

The identifiers of the recommendations.

", + "RecommendationTrigger$recommendationIds": "

The identifiers of the recommendations.

" + } + }, + "RecommendationList": { + "base": null, + "refs": { + "GetRecommendationsResponse$recommendations": "

The recommendations.

" + } + }, + "RecommendationSourceType": { + "base": null, + "refs": { + "RecommendationTrigger$source": "

The source of the recommendation trigger.

" + } + }, + "RecommendationTrigger": { + "base": "

A recommendation trigger provides context on the event that produced the referenced recommendations. Recommendations are only referenced in recommendationIds by a single RecommendationTrigger.

", + "refs": { + "RecommendationTriggerList$member": null + } + }, + "RecommendationTriggerData": { + "base": "

A union type containing information related to the trigger.

", + "refs": { + "RecommendationTrigger$data": "

A union type containing information related to the trigger.

" + } + }, + "RecommendationTriggerList": { + "base": null, + "refs": { + "GetRecommendationsResponse$triggers": "

The triggers corresponding to recommendations.

" + } + }, + "RecommendationTriggerType": { + "base": null, + "refs": { + "RecommendationTrigger$type": "

The type of recommendation trigger.

" + } + }, + "RecommendationType": { + "base": null, + "refs": { + "RecommendationData$type": "

The type of recommendation.

" + } + }, + "RelevanceLevel": { + "base": null, + "refs": { + "RankingData$relevanceLevel": "

The relevance score of the content.

", + "RecommendationData$relevanceLevel": "

The relevance level of the recommendation.

" + } + }, + "RelevanceScore": { + "base": null, + "refs": { + "RankingData$relevanceScore": "

The relevance level of the recommendation.

", + "RecommendationData$relevanceScore": "

The relevance score of the recommendation.

", + "ResultData$relevanceScore": "

The relevance score of the results.

" + } + }, + "RemoveKnowledgeBaseTemplateUriRequest": { + "base": null, + "refs": { + } + }, + "RemoveKnowledgeBaseTemplateUriResponse": { + "base": null, + "refs": { + } + }, + "RenderingConfiguration": { + "base": "

Information about how to render the content.

", + "refs": { + "CreateKnowledgeBaseRequest$renderingConfiguration": "

Information about how to render the content.

", + "KnowledgeBaseData$renderingConfiguration": "

Information about how to render the content.

", + "KnowledgeBaseSummary$renderingConfiguration": "

Information about how to render the content.

" + } + }, + "RequestTimeoutException": { + "base": "

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.

", + "refs": { + } + }, + "ResourceNotFoundException": { + "base": "

The specified resource does not exist.

", + "refs": { + } + }, + "ResultData": { + "base": "

Information about the result.

", + "refs": { + "QueryResultsList$member": null + } + }, + "SearchContentRequest": { + "base": null, + "refs": { + } + }, + "SearchContentResponse": { + "base": null, + "refs": { + } + }, + "SearchExpression": { + "base": "

The search expression.

", + "refs": { + "SearchContentRequest$searchExpression": "

The search expression to filter results.

", + "SearchSessionsRequest$searchExpression": "

The search expression to filter results.

" + } + }, + "SearchQuickResponsesRequest": { + "base": null, + "refs": { + } + }, + "SearchQuickResponsesResponse": { + "base": null, + "refs": { + } + }, + "SearchSessionsRequest": { + "base": null, + "refs": { + } + }, + "SearchSessionsResponse": { + "base": null, + "refs": { + } + }, + "SensitiveString": { + "base": null, + "refs": { + "DocumentText$text": "

Text in the document.

", + "GenerativeDataDetails$completion": "

The LLM response.

" + } + }, + "ServerSideEncryptionConfiguration": { + "base": "

The configuration information for the customer managed key used for encryption.

", + "refs": { + "AssistantData$serverSideEncryptionConfiguration": "

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.

", + "AssistantSummary$serverSideEncryptionConfiguration": "

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.

", + "CreateAssistantRequest$serverSideEncryptionConfiguration": "

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.

", + "CreateKnowledgeBaseRequest$serverSideEncryptionConfiguration": "

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.

", + "KnowledgeBaseData$serverSideEncryptionConfiguration": "

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.

", + "KnowledgeBaseSummary$serverSideEncryptionConfiguration": "

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.

" + } + }, + "ServiceQuotaExceededException": { + "base": "

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.

", + "refs": { + } + }, + "SessionData": { + "base": "

Information about the session.

", + "refs": { + "CreateSessionResponse$session": "

The session.

", + "GetSessionResponse$session": "

The session.

" + } + }, + "SessionIntegrationConfiguration": { + "base": "

The configuration information for the session integration.

", + "refs": { + "SessionData$integrationConfiguration": "

The configuration information for the session integration.

" + } + }, + "SessionSummaries": { + "base": null, + "refs": { + "SearchSessionsResponse$sessionSummaries": "

Summary information about the sessions.

" + } + }, + "SessionSummary": { + "base": "

Summary information about the session.

", + "refs": { + "SessionSummaries$member": null + } + }, + "ShortCutKey": { + "base": null, + "refs": { + "CreateQuickResponseRequest$shortcutKey": "

The shortcut key of the quick response. The value should be unique across the knowledge base.

", + "QuickResponseData$shortcutKey": "

The shortcut key of the quick response. The value should be unique across the knowledge base.

", + "QuickResponseSearchResultData$shortcutKey": "

The shortcut key of the quick response. The value should be unique across the knowledge base.

", + "UpdateQuickResponseRequest$shortcutKey": "

The shortcut key of the quick response. The value should be unique across the knowledge base.

" + } + }, + "SourceConfiguration": { + "base": "

Configuration information about the external data source.

", + "refs": { + "CreateKnowledgeBaseRequest$sourceConfiguration": "

The source of the knowledge base content. Only set this argument for EXTERNAL knowledge bases.

", + "KnowledgeBaseData$sourceConfiguration": "

Source configuration information about the knowledge base.

", + "KnowledgeBaseSummary$sourceConfiguration": "

Configuration information about the external data source.

" + } + }, + "SourceContentDataDetails": { + "base": "

Details about the source content data.

", + "refs": { + "DataDetails$sourceContentData": "

Details about the content data.

" + } + }, + "SourceContentType": { + "base": null, + "refs": { + "SourceContentDataDetails$type": "

The type of the source content.

" + } + }, + "StartContentUploadRequest": { + "base": null, + "refs": { + } + }, + "StartContentUploadResponse": { + "base": null, + "refs": { + } + }, + "StartImportJobRequest": { + "base": null, + "refs": { + } + }, + "StartImportJobResponse": { + "base": null, + "refs": { + } + }, + "String": { + "base": null, + "refs": { + "AccessDeniedException$message": null, + "ConflictException$message": null, + "PreconditionFailedException$message": null, + "RequestTimeoutException$message": null, + "ResourceNotFoundException$message": null, + "ResourceNotFoundException$resourceName": "

The specified resource name.

", + "ServiceQuotaExceededException$message": null, + "TooManyTagsException$message": null, + "TooManyTagsException$resourceName": "

The specified resource name.

", + "ValidationException$message": null + } + }, + "SyntheticTimestamp_epoch_seconds": { + "base": null, + "refs": { + "ContentData$urlExpiry": "

The expiration time of the URL as an epoch timestamp.

", + "ImportJobData$createdTime": "

The timestamp when the import job was created.

", + "ImportJobData$lastModifiedTime": "

The timestamp when the import job data was last modified.

", + "ImportJobData$urlExpiry": "

The expiration time of the URL as an epoch timestamp.

", + "ImportJobSummary$createdTime": "

The timestamp when the import job was created.

", + "ImportJobSummary$lastModifiedTime": "

The timestamp when the import job was last modified.

", + "KnowledgeBaseData$lastContentModificationTime": "

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.

", + "QuickResponseData$createdTime": "

The timestamp when the quick response was created.

", + "QuickResponseData$lastModifiedTime": "

The timestamp when the quick response data was last modified.

", + "QuickResponseSearchResultData$createdTime": "

The timestamp when the quick response was created.

", + "QuickResponseSearchResultData$lastModifiedTime": "

The timestamp when the quick response search result data was last modified.

", + "QuickResponseSummary$createdTime": "

The timestamp when the quick response was created.

", + "QuickResponseSummary$lastModifiedTime": "

The timestamp when the quick response summary was last modified.

", + "StartContentUploadResponse$urlExpiry": "

The expiration time of the URL as an epoch timestamp.

" + } + }, + "TagKey": { + "base": null, + "refs": { + "TagKeyList$member": null, + "Tags$key": null + } + }, + "TagKeyList": { + "base": null, + "refs": { + "UntagResourceRequest$tagKeys": "

The tag keys.

" + } + }, + "TagResourceRequest": { + "base": null, + "refs": { + } + }, + "TagResourceResponse": { + "base": null, + "refs": { + } + }, + "TagValue": { + "base": null, + "refs": { + "Tags$value": null + } + }, + "Tags": { + "base": null, + "refs": { + "AssistantAssociationData$tags": "

The tags used to organize, track, or control access for this resource.

", + "AssistantAssociationSummary$tags": "

The tags used to organize, track, or control access for this resource.

", + "AssistantData$tags": "

The tags used to organize, track, or control access for this resource.

", + "AssistantSummary$tags": "

The tags used to organize, track, or control access for this resource.

", + "ContentData$tags": "

The tags used to organize, track, or control access for this resource.

", + "ContentSummary$tags": "

The tags used to organize, track, or control access for this resource.

", + "CreateAssistantAssociationRequest$tags": "

The tags used to organize, track, or control access for this resource.

", + "CreateAssistantRequest$tags": "

The tags used to organize, track, or control access for this resource.

", + "CreateContentRequest$tags": "

The tags used to organize, track, or control access for this resource.

", + "CreateKnowledgeBaseRequest$tags": "

The tags used to organize, track, or control access for this resource.

", + "CreateQuickResponseRequest$tags": "

The tags used to organize, track, or control access for this resource.

", + "CreateSessionRequest$tags": "

The tags used to organize, track, or control access for this resource.

", + "KnowledgeBaseData$tags": "

The tags used to organize, track, or control access for this resource.

", + "KnowledgeBaseSummary$tags": "

The tags used to organize, track, or control access for this resource.

", + "ListTagsForResourceResponse$tags": "

The tags used to organize, track, or control access for this resource.

", + "QuickResponseData$tags": "

The tags used to organize, track, or control access for this resource.

", + "QuickResponseSearchResultData$tags": "

The tags used to organize, track, or control access for this resource.

", + "QuickResponseSummary$tags": "

The tags used to organize, track, or control access for this resource.

", + "SessionData$tags": "

The tags used to organize, track, or control access for this resource.

", + "TagResourceRequest$tags": "

The tags used to organize, track, or control access for this resource.

" + } + }, + "TextData": { + "base": "

Details about the source content text data.

", + "refs": { + "ContentDataDetails$textData": "

Details about the content text data.

", + "SourceContentDataDetails$textData": "

Details about the source content text data.

" + } + }, + "TimeToLive": { + "base": "

Expiration time in minutes

", + "refs": { + "StartContentUploadRequest$presignedUrlTimeToLive": "

The expected expiration time of the generated presigned URL, specified in minutes.

" + } + }, + "TooManyTagsException": { + "base": "

Amazon Q in Connect throws this exception if you have too many tags in your tag set.

", + "refs": { + } + }, + "UntagResourceRequest": { + "base": null, + "refs": { + } + }, + "UntagResourceResponse": { + "base": null, + "refs": { + } + }, + "UpdateContentRequest": { + "base": null, + "refs": { + } + }, + "UpdateContentResponse": { + "base": null, + "refs": { + } + }, + "UpdateKnowledgeBaseTemplateUriRequest": { + "base": null, + "refs": { + } + }, + "UpdateKnowledgeBaseTemplateUriResponse": { + "base": null, + "refs": { + } + }, + "UpdateQuickResponseRequest": { + "base": null, + "refs": { + } + }, + "UpdateQuickResponseResponse": { + "base": null, + "refs": { + } + }, + "UploadId": { + "base": null, + "refs": { + "CreateContentRequest$uploadId": "

A pointer to the uploaded asset. This value is returned by StartContentUpload.

", + "ImportJobData$uploadId": "

A pointer to the uploaded asset. This value is returned by StartContentUpload.

", + "ImportJobSummary$uploadId": "

A pointer to the uploaded asset. This value is returned by StartContentUpload.

", + "StartContentUploadResponse$uploadId": "

The identifier of the upload.

", + "StartImportJobRequest$uploadId": "

A pointer to the uploaded asset. This value is returned by StartContentUpload.

", + "UpdateContentRequest$uploadId": "

A pointer to the uploaded asset. This value is returned by StartContentUpload.

" + } + }, + "Uri": { + "base": null, + "refs": { + "ContentData$linkOutUri": "

The URI of the content.

", + "CreateContentRequest$overrideLinkOutUri": "

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.

", + "RenderingConfiguration$templateUri": "

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:

The variable is replaced with the actual value for a piece of content when calling GetContent.

", + "UpdateContentRequest$overrideLinkOutUri": "

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.

", + "UpdateKnowledgeBaseTemplateUriRequest$templateUri": "

The template URI to update.

" + } + }, + "Url": { + "base": null, + "refs": { + "ContentData$url": "

The URL of the content.

", + "ImportJobData$failedRecordReport": "

The link to donwload the information of resource data that failed to be imported.

", + "ImportJobData$url": "

The download link to the resource file that is uploaded to the import job.

", + "StartContentUploadResponse$url": "

The URL of the upload.

" + } + }, + "Uuid": { + "base": null, + "refs": { + "AssistantAssociationData$assistantAssociationId": "

The identifier of the assistant association.

", + "AssistantAssociationData$assistantId": "

The identifier of the Amazon Q assistant.

", + "AssistantAssociationInputData$knowledgeBaseId": "

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.

", + "AssistantAssociationSummary$assistantAssociationId": "

The identifier of the assistant association.

", + "AssistantAssociationSummary$assistantId": "

The identifier of the Amazon Q assistant.

", + "AssistantData$assistantId": "

The identifier of the Amazon Q assistant.

", + "AssistantSummary$assistantId": "

The identifier of the Amazon Q assistant.

", + "ContentData$contentId": "

The identifier of the content.

", + "ContentData$knowledgeBaseId": "

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.

", + "ContentReference$contentId": "

The identifier of the content.

", + "ContentReference$knowledgeBaseId": "

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.

", + "ContentSummary$contentId": "

The identifier of the content.

", + "ContentSummary$knowledgeBaseId": "

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.

", + "DeleteImportJobRequest$importJobId": "

The identifier of the import job to be deleted.

", + "GenerativeReference$generationId": "

The identifier of the LLM model.

", + "GetImportJobRequest$importJobId": "

The identifier of the import job to retrieve.

", + "ImportJobData$importJobId": "

The identifier of the import job.

", + "ImportJobData$knowledgeBaseId": "

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.

", + "ImportJobSummary$importJobId": "

The identifier of the import job.

", + "ImportJobSummary$knowledgeBaseId": "

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.

", + "KnowledgeBaseAssociationData$knowledgeBaseId": "

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.

", + "KnowledgeBaseData$knowledgeBaseId": "

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.

", + "KnowledgeBaseSummary$knowledgeBaseId": "

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.

", + "QuickResponseData$knowledgeBaseId": "

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.

", + "QuickResponseData$quickResponseId": "

The identifier of the quick response.

", + "QuickResponseSearchResultData$knowledgeBaseId": "

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.

", + "QuickResponseSearchResultData$quickResponseId": "

The identifier of the quick response.

", + "QuickResponseSummary$knowledgeBaseId": "

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.

", + "QuickResponseSummary$quickResponseId": "

The identifier of the quick response.

", + "RecommendationTrigger$id": "

The identifier of the recommendation trigger.

", + "ResultData$resultId": "

The identifier of the result data.

", + "SessionData$sessionId": "

The identifier of the session.

", + "SessionSummary$assistantId": "

The identifier of the Amazon Q assistant.

", + "SessionSummary$sessionId": "

The identifier of the session.

", + "SourceContentDataDetails$id": "

The identifier of the source content.

" + } + }, + "UuidOrArn": { + "base": null, + "refs": { + "CreateAssistantAssociationRequest$assistantId": "

The identifier of the Amazon Q assistant. Can be either the ID or the ARN. URLs cannot contain the ARN.

", + "CreateContentRequest$knowledgeBaseId": "

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.

", + "CreateQuickResponseRequest$knowledgeBaseId": "

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.

", + "CreateSessionRequest$assistantId": "

The identifier of the Amazon Q assistant. Can be either the ID or the ARN. URLs cannot contain the ARN.

", + "DeleteAssistantAssociationRequest$assistantAssociationId": "

The identifier of the assistant association. Can be either the ID or the ARN. URLs cannot contain the ARN.

", + "DeleteAssistantAssociationRequest$assistantId": "

The identifier of the Amazon Q assistant. Can be either the ID or the ARN. URLs cannot contain the ARN.

", + "DeleteAssistantRequest$assistantId": "

The identifier of the Amazon Q assistant. Can be either the ID or the ARN. URLs cannot contain the ARN.

", + "DeleteContentRequest$contentId": "

The identifier of the content. Can be either the ID or the ARN. URLs cannot contain the ARN.

", + "DeleteContentRequest$knowledgeBaseId": "

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.

", + "DeleteImportJobRequest$knowledgeBaseId": "

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.

", + "DeleteKnowledgeBaseRequest$knowledgeBaseId": "

The knowledge base to delete content from. Can be either the ID or the ARN. URLs cannot contain the ARN.

", + "DeleteQuickResponseRequest$knowledgeBaseId": "

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.

", + "DeleteQuickResponseRequest$quickResponseId": "

The identifier of the quick response to delete.

", + "GetAssistantAssociationRequest$assistantAssociationId": "

The identifier of the assistant association. Can be either the ID or the ARN. URLs cannot contain the ARN.

", + "GetAssistantAssociationRequest$assistantId": "

The identifier of the Amazon Q assistant. Can be either the ID or the ARN. URLs cannot contain the ARN.

", + "GetAssistantRequest$assistantId": "

The identifier of the Amazon Q assistant. Can be either the ID or the ARN. URLs cannot contain the ARN.

", + "GetContentRequest$contentId": "

The identifier of the content. Can be either the ID or the ARN. URLs cannot contain the ARN.

", + "GetContentRequest$knowledgeBaseId": "

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.

", + "GetContentSummaryRequest$contentId": "

The identifier of the content. Can be either the ID or the ARN. URLs cannot contain the ARN.

", + "GetContentSummaryRequest$knowledgeBaseId": "

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.

", + "GetImportJobRequest$knowledgeBaseId": "

The identifier of the knowledge base that the import job belongs to.

", + "GetKnowledgeBaseRequest$knowledgeBaseId": "

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.

", + "GetQuickResponseRequest$knowledgeBaseId": "

The identifier of the knowledge base. This should be a QUICK_RESPONSES type knowledge base.

", + "GetQuickResponseRequest$quickResponseId": "

The identifier of the quick response.

", + "GetRecommendationsRequest$assistantId": "

The identifier of the Amazon Q assistant. Can be either the ID or the ARN. URLs cannot contain the ARN.

", + "GetRecommendationsRequest$sessionId": "

The identifier of the session. Can be either the ID or the ARN. URLs cannot contain the ARN.

", + "GetSessionRequest$assistantId": "

The identifier of the Amazon Q assistant. Can be either the ID or the ARN. URLs cannot contain the ARN.

", + "GetSessionRequest$sessionId": "

The identifier of the session. Can be either the ID or the ARN. URLs cannot contain the ARN.

", + "ListAssistantAssociationsRequest$assistantId": "

The identifier of the Amazon Q assistant. Can be either the ID or the ARN. URLs cannot contain the ARN.

", + "ListContentsRequest$knowledgeBaseId": "

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.

", + "ListImportJobsRequest$knowledgeBaseId": "

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.

", + "ListQuickResponsesRequest$knowledgeBaseId": "

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.

", + "NotifyRecommendationsReceivedRequest$assistantId": "

The identifier of the Amazon Q assistant. Can be either the ID or the ARN. URLs cannot contain the ARN.

", + "NotifyRecommendationsReceivedRequest$sessionId": "

The identifier of the session. Can be either the ID or the ARN. URLs cannot contain the ARN.

", + "QueryAssistantRequest$assistantId": "

The identifier of the Amazon Q assistant. Can be either the ID or the ARN. URLs cannot contain the ARN.

", + "QueryAssistantRequest$sessionId": "

The identifier of the Amazon Q session. Can be either the ID or the ARN. URLs cannot contain the ARN.

", + "RemoveKnowledgeBaseTemplateUriRequest$knowledgeBaseId": "

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.

", + "SearchContentRequest$knowledgeBaseId": "

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.

", + "SearchQuickResponsesRequest$knowledgeBaseId": "

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.

", + "SearchSessionsRequest$assistantId": "

The identifier of the Amazon Q assistant. Can be either the ID or the ARN. URLs cannot contain the ARN.

", + "StartContentUploadRequest$knowledgeBaseId": "

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.

", + "StartImportJobRequest$knowledgeBaseId": "

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.

", + "UpdateContentRequest$contentId": "

The identifier of the content. Can be either the ID or the ARN. URLs cannot contain the ARN.

", + "UpdateContentRequest$knowledgeBaseId": "

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

", + "UpdateKnowledgeBaseTemplateUriRequest$knowledgeBaseId": "

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.

", + "UpdateQuickResponseRequest$knowledgeBaseId": "

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.

", + "UpdateQuickResponseRequest$quickResponseId": "

The identifier of the quick response.

" + } + }, + "ValidationException": { + "base": "

The input fails to satisfy the constraints specified by a service.

", + "refs": { + } + }, + "WaitTimeSeconds": { + "base": null, + "refs": { + "GetRecommendationsRequest$waitTimeSeconds": "

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.

" + } + } + } +} diff --git a/models/apis/qconnect/2020-10-19/endpoint-rule-set-1.json b/models/apis/qconnect/2020-10-19/endpoint-rule-set-1.json new file mode 100644 index 00000000000..cc28c8c33e5 --- /dev/null +++ b/models/apis/qconnect/2020-10-19/endpoint-rule-set-1.json @@ -0,0 +1,350 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + } + ], + "type": "tree" + }, + { + "conditions": [], + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Region" + } + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "rules": [ + { + "conditions": [], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://wisdom-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + }, + true + ] + } + ], + "rules": [ + { + "conditions": [], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://wisdom-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "rules": [ + { + "conditions": [], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://wisdom.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://wisdom.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + } + ], + "type": "tree" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "Invalid Configuration: Missing Region", + "type": "error" + } + ], + "type": "tree" + } + ] +} \ No newline at end of file diff --git a/models/apis/qconnect/2020-10-19/endpoint-tests-1.json b/models/apis/qconnect/2020-10-19/endpoint-tests-1.json new file mode 100644 index 00000000000..6357b35cff2 --- /dev/null +++ b/models/apis/qconnect/2020-10-19/endpoint-tests-1.json @@ -0,0 +1,314 @@ +{ + "testCases": [ + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://wisdom-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://wisdom-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://wisdom.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://wisdom.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://wisdom-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://wisdom-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://wisdom.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://wisdom.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://wisdom-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://wisdom-fips.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://wisdom.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://wisdom.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-iso-east-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://wisdom-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-iso-east-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://wisdom.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-isob-east-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://wisdom-fips.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-isob-east-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://wisdom.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For custom endpoint with region set and fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with region not set and fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "Missing region", + "expect": { + "error": "Invalid Configuration: Missing Region" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/models/apis/qconnect/2020-10-19/examples-1.json b/models/apis/qconnect/2020-10-19/examples-1.json new file mode 100644 index 00000000000..0ea7e3b0bbe --- /dev/null +++ b/models/apis/qconnect/2020-10-19/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/models/apis/qconnect/2020-10-19/paginators-1.json b/models/apis/qconnect/2020-10-19/paginators-1.json new file mode 100644 index 00000000000..2d69a269566 --- /dev/null +++ b/models/apis/qconnect/2020-10-19/paginators-1.json @@ -0,0 +1,64 @@ +{ + "pagination": { + "ListAssistantAssociations": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults", + "result_key": "assistantAssociationSummaries" + }, + "ListAssistants": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults", + "result_key": "assistantSummaries" + }, + "ListContents": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults", + "result_key": "contentSummaries" + }, + "ListImportJobs": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults", + "result_key": "importJobSummaries" + }, + "ListKnowledgeBases": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults", + "result_key": "knowledgeBaseSummaries" + }, + "ListQuickResponses": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults", + "result_key": "quickResponseSummaries" + }, + "QueryAssistant": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults", + "result_key": "results" + }, + "SearchContent": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults", + "result_key": "contentSummaries" + }, + "SearchQuickResponses": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults", + "result_key": "results" + }, + "SearchSessions": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults", + "result_key": "sessionSummaries" + } + } +} diff --git a/models/apis/s3/2006-03-01/api-2.json b/models/apis/s3/2006-03-01/api-2.json index 80942e790d6..ebf2ae5a7da 100644 --- a/models/apis/s3/2006-03-01/api-2.json +++ b/models/apis/s3/2006-03-01/api-2.json @@ -49,7 +49,10 @@ {"shape":"ObjectNotInActiveTierError"} ], "documentationUrl":"http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTObjectCOPY.html", - "alias":"PutObjectCopy" + "alias":"PutObjectCopy", + "staticContextParams":{ + "DisableS3ExpressSessionAuth":{"value":true} + } }, "CreateBucket":{ "name":"CreateBucket", @@ -66,7 +69,8 @@ "documentationUrl":"http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketPUT.html", "alias":"PutBucket", "staticContextParams":{ - "DisableAccessPoints":{"value":true} + "DisableAccessPoints":{"value":true}, + "UseS3ExpressControlEndpoint":{"value":true} } }, "CreateMultipartUpload":{ @@ -80,6 +84,21 @@ "documentationUrl":"http://docs.amazonwebservices.com/AmazonS3/latest/API/mpUploadInitiate.html", "alias":"InitiateMultipartUpload" }, + "CreateSession":{ + "name":"CreateSession", + "http":{ + "method":"GET", + "requestUri":"/{Bucket}?session" + }, + "input":{"shape":"CreateSessionRequest"}, + "output":{"shape":"CreateSessionOutput"}, + "errors":[ + {"shape":"NoSuchBucket"} + ], + "staticContextParams":{ + "DisableS3ExpressSessionAuth":{"value":true} + } + }, "DeleteBucket":{ "name":"DeleteBucket", "http":{ @@ -88,7 +107,10 @@ "responseCode":204 }, "input":{"shape":"DeleteBucketRequest"}, - "documentationUrl":"http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketDELETE.html" + "documentationUrl":"http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketDELETE.html", + "staticContextParams":{ + "UseS3ExpressControlEndpoint":{"value":true} + } }, "DeleteBucketAnalyticsConfiguration":{ "name":"DeleteBucketAnalyticsConfiguration", @@ -97,7 +119,10 @@ "requestUri":"/{Bucket}?analytics", "responseCode":204 }, - "input":{"shape":"DeleteBucketAnalyticsConfigurationRequest"} + "input":{"shape":"DeleteBucketAnalyticsConfigurationRequest"}, + "staticContextParams":{ + "UseS3ExpressControlEndpoint":{"value":true} + } }, "DeleteBucketCors":{ "name":"DeleteBucketCors", @@ -107,7 +132,10 @@ "responseCode":204 }, "input":{"shape":"DeleteBucketCorsRequest"}, - "documentationUrl":"http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketDELETEcors.html" + "documentationUrl":"http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketDELETEcors.html", + "staticContextParams":{ + "UseS3ExpressControlEndpoint":{"value":true} + } }, "DeleteBucketEncryption":{ "name":"DeleteBucketEncryption", @@ -116,7 +144,10 @@ "requestUri":"/{Bucket}?encryption", "responseCode":204 }, - "input":{"shape":"DeleteBucketEncryptionRequest"} + "input":{"shape":"DeleteBucketEncryptionRequest"}, + "staticContextParams":{ + "UseS3ExpressControlEndpoint":{"value":true} + } }, "DeleteBucketIntelligentTieringConfiguration":{ "name":"DeleteBucketIntelligentTieringConfiguration", @@ -125,7 +156,10 @@ "requestUri":"/{Bucket}?intelligent-tiering", "responseCode":204 }, - "input":{"shape":"DeleteBucketIntelligentTieringConfigurationRequest"} + "input":{"shape":"DeleteBucketIntelligentTieringConfigurationRequest"}, + "staticContextParams":{ + "UseS3ExpressControlEndpoint":{"value":true} + } }, "DeleteBucketInventoryConfiguration":{ "name":"DeleteBucketInventoryConfiguration", @@ -134,7 +168,10 @@ "requestUri":"/{Bucket}?inventory", "responseCode":204 }, - "input":{"shape":"DeleteBucketInventoryConfigurationRequest"} + "input":{"shape":"DeleteBucketInventoryConfigurationRequest"}, + "staticContextParams":{ + "UseS3ExpressControlEndpoint":{"value":true} + } }, "DeleteBucketLifecycle":{ "name":"DeleteBucketLifecycle", @@ -144,7 +181,10 @@ "responseCode":204 }, "input":{"shape":"DeleteBucketLifecycleRequest"}, - "documentationUrl":"http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketDELETElifecycle.html" + "documentationUrl":"http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketDELETElifecycle.html", + "staticContextParams":{ + "UseS3ExpressControlEndpoint":{"value":true} + } }, "DeleteBucketMetricsConfiguration":{ "name":"DeleteBucketMetricsConfiguration", @@ -153,7 +193,10 @@ "requestUri":"/{Bucket}?metrics", "responseCode":204 }, - "input":{"shape":"DeleteBucketMetricsConfigurationRequest"} + "input":{"shape":"DeleteBucketMetricsConfigurationRequest"}, + "staticContextParams":{ + "UseS3ExpressControlEndpoint":{"value":true} + } }, "DeleteBucketOwnershipControls":{ "name":"DeleteBucketOwnershipControls", @@ -162,7 +205,10 @@ "requestUri":"/{Bucket}?ownershipControls", "responseCode":204 }, - "input":{"shape":"DeleteBucketOwnershipControlsRequest"} + "input":{"shape":"DeleteBucketOwnershipControlsRequest"}, + "staticContextParams":{ + "UseS3ExpressControlEndpoint":{"value":true} + } }, "DeleteBucketPolicy":{ "name":"DeleteBucketPolicy", @@ -172,7 +218,10 @@ "responseCode":204 }, "input":{"shape":"DeleteBucketPolicyRequest"}, - "documentationUrl":"http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketDELETEpolicy.html" + "documentationUrl":"http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketDELETEpolicy.html", + "staticContextParams":{ + "UseS3ExpressControlEndpoint":{"value":true} + } }, "DeleteBucketReplication":{ "name":"DeleteBucketReplication", @@ -181,7 +230,10 @@ "requestUri":"/{Bucket}?replication", "responseCode":204 }, - "input":{"shape":"DeleteBucketReplicationRequest"} + "input":{"shape":"DeleteBucketReplicationRequest"}, + "staticContextParams":{ + "UseS3ExpressControlEndpoint":{"value":true} + } }, "DeleteBucketTagging":{ "name":"DeleteBucketTagging", @@ -191,7 +243,10 @@ "responseCode":204 }, "input":{"shape":"DeleteBucketTaggingRequest"}, - "documentationUrl":"http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketDELETEtagging.html" + "documentationUrl":"http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketDELETEtagging.html", + "staticContextParams":{ + "UseS3ExpressControlEndpoint":{"value":true} + } }, "DeleteBucketWebsite":{ "name":"DeleteBucketWebsite", @@ -201,7 +256,10 @@ "responseCode":204 }, "input":{"shape":"DeleteBucketWebsiteRequest"}, - "documentationUrl":"http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketDELETEwebsite.html" + "documentationUrl":"http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketDELETEwebsite.html", + "staticContextParams":{ + "UseS3ExpressControlEndpoint":{"value":true} + } }, "DeleteObject":{ "name":"DeleteObject", @@ -246,7 +304,10 @@ "requestUri":"/{Bucket}?publicAccessBlock", "responseCode":204 }, - "input":{"shape":"DeletePublicAccessBlockRequest"} + "input":{"shape":"DeletePublicAccessBlockRequest"}, + "staticContextParams":{ + "UseS3ExpressControlEndpoint":{"value":true} + } }, "GetBucketAccelerateConfiguration":{ "name":"GetBucketAccelerateConfiguration", @@ -255,7 +316,10 @@ "requestUri":"/{Bucket}?accelerate" }, "input":{"shape":"GetBucketAccelerateConfigurationRequest"}, - "output":{"shape":"GetBucketAccelerateConfigurationOutput"} + "output":{"shape":"GetBucketAccelerateConfigurationOutput"}, + "staticContextParams":{ + "UseS3ExpressControlEndpoint":{"value":true} + } }, "GetBucketAcl":{ "name":"GetBucketAcl", @@ -265,7 +329,10 @@ }, "input":{"shape":"GetBucketAclRequest"}, "output":{"shape":"GetBucketAclOutput"}, - "documentationUrl":"http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketGETacl.html" + "documentationUrl":"http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketGETacl.html", + "staticContextParams":{ + "UseS3ExpressControlEndpoint":{"value":true} + } }, "GetBucketAnalyticsConfiguration":{ "name":"GetBucketAnalyticsConfiguration", @@ -274,7 +341,10 @@ "requestUri":"/{Bucket}?analytics" }, "input":{"shape":"GetBucketAnalyticsConfigurationRequest"}, - "output":{"shape":"GetBucketAnalyticsConfigurationOutput"} + "output":{"shape":"GetBucketAnalyticsConfigurationOutput"}, + "staticContextParams":{ + "UseS3ExpressControlEndpoint":{"value":true} + } }, "GetBucketCors":{ "name":"GetBucketCors", @@ -284,7 +354,10 @@ }, "input":{"shape":"GetBucketCorsRequest"}, "output":{"shape":"GetBucketCorsOutput"}, - "documentationUrl":"http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketGETcors.html" + "documentationUrl":"http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketGETcors.html", + "staticContextParams":{ + "UseS3ExpressControlEndpoint":{"value":true} + } }, "GetBucketEncryption":{ "name":"GetBucketEncryption", @@ -293,7 +366,10 @@ "requestUri":"/{Bucket}?encryption" }, "input":{"shape":"GetBucketEncryptionRequest"}, - "output":{"shape":"GetBucketEncryptionOutput"} + "output":{"shape":"GetBucketEncryptionOutput"}, + "staticContextParams":{ + "UseS3ExpressControlEndpoint":{"value":true} + } }, "GetBucketIntelligentTieringConfiguration":{ "name":"GetBucketIntelligentTieringConfiguration", @@ -302,7 +378,10 @@ "requestUri":"/{Bucket}?intelligent-tiering" }, "input":{"shape":"GetBucketIntelligentTieringConfigurationRequest"}, - "output":{"shape":"GetBucketIntelligentTieringConfigurationOutput"} + "output":{"shape":"GetBucketIntelligentTieringConfigurationOutput"}, + "staticContextParams":{ + "UseS3ExpressControlEndpoint":{"value":true} + } }, "GetBucketInventoryConfiguration":{ "name":"GetBucketInventoryConfiguration", @@ -311,7 +390,10 @@ "requestUri":"/{Bucket}?inventory" }, "input":{"shape":"GetBucketInventoryConfigurationRequest"}, - "output":{"shape":"GetBucketInventoryConfigurationOutput"} + "output":{"shape":"GetBucketInventoryConfigurationOutput"}, + "staticContextParams":{ + "UseS3ExpressControlEndpoint":{"value":true} + } }, "GetBucketLifecycle":{ "name":"GetBucketLifecycle", @@ -322,7 +404,10 @@ "input":{"shape":"GetBucketLifecycleRequest"}, "output":{"shape":"GetBucketLifecycleOutput"}, "documentationUrl":"http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketGETlifecycle.html", - "deprecated":true + "deprecated":true, + "staticContextParams":{ + "UseS3ExpressControlEndpoint":{"value":true} + } }, "GetBucketLifecycleConfiguration":{ "name":"GetBucketLifecycleConfiguration", @@ -331,7 +416,10 @@ "requestUri":"/{Bucket}?lifecycle" }, "input":{"shape":"GetBucketLifecycleConfigurationRequest"}, - "output":{"shape":"GetBucketLifecycleConfigurationOutput"} + "output":{"shape":"GetBucketLifecycleConfigurationOutput"}, + "staticContextParams":{ + "UseS3ExpressControlEndpoint":{"value":true} + } }, "GetBucketLocation":{ "name":"GetBucketLocation", @@ -341,7 +429,10 @@ }, "input":{"shape":"GetBucketLocationRequest"}, "output":{"shape":"GetBucketLocationOutput"}, - "documentationUrl":"http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketGETlocation.html" + "documentationUrl":"http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketGETlocation.html", + "staticContextParams":{ + "UseS3ExpressControlEndpoint":{"value":true} + } }, "GetBucketLogging":{ "name":"GetBucketLogging", @@ -351,7 +442,10 @@ }, "input":{"shape":"GetBucketLoggingRequest"}, "output":{"shape":"GetBucketLoggingOutput"}, - "documentationUrl":"http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketGETlogging.html" + "documentationUrl":"http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketGETlogging.html", + "staticContextParams":{ + "UseS3ExpressControlEndpoint":{"value":true} + } }, "GetBucketMetricsConfiguration":{ "name":"GetBucketMetricsConfiguration", @@ -360,7 +454,10 @@ "requestUri":"/{Bucket}?metrics" }, "input":{"shape":"GetBucketMetricsConfigurationRequest"}, - "output":{"shape":"GetBucketMetricsConfigurationOutput"} + "output":{"shape":"GetBucketMetricsConfigurationOutput"}, + "staticContextParams":{ + "UseS3ExpressControlEndpoint":{"value":true} + } }, "GetBucketNotification":{ "name":"GetBucketNotification", @@ -371,7 +468,10 @@ "input":{"shape":"GetBucketNotificationConfigurationRequest"}, "output":{"shape":"NotificationConfigurationDeprecated"}, "documentationUrl":"http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketGETnotification.html", - "deprecated":true + "deprecated":true, + "staticContextParams":{ + "UseS3ExpressControlEndpoint":{"value":true} + } }, "GetBucketNotificationConfiguration":{ "name":"GetBucketNotificationConfiguration", @@ -380,7 +480,10 @@ "requestUri":"/{Bucket}?notification" }, "input":{"shape":"GetBucketNotificationConfigurationRequest"}, - "output":{"shape":"NotificationConfiguration"} + "output":{"shape":"NotificationConfiguration"}, + "staticContextParams":{ + "UseS3ExpressControlEndpoint":{"value":true} + } }, "GetBucketOwnershipControls":{ "name":"GetBucketOwnershipControls", @@ -389,7 +492,10 @@ "requestUri":"/{Bucket}?ownershipControls" }, "input":{"shape":"GetBucketOwnershipControlsRequest"}, - "output":{"shape":"GetBucketOwnershipControlsOutput"} + "output":{"shape":"GetBucketOwnershipControlsOutput"}, + "staticContextParams":{ + "UseS3ExpressControlEndpoint":{"value":true} + } }, "GetBucketPolicy":{ "name":"GetBucketPolicy", @@ -399,7 +505,10 @@ }, "input":{"shape":"GetBucketPolicyRequest"}, "output":{"shape":"GetBucketPolicyOutput"}, - "documentationUrl":"http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketGETpolicy.html" + "documentationUrl":"http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketGETpolicy.html", + "staticContextParams":{ + "UseS3ExpressControlEndpoint":{"value":true} + } }, "GetBucketPolicyStatus":{ "name":"GetBucketPolicyStatus", @@ -408,7 +517,10 @@ "requestUri":"/{Bucket}?policyStatus" }, "input":{"shape":"GetBucketPolicyStatusRequest"}, - "output":{"shape":"GetBucketPolicyStatusOutput"} + "output":{"shape":"GetBucketPolicyStatusOutput"}, + "staticContextParams":{ + "UseS3ExpressControlEndpoint":{"value":true} + } }, "GetBucketReplication":{ "name":"GetBucketReplication", @@ -417,7 +529,10 @@ "requestUri":"/{Bucket}?replication" }, "input":{"shape":"GetBucketReplicationRequest"}, - "output":{"shape":"GetBucketReplicationOutput"} + "output":{"shape":"GetBucketReplicationOutput"}, + "staticContextParams":{ + "UseS3ExpressControlEndpoint":{"value":true} + } }, "GetBucketRequestPayment":{ "name":"GetBucketRequestPayment", @@ -427,7 +542,10 @@ }, "input":{"shape":"GetBucketRequestPaymentRequest"}, "output":{"shape":"GetBucketRequestPaymentOutput"}, - "documentationUrl":"http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTrequestPaymentGET.html" + "documentationUrl":"http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTrequestPaymentGET.html", + "staticContextParams":{ + "UseS3ExpressControlEndpoint":{"value":true} + } }, "GetBucketTagging":{ "name":"GetBucketTagging", @@ -437,7 +555,10 @@ }, "input":{"shape":"GetBucketTaggingRequest"}, "output":{"shape":"GetBucketTaggingOutput"}, - "documentationUrl":"http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketGETtagging.html" + "documentationUrl":"http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketGETtagging.html", + "staticContextParams":{ + "UseS3ExpressControlEndpoint":{"value":true} + } }, "GetBucketVersioning":{ "name":"GetBucketVersioning", @@ -447,7 +568,10 @@ }, "input":{"shape":"GetBucketVersioningRequest"}, "output":{"shape":"GetBucketVersioningOutput"}, - "documentationUrl":"http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketGETversioningStatus.html" + "documentationUrl":"http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketGETversioningStatus.html", + "staticContextParams":{ + "UseS3ExpressControlEndpoint":{"value":true} + } }, "GetBucketWebsite":{ "name":"GetBucketWebsite", @@ -457,7 +581,10 @@ }, "input":{"shape":"GetBucketWebsiteRequest"}, "output":{"shape":"GetBucketWebsiteOutput"}, - "documentationUrl":"http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketGETwebsite.html" + "documentationUrl":"http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketGETwebsite.html", + "staticContextParams":{ + "UseS3ExpressControlEndpoint":{"value":true} + } }, "GetObject":{ "name":"GetObject", @@ -560,7 +687,10 @@ "requestUri":"/{Bucket}?publicAccessBlock" }, "input":{"shape":"GetPublicAccessBlockRequest"}, - "output":{"shape":"GetPublicAccessBlockOutput"} + "output":{"shape":"GetPublicAccessBlockOutput"}, + "staticContextParams":{ + "UseS3ExpressControlEndpoint":{"value":true} + } }, "HeadBucket":{ "name":"HeadBucket", @@ -569,6 +699,7 @@ "requestUri":"/{Bucket}" }, "input":{"shape":"HeadBucketRequest"}, + "output":{"shape":"HeadBucketOutput"}, "errors":[ {"shape":"NoSuchBucket"} ], @@ -594,7 +725,10 @@ "requestUri":"/{Bucket}?analytics" }, "input":{"shape":"ListBucketAnalyticsConfigurationsRequest"}, - "output":{"shape":"ListBucketAnalyticsConfigurationsOutput"} + "output":{"shape":"ListBucketAnalyticsConfigurationsOutput"}, + "staticContextParams":{ + "UseS3ExpressControlEndpoint":{"value":true} + } }, "ListBucketIntelligentTieringConfigurations":{ "name":"ListBucketIntelligentTieringConfigurations", @@ -603,7 +737,10 @@ "requestUri":"/{Bucket}?intelligent-tiering" }, "input":{"shape":"ListBucketIntelligentTieringConfigurationsRequest"}, - "output":{"shape":"ListBucketIntelligentTieringConfigurationsOutput"} + "output":{"shape":"ListBucketIntelligentTieringConfigurationsOutput"}, + "staticContextParams":{ + "UseS3ExpressControlEndpoint":{"value":true} + } }, "ListBucketInventoryConfigurations":{ "name":"ListBucketInventoryConfigurations", @@ -612,7 +749,10 @@ "requestUri":"/{Bucket}?inventory" }, "input":{"shape":"ListBucketInventoryConfigurationsRequest"}, - "output":{"shape":"ListBucketInventoryConfigurationsOutput"} + "output":{"shape":"ListBucketInventoryConfigurationsOutput"}, + "staticContextParams":{ + "UseS3ExpressControlEndpoint":{"value":true} + } }, "ListBucketMetricsConfigurations":{ "name":"ListBucketMetricsConfigurations", @@ -633,6 +773,18 @@ "documentationUrl":"http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTServiceGET.html", "alias":"GetService" }, + "ListDirectoryBuckets":{ + "name":"ListDirectoryBuckets", + "http":{ + "method":"GET", + "requestUri":"/" + }, + "input":{"shape":"ListDirectoryBucketsRequest"}, + "output":{"shape":"ListDirectoryBucketsOutput"}, + "staticContextParams":{ + "UseS3ExpressControlEndpoint":{"value":true} + } + }, "ListMultipartUploads":{ "name":"ListMultipartUploads", "http":{ @@ -700,6 +852,9 @@ "httpChecksum":{ "requestAlgorithmMember":"ChecksumAlgorithm", "requestChecksumRequired":false + }, + "staticContextParams":{ + "UseS3ExpressControlEndpoint":{"value":true} } }, "PutBucketAcl":{ @@ -713,6 +868,9 @@ "httpChecksum":{ "requestAlgorithmMember":"ChecksumAlgorithm", "requestChecksumRequired":true + }, + "staticContextParams":{ + "UseS3ExpressControlEndpoint":{"value":true} } }, "PutBucketAnalyticsConfiguration":{ @@ -721,7 +879,10 @@ "method":"PUT", "requestUri":"/{Bucket}?analytics" }, - "input":{"shape":"PutBucketAnalyticsConfigurationRequest"} + "input":{"shape":"PutBucketAnalyticsConfigurationRequest"}, + "staticContextParams":{ + "UseS3ExpressControlEndpoint":{"value":true} + } }, "PutBucketCors":{ "name":"PutBucketCors", @@ -734,6 +895,9 @@ "httpChecksum":{ "requestAlgorithmMember":"ChecksumAlgorithm", "requestChecksumRequired":true + }, + "staticContextParams":{ + "UseS3ExpressControlEndpoint":{"value":true} } }, "PutBucketEncryption":{ @@ -746,6 +910,9 @@ "httpChecksum":{ "requestAlgorithmMember":"ChecksumAlgorithm", "requestChecksumRequired":true + }, + "staticContextParams":{ + "UseS3ExpressControlEndpoint":{"value":true} } }, "PutBucketIntelligentTieringConfiguration":{ @@ -754,7 +921,10 @@ "method":"PUT", "requestUri":"/{Bucket}?intelligent-tiering" }, - "input":{"shape":"PutBucketIntelligentTieringConfigurationRequest"} + "input":{"shape":"PutBucketIntelligentTieringConfigurationRequest"}, + "staticContextParams":{ + "UseS3ExpressControlEndpoint":{"value":true} + } }, "PutBucketInventoryConfiguration":{ "name":"PutBucketInventoryConfiguration", @@ -762,7 +932,10 @@ "method":"PUT", "requestUri":"/{Bucket}?inventory" }, - "input":{"shape":"PutBucketInventoryConfigurationRequest"} + "input":{"shape":"PutBucketInventoryConfigurationRequest"}, + "staticContextParams":{ + "UseS3ExpressControlEndpoint":{"value":true} + } }, "PutBucketLifecycle":{ "name":"PutBucketLifecycle", @@ -776,6 +949,9 @@ "httpChecksum":{ "requestAlgorithmMember":"ChecksumAlgorithm", "requestChecksumRequired":true + }, + "staticContextParams":{ + "UseS3ExpressControlEndpoint":{"value":true} } }, "PutBucketLifecycleConfiguration":{ @@ -788,6 +964,9 @@ "httpChecksum":{ "requestAlgorithmMember":"ChecksumAlgorithm", "requestChecksumRequired":true + }, + "staticContextParams":{ + "UseS3ExpressControlEndpoint":{"value":true} } }, "PutBucketLogging":{ @@ -801,6 +980,9 @@ "httpChecksum":{ "requestAlgorithmMember":"ChecksumAlgorithm", "requestChecksumRequired":true + }, + "staticContextParams":{ + "UseS3ExpressControlEndpoint":{"value":true} } }, "PutBucketMetricsConfiguration":{ @@ -809,7 +991,10 @@ "method":"PUT", "requestUri":"/{Bucket}?metrics" }, - "input":{"shape":"PutBucketMetricsConfigurationRequest"} + "input":{"shape":"PutBucketMetricsConfigurationRequest"}, + "staticContextParams":{ + "UseS3ExpressControlEndpoint":{"value":true} + } }, "PutBucketNotification":{ "name":"PutBucketNotification", @@ -823,6 +1008,9 @@ "httpChecksum":{ "requestAlgorithmMember":"ChecksumAlgorithm", "requestChecksumRequired":true + }, + "staticContextParams":{ + "UseS3ExpressControlEndpoint":{"value":true} } }, "PutBucketNotificationConfiguration":{ @@ -831,7 +1019,10 @@ "method":"PUT", "requestUri":"/{Bucket}?notification" }, - "input":{"shape":"PutBucketNotificationConfigurationRequest"} + "input":{"shape":"PutBucketNotificationConfigurationRequest"}, + "staticContextParams":{ + "UseS3ExpressControlEndpoint":{"value":true} + } }, "PutBucketOwnershipControls":{ "name":"PutBucketOwnershipControls", @@ -840,7 +1031,10 @@ "requestUri":"/{Bucket}?ownershipControls" }, "input":{"shape":"PutBucketOwnershipControlsRequest"}, - "httpChecksum":{"requestChecksumRequired":true} + "httpChecksum":{"requestChecksumRequired":true}, + "staticContextParams":{ + "UseS3ExpressControlEndpoint":{"value":true} + } }, "PutBucketPolicy":{ "name":"PutBucketPolicy", @@ -853,6 +1047,9 @@ "httpChecksum":{ "requestAlgorithmMember":"ChecksumAlgorithm", "requestChecksumRequired":true + }, + "staticContextParams":{ + "UseS3ExpressControlEndpoint":{"value":true} } }, "PutBucketReplication":{ @@ -865,6 +1062,9 @@ "httpChecksum":{ "requestAlgorithmMember":"ChecksumAlgorithm", "requestChecksumRequired":true + }, + "staticContextParams":{ + "UseS3ExpressControlEndpoint":{"value":true} } }, "PutBucketRequestPayment":{ @@ -878,6 +1078,9 @@ "httpChecksum":{ "requestAlgorithmMember":"ChecksumAlgorithm", "requestChecksumRequired":true + }, + "staticContextParams":{ + "UseS3ExpressControlEndpoint":{"value":true} } }, "PutBucketTagging":{ @@ -891,6 +1094,9 @@ "httpChecksum":{ "requestAlgorithmMember":"ChecksumAlgorithm", "requestChecksumRequired":true + }, + "staticContextParams":{ + "UseS3ExpressControlEndpoint":{"value":true} } }, "PutBucketVersioning":{ @@ -904,6 +1110,9 @@ "httpChecksum":{ "requestAlgorithmMember":"ChecksumAlgorithm", "requestChecksumRequired":true + }, + "staticContextParams":{ + "UseS3ExpressControlEndpoint":{"value":true} } }, "PutBucketWebsite":{ @@ -917,6 +1126,9 @@ "httpChecksum":{ "requestAlgorithmMember":"ChecksumAlgorithm", "requestChecksumRequired":true + }, + "staticContextParams":{ + "UseS3ExpressControlEndpoint":{"value":true} } }, "PutObject":{ @@ -1012,6 +1224,9 @@ "httpChecksum":{ "requestAlgorithmMember":"ChecksumAlgorithm", "requestChecksumRequired":true + }, + "staticContextParams":{ + "UseS3ExpressControlEndpoint":{"value":true} } }, "RestoreObject":{ @@ -1067,7 +1282,10 @@ }, "input":{"shape":"UploadPartCopyRequest"}, "output":{"shape":"UploadPartCopyOutput"}, - "documentationUrl":"http://docs.amazonwebservices.com/AmazonS3/latest/API/mpUploadUploadPartCopy.html" + "documentationUrl":"http://docs.amazonwebservices.com/AmazonS3/latest/API/mpUploadUploadPartCopy.html", + "staticContextParams":{ + "DisableS3ExpressSessionAuth":{"value":true} + } }, "WriteGetObjectResponse":{ "name":"WriteGetObjectResponse", @@ -1165,6 +1383,11 @@ "Owner":{"shape":"OwnerOverride"} } }, + "AccessKeyIdValue":{"type":"string"}, + "AccessPointAlias":{ + "type":"boolean", + "box":true + }, "AccessPointArn":{"type":"string"}, "AccountId":{"type":"string"}, "AllowQuotedRecordDelimiter":{ @@ -1276,12 +1499,14 @@ "type":"structure", "members":{ }, + "error":{"httpStatusCode":409}, "exception":true }, "BucketAlreadyOwnedByYou":{ "type":"structure", "members":{ }, + "error":{"httpStatusCode":409}, "exception":true }, "BucketCannedACL":{ @@ -1293,6 +1518,13 @@ "authenticated-read" ] }, + "BucketInfo":{ + "type":"structure", + "members":{ + "DataRedundancy":{"shape":"DataRedundancy"}, + "Type":{"shape":"BucketType"} + } + }, "BucketKeyEnabled":{ "type":"boolean", "box":true @@ -1316,6 +1548,7 @@ "ap-northeast-2", "ap-northeast-3", "ap-south-1", + "ap-south-2", "ap-southeast-1", "ap-southeast-2", "ap-southeast-3", @@ -1326,6 +1559,7 @@ "eu-central-1", "eu-north-1", "eu-south-1", + "eu-south-2", "eu-west-1", "eu-west-2", "eu-west-3", @@ -1335,11 +1569,10 @@ "us-gov-east-1", "us-gov-west-1", "us-west-1", - "us-west-2", - "ap-south-2", - "eu-south-2" + "us-west-2" ] }, + "BucketLocationName":{"type":"string"}, "BucketLoggingStatus":{ "type":"structure", "members":{ @@ -1355,6 +1588,10 @@ ] }, "BucketName":{"type":"string"}, + "BucketType":{ + "type":"string", + "enum":["Directory"] + }, "BucketVersioningStatus":{ "type":"string", "enum":[ @@ -2004,7 +2241,9 @@ "CreateBucketConfiguration":{ "type":"structure", "members":{ - "LocationConstraint":{"shape":"BucketLocationConstraint"} + "LocationConstraint":{"shape":"BucketLocationConstraint"}, + "Location":{"shape":"LocationInfo"}, + "Bucket":{"shape":"BucketInfo"} } }, "CreateBucketOutput":{ @@ -2297,7 +2536,38 @@ } } }, + "CreateSessionOutput":{ + "type":"structure", + "required":["Credentials"], + "members":{ + "Credentials":{ + "shape":"SessionCredentials", + "locationName":"Credentials" + } + } + }, + "CreateSessionRequest":{ + "type":"structure", + "required":["Bucket"], + "members":{ + "SessionMode":{ + "shape":"SessionMode", + "location":"header", + "locationName":"x-amz-create-session-mode" + }, + "Bucket":{ + "shape":"BucketName", + "contextParam":{"name":"Bucket"}, + "location":"uri", + "locationName":"Bucket" + } + } + }, "CreationDate":{"type":"timestamp"}, + "DataRedundancy":{ + "type":"string", + "enum":["SingleAvailabilityZone"] + }, "Date":{ "type":"timestamp", "timestampFormat":"iso8601" @@ -2820,6 +3090,11 @@ "Metrics":{"shape":"Metrics"} } }, + "DirectoryBucketToken":{ + "type":"string", + "max":1024, + "min":0 + }, "DisplayName":{"type":"string"}, "ETag":{"type":"string"}, "EmailAddress":{"type":"string"}, @@ -4274,6 +4549,31 @@ "locationName":"Grant" } }, + "HeadBucketOutput":{ + "type":"structure", + "members":{ + "BucketLocationType":{ + "shape":"LocationType", + "location":"header", + "locationName":"x-amz-bucket-location-type" + }, + "BucketLocationName":{ + "shape":"BucketLocationName", + "location":"header", + "locationName":"x-amz-bucket-location-name" + }, + "BucketRegion":{ + "shape":"Region", + "location":"header", + "locationName":"x-amz-bucket-region" + }, + "AccessPointAlias":{ + "shape":"AccessPointAlias", + "location":"header", + "locationName":"x-amz-access-point-alias" + } + } + }, "HeadBucketRequest":{ "type":"structure", "required":["Bucket"], @@ -4650,6 +4950,7 @@ "StorageClass":{"shape":"StorageClass"}, "AccessTier":{"shape":"IntelligentTieringAccessTier"} }, + "error":{"httpStatusCode":403}, "exception":true }, "InventoryConfiguration":{ @@ -5051,6 +5352,28 @@ "Owner":{"shape":"Owner"} } }, + "ListDirectoryBucketsOutput":{ + "type":"structure", + "members":{ + "Buckets":{"shape":"Buckets"}, + "ContinuationToken":{"shape":"DirectoryBucketToken"} + } + }, + "ListDirectoryBucketsRequest":{ + "type":"structure", + "members":{ + "ContinuationToken":{ + "shape":"DirectoryBucketToken", + "location":"querystring", + "locationName":"continuation-token" + }, + "MaxDirectoryBuckets":{ + "shape":"MaxDirectoryBuckets", + "location":"querystring", + "locationName":"max-directory-buckets" + } + } + }, "ListMultipartUploadsOutput":{ "type":"structure", "members":{ @@ -5472,7 +5795,19 @@ } }, "Location":{"type":"string"}, + "LocationInfo":{ + "type":"structure", + "members":{ + "Type":{"shape":"LocationType"}, + "Name":{"shape":"LocationNameAsString"} + } + }, + "LocationNameAsString":{"type":"string"}, "LocationPrefix":{"type":"string"}, + "LocationType":{ + "type":"string", + "enum":["AvailabilityZone"] + }, "LoggingEnabled":{ "type":"structure", "required":[ @@ -5506,6 +5841,12 @@ "type":"integer", "box":true }, + "MaxDirectoryBuckets":{ + "type":"integer", + "box":true, + "max":1000, + "min":0 + }, "MaxKeys":{"type":"integer"}, "MaxParts":{"type":"integer"}, "MaxUploads":{"type":"integer"}, @@ -5617,18 +5958,21 @@ "type":"structure", "members":{ }, + "error":{"httpStatusCode":404}, "exception":true }, "NoSuchKey":{ "type":"structure", "members":{ }, + "error":{"httpStatusCode":404}, "exception":true }, "NoSuchUpload":{ "type":"structure", "members":{ }, + "error":{"httpStatusCode":404}, "exception":true }, "NoncurrentVersionExpiration":{ @@ -5704,6 +6048,7 @@ "type":"structure", "members":{ }, + "error":{"httpStatusCode":403}, "exception":true }, "ObjectAttributes":{ @@ -5818,6 +6163,7 @@ "type":"structure", "members":{ }, + "error":{"httpStatusCode":403}, "exception":true }, "ObjectOwnership":{ @@ -5863,7 +6209,8 @@ "DEEP_ARCHIVE", "OUTPOSTS", "GLACIER_IR", - "SNOW" + "SNOW", + "EXPRESS_ONEZONE" ] }, "ObjectVersion":{ @@ -7506,6 +7853,11 @@ "Protocol":{"shape":"Protocol"} } }, + "Region":{ + "type":"string", + "max":20, + "min":0 + }, "ReplaceKeyPrefixWith":{"type":"string"}, "ReplaceKeyWith":{"type":"string"}, "ReplicaKmsKeyID":{"type":"string"}, @@ -7962,6 +8314,45 @@ "member":{"shape":"ServerSideEncryptionRule"}, "flattened":true }, + "SessionCredentialValue":{ + "type":"string", + "sensitive":true + }, + "SessionCredentials":{ + "type":"structure", + "required":[ + "AccessKeyId", + "SecretAccessKey", + "SessionToken", + "Expiration" + ], + "members":{ + "AccessKeyId":{ + "shape":"AccessKeyIdValue", + "locationName":"AccessKeyId" + }, + "SecretAccessKey":{ + "shape":"SessionCredentialValue", + "locationName":"SecretAccessKey" + }, + "SessionToken":{ + "shape":"SessionCredentialValue", + "locationName":"SessionToken" + }, + "Expiration":{ + "shape":"SessionExpiration", + "locationName":"Expiration" + } + } + }, + "SessionExpiration":{"type":"timestamp"}, + "SessionMode":{ + "type":"string", + "enum":[ + "ReadOnly", + "ReadWrite" + ] + }, "Setting":{ "type":"boolean", "box":true @@ -8036,7 +8427,8 @@ "DEEP_ARCHIVE", "OUTPOSTS", "GLACIER_IR", - "SNOW" + "SNOW", + "EXPRESS_ONEZONE" ] }, "StorageClassAnalysis":{ @@ -8791,6 +9183,10 @@ "documentation":"Disables this client's usage of Multi-Region Access Points.", "type":"boolean" }, + "DisableS3ExpressSessionAuth":{ + "documentation":"Disables this client's usage of Session Auth for S3Express\n buckets and reverts to using conventional SigV4 for those.", + "type":"boolean" + }, "ForcePathStyle":{ "documentation":"Forces this client to use path-style addressing for buckets.", "type":"boolean" diff --git a/models/apis/s3/2006-03-01/docs-2.json b/models/apis/s3/2006-03-01/docs-2.json index a9d75a82b2e..eea26cc0aed 100644 --- a/models/apis/s3/2006-03-01/docs-2.json +++ b/models/apis/s3/2006-03-01/docs-2.json @@ -2,110 +2,112 @@ "version": "2.0", "service": "

", "operations": { - "AbortMultipartUpload": "

This action aborts a multipart upload. After a multipart upload is aborted, no additional parts can be uploaded using that upload ID. The storage consumed by any previously uploaded parts will be freed. However, if any part uploads are currently in progress, those part uploads might or might not succeed. As a result, it might be necessary to abort a given multipart upload multiple times in order to completely free all storage consumed by all parts.

To verify that all parts have been removed, so you don't get charged for the part storage, you should call the ListParts action and ensure that the parts list is empty.

For information about permissions required to use the multipart upload, see Multipart Upload and Permissions.

The following operations are related to AbortMultipartUpload:

", - "CompleteMultipartUpload": "

Completes a multipart upload by assembling previously uploaded parts.

You first initiate the multipart upload and then upload all parts using the UploadPart operation. After successfully uploading all relevant parts of an upload, you call this action to complete the upload. Upon receiving this request, Amazon S3 concatenates all the parts in ascending order by part number to create a new object. In the Complete Multipart Upload request, you must provide the parts list. You must ensure that the parts list is complete. This action concatenates the parts that you provide in the list. For each part in the list, you must provide the part number and the ETag value, returned after that part was uploaded.

Processing of a Complete Multipart Upload request could take several minutes to complete. After Amazon S3 begins processing the request, it sends an HTTP response header that specifies a 200 OK response. While processing is in progress, Amazon S3 periodically sends white space characters to keep the connection from timing out. A request could fail after the initial 200 OK response has been sent. This means that a 200 OK response can contain either a success or an error. If you call the S3 API directly, make sure to design your application to parse the contents of the response and handle it appropriately. If you use Amazon Web Services SDKs, SDKs handle this condition. The SDKs detect the embedded error and apply error handling per your configuration settings (including automatically retrying the request as appropriate). If the condition persists, the SDKs throws an exception (or, for the SDKs that don't use exceptions, they return the error).

Note that if CompleteMultipartUpload fails, applications should be prepared to retry the failed requests. For more information, see Amazon S3 Error Best Practices.

You cannot use Content-Type: application/x-www-form-urlencoded with Complete Multipart Upload requests. Also, if you do not provide a Content-Type header, CompleteMultipartUpload returns a 200 OK response.

For more information about multipart uploads, see Uploading Objects Using Multipart Upload.

For information about permissions required to use the multipart upload API, see Multipart Upload and Permissions.

CompleteMultipartUpload has the following special errors:

The following operations are related to CompleteMultipartUpload:

", - "CopyObject": "

Creates a copy of an object that is already stored in Amazon S3.

You can store individual objects of up to 5 TB in Amazon S3. You create a copy of your object up to 5 GB in size in a single atomic action using this API. However, to copy an object greater than 5 GB, you must use the multipart upload Upload Part - Copy (UploadPartCopy) API. For more information, see Copy Object Using the REST Multipart Upload API.

All copy requests must be authenticated. Additionally, you must have read access to the source object and write access to the destination bucket. For more information, see REST Authentication. Both the Region that you want to copy the object from and the Region that you want to copy the object to must be enabled for your account.

A copy request might return an error when Amazon S3 receives the copy request or while Amazon S3 is copying the files. If the error occurs before the copy action starts, you receive a standard Amazon S3 error. If the error occurs during the copy operation, the error response is embedded in the 200 OK response. This means that a 200 OK response can contain either a success or an error. If you call the S3 API directly, make sure to design your application to parse the contents of the response and handle it appropriately. If you use Amazon Web Services SDKs, SDKs handle this condition. The SDKs detect the embedded error and apply error handling per your configuration settings (including automatically retrying the request as appropriate). If the condition persists, the SDKs throws an exception (or, for the SDKs that don't use exceptions, they return the error).

If the copy is successful, you receive a response with information about the copied object.

If the request is an HTTP 1.1 request, the response is chunk encoded. If it were not, it would not contain the content-length, and you would need to read the entire body.

The copy request charge is based on the storage class and Region that you specify for the destination object. The request can also result in a data retrieval charge for the source if the source storage class bills for data retrieval. For pricing information, see Amazon S3 pricing.

Amazon S3 transfer acceleration does not support cross-Region copies. If you request a cross-Region copy using a transfer acceleration endpoint, you get a 400 Bad Request error. For more information, see Transfer Acceleration.

Metadata

When copying an object, you can preserve all metadata (the default) or specify new metadata. However, the access control list (ACL) is not preserved and is set to private for the user making the request. To override the default ACL setting, specify a new ACL when generating a copy request. For more information, see Using ACLs.

To specify whether you want the object metadata copied from the source object or replaced with metadata provided in the request, you can optionally add the x-amz-metadata-directive header. When you grant permissions, you can use the s3:x-amz-metadata-directive condition key to enforce certain metadata behavior when objects are uploaded. For more information, see Specifying Conditions in a Policy in the Amazon S3 User Guide. For a complete list of Amazon S3-specific condition keys, see Actions, Resources, and Condition Keys for Amazon S3.

x-amz-website-redirect-location is unique to each object and must be specified in the request headers to copy the value.

x-amz-copy-source-if Headers

To only copy an object under certain conditions, such as whether the Etag matches or whether the object was modified before or after a specified date, use the following request parameters:

If both the x-amz-copy-source-if-match and x-amz-copy-source-if-unmodified-since headers are present in the request and evaluate as follows, Amazon S3 returns 200 OK and copies the data:

If both the x-amz-copy-source-if-none-match and x-amz-copy-source-if-modified-since headers are present in the request and evaluate as follows, Amazon S3 returns the 412 Precondition Failed response code:

All headers with the x-amz- prefix, including x-amz-copy-source, must be signed.

Server-side encryption

Amazon S3 automatically encrypts all new objects that are copied to an S3 bucket. When copying an object, if you don't specify encryption information in your copy request, the encryption setting of the target object is set to the default encryption configuration of the destination bucket. By default, all buckets have a base level of encryption configuration that uses server-side encryption with Amazon S3 managed keys (SSE-S3). If the destination bucket has a default encryption configuration that uses server-side encryption with Key Management Service (KMS) keys (SSE-KMS), dual-layer server-side encryption with Amazon Web Services KMS keys (DSSE-KMS), or server-side encryption with customer-provided encryption keys (SSE-C), Amazon S3 uses the corresponding KMS key, or a customer-provided key to encrypt the target object copy.

When you perform a CopyObject operation, if you want to use a different type of encryption setting for the target object, you can use other appropriate encryption-related headers to encrypt the target object with a KMS key, an Amazon S3 managed key, or a customer-provided key. With server-side encryption, Amazon S3 encrypts your data as it writes your data to disks in its data centers and decrypts the data when you access it. If the encryption setting in your request is different from the default encryption configuration of the destination bucket, the encryption setting in your request takes precedence. If the source object for the copy is stored in Amazon S3 using SSE-C, you must provide the necessary encryption information in your request so that Amazon S3 can decrypt the object for copying. For more information about server-side encryption, see Using Server-Side Encryption.

If a target object uses SSE-KMS, you can enable an S3 Bucket Key for the object. For more information, see Amazon S3 Bucket Keys in the Amazon S3 User Guide.

Access Control List (ACL)-Specific Request Headers

When copying an object, you can optionally use headers to grant ACL-based permissions. By default, all objects are private. Only the owner has full access control. When adding a new object, you can grant permissions to individual Amazon Web Services accounts or to predefined groups that are defined by Amazon S3. These permissions are then added to the ACL on the object. For more information, see Access Control List (ACL) Overview and Managing ACLs Using the REST API.

If the bucket that you're copying objects to uses the bucket owner enforced setting for S3 Object Ownership, ACLs are disabled and no longer affect permissions. Buckets that use this setting only accept PUT requests that don't specify an ACL or PUT requests that specify bucket owner full control ACLs, such as the bucket-owner-full-control canned ACL or an equivalent form of this ACL expressed in the XML format.

For more information, see Controlling ownership of objects and disabling ACLs in the Amazon S3 User Guide.

If your bucket uses the bucket owner enforced setting for Object Ownership, all objects written to the bucket by any account will be owned by the bucket owner.

Checksums

When copying an object, if it has a checksum, that checksum will be copied to the new object by default. When you copy the object over, you can optionally specify a different checksum algorithm to use with the x-amz-checksum-algorithm header.

Storage Class Options

You can use the CopyObject action to change the storage class of an object that is already stored in Amazon S3 by using the StorageClass parameter. For more information, see Storage Classes in the Amazon S3 User Guide.

If the source object's storage class is GLACIER or DEEP_ARCHIVE, or the object's storage class is INTELLIGENT_TIERING and it's S3 Intelligent-Tiering access tier is Archive Access or Deep Archive Access, you must restore a copy of this object before you can use it as a source object for the copy operation. For more information, see RestoreObject. For more information, see Copying Objects.

Versioning

By default, x-amz-copy-source header identifies the current version of an object to copy. If the current version is a delete marker, Amazon S3 behaves as if the object was deleted. To copy a different version, use the versionId subresource.

If you enable versioning on the target bucket, Amazon S3 generates a unique version ID for the object being copied. This version ID is different from the version ID of the source object. Amazon S3 returns the version ID of the copied object in the x-amz-version-id response header in the response.

If you do not enable versioning or suspend it on the target bucket, the version ID that Amazon S3 generates is always null.

The following operations are related to CopyObject:

", - "CreateBucket": "

Creates a new S3 bucket. To create a bucket, you must register with Amazon S3 and have a valid Amazon Web Services Access Key ID to authenticate requests. Anonymous requests are never allowed to create buckets. By creating the bucket, you become the bucket owner.

Not every string is an acceptable bucket name. For information about bucket naming restrictions, see Bucket naming rules.

If you want to create an Amazon S3 on Outposts bucket, see Create Bucket.

By default, the bucket is created in the US East (N. Virginia) Region. You can optionally specify a Region in the request body. To constrain the bucket creation to a specific Region, you can use LocationConstraint condition key. You might choose a Region to optimize latency, minimize costs, or address regulatory requirements. For example, if you reside in Europe, you will probably find it advantageous to create buckets in the Europe (Ireland) Region. For more information, see Accessing a bucket.

If you send your create bucket request to the s3.amazonaws.com endpoint, the request goes to the us-east-1 Region. Accordingly, the signature calculations in Signature Version 4 must use us-east-1 as the Region, even if the location constraint in the request specifies another Region where the bucket is to be created. If you create a bucket in a Region other than US East (N. Virginia), your application must be able to handle 307 redirect. For more information, see Virtual hosting of buckets.

Permissions

In addition to s3:CreateBucket, the following permissions are required when your CreateBucket request includes specific headers:

If your CreateBucket request sets BucketOwnerEnforced for Amazon S3 Object Ownership and specifies a bucket ACL that provides access to an external Amazon Web Services account, your request fails with a 400 error and returns the InvalidBucketAcLWithObjectOwnership error code. For more information, see Setting Object Ownership on an existing bucket in the Amazon S3 User Guide.

The following operations are related to CreateBucket:

", - "CreateMultipartUpload": "

This action initiates a multipart upload and returns an upload ID. This upload ID is used to associate all of the parts in the specific multipart upload. You specify this upload ID in each of your subsequent upload part requests (see UploadPart). You also include this upload ID in the final request to either complete or abort the multipart upload request.

For more information about multipart uploads, see Multipart Upload Overview.

If you have configured a lifecycle rule to abort incomplete multipart uploads, the upload must complete within the number of days specified in the bucket lifecycle configuration. Otherwise, the incomplete multipart upload becomes eligible for an abort action and Amazon S3 aborts the multipart upload. For more information, see Aborting Incomplete Multipart Uploads Using a Bucket Lifecycle Configuration.

For information about the permissions required to use the multipart upload API, see Multipart Upload and Permissions.

For request signing, multipart upload is just a series of regular requests. You initiate a multipart upload, send one or more requests to upload parts, and then complete the multipart upload process. You sign each request individually. There is nothing special about signing multipart upload requests. For more information about signing, see Authenticating Requests (Amazon Web Services Signature Version 4).

After you initiate a multipart upload and upload one or more parts, to stop being charged for storing the uploaded parts, you must either complete or abort the multipart upload. Amazon S3 frees up the space used to store the parts and stop charging you for storing them only after you either complete or abort a multipart upload.

Server-side encryption is for data encryption at rest. Amazon S3 encrypts your data as it writes it to disks in its data centers and decrypts it when you access it. Amazon S3 automatically encrypts all new objects that are uploaded to an S3 bucket. When doing a multipart upload, if you don't specify encryption information in your request, the encryption setting of the uploaded parts is set to the default encryption configuration of the destination bucket. By default, all buckets have a base level of encryption configuration that uses server-side encryption with Amazon S3 managed keys (SSE-S3). If the destination bucket has a default encryption configuration that uses server-side encryption with an Key Management Service (KMS) key (SSE-KMS), or a customer-provided encryption key (SSE-C), Amazon S3 uses the corresponding KMS key, or a customer-provided key to encrypt the uploaded parts. When you perform a CreateMultipartUpload operation, if you want to use a different type of encryption setting for the uploaded parts, you can request that Amazon S3 encrypts the object with a KMS key, an Amazon S3 managed key, or a customer-provided key. If the encryption setting in your request is different from the default encryption configuration of the destination bucket, the encryption setting in your request takes precedence. If you choose to provide your own encryption key, the request headers you provide in UploadPart and UploadPartCopy requests must match the headers you used in the request to initiate the upload by using CreateMultipartUpload. You can request that Amazon S3 save the uploaded parts encrypted with server-side encryption with an Amazon S3 managed key (SSE-S3), an Key Management Service (KMS) key (SSE-KMS), or a customer-provided encryption key (SSE-C).

To perform a multipart upload with encryption by using an Amazon Web Services KMS key, the requester must have permission to the kms:Decrypt and kms:GenerateDataKey* actions on the key. These permissions are required because Amazon S3 must decrypt and read data from the encrypted file parts before it completes the multipart upload. For more information, see Multipart upload API and permissions and Protecting data using server-side encryption with Amazon Web Services KMS in the Amazon S3 User Guide.

If your Identity and Access Management (IAM) user or role is in the same Amazon Web Services account as the KMS key, then you must have these permissions on the key policy. If your IAM user or role belongs to a different account than the key, then you must have the permissions on both the key policy and your IAM user or role.

For more information, see Protecting Data Using Server-Side Encryption.

Access Permissions

When copying an object, you can optionally specify the accounts or groups that should be granted specific permissions on the new object. There are two ways to grant the permissions using the request headers:

You can use either a canned ACL or specify access permissions explicitly. You cannot do both.

Server-Side- Encryption-Specific Request Headers

Amazon S3 encrypts data by using server-side encryption with an Amazon S3 managed key (SSE-S3) by default. Server-side encryption is for data encryption at rest. Amazon S3 encrypts your data as it writes it to disks in its data centers and decrypts it when you access it. You can request that Amazon S3 encrypts data at rest by using server-side encryption with other key options. The option you use depends on whether you want to use KMS keys (SSE-KMS) or provide your own encryption keys (SSE-C).

Access-Control-List (ACL)-Specific Request Headers

You also can use the following access control–related headers with this operation. By default, all objects are private. Only the owner has full access control. When adding a new object, you can grant permissions to individual Amazon Web Services accounts or to predefined groups defined by Amazon S3. These permissions are then added to the access control list (ACL) on the object. For more information, see Using ACLs. With this operation, you can grant access permissions using one of the following two methods:

The following operations are related to CreateMultipartUpload:

", - "DeleteBucket": "

Deletes the S3 bucket. All objects (including all object versions and delete markers) in the bucket must be deleted before the bucket itself can be deleted.

The following operations are related to DeleteBucket:

", - "DeleteBucketAnalyticsConfiguration": "

Deletes an analytics configuration for the bucket (specified by the analytics configuration ID).

To use this operation, you must have permissions to perform the s3:PutAnalyticsConfiguration action. The bucket owner has this permission by default. The bucket owner can grant this permission to others. For more information about permissions, see Permissions Related to Bucket Subresource Operations and Managing Access Permissions to Your Amazon S3 Resources.

For information about the Amazon S3 analytics feature, see Amazon S3 Analytics – Storage Class Analysis.

The following operations are related to DeleteBucketAnalyticsConfiguration:

", - "DeleteBucketCors": "

Deletes the cors configuration information set for the bucket.

To use this operation, you must have permission to perform the s3:PutBucketCORS action. The bucket owner has this permission by default and can grant this permission to others.

For information about cors, see Enabling Cross-Origin Resource Sharing in the Amazon S3 User Guide.

Related Resources

", - "DeleteBucketEncryption": "

This implementation of the DELETE action resets the default encryption for the bucket as server-side encryption with Amazon S3 managed keys (SSE-S3). For information about the bucket default encryption feature, see Amazon S3 Bucket Default Encryption in the Amazon S3 User Guide.

To use this operation, you must have permissions to perform the s3:PutEncryptionConfiguration action. The bucket owner has this permission by default. The bucket owner can grant this permission to others. For more information about permissions, see Permissions Related to Bucket Subresource Operations and Managing Access Permissions to your Amazon S3 Resources in the Amazon S3 User Guide.

The following operations are related to DeleteBucketEncryption:

", - "DeleteBucketIntelligentTieringConfiguration": "

Deletes the S3 Intelligent-Tiering configuration from the specified bucket.

The S3 Intelligent-Tiering storage class is designed to optimize storage costs by automatically moving data to the most cost-effective storage access tier, without performance impact or operational overhead. S3 Intelligent-Tiering delivers automatic cost savings in three low latency and high throughput access tiers. To get the lowest storage cost on data that can be accessed in minutes to hours, you can choose to activate additional archiving capabilities.

The S3 Intelligent-Tiering storage class is the ideal storage class for data with unknown, changing, or unpredictable access patterns, independent of object size or retention period. If the size of an object is less than 128 KB, it is not monitored and not eligible for auto-tiering. Smaller objects can be stored, but they are always charged at the Frequent Access tier rates in the S3 Intelligent-Tiering storage class.

For more information, see Storage class for automatically optimizing frequently and infrequently accessed objects.

Operations related to DeleteBucketIntelligentTieringConfiguration include:

", - "DeleteBucketInventoryConfiguration": "

Deletes an inventory configuration (identified by the inventory ID) from the bucket.

To use this operation, you must have permissions to perform the s3:PutInventoryConfiguration action. The bucket owner has this permission by default. The bucket owner can grant this permission to others. For more information about permissions, see Permissions Related to Bucket Subresource Operations and Managing Access Permissions to Your Amazon S3 Resources.

For information about the Amazon S3 inventory feature, see Amazon S3 Inventory.

Operations related to DeleteBucketInventoryConfiguration include:

", - "DeleteBucketLifecycle": "

Deletes the lifecycle configuration from the specified bucket. Amazon S3 removes all the lifecycle configuration rules in the lifecycle subresource associated with the bucket. Your objects never expire, and Amazon S3 no longer automatically deletes any objects on the basis of rules contained in the deleted lifecycle configuration.

To use this operation, you must have permission to perform the s3:PutLifecycleConfiguration action. By default, the bucket owner has this permission and the bucket owner can grant this permission to others.

There is usually some time lag before lifecycle configuration deletion is fully propagated to all the Amazon S3 systems.

For more information about the object expiration, see Elements to Describe Lifecycle Actions.

Related actions include:

", - "DeleteBucketMetricsConfiguration": "

Deletes a metrics configuration for the Amazon CloudWatch request metrics (specified by the metrics configuration ID) from the bucket. Note that this doesn't include the daily storage metrics.

To use this operation, you must have permissions to perform the s3:PutMetricsConfiguration action. The bucket owner has this permission by default. The bucket owner can grant this permission to others. For more information about permissions, see Permissions Related to Bucket Subresource Operations and Managing Access Permissions to Your Amazon S3 Resources.

For information about CloudWatch request metrics for Amazon S3, see Monitoring Metrics with Amazon CloudWatch.

The following operations are related to DeleteBucketMetricsConfiguration:

", - "DeleteBucketOwnershipControls": "

Removes OwnershipControls for an Amazon S3 bucket. To use this operation, you must have the s3:PutBucketOwnershipControls permission. For more information about Amazon S3 permissions, see Specifying Permissions in a Policy.

For information about Amazon S3 Object Ownership, see Using Object Ownership.

The following operations are related to DeleteBucketOwnershipControls:

", - "DeleteBucketPolicy": "

This implementation of the DELETE action uses the policy subresource to delete the policy of a specified bucket. If you are using an identity other than the root user of the Amazon Web Services account that owns the bucket, the calling identity must have the DeleteBucketPolicy permissions on the specified bucket and belong to the bucket owner's account to use this operation.

If you don't have DeleteBucketPolicy permissions, Amazon S3 returns a 403 Access Denied error. If you have the correct permissions, but you're not using an identity that belongs to the bucket owner's account, Amazon S3 returns a 405 Method Not Allowed error.

To ensure that bucket owners don't inadvertently lock themselves out of their own buckets, the root principal in a bucket owner's Amazon Web Services account can perform the GetBucketPolicy, PutBucketPolicy, and DeleteBucketPolicy API actions, even if their bucket policy explicitly denies the root principal's access. Bucket owner root principals can only be blocked from performing these API actions by VPC endpoint policies and Amazon Web Services Organizations policies.

For more information about bucket policies, see Using Bucket Policies and UserPolicies.

The following operations are related to DeleteBucketPolicy

", - "DeleteBucketReplication": "

Deletes the replication configuration from the bucket.

To use this operation, you must have permissions to perform the s3:PutReplicationConfiguration action. The bucket owner has these permissions by default and can grant it to others. For more information about permissions, see Permissions Related to Bucket Subresource Operations and Managing Access Permissions to Your Amazon S3 Resources.

It can take a while for the deletion of a replication configuration to fully propagate.

For information about replication configuration, see Replication in the Amazon S3 User Guide.

The following operations are related to DeleteBucketReplication:

", - "DeleteBucketTagging": "

Deletes the tags from the bucket.

To use this operation, you must have permission to perform the s3:PutBucketTagging action. By default, the bucket owner has this permission and can grant this permission to others.

The following operations are related to DeleteBucketTagging:

", - "DeleteBucketWebsite": "

This action removes the website configuration for a bucket. Amazon S3 returns a 200 OK response upon successfully deleting a website configuration on the specified bucket. You will get a 200 OK response if the website configuration you are trying to delete does not exist on the bucket. Amazon S3 returns a 404 response if the bucket specified in the request does not exist.

This DELETE action requires the S3:DeleteBucketWebsite permission. By default, only the bucket owner can delete the website configuration attached to a bucket. However, bucket owners can grant other users permission to delete the website configuration by writing a bucket policy granting them the S3:DeleteBucketWebsite permission.

For more information about hosting websites, see Hosting Websites on Amazon S3.

The following operations are related to DeleteBucketWebsite:

", - "DeleteObject": "

Removes the null version (if there is one) of an object and inserts a delete marker, which becomes the latest version of the object. If there isn't a null version, Amazon S3 does not remove any objects but will still respond that the command was successful.

To remove a specific version, you must use the version Id subresource. Using this subresource permanently deletes the version. If the object deleted is a delete marker, Amazon S3 sets the response header, x-amz-delete-marker, to true.

If the object you want to delete is in a bucket where the bucket versioning configuration is MFA Delete enabled, you must include the x-amz-mfa request header in the DELETE versionId request. Requests that include x-amz-mfa must use HTTPS.

For more information about MFA Delete, see Using MFA Delete. To see sample requests that use versioning, see Sample Request.

You can delete objects by explicitly calling DELETE Object or configure its lifecycle (PutBucketLifecycle) to enable Amazon S3 to remove them for you. If you want to block users or accounts from removing or deleting objects from your bucket, you must deny them the s3:DeleteObject, s3:DeleteObjectVersion, and s3:PutLifeCycleConfiguration actions.

The following action is related to DeleteObject:

", - "DeleteObjectTagging": "

Removes the entire tag set from the specified object. For more information about managing object tags, see Object Tagging.

To use this operation, you must have permission to perform the s3:DeleteObjectTagging action.

To delete tags of a specific object version, add the versionId query parameter in the request. You will need permission for the s3:DeleteObjectVersionTagging action.

The following operations are related to DeleteObjectTagging:

", - "DeleteObjects": "

This action enables you to delete multiple objects from a bucket using a single HTTP request. If you know the object keys that you want to delete, then this action provides a suitable alternative to sending individual delete requests, reducing per-request overhead.

The request contains a list of up to 1000 keys that you want to delete. In the XML, you provide the object key names, and optionally, version IDs if you want to delete a specific version of the object from a versioning-enabled bucket. For each key, Amazon S3 performs a delete action and returns the result of that delete, success, or failure, in the response. Note that if the object specified in the request is not found, Amazon S3 returns the result as deleted.

The action supports two modes for the response: verbose and quiet. By default, the action uses verbose mode in which the response includes the result of deletion of each key in your request. In quiet mode the response includes only keys where the delete action encountered an error. For a successful deletion, the action does not return any information about the delete in the response body.

When performing this action on an MFA Delete enabled bucket, that attempts to delete any versioned objects, you must include an MFA token. If you do not provide one, the entire request will fail, even if there are non-versioned objects you are trying to delete. If you provide an invalid token, whether there are versioned keys in the request or not, the entire Multi-Object Delete request will fail. For information about MFA Delete, see MFA Delete.

Finally, the Content-MD5 header is required for all Multi-Object Delete requests. Amazon S3 uses the header value to ensure that your request body has not been altered in transit.

The following operations are related to DeleteObjects:

", - "DeletePublicAccessBlock": "

Removes the PublicAccessBlock configuration for an Amazon S3 bucket. To use this operation, you must have the s3:PutBucketPublicAccessBlock permission. For more information about permissions, see Permissions Related to Bucket Subresource Operations and Managing Access Permissions to Your Amazon S3 Resources.

The following operations are related to DeletePublicAccessBlock:

", - "GetBucketAccelerateConfiguration": "

This implementation of the GET action uses the accelerate subresource to return the Transfer Acceleration state of a bucket, which is either Enabled or Suspended. Amazon S3 Transfer Acceleration is a bucket-level feature that enables you to perform faster data transfers to and from Amazon S3.

To use this operation, you must have permission to perform the s3:GetAccelerateConfiguration action. The bucket owner has this permission by default. The bucket owner can grant this permission to others. For more information about permissions, see Permissions Related to Bucket Subresource Operations and Managing Access Permissions to your Amazon S3 Resources in the Amazon S3 User Guide.

You set the Transfer Acceleration state of an existing bucket to Enabled or Suspended by using the PutBucketAccelerateConfiguration operation.

A GET accelerate request does not return a state value for a bucket that has no transfer acceleration state. A bucket has no Transfer Acceleration state if a state has never been set on the bucket.

For more information about transfer acceleration, see Transfer Acceleration in the Amazon S3 User Guide.

The following operations are related to GetBucketAccelerateConfiguration:

", - "GetBucketAcl": "

This implementation of the GET action uses the acl subresource to return the access control list (ACL) of a bucket. To use GET to return the ACL of the bucket, you must have READ_ACP access to the bucket. If READ_ACP permission is granted to the anonymous user, you can return the ACL of the bucket without using an authorization header.

To use this API operation against an access point, provide the alias of the access point in place of the bucket name.

To use this API operation against an Object Lambda access point, provide the alias of the Object Lambda access point in place of the bucket name. If the Object Lambda access point alias in a request is not valid, the error code InvalidAccessPointAliasError is returned. For more information about InvalidAccessPointAliasError, see List of Error Codes.

If your bucket uses the bucket owner enforced setting for S3 Object Ownership, requests to read ACLs are still supported and return the bucket-owner-full-control ACL with the owner being the account that created the bucket. For more information, see Controlling object ownership and disabling ACLs in the Amazon S3 User Guide.

The following operations are related to GetBucketAcl:

", - "GetBucketAnalyticsConfiguration": "

This implementation of the GET action returns an analytics configuration (identified by the analytics configuration ID) from the bucket.

To use this operation, you must have permissions to perform the s3:GetAnalyticsConfiguration action. The bucket owner has this permission by default. The bucket owner can grant this permission to others. For more information about permissions, see Permissions Related to Bucket Subresource Operations and Managing Access Permissions to Your Amazon S3 Resources in the Amazon S3 User Guide.

For information about Amazon S3 analytics feature, see Amazon S3 Analytics – Storage Class Analysis in the Amazon S3 User Guide.

The following operations are related to GetBucketAnalyticsConfiguration:

", - "GetBucketCors": "

Returns the Cross-Origin Resource Sharing (CORS) configuration information set for the bucket.

To use this operation, you must have permission to perform the s3:GetBucketCORS action. By default, the bucket owner has this permission and can grant it to others.

To use this API operation against an access point, provide the alias of the access point in place of the bucket name.

To use this API operation against an Object Lambda access point, provide the alias of the Object Lambda access point in place of the bucket name. If the Object Lambda access point alias in a request is not valid, the error code InvalidAccessPointAliasError is returned. For more information about InvalidAccessPointAliasError, see List of Error Codes.

For more information about CORS, see Enabling Cross-Origin Resource Sharing.

The following operations are related to GetBucketCors:

", - "GetBucketEncryption": "

Returns the default encryption configuration for an Amazon S3 bucket. By default, all buckets have a default encryption configuration that uses server-side encryption with Amazon S3 managed keys (SSE-S3). For information about the bucket default encryption feature, see Amazon S3 Bucket Default Encryption in the Amazon S3 User Guide.

To use this operation, you must have permission to perform the s3:GetEncryptionConfiguration action. The bucket owner has this permission by default. The bucket owner can grant this permission to others. For more information about permissions, see Permissions Related to Bucket Subresource Operations and Managing Access Permissions to Your Amazon S3 Resources.

The following operations are related to GetBucketEncryption:

", - "GetBucketIntelligentTieringConfiguration": "

Gets the S3 Intelligent-Tiering configuration from the specified bucket.

The S3 Intelligent-Tiering storage class is designed to optimize storage costs by automatically moving data to the most cost-effective storage access tier, without performance impact or operational overhead. S3 Intelligent-Tiering delivers automatic cost savings in three low latency and high throughput access tiers. To get the lowest storage cost on data that can be accessed in minutes to hours, you can choose to activate additional archiving capabilities.

The S3 Intelligent-Tiering storage class is the ideal storage class for data with unknown, changing, or unpredictable access patterns, independent of object size or retention period. If the size of an object is less than 128 KB, it is not monitored and not eligible for auto-tiering. Smaller objects can be stored, but they are always charged at the Frequent Access tier rates in the S3 Intelligent-Tiering storage class.

For more information, see Storage class for automatically optimizing frequently and infrequently accessed objects.

Operations related to GetBucketIntelligentTieringConfiguration include:

", - "GetBucketInventoryConfiguration": "

Returns an inventory configuration (identified by the inventory configuration ID) from the bucket.

To use this operation, you must have permissions to perform the s3:GetInventoryConfiguration action. The bucket owner has this permission by default and can grant this permission to others. For more information about permissions, see Permissions Related to Bucket Subresource Operations and Managing Access Permissions to Your Amazon S3 Resources.

For information about the Amazon S3 inventory feature, see Amazon S3 Inventory.

The following operations are related to GetBucketInventoryConfiguration:

", - "GetBucketLifecycle": "

For an updated version of this API, see GetBucketLifecycleConfiguration. If you configured a bucket lifecycle using the filter element, you should see the updated version of this topic. This topic is provided for backward compatibility.

Returns the lifecycle configuration information set on the bucket. For information about lifecycle configuration, see Object Lifecycle Management.

To use this operation, you must have permission to perform the s3:GetLifecycleConfiguration action. The bucket owner has this permission by default. The bucket owner can grant this permission to others. For more information about permissions, see Permissions Related to Bucket Subresource Operations and Managing Access Permissions to Your Amazon S3 Resources.

GetBucketLifecycle has the following special error:

The following operations are related to GetBucketLifecycle:

", - "GetBucketLifecycleConfiguration": "

Bucket lifecycle configuration now supports specifying a lifecycle rule using an object key name prefix, one or more object tags, or a combination of both. Accordingly, this section describes the latest API. The response describes the new filter element that you can use to specify a filter to select a subset of objects to which the rule applies. If you are using a previous version of the lifecycle configuration, it still works. For the earlier action, see GetBucketLifecycle.

Returns the lifecycle configuration information set on the bucket. For information about lifecycle configuration, see Object Lifecycle Management.

To use this operation, you must have permission to perform the s3:GetLifecycleConfiguration action. The bucket owner has this permission, by default. The bucket owner can grant this permission to others. For more information about permissions, see Permissions Related to Bucket Subresource Operations and Managing Access Permissions to Your Amazon S3 Resources.

GetBucketLifecycleConfiguration has the following special error:

The following operations are related to GetBucketLifecycleConfiguration:

", - "GetBucketLocation": "

Returns the Region the bucket resides in. You set the bucket's Region using the LocationConstraint request parameter in a CreateBucket request. For more information, see CreateBucket.

To use this API operation against an access point, provide the alias of the access point in place of the bucket name.

To use this API operation against an Object Lambda access point, provide the alias of the Object Lambda access point in place of the bucket name. If the Object Lambda access point alias in a request is not valid, the error code InvalidAccessPointAliasError is returned. For more information about InvalidAccessPointAliasError, see List of Error Codes.

We recommend that you use HeadBucket to return the Region that a bucket resides in. For backward compatibility, Amazon S3 continues to support GetBucketLocation.

The following operations are related to GetBucketLocation:

", - "GetBucketLogging": "

Returns the logging status of a bucket and the permissions users have to view and modify that status.

The following operations are related to GetBucketLogging:

", - "GetBucketMetricsConfiguration": "

Gets a metrics configuration (specified by the metrics configuration ID) from the bucket. Note that this doesn't include the daily storage metrics.

To use this operation, you must have permissions to perform the s3:GetMetricsConfiguration action. The bucket owner has this permission by default. The bucket owner can grant this permission to others. For more information about permissions, see Permissions Related to Bucket Subresource Operations and Managing Access Permissions to Your Amazon S3 Resources.

For information about CloudWatch request metrics for Amazon S3, see Monitoring Metrics with Amazon CloudWatch.

The following operations are related to GetBucketMetricsConfiguration:

", - "GetBucketNotification": "

No longer used, see GetBucketNotificationConfiguration.

", - "GetBucketNotificationConfiguration": "

Returns the notification configuration of a bucket.

If notifications are not enabled on the bucket, the action returns an empty NotificationConfiguration element.

By default, you must be the bucket owner to read the notification configuration of a bucket. However, the bucket owner can use a bucket policy to grant permission to other users to read this configuration with the s3:GetBucketNotification permission.

To use this API operation against an access point, provide the alias of the access point in place of the bucket name.

To use this API operation against an Object Lambda access point, provide the alias of the Object Lambda access point in place of the bucket name. If the Object Lambda access point alias in a request is not valid, the error code InvalidAccessPointAliasError is returned. For more information about InvalidAccessPointAliasError, see List of Error Codes.

For more information about setting and reading the notification configuration on a bucket, see Setting Up Notification of Bucket Events. For more information about bucket policies, see Using Bucket Policies.

The following action is related to GetBucketNotification:

", - "GetBucketOwnershipControls": "

Retrieves OwnershipControls for an Amazon S3 bucket. To use this operation, you must have the s3:GetBucketOwnershipControls permission. For more information about Amazon S3 permissions, see Specifying permissions in a policy.

For information about Amazon S3 Object Ownership, see Using Object Ownership.

The following operations are related to GetBucketOwnershipControls:

", - "GetBucketPolicy": "

Returns the policy of a specified bucket. If you are using an identity other than the root user of the Amazon Web Services account that owns the bucket, the calling identity must have the GetBucketPolicy permissions on the specified bucket and belong to the bucket owner's account in order to use this operation.

If you don't have GetBucketPolicy permissions, Amazon S3 returns a 403 Access Denied error. If you have the correct permissions, but you're not using an identity that belongs to the bucket owner's account, Amazon S3 returns a 405 Method Not Allowed error.

To ensure that bucket owners don't inadvertently lock themselves out of their own buckets, the root principal in a bucket owner's Amazon Web Services account can perform the GetBucketPolicy, PutBucketPolicy, and DeleteBucketPolicy API actions, even if their bucket policy explicitly denies the root principal's access. Bucket owner root principals can only be blocked from performing these API actions by VPC endpoint policies and Amazon Web Services Organizations policies.

To use this API operation against an access point, provide the alias of the access point in place of the bucket name.

To use this API operation against an Object Lambda access point, provide the alias of the Object Lambda access point in place of the bucket name. If the Object Lambda access point alias in a request is not valid, the error code InvalidAccessPointAliasError is returned. For more information about InvalidAccessPointAliasError, see List of Error Codes.

For more information about bucket policies, see Using Bucket Policies and User Policies.

The following action is related to GetBucketPolicy:

", - "GetBucketPolicyStatus": "

Retrieves the policy status for an Amazon S3 bucket, indicating whether the bucket is public. In order to use this operation, you must have the s3:GetBucketPolicyStatus permission. For more information about Amazon S3 permissions, see Specifying Permissions in a Policy.

For more information about when Amazon S3 considers a bucket public, see The Meaning of \"Public\".

The following operations are related to GetBucketPolicyStatus:

", - "GetBucketReplication": "

Returns the replication configuration of a bucket.

It can take a while to propagate the put or delete a replication configuration to all Amazon S3 systems. Therefore, a get request soon after put or delete can return a wrong result.

For information about replication configuration, see Replication in the Amazon S3 User Guide.

This action requires permissions for the s3:GetReplicationConfiguration action. For more information about permissions, see Using Bucket Policies and User Policies.

If you include the Filter element in a replication configuration, you must also include the DeleteMarkerReplication and Priority elements. The response also returns those elements.

For information about GetBucketReplication errors, see List of replication-related error codes

The following operations are related to GetBucketReplication:

", - "GetBucketRequestPayment": "

Returns the request payment configuration of a bucket. To use this version of the operation, you must be the bucket owner. For more information, see Requester Pays Buckets.

The following operations are related to GetBucketRequestPayment:

", - "GetBucketTagging": "

Returns the tag set associated with the bucket.

To use this operation, you must have permission to perform the s3:GetBucketTagging action. By default, the bucket owner has this permission and can grant this permission to others.

GetBucketTagging has the following special error:

The following operations are related to GetBucketTagging:

", - "GetBucketVersioning": "

Returns the versioning state of a bucket.

To retrieve the versioning state of a bucket, you must be the bucket owner.

This implementation also returns the MFA Delete status of the versioning state. If the MFA Delete status is enabled, the bucket owner must use an authentication device to change the versioning state of the bucket.

The following operations are related to GetBucketVersioning:

", - "GetBucketWebsite": "

Returns the website configuration for a bucket. To host website on Amazon S3, you can configure a bucket as website by adding a website configuration. For more information about hosting websites, see Hosting Websites on Amazon S3.

This GET action requires the S3:GetBucketWebsite permission. By default, only the bucket owner can read the bucket website configuration. However, bucket owners can allow other users to read the website configuration by writing a bucket policy granting them the S3:GetBucketWebsite permission.

The following operations are related to GetBucketWebsite:

", - "GetObject": "

Retrieves objects from Amazon S3. To use GET, you must have READ access to the object. If you grant READ access to the anonymous user, you can return the object without using an authorization header.

An Amazon S3 bucket has no directory hierarchy such as you would find in a typical computer file system. You can, however, create a logical hierarchy by using object key names that imply a folder structure. For example, instead of naming an object sample.jpg, you can name it photos/2006/February/sample.jpg.

To get an object from such a logical hierarchy, specify the full key name for the object in the GET operation. For a virtual hosted-style request example, if you have the object photos/2006/February/sample.jpg, specify the resource as /photos/2006/February/sample.jpg. For a path-style request example, if you have the object photos/2006/February/sample.jpg in the bucket named examplebucket, specify the resource as /examplebucket/photos/2006/February/sample.jpg. For more information about request types, see HTTP Host Header Bucket Specification.

For more information about returning the ACL of an object, see GetObjectAcl.

If the object you are retrieving is stored in the S3 Glacier Flexible Retrieval or S3 Glacier Deep Archive storage class, or S3 Intelligent-Tiering Archive or S3 Intelligent-Tiering Deep Archive tiers, before you can retrieve the object you must first restore a copy using RestoreObject. Otherwise, this action returns an InvalidObjectState error. For information about restoring archived objects, see Restoring Archived Objects.

Encryption request headers, like x-amz-server-side-encryption, should not be sent for GET requests if your object uses server-side encryption with Key Management Service (KMS) keys (SSE-KMS), dual-layer server-side encryption with Amazon Web Services KMS keys (DSSE-KMS), or server-side encryption with Amazon S3 managed encryption keys (SSE-S3). If your object does use these types of keys, you’ll get an HTTP 400 Bad Request error.

If you encrypt an object by using server-side encryption with customer-provided encryption keys (SSE-C) when you store the object in Amazon S3, then when you GET the object, you must use the following headers:

For more information about SSE-C, see Server-Side Encryption (Using Customer-Provided Encryption Keys).

Assuming you have the relevant permission to read object tags, the response also returns the x-amz-tagging-count header that provides the count of number of tags associated with the object. You can use GetObjectTagging to retrieve the tag set associated with an object.

Permissions

You need the relevant read object (or version) permission for this operation. For more information, see Specifying Permissions in a Policy. If the object that you request doesn’t exist, the error that Amazon S3 returns depends on whether you also have the s3:ListBucket permission.

If you have the s3:ListBucket permission on the bucket, Amazon S3 returns an HTTP status code 404 (Not Found) error.

If you don’t have the s3:ListBucket permission, Amazon S3 returns an HTTP status code 403 (\"access denied\") error.

Versioning

By default, the GET action returns the current version of an object. To return a different version, use the versionId subresource.

  • If you supply a versionId, you need the s3:GetObjectVersion permission to access a specific version of an object. If you request a specific version, you do not need to have the s3:GetObject permission. If you request the current version without a specific version ID, only s3:GetObject permission is required. s3:GetObjectVersion permission won't be required.

  • If the current version of the object is a delete marker, Amazon S3 behaves as if the object was deleted and includes x-amz-delete-marker: true in the response.

  • If the specified version is a delete marker, the response returns a 405 (Method Not Allowed) error and the Last-Modified: timestamp response header.

For more information about versioning, see PutBucketVersioning.

Overriding Response Header Values

There are times when you want to override certain response header values in a GET response. For example, you might override the Content-Disposition response header value in your GET request.

You can override values for a set of response headers using the following query parameters. These response header values are sent only on a successful request, that is, when status code 200 OK is returned. The set of headers you can override using these parameters is a subset of the headers that Amazon S3 accepts when you create an object. The response headers that you can override for the GET response are Content-Type, Content-Language, Expires, Cache-Control, Content-Disposition, and Content-Encoding. To override these header values in the GET response, you use the following request parameters.

You must sign the request, either using an Authorization header or a presigned URL, when using these parameters. They cannot be used with an unsigned (anonymous) request.

Overriding Response Header Values

If both of the If-Match and If-Unmodified-Since headers are present in the request as follows: If-Match condition evaluates to true, and; If-Unmodified-Since condition evaluates to false; then, S3 returns 200 OK and the data requested.

If both of the If-None-Match and If-Modified-Since headers are present in the request as follows: If-None-Match condition evaluates to false, and; If-Modified-Since condition evaluates to true; then, S3 returns 304 Not Modified response code.

For more information about conditional requests, see RFC 7232.

The following operations are related to GetObject:

", - "GetObjectAcl": "

Returns the access control list (ACL) of an object. To use this operation, you must have s3:GetObjectAcl permissions or READ_ACP access to the object. For more information, see Mapping of ACL permissions and access policy permissions in the Amazon S3 User Guide

This action is not supported by Amazon S3 on Outposts.

By default, GET returns ACL information about the current version of an object. To return ACL information about a different version, use the versionId subresource.

If your bucket uses the bucket owner enforced setting for S3 Object Ownership, requests to read ACLs are still supported and return the bucket-owner-full-control ACL with the owner being the account that created the bucket. For more information, see Controlling object ownership and disabling ACLs in the Amazon S3 User Guide.

The following operations are related to GetObjectAcl:

", - "GetObjectAttributes": "

Retrieves all the metadata from an object without returning the object itself. This action is useful if you're interested only in an object's metadata. To use GetObjectAttributes, you must have READ access to the object.

GetObjectAttributes combines the functionality of HeadObject and ListParts. All of the data returned with each of those individual calls can be returned with a single call to GetObjectAttributes.

If you encrypt an object by using server-side encryption with customer-provided encryption keys (SSE-C) when you store the object in Amazon S3, then when you retrieve the metadata from the object, you must use the following headers:

For more information about SSE-C, see Server-Side Encryption (Using Customer-Provided Encryption Keys) in the Amazon S3 User Guide.

Consider the following when using request headers:

For more information about conditional requests, see RFC 7232.

Permissions

The permissions that you need to use this operation depend on whether the bucket is versioned. If the bucket is versioned, you need both the s3:GetObjectVersion and s3:GetObjectVersionAttributes permissions for this operation. If the bucket is not versioned, you need the s3:GetObject and s3:GetObjectAttributes permissions. For more information, see Specifying Permissions in a Policy in the Amazon S3 User Guide. If the object that you request does not exist, the error Amazon S3 returns depends on whether you also have the s3:ListBucket permission.

The following actions are related to GetObjectAttributes:

", - "GetObjectLegalHold": "

Gets an object's current legal hold status. For more information, see Locking Objects.

This action is not supported by Amazon S3 on Outposts.

The following action is related to GetObjectLegalHold:

", - "GetObjectLockConfiguration": "

Gets the Object Lock configuration for a bucket. The rule specified in the Object Lock configuration will be applied by default to every new object placed in the specified bucket. For more information, see Locking Objects.

The following action is related to GetObjectLockConfiguration:

", - "GetObjectRetention": "

Retrieves an object's retention settings. For more information, see Locking Objects.

This action is not supported by Amazon S3 on Outposts.

The following action is related to GetObjectRetention:

", - "GetObjectTagging": "

Returns the tag-set of an object. You send the GET request against the tagging subresource associated with the object.

To use this operation, you must have permission to perform the s3:GetObjectTagging action. By default, the GET action returns information about current version of an object. For a versioned bucket, you can have multiple versions of an object in your bucket. To retrieve tags of any other version, use the versionId query parameter. You also need permission for the s3:GetObjectVersionTagging action.

By default, the bucket owner has this permission and can grant this permission to others.

For information about the Amazon S3 object tagging feature, see Object Tagging.

The following actions are related to GetObjectTagging:

", - "GetObjectTorrent": "

Returns torrent files from a bucket. BitTorrent can save you bandwidth when you're distributing large files.

You can get torrent only for objects that are less than 5 GB in size, and that are not encrypted using server-side encryption with a customer-provided encryption key.

To use GET, you must have READ access to the object.

This action is not supported by Amazon S3 on Outposts.

The following action is related to GetObjectTorrent:

", - "GetPublicAccessBlock": "

Retrieves the PublicAccessBlock configuration for an Amazon S3 bucket. To use this operation, you must have the s3:GetBucketPublicAccessBlock permission. For more information about Amazon S3 permissions, see Specifying Permissions in a Policy.

When Amazon S3 evaluates the PublicAccessBlock configuration for a bucket or an object, it checks the PublicAccessBlock configuration for both the bucket (or the bucket that contains the object) and the bucket owner's account. If the PublicAccessBlock settings are different between the bucket and the account, Amazon S3 uses the most restrictive combination of the bucket-level and account-level settings.

For more information about when Amazon S3 considers a bucket or an object public, see The Meaning of \"Public\".

The following operations are related to GetPublicAccessBlock:

", - "HeadBucket": "

This action is useful to determine if a bucket exists and you have permission to access it. The action returns a 200 OK if the bucket exists and you have permission to access it.

If the bucket does not exist or you do not have permission to access it, the HEAD request returns a generic 400 Bad Request, 403 Forbidden or 404 Not Found code. A message body is not included, so you cannot determine the exception beyond these error codes.

To use this operation, you must have permissions to perform the s3:ListBucket action. The bucket owner has this permission by default and can grant this permission to others. For more information about permissions, see Permissions Related to Bucket Subresource Operations and Managing Access Permissions to Your Amazon S3 Resources.

To use this API operation against an access point, you must provide the alias of the access point in place of the bucket name or specify the access point ARN. When using the access point ARN, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using the Amazon Web Services SDKs, you provide the ARN in place of the bucket name. For more information, see Using access points.

To use this API operation against an Object Lambda access point, provide the alias of the Object Lambda access point in place of the bucket name. If the Object Lambda access point alias in a request is not valid, the error code InvalidAccessPointAliasError is returned. For more information about InvalidAccessPointAliasError, see List of Error Codes.

", - "HeadObject": "

The HEAD action retrieves metadata from an object without returning the object itself. This action is useful if you're only interested in an object's metadata. To use HEAD, you must have READ access to the object.

A HEAD request has the same options as a GET action on an object. The response is identical to the GET response except that there is no response body. Because of this, if the HEAD request generates an error, it returns a generic code, such as 400 Bad Request, 403 Forbidden, 404 Not Found, 405 Method Not Allowed, 412 Precondition Failed, or 304 Not Modified. It's not possible to retrieve the exact exception of these error codes.

If you encrypt an object by using server-side encryption with customer-provided encryption keys (SSE-C) when you store the object in Amazon S3, then when you retrieve the metadata from the object, you must use the following headers:

For more information about SSE-C, see Server-Side Encryption (Using Customer-Provided Encryption Keys).

Request headers are limited to 8 KB in size. For more information, see Common Request Headers.

Consider the following when using request headers:

For more information about conditional requests, see RFC 7232.

Permissions

You need the relevant read object (or version) permission for this operation. For more information, see Actions, resources, and condition keys for Amazon S3. If the object you request doesn't exist, the error that Amazon S3 returns depends on whether you also have the s3:ListBucket permission.

Versioning

The following actions are related to HeadObject:

", - "ListBucketAnalyticsConfigurations": "

Lists the analytics configurations for the bucket. You can have up to 1,000 analytics configurations per bucket.

This action supports list pagination and does not return more than 100 configurations at a time. You should always check the IsTruncated element in the response. If there are no more configurations to list, IsTruncated is set to false. If there are more configurations to list, IsTruncated is set to true, and there will be a value in NextContinuationToken. You use the NextContinuationToken value to continue the pagination of the list by passing the value in continuation-token in the request to GET the next page.

To use this operation, you must have permissions to perform the s3:GetAnalyticsConfiguration action. The bucket owner has this permission by default. The bucket owner can grant this permission to others. For more information about permissions, see Permissions Related to Bucket Subresource Operations and Managing Access Permissions to Your Amazon S3 Resources.

For information about Amazon S3 analytics feature, see Amazon S3 Analytics – Storage Class Analysis.

The following operations are related to ListBucketAnalyticsConfigurations:

", - "ListBucketIntelligentTieringConfigurations": "

Lists the S3 Intelligent-Tiering configuration from the specified bucket.

The S3 Intelligent-Tiering storage class is designed to optimize storage costs by automatically moving data to the most cost-effective storage access tier, without performance impact or operational overhead. S3 Intelligent-Tiering delivers automatic cost savings in three low latency and high throughput access tiers. To get the lowest storage cost on data that can be accessed in minutes to hours, you can choose to activate additional archiving capabilities.

The S3 Intelligent-Tiering storage class is the ideal storage class for data with unknown, changing, or unpredictable access patterns, independent of object size or retention period. If the size of an object is less than 128 KB, it is not monitored and not eligible for auto-tiering. Smaller objects can be stored, but they are always charged at the Frequent Access tier rates in the S3 Intelligent-Tiering storage class.

For more information, see Storage class for automatically optimizing frequently and infrequently accessed objects.

Operations related to ListBucketIntelligentTieringConfigurations include:

", - "ListBucketInventoryConfigurations": "

Returns a list of inventory configurations for the bucket. You can have up to 1,000 analytics configurations per bucket.

This action supports list pagination and does not return more than 100 configurations at a time. Always check the IsTruncated element in the response. If there are no more configurations to list, IsTruncated is set to false. If there are more configurations to list, IsTruncated is set to true, and there is a value in NextContinuationToken. You use the NextContinuationToken value to continue the pagination of the list by passing the value in continuation-token in the request to GET the next page.

To use this operation, you must have permissions to perform the s3:GetInventoryConfiguration action. The bucket owner has this permission by default. The bucket owner can grant this permission to others. For more information about permissions, see Permissions Related to Bucket Subresource Operations and Managing Access Permissions to Your Amazon S3 Resources.

For information about the Amazon S3 inventory feature, see Amazon S3 Inventory

The following operations are related to ListBucketInventoryConfigurations:

", - "ListBucketMetricsConfigurations": "

Lists the metrics configurations for the bucket. The metrics configurations are only for the request metrics of the bucket and do not provide information on daily storage metrics. You can have up to 1,000 configurations per bucket.

This action supports list pagination and does not return more than 100 configurations at a time. Always check the IsTruncated element in the response. If there are no more configurations to list, IsTruncated is set to false. If there are more configurations to list, IsTruncated is set to true, and there is a value in NextContinuationToken. You use the NextContinuationToken value to continue the pagination of the list by passing the value in continuation-token in the request to GET the next page.

To use this operation, you must have permissions to perform the s3:GetMetricsConfiguration action. The bucket owner has this permission by default. The bucket owner can grant this permission to others. For more information about permissions, see Permissions Related to Bucket Subresource Operations and Managing Access Permissions to Your Amazon S3 Resources.

For more information about metrics configurations and CloudWatch request metrics, see Monitoring Metrics with Amazon CloudWatch.

The following operations are related to ListBucketMetricsConfigurations:

", - "ListBuckets": "

Returns a list of all buckets owned by the authenticated sender of the request. To use this operation, you must have the s3:ListAllMyBuckets permission.

For information about Amazon S3 buckets, see Creating, configuring, and working with Amazon S3 buckets.

", - "ListMultipartUploads": "

This action lists in-progress multipart uploads. An in-progress multipart upload is a multipart upload that has been initiated using the Initiate Multipart Upload request, but has not yet been completed or aborted.

This action returns at most 1,000 multipart uploads in the response. 1,000 multipart uploads is the maximum number of uploads a response can include, which is also the default value. You can further limit the number of uploads in a response by specifying the max-uploads parameter in the response. If additional multipart uploads satisfy the list criteria, the response will contain an IsTruncated element with the value true. To list the additional multipart uploads, use the key-marker and upload-id-marker request parameters.

In the response, the uploads are sorted by key. If your application has initiated more than one multipart upload using the same object key, then uploads in the response are first sorted by key. Additionally, uploads are sorted in ascending order within each key by the upload initiation time.

For more information on multipart uploads, see Uploading Objects Using Multipart Upload.

For information on permissions required to use the multipart upload API, see Multipart Upload and Permissions.

The following operations are related to ListMultipartUploads:

", - "ListObjectVersions": "

Returns metadata about all versions of the objects in a bucket. You can also use request parameters as selection criteria to return metadata about a subset of all the object versions.

To use this operation, you must have permission to perform the s3:ListBucketVersions action. Be aware of the name difference.

A 200 OK response can contain valid or invalid XML. Make sure to design your application to parse the contents of the response and handle it appropriately.

To use this operation, you must have READ access to the bucket.

The following operations are related to ListObjectVersions:

", - "ListObjects": "

Returns some or all (up to 1,000) of the objects in a bucket. You can use the request parameters as selection criteria to return a subset of the objects in a bucket. A 200 OK response can contain valid or invalid XML. Be sure to design your application to parse the contents of the response and handle it appropriately.

This action has been revised. We recommend that you use the newer version, ListObjectsV2, when developing applications. For backward compatibility, Amazon S3 continues to support ListObjects.

The following operations are related to ListObjects:

", - "ListObjectsV2": "

Returns some or all (up to 1,000) of the objects in a bucket with each request. You can use the request parameters as selection criteria to return a subset of the objects in a bucket. A 200 OK response can contain valid or invalid XML. Make sure to design your application to parse the contents of the response and handle it appropriately. Objects are returned sorted in an ascending order of the respective key names in the list. For more information about listing objects, see Listing object keys programmatically in the Amazon S3 User Guide.

To use this operation, you must have READ access to the bucket.

To use this action in an Identity and Access Management (IAM) policy, you must have permission to perform the s3:ListBucket action. The bucket owner has this permission by default and can grant this permission to others. For more information about permissions, see Permissions Related to Bucket Subresource Operations and Managing Access Permissions to Your Amazon S3 Resources in the Amazon S3 User Guide.

This section describes the latest revision of this action. We recommend that you use this revised API operation for application development. For backward compatibility, Amazon S3 continues to support the prior version of this API operation, ListObjects.

To get a list of your buckets, see ListBuckets.

The following operations are related to ListObjectsV2:

", - "ListParts": "

Lists the parts that have been uploaded for a specific multipart upload. This operation must include the upload ID, which you obtain by sending the initiate multipart upload request (see CreateMultipartUpload). This request returns a maximum of 1,000 uploaded parts. The default number of parts returned is 1,000 parts. You can restrict the number of parts returned by specifying the max-parts request parameter. If your multipart upload consists of more than 1,000 parts, the response returns an IsTruncated field with the value of true, and a NextPartNumberMarker element. In subsequent ListParts requests you can include the part-number-marker query string parameter and set its value to the NextPartNumberMarker field value from the previous response.

If the upload was created using a checksum algorithm, you will need to have permission to the kms:Decrypt action for the request to succeed.

For more information on multipart uploads, see Uploading Objects Using Multipart Upload.

For information on permissions required to use the multipart upload API, see Multipart Upload and Permissions.

The following operations are related to ListParts:

", - "PutBucketAccelerateConfiguration": "

Sets the accelerate configuration of an existing bucket. Amazon S3 Transfer Acceleration is a bucket-level feature that enables you to perform faster data transfers to Amazon S3.

To use this operation, you must have permission to perform the s3:PutAccelerateConfiguration action. The bucket owner has this permission by default. The bucket owner can grant this permission to others. For more information about permissions, see Permissions Related to Bucket Subresource Operations and Managing Access Permissions to Your Amazon S3 Resources.

The Transfer Acceleration state of a bucket can be set to one of the following two values:

The GetBucketAccelerateConfiguration action returns the transfer acceleration state of a bucket.

After setting the Transfer Acceleration state of a bucket to Enabled, it might take up to thirty minutes before the data transfer rates to the bucket increase.

The name of the bucket used for Transfer Acceleration must be DNS-compliant and must not contain periods (\".\").

For more information about transfer acceleration, see Transfer Acceleration.

The following operations are related to PutBucketAccelerateConfiguration:

", - "PutBucketAcl": "

Sets the permissions on an existing bucket using access control lists (ACL). For more information, see Using ACLs. To set the ACL of a bucket, you must have WRITE_ACP permission.

You can use one of the following two ways to set a bucket's permissions:

You cannot specify access permission using both the body and the request headers.

Depending on your application needs, you may choose to set the ACL on a bucket using either the request body or the headers. For example, if you have an existing application that updates a bucket ACL using the request body, then you can continue to use that approach.

If your bucket uses the bucket owner enforced setting for S3 Object Ownership, ACLs are disabled and no longer affect permissions. You must use policies to grant access to your bucket and the objects in it. Requests to set ACLs or update ACLs fail and return the AccessControlListNotSupported error code. Requests to read ACLs are still supported. For more information, see Controlling object ownership in the Amazon S3 User Guide.

Permissions

You can set access permissions by using one of the following methods:

You can use either a canned ACL or specify access permissions explicitly. You cannot do both.

Grantee Values

You can specify the person (grantee) to whom you're assigning access rights (using request elements) in the following ways:

The following operations are related to PutBucketAcl:

", - "PutBucketAnalyticsConfiguration": "

Sets an analytics configuration for the bucket (specified by the analytics configuration ID). You can have up to 1,000 analytics configurations per bucket.

You can choose to have storage class analysis export analysis reports sent to a comma-separated values (CSV) flat file. See the DataExport request element. Reports are updated daily and are based on the object filters that you configure. When selecting data export, you specify a destination bucket and an optional destination prefix where the file is written. You can export the data to a destination bucket in a different account. However, the destination bucket must be in the same Region as the bucket that you are making the PUT analytics configuration to. For more information, see Amazon S3 Analytics – Storage Class Analysis.

You must create a bucket policy on the destination bucket where the exported file is written to grant permissions to Amazon S3 to write objects to the bucket. For an example policy, see Granting Permissions for Amazon S3 Inventory and Storage Class Analysis.

To use this operation, you must have permissions to perform the s3:PutAnalyticsConfiguration action. The bucket owner has this permission by default. The bucket owner can grant this permission to others. For more information about permissions, see Permissions Related to Bucket Subresource Operations and Managing Access Permissions to Your Amazon S3 Resources.

PutBucketAnalyticsConfiguration has the following special errors:

The following operations are related to PutBucketAnalyticsConfiguration:

", - "PutBucketCors": "

Sets the cors configuration for your bucket. If the configuration exists, Amazon S3 replaces it.

To use this operation, you must be allowed to perform the s3:PutBucketCORS action. By default, the bucket owner has this permission and can grant it to others.

You set this configuration on a bucket so that the bucket can service cross-origin requests. For example, you might want to enable a request whose origin is http://www.example.com to access your Amazon S3 bucket at my.example.bucket.com by using the browser's XMLHttpRequest capability.

To enable cross-origin resource sharing (CORS) on a bucket, you add the cors subresource to the bucket. The cors subresource is an XML document in which you configure rules that identify origins and the HTTP methods that can be executed on your bucket. The document is limited to 64 KB in size.

When Amazon S3 receives a cross-origin request (or a pre-flight OPTIONS request) against a bucket, it evaluates the cors configuration on the bucket and uses the first CORSRule rule that matches the incoming browser request to enable a cross-origin request. For a rule to match, the following conditions must be met:

For more information about CORS, go to Enabling Cross-Origin Resource Sharing in the Amazon S3 User Guide.

The following operations are related to PutBucketCors:

", - "PutBucketEncryption": "

This action uses the encryption subresource to configure default encryption and Amazon S3 Bucket Keys for an existing bucket.

By default, all buckets have a default encryption configuration that uses server-side encryption with Amazon S3 managed keys (SSE-S3). You can optionally configure default encryption for a bucket by using server-side encryption with Key Management Service (KMS) keys (SSE-KMS) or dual-layer server-side encryption with Amazon Web Services KMS keys (DSSE-KMS). If you specify default encryption by using SSE-KMS, you can also configure Amazon S3 Bucket Keys. If you use PutBucketEncryption to set your default bucket encryption to SSE-KMS, you should verify that your KMS key ID is correct. Amazon S3 does not validate the KMS key ID provided in PutBucketEncryption requests.

This action requires Amazon Web Services Signature Version 4. For more information, see Authenticating Requests (Amazon Web Services Signature Version 4).

To use this operation, you must have permission to perform the s3:PutEncryptionConfiguration action. The bucket owner has this permission by default. The bucket owner can grant this permission to others. For more information about permissions, see Permissions Related to Bucket Subresource Operations and Managing Access Permissions to Your Amazon S3 Resources in the Amazon S3 User Guide.

The following operations are related to PutBucketEncryption:

", - "PutBucketIntelligentTieringConfiguration": "

Puts a S3 Intelligent-Tiering configuration to the specified bucket. You can have up to 1,000 S3 Intelligent-Tiering configurations per bucket.

The S3 Intelligent-Tiering storage class is designed to optimize storage costs by automatically moving data to the most cost-effective storage access tier, without performance impact or operational overhead. S3 Intelligent-Tiering delivers automatic cost savings in three low latency and high throughput access tiers. To get the lowest storage cost on data that can be accessed in minutes to hours, you can choose to activate additional archiving capabilities.

The S3 Intelligent-Tiering storage class is the ideal storage class for data with unknown, changing, or unpredictable access patterns, independent of object size or retention period. If the size of an object is less than 128 KB, it is not monitored and not eligible for auto-tiering. Smaller objects can be stored, but they are always charged at the Frequent Access tier rates in the S3 Intelligent-Tiering storage class.

For more information, see Storage class for automatically optimizing frequently and infrequently accessed objects.

Operations related to PutBucketIntelligentTieringConfiguration include:

You only need S3 Intelligent-Tiering enabled on a bucket if you want to automatically move objects stored in the S3 Intelligent-Tiering storage class to the Archive Access or Deep Archive Access tier.

PutBucketIntelligentTieringConfiguration has the following special errors:

HTTP 400 Bad Request Error

Code: InvalidArgument

Cause: Invalid Argument

HTTP 400 Bad Request Error

Code: TooManyConfigurations

Cause: You are attempting to create a new configuration but have already reached the 1,000-configuration limit.

HTTP 403 Forbidden Error

Cause: You are not the owner of the specified bucket, or you do not have the s3:PutIntelligentTieringConfiguration bucket permission to set the configuration on the bucket.

", - "PutBucketInventoryConfiguration": "

This implementation of the PUT action adds an inventory configuration (identified by the inventory ID) to the bucket. You can have up to 1,000 inventory configurations per bucket.

Amazon S3 inventory generates inventories of the objects in the bucket on a daily or weekly basis, and the results are published to a flat file. The bucket that is inventoried is called the source bucket, and the bucket where the inventory flat file is stored is called the destination bucket. The destination bucket must be in the same Amazon Web Services Region as the source bucket.

When you configure an inventory for a source bucket, you specify the destination bucket where you want the inventory to be stored, and whether to generate the inventory daily or weekly. You can also configure what object metadata to include and whether to inventory all object versions or only current versions. For more information, see Amazon S3 Inventory in the Amazon S3 User Guide.

You must create a bucket policy on the destination bucket to grant permissions to Amazon S3 to write objects to the bucket in the defined location. For an example policy, see Granting Permissions for Amazon S3 Inventory and Storage Class Analysis.

Permissions

To use this operation, you must have permission to perform the s3:PutInventoryConfiguration action. The bucket owner has this permission by default and can grant this permission to others.

The s3:PutInventoryConfiguration permission allows a user to create an S3 Inventory report that includes all object metadata fields available and to specify the destination bucket to store the inventory. A user with read access to objects in the destination bucket can also access all object metadata fields that are available in the inventory report.

To restrict access to an inventory report, see Restricting access to an Amazon S3 Inventory report in the Amazon S3 User Guide. For more information about the metadata fields available in S3 Inventory, see Amazon S3 Inventory lists in the Amazon S3 User Guide. For more information about permissions, see Permissions related to bucket subresource operations and Identity and access management in Amazon S3 in the Amazon S3 User Guide.

PutBucketInventoryConfiguration has the following special errors:

HTTP 400 Bad Request Error

Code: InvalidArgument

Cause: Invalid Argument

HTTP 400 Bad Request Error

Code: TooManyConfigurations

Cause: You are attempting to create a new configuration but have already reached the 1,000-configuration limit.

HTTP 403 Forbidden Error

Cause: You are not the owner of the specified bucket, or you do not have the s3:PutInventoryConfiguration bucket permission to set the configuration on the bucket.

The following operations are related to PutBucketInventoryConfiguration:

", - "PutBucketLifecycle": "

For an updated version of this API, see PutBucketLifecycleConfiguration. This version has been deprecated. Existing lifecycle configurations will work. For new lifecycle configurations, use the updated API.

Creates a new lifecycle configuration for the bucket or replaces an existing lifecycle configuration. For information about lifecycle configuration, see Object Lifecycle Management in the Amazon S3 User Guide.

By default, all Amazon S3 resources, including buckets, objects, and related subresources (for example, lifecycle configuration and website configuration) are private. Only the resource owner, the Amazon Web Services account that created the resource, can access it. The resource owner can optionally grant access permissions to others by writing an access policy. For this operation, users must get the s3:PutLifecycleConfiguration permission.

You can also explicitly deny permissions. Explicit denial also supersedes any other permissions. If you want to prevent users or accounts from removing or deleting objects from your bucket, you must deny them permissions for the following actions:

For more information about permissions, see Managing Access Permissions to your Amazon S3 Resources in the Amazon S3 User Guide.

For more examples of transitioning objects to storage classes such as STANDARD_IA or ONEZONE_IA, see Examples of Lifecycle Configuration.

The following operations are related to PutBucketLifecycle:

", - "PutBucketLifecycleConfiguration": "

Creates a new lifecycle configuration for the bucket or replaces an existing lifecycle configuration. Keep in mind that this will overwrite an existing lifecycle configuration, so if you want to retain any configuration details, they must be included in the new lifecycle configuration. For information about lifecycle configuration, see Managing your storage lifecycle.

Bucket lifecycle configuration now supports specifying a lifecycle rule using an object key name prefix, one or more object tags, or a combination of both. Accordingly, this section describes the latest API. The previous version of the API supported filtering based only on an object key name prefix, which is supported for backward compatibility. For the related API description, see PutBucketLifecycle.

Rules

You specify the lifecycle configuration in your request body. The lifecycle configuration is specified as XML consisting of one or more rules. An Amazon S3 Lifecycle configuration can have up to 1,000 rules. This limit is not adjustable. Each rule consists of the following:

For more information, see Object Lifecycle Management and Lifecycle Configuration Elements.

Permissions

By default, all Amazon S3 resources are private, including buckets, objects, and related subresources (for example, lifecycle configuration and website configuration). Only the resource owner (that is, the Amazon Web Services account that created it) can access the resource. The resource owner can optionally grant access permissions to others by writing an access policy. For this operation, a user must get the s3:PutLifecycleConfiguration permission.

You can also explicitly deny permissions. An explicit deny also supersedes any other permissions. If you want to block users or accounts from removing or deleting objects from your bucket, you must deny them permissions for the following actions:

For more information about permissions, see Managing Access Permissions to Your Amazon S3 Resources.

The following operations are related to PutBucketLifecycleConfiguration:

", - "PutBucketLogging": "

Set the logging parameters for a bucket and to specify permissions for who can view and modify the logging parameters. All logs are saved to buckets in the same Amazon Web Services Region as the source bucket. To set the logging status of a bucket, you must be the bucket owner.

The bucket owner is automatically granted FULL_CONTROL to all logs. You use the Grantee request element to grant access to other people. The Permissions request element specifies the kind of access the grantee has to the logs.

If the target bucket for log delivery uses the bucket owner enforced setting for S3 Object Ownership, you can't use the Grantee request element to grant access to others. Permissions can only be granted using policies. For more information, see Permissions for server access log delivery in the Amazon S3 User Guide.

Grantee Values

You can specify the person (grantee) to whom you're assigning access rights (by using request elements) in the following ways:

To enable logging, you use LoggingEnabled and its children request elements. To disable logging, you use an empty BucketLoggingStatus request element:

<BucketLoggingStatus xmlns=\"http://doc.s3.amazonaws.com/2006-03-01\" />

For more information about server access logging, see Server Access Logging in the Amazon S3 User Guide.

For more information about creating a bucket, see CreateBucket. For more information about returning the logging status of a bucket, see GetBucketLogging.

The following operations are related to PutBucketLogging:

", - "PutBucketMetricsConfiguration": "

Sets a metrics configuration (specified by the metrics configuration ID) for the bucket. You can have up to 1,000 metrics configurations per bucket. If you're updating an existing metrics configuration, note that this is a full replacement of the existing metrics configuration. If you don't include the elements you want to keep, they are erased.

To use this operation, you must have permissions to perform the s3:PutMetricsConfiguration action. The bucket owner has this permission by default. The bucket owner can grant this permission to others. For more information about permissions, see Permissions Related to Bucket Subresource Operations and Managing Access Permissions to Your Amazon S3 Resources.

For information about CloudWatch request metrics for Amazon S3, see Monitoring Metrics with Amazon CloudWatch.

The following operations are related to PutBucketMetricsConfiguration:

PutBucketMetricsConfiguration has the following special error:

", - "PutBucketNotification": "

No longer used, see the PutBucketNotificationConfiguration operation.

", - "PutBucketNotificationConfiguration": "

Enables notifications of specified events for a bucket. For more information about event notifications, see Configuring Event Notifications.

Using this API, you can replace an existing notification configuration. The configuration is an XML file that defines the event types that you want Amazon S3 to publish and the destination where you want Amazon S3 to publish an event notification when it detects an event of the specified type.

By default, your bucket has no event notifications configured. That is, the notification configuration will be an empty NotificationConfiguration.

<NotificationConfiguration>

</NotificationConfiguration>

This action replaces the existing notification configuration with the configuration you include in the request body.

After Amazon S3 receives this request, it first verifies that any Amazon Simple Notification Service (Amazon SNS) or Amazon Simple Queue Service (Amazon SQS) destination exists, and that the bucket owner has permission to publish to it by sending a test notification. In the case of Lambda destinations, Amazon S3 verifies that the Lambda function permissions grant Amazon S3 permission to invoke the function from the Amazon S3 bucket. For more information, see Configuring Notifications for Amazon S3 Events.

You can disable notifications by adding the empty NotificationConfiguration element.

For more information about the number of event notification configurations that you can create per bucket, see Amazon S3 service quotas in Amazon Web Services General Reference.

By default, only the bucket owner can configure notifications on a bucket. However, bucket owners can use a bucket policy to grant permission to other users to set this configuration with the required s3:PutBucketNotification permission.

The PUT notification is an atomic operation. For example, suppose your notification configuration includes SNS topic, SQS queue, and Lambda function configurations. When you send a PUT request with this configuration, Amazon S3 sends test messages to your SNS topic. If the message fails, the entire PUT action will fail, and Amazon S3 will not add the configuration to your bucket.

If the configuration in the request body includes only one TopicConfiguration specifying only the s3:ReducedRedundancyLostObject event type, the response will also include the x-amz-sns-test-message-id header containing the message ID of the test notification sent to the topic.

The following action is related to PutBucketNotificationConfiguration:

", - "PutBucketOwnershipControls": "

Creates or modifies OwnershipControls for an Amazon S3 bucket. To use this operation, you must have the s3:PutBucketOwnershipControls permission. For more information about Amazon S3 permissions, see Specifying permissions in a policy.

For information about Amazon S3 Object Ownership, see Using object ownership.

The following operations are related to PutBucketOwnershipControls:

", - "PutBucketPolicy": "

Applies an Amazon S3 bucket policy to an Amazon S3 bucket. If you are using an identity other than the root user of the Amazon Web Services account that owns the bucket, the calling identity must have the PutBucketPolicy permissions on the specified bucket and belong to the bucket owner's account in order to use this operation.

If you don't have PutBucketPolicy permissions, Amazon S3 returns a 403 Access Denied error. If you have the correct permissions, but you're not using an identity that belongs to the bucket owner's account, Amazon S3 returns a 405 Method Not Allowed error.

To ensure that bucket owners don't inadvertently lock themselves out of their own buckets, the root principal in a bucket owner's Amazon Web Services account can perform the GetBucketPolicy, PutBucketPolicy, and DeleteBucketPolicy API actions, even if their bucket policy explicitly denies the root principal's access. Bucket owner root principals can only be blocked from performing these API actions by VPC endpoint policies and Amazon Web Services Organizations policies.

For more information, see Bucket policy examples.

The following operations are related to PutBucketPolicy:

", - "PutBucketReplication": "

Creates a replication configuration or replaces an existing one. For more information, see Replication in the Amazon S3 User Guide.

Specify the replication configuration in the request body. In the replication configuration, you provide the name of the destination bucket or buckets where you want Amazon S3 to replicate objects, the IAM role that Amazon S3 can assume to replicate objects on your behalf, and other relevant information. You can invoke this request for a specific Amazon Web Services Region by using the aws:RequestedRegion condition key.

A replication configuration must include at least one rule, and can contain a maximum of 1,000. Each rule identifies a subset of objects to replicate by filtering the objects in the source bucket. To choose additional subsets of objects to replicate, add a rule for each subset.

To specify a subset of the objects in the source bucket to apply a replication rule to, add the Filter element as a child of the Rule element. You can filter objects based on an object key prefix, one or more object tags, or both. When you add the Filter element in the configuration, you must also add the following elements: DeleteMarkerReplication, Status, and Priority.

If you are using an earlier version of the replication configuration, Amazon S3 handles replication of delete markers differently. For more information, see Backward Compatibility.

For information about enabling versioning on a bucket, see Using Versioning.

Handling Replication of Encrypted Objects

By default, Amazon S3 doesn't replicate objects that are stored at rest using server-side encryption with KMS keys. To replicate Amazon Web Services KMS-encrypted objects, add the following: SourceSelectionCriteria, SseKmsEncryptedObjects, Status, EncryptionConfiguration, and ReplicaKmsKeyID. For information about replication configuration, see Replicating Objects Created with SSE Using KMS keys.

For information on PutBucketReplication errors, see List of replication-related error codes

Permissions

To create a PutBucketReplication request, you must have s3:PutReplicationConfiguration permissions for the bucket.

By default, a resource owner, in this case the Amazon Web Services account that created the bucket, can perform this operation. The resource owner can also grant others permissions to perform the operation. For more information about permissions, see Specifying Permissions in a Policy and Managing Access Permissions to Your Amazon S3 Resources.

To perform this operation, the user or role performing the action must have the iam:PassRole permission.

The following operations are related to PutBucketReplication:

", - "PutBucketRequestPayment": "

Sets the request payment configuration for a bucket. By default, the bucket owner pays for downloads from the bucket. This configuration parameter enables the bucket owner (only) to specify that the person requesting the download will be charged for the download. For more information, see Requester Pays Buckets.

The following operations are related to PutBucketRequestPayment:

", - "PutBucketTagging": "

Sets the tags for a bucket.

Use tags to organize your Amazon Web Services bill to reflect your own cost structure. To do this, sign up to get your Amazon Web Services account bill with tag key values included. Then, to see the cost of combined resources, organize your billing information according to resources with the same tag key values. For example, you can tag several resources with a specific application name, and then organize your billing information to see the total cost of that application across several services. For more information, see Cost Allocation and Tagging and Using Cost Allocation in Amazon S3 Bucket Tags.

When this operation sets the tags for a bucket, it will overwrite any current tags the bucket already has. You cannot use this operation to add tags to an existing list of tags.

To use this operation, you must have permissions to perform the s3:PutBucketTagging action. The bucket owner has this permission by default and can grant this permission to others. For more information about permissions, see Permissions Related to Bucket Subresource Operations and Managing Access Permissions to Your Amazon S3 Resources.

PutBucketTagging has the following special errors. For more Amazon S3 errors see, Error Responses.

The following operations are related to PutBucketTagging:

", - "PutBucketVersioning": "

Sets the versioning state of an existing bucket.

You can set the versioning state with one of the following values:

Enabled—Enables versioning for the objects in the bucket. All objects added to the bucket receive a unique version ID.

Suspended—Disables versioning for the objects in the bucket. All objects added to the bucket receive the version ID null.

If the versioning state has never been set on a bucket, it has no versioning state; a GetBucketVersioning request does not return a versioning state value.

In order to enable MFA Delete, you must be the bucket owner. If you are the bucket owner and want to enable MFA Delete in the bucket versioning configuration, you must include the x-amz-mfa request header and the Status and the MfaDelete request elements in a request to set the versioning state of the bucket.

If you have an object expiration lifecycle configuration in your non-versioned bucket and you want to maintain the same permanent delete behavior when you enable versioning, you must add a noncurrent expiration policy. The noncurrent expiration lifecycle configuration will manage the deletes of the noncurrent object versions in the version-enabled bucket. (A version-enabled bucket maintains one current and zero or more noncurrent object versions.) For more information, see Lifecycle and Versioning.

The following operations are related to PutBucketVersioning:

", - "PutBucketWebsite": "

Sets the configuration of the website that is specified in the website subresource. To configure a bucket as a website, you can add this subresource on the bucket with website configuration information such as the file name of the index document and any redirect rules. For more information, see Hosting Websites on Amazon S3.

This PUT action requires the S3:PutBucketWebsite permission. By default, only the bucket owner can configure the website attached to a bucket; however, bucket owners can allow other users to set the website configuration by writing a bucket policy that grants them the S3:PutBucketWebsite permission.

To redirect all website requests sent to the bucket's website endpoint, you add a website configuration with the following elements. Because all requests are sent to another website, you don't need to provide index document name for the bucket.

If you want granular control over redirects, you can use the following elements to add routing rules that describe conditions for redirecting requests and information about the redirect destination. In this case, the website configuration must provide an index document for the bucket, because some requests might not be redirected.

Amazon S3 has a limitation of 50 routing rules per website configuration. If you require more than 50 routing rules, you can use object redirect. For more information, see Configuring an Object Redirect in the Amazon S3 User Guide.

The maximum request length is limited to 128 KB.

", - "PutObject": "

Adds an object to a bucket. You must have WRITE permissions on a bucket to add an object to it.

Amazon S3 never adds partial objects; if you receive a success response, Amazon S3 added the entire object to the bucket. You cannot use PutObject to only update a single piece of metadata for an existing object. You must put the entire object with updated metadata if you want to update some values.

Amazon S3 is a distributed system. If it receives multiple write requests for the same object simultaneously, it overwrites all but the last object written. To prevent objects from being deleted or overwritten, you can use Amazon S3 Object Lock.

To ensure that data is not corrupted traversing the network, use the Content-MD5 header. When you use this header, Amazon S3 checks the object against the provided MD5 value and, if they do not match, returns an error. Additionally, you can calculate the MD5 while putting an object to Amazon S3 and compare the returned ETag to the calculated MD5 value.

You have four mutually exclusive options to protect data using server-side encryption in Amazon S3, depending on how you choose to manage the encryption keys. Specifically, the encryption key options are Amazon S3 managed keys (SSE-S3), Amazon Web Services KMS keys (SSE-KMS or DSSE-KMS), and customer-provided keys (SSE-C). Amazon S3 encrypts data with server-side encryption by using Amazon S3 managed keys (SSE-S3) by default. You can optionally tell Amazon S3 to encrypt data at rest by using server-side encryption with other key options. For more information, see Using Server-Side Encryption.

When adding a new object, you can use headers to grant ACL-based permissions to individual Amazon Web Services accounts or to predefined groups defined by Amazon S3. These permissions are then added to the ACL on the object. By default, all objects are private. Only the owner has full access control. For more information, see Access Control List (ACL) Overview and Managing ACLs Using the REST API.

If the bucket that you're uploading objects to uses the bucket owner enforced setting for S3 Object Ownership, ACLs are disabled and no longer affect permissions. Buckets that use this setting only accept PUT requests that don't specify an ACL or PUT requests that specify bucket owner full control ACLs, such as the bucket-owner-full-control canned ACL or an equivalent form of this ACL expressed in the XML format. PUT requests that contain other ACLs (for example, custom grants to certain Amazon Web Services accounts) fail and return a 400 error with the error code AccessControlListNotSupported. For more information, see Controlling ownership of objects and disabling ACLs in the Amazon S3 User Guide.

If your bucket uses the bucket owner enforced setting for Object Ownership, all objects written to the bucket by any account will be owned by the bucket owner.

By default, Amazon S3 uses the STANDARD Storage Class to store newly created objects. The STANDARD storage class provides high durability and high availability. Depending on performance needs, you can specify a different Storage Class. Amazon S3 on Outposts only uses the OUTPOSTS Storage Class. For more information, see Storage Classes in the Amazon S3 User Guide.

If you enable versioning for a bucket, Amazon S3 automatically generates a unique version ID for the object being stored. Amazon S3 returns this ID in the response. When you enable versioning for a bucket, if Amazon S3 receives multiple write requests for the same object simultaneously, it stores all of the objects. For more information about versioning, see Adding Objects to Versioning-Enabled Buckets. For information about returning the versioning state of a bucket, see GetBucketVersioning.

For more information about related Amazon S3 APIs, see the following:

", - "PutObjectAcl": "

Uses the acl subresource to set the access control list (ACL) permissions for a new or existing object in an S3 bucket. You must have WRITE_ACP permission to set the ACL of an object. For more information, see What permissions can I grant? in the Amazon S3 User Guide.

This action is not supported by Amazon S3 on Outposts.

Depending on your application needs, you can choose to set the ACL on an object using either the request body or the headers. For example, if you have an existing application that updates a bucket ACL using the request body, you can continue to use that approach. For more information, see Access Control List (ACL) Overview in the Amazon S3 User Guide.

If your bucket uses the bucket owner enforced setting for S3 Object Ownership, ACLs are disabled and no longer affect permissions. You must use policies to grant access to your bucket and the objects in it. Requests to set ACLs or update ACLs fail and return the AccessControlListNotSupported error code. Requests to read ACLs are still supported. For more information, see Controlling object ownership in the Amazon S3 User Guide.

Permissions

You can set access permissions using one of the following methods:

You can use either a canned ACL or specify access permissions explicitly. You cannot do both.

Grantee Values

You can specify the person (grantee) to whom you're assigning access rights (using request elements) in the following ways:

Versioning

The ACL of an object is set at the object version level. By default, PUT sets the ACL of the current version of an object. To set the ACL of a different version, use the versionId subresource.

The following operations are related to PutObjectAcl:

", - "PutObjectLegalHold": "

Applies a legal hold configuration to the specified object. For more information, see Locking Objects.

This action is not supported by Amazon S3 on Outposts.

", - "PutObjectLockConfiguration": "

Places an Object Lock configuration on the specified bucket. The rule specified in the Object Lock configuration will be applied by default to every new object placed in the specified bucket. For more information, see Locking Objects.

", - "PutObjectRetention": "

Places an Object Retention configuration on an object. For more information, see Locking Objects. Users or accounts require the s3:PutObjectRetention permission in order to place an Object Retention configuration on objects. Bypassing a Governance Retention configuration requires the s3:BypassGovernanceRetention permission.

This action is not supported by Amazon S3 on Outposts.

", - "PutObjectTagging": "

Sets the supplied tag-set to an object that already exists in a bucket. A tag is a key-value pair. For more information, see Object Tagging.

You can associate tags with an object by sending a PUT request against the tagging subresource that is associated with the object. You can retrieve tags by sending a GET request. For more information, see GetObjectTagging.

For tagging-related restrictions related to characters and encodings, see Tag Restrictions. Note that Amazon S3 limits the maximum number of tags to 10 tags per object.

To use this operation, you must have permission to perform the s3:PutObjectTagging action. By default, the bucket owner has this permission and can grant this permission to others.

To put tags of any other version, use the versionId query parameter. You also need permission for the s3:PutObjectVersionTagging action.

PutObjectTagging has the following special errors. For more Amazon S3 errors see, Error Responses.

The following operations are related to PutObjectTagging:

", - "PutPublicAccessBlock": "

Creates or modifies the PublicAccessBlock configuration for an Amazon S3 bucket. To use this operation, you must have the s3:PutBucketPublicAccessBlock permission. For more information about Amazon S3 permissions, see Specifying Permissions in a Policy.

When Amazon S3 evaluates the PublicAccessBlock configuration for a bucket or an object, it checks the PublicAccessBlock configuration for both the bucket (or the bucket that contains the object) and the bucket owner's account. If the PublicAccessBlock configurations are different between the bucket and the account, Amazon S3 uses the most restrictive combination of the bucket-level and account-level settings.

For more information about when Amazon S3 considers a bucket or an object public, see The Meaning of \"Public\".

The following operations are related to PutPublicAccessBlock:

", - "RestoreObject": "

Restores an archived copy of an object back into Amazon S3

This action is not supported by Amazon S3 on Outposts.

This action performs the following types of requests:

For more information about the S3 structure in the request body, see the following:

Define the SQL expression for the SELECT type of restoration for your query in the request body's SelectParameters structure. You can use expressions like the following examples.

When making a select request, you can also do the following:

The following are additional important facts about the select feature:

Permissions

To use this operation, you must have permissions to perform the s3:RestoreObject action. The bucket owner has this permission by default and can grant this permission to others. For more information about permissions, see Permissions Related to Bucket Subresource Operations and Managing Access Permissions to Your Amazon S3 Resources in the Amazon S3 User Guide.

Restoring objects

Objects that you archive to the S3 Glacier Flexible Retrieval Flexible Retrieval or S3 Glacier Deep Archive storage class, and S3 Intelligent-Tiering Archive or S3 Intelligent-Tiering Deep Archive tiers, are not accessible in real time. For objects in the S3 Glacier Flexible Retrieval Flexible Retrieval or S3 Glacier Deep Archive storage classes, you must first initiate a restore request, and then wait until a temporary copy of the object is available. If you want a permanent copy of the object, create a copy of it in the Amazon S3 Standard storage class in your S3 bucket. To access an archived object, you must restore the object for the duration (number of days) that you specify. For objects in the Archive Access or Deep Archive Access tiers of S3 Intelligent-Tiering, you must first initiate a restore request, and then wait until the object is moved into the Frequent Access tier.

To restore a specific object version, you can provide a version ID. If you don't provide a version ID, Amazon S3 restores the current version.

When restoring an archived object, you can specify one of the following data access tier options in the Tier element of the request body:

For more information about archive retrieval options and provisioned capacity for Expedited data access, see Restoring Archived Objects in the Amazon S3 User Guide.

You can use Amazon S3 restore speed upgrade to change the restore speed to a faster speed while it is in progress. For more information, see Upgrading the speed of an in-progress restore in the Amazon S3 User Guide.

To get the status of object restoration, you can send a HEAD request. Operations return the x-amz-restore header, which provides information about the restoration status, in the response. You can use Amazon S3 event notifications to notify you when a restore is initiated or completed. For more information, see Configuring Amazon S3 Event Notifications in the Amazon S3 User Guide.

After restoring an archived object, you can update the restoration period by reissuing the request with a new period. Amazon S3 updates the restoration period relative to the current time and charges only for the request-there are no data transfer charges. You cannot update the restoration period when Amazon S3 is actively processing your current restore request for the object.

If your bucket has a lifecycle configuration with a rule that includes an expiration action, the object expiration overrides the life span that you specify in a restore request. For example, if you restore an object copy for 10 days, but the object is scheduled to expire in 3 days, Amazon S3 deletes the object in 3 days. For more information about lifecycle configuration, see PutBucketLifecycleConfiguration and Object Lifecycle Management in Amazon S3 User Guide.

Responses

A successful action returns either the 200 OK or 202 Accepted status code.

The following operations are related to RestoreObject:

", - "SelectObjectContent": "

This action filters the contents of an Amazon S3 object based on a simple structured query language (SQL) statement. In the request, along with the SQL expression, you must also specify a data serialization format (JSON, CSV, or Apache Parquet) of the object. Amazon S3 uses this format to parse object data into records, and returns only records that match the specified SQL expression. You must also specify the data serialization format for the response.

This action is not supported by Amazon S3 on Outposts.

For more information about Amazon S3 Select, see Selecting Content from Objects and SELECT Command in the Amazon S3 User Guide.

Permissions

You must have s3:GetObject permission for this operation. Amazon S3 Select does not support anonymous access. For more information about permissions, see Specifying Permissions in a Policy in the Amazon S3 User Guide.

Object Data Formats

You can use Amazon S3 Select to query objects that have the following format properties:

Working with the Response Body

Given the response size is unknown, Amazon S3 Select streams the response as a series of messages and includes a Transfer-Encoding header with chunked as its value in the response. For more information, see Appendix: SelectObjectContent Response.

GetObject Support

The SelectObjectContent action does not support the following GetObject functionality. For more information, see GetObject.

Special Errors

For a list of special errors for this operation, see List of SELECT Object Content Error Codes

The following operations are related to SelectObjectContent:

", - "UploadPart": "

Uploads a part in a multipart upload.

In this operation, you provide part data in your request. However, you have an option to specify your existing Amazon S3 object as a data source for the part you are uploading. To upload a part from an existing object, you use the UploadPartCopy operation.

You must initiate a multipart upload (see CreateMultipartUpload) before you can upload any part. In response to your initiate request, Amazon S3 returns an upload ID, a unique identifier, that you must include in your upload part request.

Part numbers can be any number from 1 to 10,000, inclusive. A part number uniquely identifies a part and also defines its position within the object being created. If you upload a new part using the same part number that was used with a previous part, the previously uploaded part is overwritten.

For information about maximum and minimum part sizes and other multipart upload specifications, see Multipart upload limits in the Amazon S3 User Guide.

To ensure that data is not corrupted when traversing the network, specify the Content-MD5 header in the upload part request. Amazon S3 checks the part data against the provided MD5 value. If they do not match, Amazon S3 returns an error.

If the upload request is signed with Signature Version 4, then Amazon Web Services S3 uses the x-amz-content-sha256 header as a checksum instead of Content-MD5. For more information see Authenticating Requests: Using the Authorization Header (Amazon Web Services Signature Version 4).

Note: After you initiate multipart upload and upload one or more parts, you must either complete or abort multipart upload in order to stop getting charged for storage of the uploaded parts. Only after you either complete or abort multipart upload, Amazon S3 frees up the parts storage and stops charging you for the parts storage.

For more information on multipart uploads, go to Multipart Upload Overview in the Amazon S3 User Guide .

For information on the permissions required to use the multipart upload API, go to Multipart Upload and Permissions in the Amazon S3 User Guide.

Server-side encryption is for data encryption at rest. Amazon S3 encrypts your data as it writes it to disks in its data centers and decrypts it when you access it. You have three mutually exclusive options to protect data using server-side encryption in Amazon S3, depending on how you choose to manage the encryption keys. Specifically, the encryption key options are Amazon S3 managed keys (SSE-S3), Amazon Web Services KMS keys (SSE-KMS), and Customer-Provided Keys (SSE-C). Amazon S3 encrypts data with server-side encryption using Amazon S3 managed keys (SSE-S3) by default. You can optionally tell Amazon S3 to encrypt data at rest using server-side encryption with other key options. The option you use depends on whether you want to use KMS keys (SSE-KMS) or provide your own encryption key (SSE-C). If you choose to provide your own encryption key, the request headers you provide in the request must match the headers you used in the request to initiate the upload by using CreateMultipartUpload. For more information, go to Using Server-Side Encryption in the Amazon S3 User Guide.

Server-side encryption is supported by the S3 Multipart Upload actions. Unless you are using a customer-provided encryption key (SSE-C), you don't need to specify the encryption parameters in each UploadPart request. Instead, you only need to specify the server-side encryption parameters in the initial Initiate Multipart request. For more information, see CreateMultipartUpload.

If you requested server-side encryption using a customer-provided encryption key (SSE-C) in your initiate multipart upload request, you must provide identical encryption information in each part upload using the following headers.

UploadPart has the following special errors:

The following operations are related to UploadPart:

", - "UploadPartCopy": "

Uploads a part by copying data from an existing object as data source. You specify the data source by adding the request header x-amz-copy-source in your request and a byte range by adding the request header x-amz-copy-source-range in your request.

For information about maximum and minimum part sizes and other multipart upload specifications, see Multipart upload limits in the Amazon S3 User Guide.

Instead of using an existing object as part data, you might use the UploadPart action and provide data in your request.

You must initiate a multipart upload before you can upload any part. In response to your initiate request. Amazon S3 returns a unique identifier, the upload ID, that you must include in your upload part request.

For more information about using the UploadPartCopy operation, see the following:

Note the following additional considerations about the request headers x-amz-copy-source-if-match, x-amz-copy-source-if-none-match, x-amz-copy-source-if-unmodified-since, and x-amz-copy-source-if-modified-since:

Versioning

If your bucket has versioning enabled, you could have multiple versions of the same object. By default, x-amz-copy-source identifies the current version of the object to copy. If the current version is a delete marker and you don't specify a versionId in the x-amz-copy-source, Amazon S3 returns a 404 error, because the object does not exist. If you specify versionId in the x-amz-copy-source and the versionId is a delete marker, Amazon S3 returns an HTTP 400 error, because you are not allowed to specify a delete marker as a version for the x-amz-copy-source.

You can optionally specify a specific version of the source object to copy by adding the versionId subresource as shown in the following example:

x-amz-copy-source: /bucket/object?versionId=version id

Special errors

The following operations are related to UploadPartCopy:

", - "WriteGetObjectResponse": "

Passes transformed objects to a GetObject operation when using Object Lambda access points. For information about Object Lambda access points, see Transforming objects with Object Lambda access points in the Amazon S3 User Guide.

This operation supports metadata that can be returned by GetObject, in addition to RequestRoute, RequestToken, StatusCode, ErrorCode, and ErrorMessage. The GetObject response metadata is supported so that the WriteGetObjectResponse caller, typically an Lambda function, can provide the same metadata when it internally invokes GetObject. When WriteGetObjectResponse is called by a customer-owned Lambda function, the metadata returned to the end user GetObject call might differ from what Amazon S3 would normally return.

You can include any number of metadata headers. When including a metadata header, it should be prefaced with x-amz-meta. For example, x-amz-meta-my-custom-header: MyCustomValue. The primary use case for this is to forward GetObject metadata.

Amazon Web Services provides some prebuilt Lambda functions that you can use with S3 Object Lambda to detect and redact personally identifiable information (PII) and decompress S3 objects. These Lambda functions are available in the Amazon Web Services Serverless Application Repository, and can be selected through the Amazon Web Services Management Console when you create your Object Lambda access point.

Example 1: PII Access Control - This Lambda function uses Amazon Comprehend, a natural language processing (NLP) service using machine learning to find insights and relationships in text. It automatically detects personally identifiable information (PII) such as names, addresses, dates, credit card numbers, and social security numbers from documents in your Amazon S3 bucket.

Example 2: PII Redaction - This Lambda function uses Amazon Comprehend, a natural language processing (NLP) service using machine learning to find insights and relationships in text. It automatically redacts personally identifiable information (PII) such as names, addresses, dates, credit card numbers, and social security numbers from documents in your Amazon S3 bucket.

Example 3: Decompression - The Lambda function S3ObjectLambdaDecompression, is equipped to decompress objects stored in S3 in one of six compressed file formats including bzip2, gzip, snappy, zlib, zstandard and ZIP.

For information on how to view and use these functions, see Using Amazon Web Services built Lambda functions in the Amazon S3 User Guide.

" + "AbortMultipartUpload": "

This operation aborts a multipart upload. After a multipart upload is aborted, no additional parts can be uploaded using that upload ID. The storage consumed by any previously uploaded parts will be freed. However, if any part uploads are currently in progress, those part uploads might or might not succeed. As a result, it might be necessary to abort a given multipart upload multiple times in order to completely free all storage consumed by all parts.

To verify that all parts have been removed and prevent getting charged for the part storage, you should call the ListParts API operation and ensure that the parts list is empty.

Directory buckets - For directory buckets, you must make requests for this API operation to the Zonal endpoint. These endpoints support virtual-hosted-style requests in the format https://bucket_name.s3express-az_id.region.amazonaws.com/key-name . Path-style requests are not supported. For more information, see Regional and Zonal endpoints in the Amazon S3 User Guide.

Permissions
HTTP Host header syntax

Directory buckets - The HTTP Host header syntax is Bucket_name.s3express-az_id.region.amazonaws.com.

The following operations are related to AbortMultipartUpload:

", + "CompleteMultipartUpload": "

Completes a multipart upload by assembling previously uploaded parts.

You first initiate the multipart upload and then upload all parts using the UploadPart operation or the UploadPartCopy operation. After successfully uploading all relevant parts of an upload, you call this CompleteMultipartUpload operation to complete the upload. Upon receiving this request, Amazon S3 concatenates all the parts in ascending order by part number to create a new object. In the CompleteMultipartUpload request, you must provide the parts list and ensure that the parts list is complete. The CompleteMultipartUpload API operation concatenates the parts that you provide in the list. For each part in the list, you must provide the PartNumber value and the ETag value that are returned after that part was uploaded.

The processing of a CompleteMultipartUpload request could take several minutes to finalize. After Amazon S3 begins processing the request, it sends an HTTP response header that specifies a 200 OK response. While processing is in progress, Amazon S3 periodically sends white space characters to keep the connection from timing out. A request could fail after the initial 200 OK response has been sent. This means that a 200 OK response can contain either a success or an error. The error response might be embedded in the 200 OK response. If you call this API operation directly, make sure to design your application to parse the contents of the response and handle it appropriately. If you use Amazon Web Services SDKs, SDKs handle this condition. The SDKs detect the embedded error and apply error handling per your configuration settings (including automatically retrying the request as appropriate). If the condition persists, the SDKs throw an exception (or, for the SDKs that don't use exceptions, they return an error).

Note that if CompleteMultipartUpload fails, applications should be prepared to retry the failed requests. For more information, see Amazon S3 Error Best Practices.

You can't use Content-Type: application/x-www-form-urlencoded for the CompleteMultipartUpload requests. Also, if you don't provide a Content-Type header, CompleteMultipartUpload can still return a 200 OK response.

For more information about multipart uploads, see Uploading Objects Using Multipart Upload in the Amazon S3 User Guide.

Directory buckets - For directory buckets, you must make requests for this API operation to the Zonal endpoint. These endpoints support virtual-hosted-style requests in the format https://bucket_name.s3express-az_id.region.amazonaws.com/key-name . Path-style requests are not supported. For more information, see Regional and Zonal endpoints in the Amazon S3 User Guide.

Permissions
Special errors
HTTP Host header syntax

Directory buckets - The HTTP Host header syntax is Bucket_name.s3express-az_id.region.amazonaws.com.

The following operations are related to CompleteMultipartUpload:

", + "CopyObject": "

Creates a copy of an object that is already stored in Amazon S3.

You can store individual objects of up to 5 TB in Amazon S3. You create a copy of your object up to 5 GB in size in a single atomic action using this API. However, to copy an object greater than 5 GB, you must use the multipart upload Upload Part - Copy (UploadPartCopy) API. For more information, see Copy Object Using the REST Multipart Upload API.

You can copy individual objects between general purpose buckets, between directory buckets, and between general purpose buckets and directory buckets.

Directory buckets - For directory buckets, you must make requests for this API operation to the Zonal endpoint. These endpoints support virtual-hosted-style requests in the format https://bucket_name.s3express-az_id.region.amazonaws.com/key-name . Path-style requests are not supported. For more information, see Regional and Zonal endpoints in the Amazon S3 User Guide.

Both the Region that you want to copy the object from and the Region that you want to copy the object to must be enabled for your account.

Amazon S3 transfer acceleration does not support cross-Region copies. If you request a cross-Region copy using a transfer acceleration endpoint, you get a 400 Bad Request error. For more information, see Transfer Acceleration.

Authentication and authorization

All CopyObject requests must be authenticated and signed by using IAM credentials (access key ID and secret access key for the IAM identities). All headers with the x-amz- prefix, including x-amz-copy-source, must be signed. For more information, see REST Authentication.

Directory buckets - You must use the IAM credentials to authenticate and authorize your access to the CopyObject API operation, instead of using the temporary security credentials through the CreateSession API operation.

Amazon Web Services CLI or SDKs handles authentication and authorization on your behalf.

Permissions

You must have read access to the source object and write access to the destination bucket.

Response and special errors

When the request is an HTTP 1.1 request, the response is chunk encoded. When the request is not an HTTP 1.1 request, the response would not contain the Content-Length. You always need to read the entire response body to check if the copy succeeds. to keep the connection alive while we copy the data.

Charge

The copy request charge is based on the storage class and Region that you specify for the destination object. The request can also result in a data retrieval charge for the source if the source storage class bills for data retrieval. For pricing information, see Amazon S3 pricing.

HTTP Host header syntax

Directory buckets - The HTTP Host header syntax is Bucket_name.s3express-az_id.region.amazonaws.com.

The following operations are related to CopyObject:

", + "CreateBucket": "

This action creates an Amazon S3 bucket. To create an Amazon S3 on Outposts bucket, see CreateBucket .

Creates a new S3 bucket. To create a bucket, you must set up Amazon S3 and have a valid Amazon Web Services Access Key ID to authenticate requests. Anonymous requests are never allowed to create buckets. By creating the bucket, you become the bucket owner.

There are two types of buckets: general purpose buckets and directory buckets. For more information about these bucket types, see Creating, configuring, and working with Amazon S3 buckets in the Amazon S3 User Guide.

Permissions
HTTP Host header syntax

Directory buckets - The HTTP Host header syntax is s3express-control.region.amazonaws.com.

The following operations are related to CreateBucket:

", + "CreateMultipartUpload": "

This action initiates a multipart upload and returns an upload ID. This upload ID is used to associate all of the parts in the specific multipart upload. You specify this upload ID in each of your subsequent upload part requests (see UploadPart). You also include this upload ID in the final request to either complete or abort the multipart upload request. For more information about multipart uploads, see Multipart Upload Overview in the Amazon S3 User Guide.

After you initiate a multipart upload and upload one or more parts, to stop being charged for storing the uploaded parts, you must either complete or abort the multipart upload. Amazon S3 frees up the space used to store the parts and stops charging you for storing them only after you either complete or abort a multipart upload.

If you have configured a lifecycle rule to abort incomplete multipart uploads, the created multipart upload must be completed within the number of days specified in the bucket lifecycle configuration. Otherwise, the incomplete multipart upload becomes eligible for an abort action and Amazon S3 aborts the multipart upload. For more information, see Aborting Incomplete Multipart Uploads Using a Bucket Lifecycle Configuration.

Request signing

For request signing, multipart upload is just a series of regular requests. You initiate a multipart upload, send one or more requests to upload parts, and then complete the multipart upload process. You sign each request individually. There is nothing special about signing multipart upload requests. For more information about signing, see Authenticating Requests (Amazon Web Services Signature Version 4) in the Amazon S3 User Guide.

Permissions
Encryption
HTTP Host header syntax

Directory buckets - The HTTP Host header syntax is Bucket_name.s3express-az_id.region.amazonaws.com.

The following operations are related to CreateMultipartUpload:

", + "CreateSession": "

Creates a session that establishes temporary security credentials to support fast authentication and authorization for the Zonal endpoint APIs on directory buckets. For more information about Zonal endpoint APIs that include the Availability Zone in the request endpoint, see S3 Express One Zone APIs in the Amazon S3 User Guide.

To make Zonal endpoint API requests on a directory bucket, use the CreateSession API operation. Specifically, you grant s3express:CreateSession permission to a bucket in a bucket policy or an IAM identity-based policy. Then, you use IAM credentials to make the CreateSession API request on the bucket, which returns temporary security credentials that include the access key ID, secret access key, session token, and expiration. These credentials have associated permissions to access the Zonal endpoint APIs. After the session is created, you don’t need to use other policies to grant permissions to each Zonal endpoint API individually. Instead, in your Zonal endpoint API requests, you sign your requests by applying the temporary security credentials of the session to the request headers and following the SigV4 protocol for authentication. You also apply the session token to the x-amz-s3session-token request header for authorization. Temporary security credentials are scoped to the bucket and expire after 5 minutes. After the expiration time, any calls that you make with those credentials will fail. You must use IAM credentials again to make a CreateSession API request that generates a new set of temporary credentials for use. Temporary credentials cannot be extended or refreshed beyond the original specified interval.

If you use Amazon Web Services SDKs, SDKs handle the session token refreshes automatically to avoid service interruptions when a session expires. We recommend that you use the Amazon Web Services SDKs to initiate and manage requests to the CreateSession API. For more information, see Performance guidelines and design patterns in the Amazon S3 User Guide.

Permissions

To obtain temporary security credentials, you must create a bucket policy or an IAM identity-based policy that grants s3express:CreateSession permission to the bucket. In a policy, you can have the s3express:SessionMode condition key to control who can create a ReadWrite or ReadOnly session. For more information about ReadWrite or ReadOnly sessions, see x-amz-create-session-mode . For example policies, see Example bucket policies for S3 Express One Zone and Amazon Web Services Identity and Access Management (IAM) identity-based policies for S3 Express One Zone in the Amazon S3 User Guide.

To grant cross-account access to Zonal endpoint APIs, the bucket policy should also grant both accounts the s3express:CreateSession permission.

HTTP Host header syntax

Directory buckets - The HTTP Host header syntax is Bucket_name.s3express-az_id.region.amazonaws.com.

", + "DeleteBucket": "

Deletes the S3 bucket. All objects (including all object versions and delete markers) in the bucket must be deleted before the bucket itself can be deleted.

Permissions
HTTP Host header syntax

Directory buckets - The HTTP Host header syntax is s3express-control.region.amazonaws.com.

The following operations are related to DeleteBucket:

", + "DeleteBucketAnalyticsConfiguration": "

This operation is not supported by directory buckets.

Deletes an analytics configuration for the bucket (specified by the analytics configuration ID).

To use this operation, you must have permissions to perform the s3:PutAnalyticsConfiguration action. The bucket owner has this permission by default. The bucket owner can grant this permission to others. For more information about permissions, see Permissions Related to Bucket Subresource Operations and Managing Access Permissions to Your Amazon S3 Resources.

For information about the Amazon S3 analytics feature, see Amazon S3 Analytics – Storage Class Analysis.

The following operations are related to DeleteBucketAnalyticsConfiguration:

", + "DeleteBucketCors": "

This operation is not supported by directory buckets.

Deletes the cors configuration information set for the bucket.

To use this operation, you must have permission to perform the s3:PutBucketCORS action. The bucket owner has this permission by default and can grant this permission to others.

For information about cors, see Enabling Cross-Origin Resource Sharing in the Amazon S3 User Guide.

Related Resources

", + "DeleteBucketEncryption": "

This operation is not supported by directory buckets.

This implementation of the DELETE action resets the default encryption for the bucket as server-side encryption with Amazon S3 managed keys (SSE-S3). For information about the bucket default encryption feature, see Amazon S3 Bucket Default Encryption in the Amazon S3 User Guide.

To use this operation, you must have permissions to perform the s3:PutEncryptionConfiguration action. The bucket owner has this permission by default. The bucket owner can grant this permission to others. For more information about permissions, see Permissions Related to Bucket Subresource Operations and Managing Access Permissions to your Amazon S3 Resources in the Amazon S3 User Guide.

The following operations are related to DeleteBucketEncryption:

", + "DeleteBucketIntelligentTieringConfiguration": "

This operation is not supported by directory buckets.

Deletes the S3 Intelligent-Tiering configuration from the specified bucket.

The S3 Intelligent-Tiering storage class is designed to optimize storage costs by automatically moving data to the most cost-effective storage access tier, without performance impact or operational overhead. S3 Intelligent-Tiering delivers automatic cost savings in three low latency and high throughput access tiers. To get the lowest storage cost on data that can be accessed in minutes to hours, you can choose to activate additional archiving capabilities.

The S3 Intelligent-Tiering storage class is the ideal storage class for data with unknown, changing, or unpredictable access patterns, independent of object size or retention period. If the size of an object is less than 128 KB, it is not monitored and not eligible for auto-tiering. Smaller objects can be stored, but they are always charged at the Frequent Access tier rates in the S3 Intelligent-Tiering storage class.

For more information, see Storage class for automatically optimizing frequently and infrequently accessed objects.

Operations related to DeleteBucketIntelligentTieringConfiguration include:

", + "DeleteBucketInventoryConfiguration": "

This operation is not supported by directory buckets.

Deletes an inventory configuration (identified by the inventory ID) from the bucket.

To use this operation, you must have permissions to perform the s3:PutInventoryConfiguration action. The bucket owner has this permission by default. The bucket owner can grant this permission to others. For more information about permissions, see Permissions Related to Bucket Subresource Operations and Managing Access Permissions to Your Amazon S3 Resources.

For information about the Amazon S3 inventory feature, see Amazon S3 Inventory.

Operations related to DeleteBucketInventoryConfiguration include:

", + "DeleteBucketLifecycle": "

This operation is not supported by directory buckets.

Deletes the lifecycle configuration from the specified bucket. Amazon S3 removes all the lifecycle configuration rules in the lifecycle subresource associated with the bucket. Your objects never expire, and Amazon S3 no longer automatically deletes any objects on the basis of rules contained in the deleted lifecycle configuration.

To use this operation, you must have permission to perform the s3:PutLifecycleConfiguration action. By default, the bucket owner has this permission and the bucket owner can grant this permission to others.

There is usually some time lag before lifecycle configuration deletion is fully propagated to all the Amazon S3 systems.

For more information about the object expiration, see Elements to Describe Lifecycle Actions.

Related actions include:

", + "DeleteBucketMetricsConfiguration": "

This operation is not supported by directory buckets.

Deletes a metrics configuration for the Amazon CloudWatch request metrics (specified by the metrics configuration ID) from the bucket. Note that this doesn't include the daily storage metrics.

To use this operation, you must have permissions to perform the s3:PutMetricsConfiguration action. The bucket owner has this permission by default. The bucket owner can grant this permission to others. For more information about permissions, see Permissions Related to Bucket Subresource Operations and Managing Access Permissions to Your Amazon S3 Resources.

For information about CloudWatch request metrics for Amazon S3, see Monitoring Metrics with Amazon CloudWatch.

The following operations are related to DeleteBucketMetricsConfiguration:

", + "DeleteBucketOwnershipControls": "

This operation is not supported by directory buckets.

Removes OwnershipControls for an Amazon S3 bucket. To use this operation, you must have the s3:PutBucketOwnershipControls permission. For more information about Amazon S3 permissions, see Specifying Permissions in a Policy.

For information about Amazon S3 Object Ownership, see Using Object Ownership.

The following operations are related to DeleteBucketOwnershipControls:

", + "DeleteBucketPolicy": "

Deletes the policy of a specified bucket.

Directory buckets - For directory buckets, you must make requests for this API operation to the Regional endpoint. These endpoints support path-style requests in the format https://s3express-control.region_code.amazonaws.com/bucket-name . Virtual-hosted-style requests aren't supported. For more information, see Regional and Zonal endpoints in the Amazon S3 User Guide.

Permissions

If you are using an identity other than the root user of the Amazon Web Services account that owns the bucket, the calling identity must both have the DeleteBucketPolicy permissions on the specified bucket and belong to the bucket owner's account in order to use this operation.

If you don't have DeleteBucketPolicy permissions, Amazon S3 returns a 403 Access Denied error. If you have the correct permissions, but you're not using an identity that belongs to the bucket owner's account, Amazon S3 returns a 405 Method Not Allowed error.

To ensure that bucket owners don't inadvertently lock themselves out of their own buckets, the root principal in a bucket owner's Amazon Web Services account can perform the GetBucketPolicy, PutBucketPolicy, and DeleteBucketPolicy API actions, even if their bucket policy explicitly denies the root principal's access. Bucket owner root principals can only be blocked from performing these API actions by VPC endpoint policies and Amazon Web Services Organizations policies.

HTTP Host header syntax

Directory buckets - The HTTP Host header syntax is s3express-control.region.amazonaws.com.

The following operations are related to DeleteBucketPolicy

", + "DeleteBucketReplication": "

This operation is not supported by directory buckets.

Deletes the replication configuration from the bucket.

To use this operation, you must have permissions to perform the s3:PutReplicationConfiguration action. The bucket owner has these permissions by default and can grant it to others. For more information about permissions, see Permissions Related to Bucket Subresource Operations and Managing Access Permissions to Your Amazon S3 Resources.

It can take a while for the deletion of a replication configuration to fully propagate.

For information about replication configuration, see Replication in the Amazon S3 User Guide.

The following operations are related to DeleteBucketReplication:

", + "DeleteBucketTagging": "

This operation is not supported by directory buckets.

Deletes the tags from the bucket.

To use this operation, you must have permission to perform the s3:PutBucketTagging action. By default, the bucket owner has this permission and can grant this permission to others.

The following operations are related to DeleteBucketTagging:

", + "DeleteBucketWebsite": "

This operation is not supported by directory buckets.

This action removes the website configuration for a bucket. Amazon S3 returns a 200 OK response upon successfully deleting a website configuration on the specified bucket. You will get a 200 OK response if the website configuration you are trying to delete does not exist on the bucket. Amazon S3 returns a 404 response if the bucket specified in the request does not exist.

This DELETE action requires the S3:DeleteBucketWebsite permission. By default, only the bucket owner can delete the website configuration attached to a bucket. However, bucket owners can grant other users permission to delete the website configuration by writing a bucket policy granting them the S3:DeleteBucketWebsite permission.

For more information about hosting websites, see Hosting Websites on Amazon S3.

The following operations are related to DeleteBucketWebsite:

", + "DeleteObject": "

Removes an object from a bucket. The behavior depends on the bucket's versioning state:

To remove a specific version, you must use the versionId query parameter. Using this query parameter permanently deletes the version. If the object deleted is a delete marker, Amazon S3 sets the response header x-amz-delete-marker to true.

If the object you want to delete is in a bucket where the bucket versioning configuration is MFA Delete enabled, you must include the x-amz-mfa request header in the DELETE versionId request. Requests that include x-amz-mfa must use HTTPS. For more information about MFA Delete, see Using MFA Delete in the Amazon S3 User Guide. To see sample requests that use versioning, see Sample Request.

Directory buckets - MFA delete is not supported by directory buckets.

You can delete objects by explicitly calling DELETE Object or calling (PutBucketLifecycle) to enable Amazon S3 to remove them for you. If you want to block users or accounts from removing or deleting objects from your bucket, you must deny them the s3:DeleteObject, s3:DeleteObjectVersion, and s3:PutLifeCycleConfiguration actions.

Directory buckets - S3 Lifecycle is not supported by directory buckets.

Permissions
HTTP Host header syntax

Directory buckets - The HTTP Host header syntax is Bucket_name.s3express-az_id.region.amazonaws.com.

The following action is related to DeleteObject:

", + "DeleteObjectTagging": "

This operation is not supported by directory buckets.

Removes the entire tag set from the specified object. For more information about managing object tags, see Object Tagging.

To use this operation, you must have permission to perform the s3:DeleteObjectTagging action.

To delete tags of a specific object version, add the versionId query parameter in the request. You will need permission for the s3:DeleteObjectVersionTagging action.

The following operations are related to DeleteObjectTagging:

", + "DeleteObjects": "

This operation enables you to delete multiple objects from a bucket using a single HTTP request. If you know the object keys that you want to delete, then this operation provides a suitable alternative to sending individual delete requests, reducing per-request overhead.

The request can contain a list of up to 1000 keys that you want to delete. In the XML, you provide the object key names, and optionally, version IDs if you want to delete a specific version of the object from a versioning-enabled bucket. For each key, Amazon S3 performs a delete operation and returns the result of that delete, success or failure, in the response. Note that if the object specified in the request is not found, Amazon S3 returns the result as deleted.

The operation supports two modes for the response: verbose and quiet. By default, the operation uses verbose mode in which the response includes the result of deletion of each key in your request. In quiet mode the response includes only keys where the delete operation encountered an error. For a successful deletion in a quiet mode, the operation does not return any information about the delete in the response body.

When performing this action on an MFA Delete enabled bucket, that attempts to delete any versioned objects, you must include an MFA token. If you do not provide one, the entire request will fail, even if there are non-versioned objects you are trying to delete. If you provide an invalid token, whether there are versioned keys in the request or not, the entire Multi-Object Delete request will fail. For information about MFA Delete, see MFA Delete in the Amazon S3 User Guide.

Directory buckets - MFA delete is not supported by directory buckets.

Permissions
Content-MD5 request header
HTTP Host header syntax

Directory buckets - The HTTP Host header syntax is Bucket_name.s3express-az_id.region.amazonaws.com.

The following operations are related to DeleteObjects:

", + "DeletePublicAccessBlock": "

This operation is not supported by directory buckets.

Removes the PublicAccessBlock configuration for an Amazon S3 bucket. To use this operation, you must have the s3:PutBucketPublicAccessBlock permission. For more information about permissions, see Permissions Related to Bucket Subresource Operations and Managing Access Permissions to Your Amazon S3 Resources.

The following operations are related to DeletePublicAccessBlock:

", + "GetBucketAccelerateConfiguration": "

This operation is not supported by directory buckets.

This implementation of the GET action uses the accelerate subresource to return the Transfer Acceleration state of a bucket, which is either Enabled or Suspended. Amazon S3 Transfer Acceleration is a bucket-level feature that enables you to perform faster data transfers to and from Amazon S3.

To use this operation, you must have permission to perform the s3:GetAccelerateConfiguration action. The bucket owner has this permission by default. The bucket owner can grant this permission to others. For more information about permissions, see Permissions Related to Bucket Subresource Operations and Managing Access Permissions to your Amazon S3 Resources in the Amazon S3 User Guide.

You set the Transfer Acceleration state of an existing bucket to Enabled or Suspended by using the PutBucketAccelerateConfiguration operation.

A GET accelerate request does not return a state value for a bucket that has no transfer acceleration state. A bucket has no Transfer Acceleration state if a state has never been set on the bucket.

For more information about transfer acceleration, see Transfer Acceleration in the Amazon S3 User Guide.

The following operations are related to GetBucketAccelerateConfiguration:

", + "GetBucketAcl": "

This operation is not supported by directory buckets.

This implementation of the GET action uses the acl subresource to return the access control list (ACL) of a bucket. To use GET to return the ACL of the bucket, you must have the READ_ACP access to the bucket. If READ_ACP permission is granted to the anonymous user, you can return the ACL of the bucket without using an authorization header.

When you use this API operation with an access point, provide the alias of the access point in place of the bucket name.

When you use this API operation with an Object Lambda access point, provide the alias of the Object Lambda access point in place of the bucket name. If the Object Lambda access point alias in a request is not valid, the error code InvalidAccessPointAliasError is returned. For more information about InvalidAccessPointAliasError, see List of Error Codes.

If your bucket uses the bucket owner enforced setting for S3 Object Ownership, requests to read ACLs are still supported and return the bucket-owner-full-control ACL with the owner being the account that created the bucket. For more information, see Controlling object ownership and disabling ACLs in the Amazon S3 User Guide.

The following operations are related to GetBucketAcl:

", + "GetBucketAnalyticsConfiguration": "

This operation is not supported by directory buckets.

This implementation of the GET action returns an analytics configuration (identified by the analytics configuration ID) from the bucket.

To use this operation, you must have permissions to perform the s3:GetAnalyticsConfiguration action. The bucket owner has this permission by default. The bucket owner can grant this permission to others. For more information about permissions, see Permissions Related to Bucket Subresource Operations and Managing Access Permissions to Your Amazon S3 Resources in the Amazon S3 User Guide.

For information about Amazon S3 analytics feature, see Amazon S3 Analytics – Storage Class Analysis in the Amazon S3 User Guide.

The following operations are related to GetBucketAnalyticsConfiguration:

", + "GetBucketCors": "

This operation is not supported by directory buckets.

Returns the Cross-Origin Resource Sharing (CORS) configuration information set for the bucket.

To use this operation, you must have permission to perform the s3:GetBucketCORS action. By default, the bucket owner has this permission and can grant it to others.

When you use this API operation with an access point, provide the alias of the access point in place of the bucket name.

When you use this API operation with an Object Lambda access point, provide the alias of the Object Lambda access point in place of the bucket name. If the Object Lambda access point alias in a request is not valid, the error code InvalidAccessPointAliasError is returned. For more information about InvalidAccessPointAliasError, see List of Error Codes.

For more information about CORS, see Enabling Cross-Origin Resource Sharing.

The following operations are related to GetBucketCors:

", + "GetBucketEncryption": "

This operation is not supported by directory buckets.

Returns the default encryption configuration for an Amazon S3 bucket. By default, all buckets have a default encryption configuration that uses server-side encryption with Amazon S3 managed keys (SSE-S3). For information about the bucket default encryption feature, see Amazon S3 Bucket Default Encryption in the Amazon S3 User Guide.

To use this operation, you must have permission to perform the s3:GetEncryptionConfiguration action. The bucket owner has this permission by default. The bucket owner can grant this permission to others. For more information about permissions, see Permissions Related to Bucket Subresource Operations and Managing Access Permissions to Your Amazon S3 Resources.

The following operations are related to GetBucketEncryption:

", + "GetBucketIntelligentTieringConfiguration": "

This operation is not supported by directory buckets.

Gets the S3 Intelligent-Tiering configuration from the specified bucket.

The S3 Intelligent-Tiering storage class is designed to optimize storage costs by automatically moving data to the most cost-effective storage access tier, without performance impact or operational overhead. S3 Intelligent-Tiering delivers automatic cost savings in three low latency and high throughput access tiers. To get the lowest storage cost on data that can be accessed in minutes to hours, you can choose to activate additional archiving capabilities.

The S3 Intelligent-Tiering storage class is the ideal storage class for data with unknown, changing, or unpredictable access patterns, independent of object size or retention period. If the size of an object is less than 128 KB, it is not monitored and not eligible for auto-tiering. Smaller objects can be stored, but they are always charged at the Frequent Access tier rates in the S3 Intelligent-Tiering storage class.

For more information, see Storage class for automatically optimizing frequently and infrequently accessed objects.

Operations related to GetBucketIntelligentTieringConfiguration include:

", + "GetBucketInventoryConfiguration": "

This operation is not supported by directory buckets.

Returns an inventory configuration (identified by the inventory configuration ID) from the bucket.

To use this operation, you must have permissions to perform the s3:GetInventoryConfiguration action. The bucket owner has this permission by default and can grant this permission to others. For more information about permissions, see Permissions Related to Bucket Subresource Operations and Managing Access Permissions to Your Amazon S3 Resources.

For information about the Amazon S3 inventory feature, see Amazon S3 Inventory.

The following operations are related to GetBucketInventoryConfiguration:

", + "GetBucketLifecycle": "

For an updated version of this API, see GetBucketLifecycleConfiguration. If you configured a bucket lifecycle using the filter element, you should see the updated version of this topic. This topic is provided for backward compatibility.

This operation is not supported by directory buckets.

Returns the lifecycle configuration information set on the bucket. For information about lifecycle configuration, see Object Lifecycle Management.

To use this operation, you must have permission to perform the s3:GetLifecycleConfiguration action. The bucket owner has this permission by default. The bucket owner can grant this permission to others. For more information about permissions, see Permissions Related to Bucket Subresource Operations and Managing Access Permissions to Your Amazon S3 Resources.

GetBucketLifecycle has the following special error:

The following operations are related to GetBucketLifecycle:

", + "GetBucketLifecycleConfiguration": "

This operation is not supported by directory buckets.

Bucket lifecycle configuration now supports specifying a lifecycle rule using an object key name prefix, one or more object tags, or a combination of both. Accordingly, this section describes the latest API. The response describes the new filter element that you can use to specify a filter to select a subset of objects to which the rule applies. If you are using a previous version of the lifecycle configuration, it still works. For the earlier action, see GetBucketLifecycle.

Returns the lifecycle configuration information set on the bucket. For information about lifecycle configuration, see Object Lifecycle Management.

To use this operation, you must have permission to perform the s3:GetLifecycleConfiguration action. The bucket owner has this permission, by default. The bucket owner can grant this permission to others. For more information about permissions, see Permissions Related to Bucket Subresource Operations and Managing Access Permissions to Your Amazon S3 Resources.

GetBucketLifecycleConfiguration has the following special error:

The following operations are related to GetBucketLifecycleConfiguration:

", + "GetBucketLocation": "

This operation is not supported by directory buckets.

Returns the Region the bucket resides in. You set the bucket's Region using the LocationConstraint request parameter in a CreateBucket request. For more information, see CreateBucket.

When you use this API operation with an access point, provide the alias of the access point in place of the bucket name.

When you use this API operation with an Object Lambda access point, provide the alias of the Object Lambda access point in place of the bucket name. If the Object Lambda access point alias in a request is not valid, the error code InvalidAccessPointAliasError is returned. For more information about InvalidAccessPointAliasError, see List of Error Codes.

We recommend that you use HeadBucket to return the Region that a bucket resides in. For backward compatibility, Amazon S3 continues to support GetBucketLocation.

The following operations are related to GetBucketLocation:

", + "GetBucketLogging": "

This operation is not supported by directory buckets.

Returns the logging status of a bucket and the permissions users have to view and modify that status.

The following operations are related to GetBucketLogging:

", + "GetBucketMetricsConfiguration": "

This operation is not supported by directory buckets.

Gets a metrics configuration (specified by the metrics configuration ID) from the bucket. Note that this doesn't include the daily storage metrics.

To use this operation, you must have permissions to perform the s3:GetMetricsConfiguration action. The bucket owner has this permission by default. The bucket owner can grant this permission to others. For more information about permissions, see Permissions Related to Bucket Subresource Operations and Managing Access Permissions to Your Amazon S3 Resources.

For information about CloudWatch request metrics for Amazon S3, see Monitoring Metrics with Amazon CloudWatch.

The following operations are related to GetBucketMetricsConfiguration:

", + "GetBucketNotification": "

This operation is not supported by directory buckets.

No longer used, see GetBucketNotificationConfiguration.

", + "GetBucketNotificationConfiguration": "

This operation is not supported by directory buckets.

Returns the notification configuration of a bucket.

If notifications are not enabled on the bucket, the action returns an empty NotificationConfiguration element.

By default, you must be the bucket owner to read the notification configuration of a bucket. However, the bucket owner can use a bucket policy to grant permission to other users to read this configuration with the s3:GetBucketNotification permission.

When you use this API operation with an access point, provide the alias of the access point in place of the bucket name.

When you use this API operation with an Object Lambda access point, provide the alias of the Object Lambda access point in place of the bucket name. If the Object Lambda access point alias in a request is not valid, the error code InvalidAccessPointAliasError is returned. For more information about InvalidAccessPointAliasError, see List of Error Codes.

For more information about setting and reading the notification configuration on a bucket, see Setting Up Notification of Bucket Events. For more information about bucket policies, see Using Bucket Policies.

The following action is related to GetBucketNotification:

", + "GetBucketOwnershipControls": "

This operation is not supported by directory buckets.

Retrieves OwnershipControls for an Amazon S3 bucket. To use this operation, you must have the s3:GetBucketOwnershipControls permission. For more information about Amazon S3 permissions, see Specifying permissions in a policy.

For information about Amazon S3 Object Ownership, see Using Object Ownership.

The following operations are related to GetBucketOwnershipControls:

", + "GetBucketPolicy": "

Returns the policy of a specified bucket.

Directory buckets - For directory buckets, you must make requests for this API operation to the Regional endpoint. These endpoints support path-style requests in the format https://s3express-control.region_code.amazonaws.com/bucket-name . Virtual-hosted-style requests aren't supported. For more information, see Regional and Zonal endpoints in the Amazon S3 User Guide.

Permissions

If you are using an identity other than the root user of the Amazon Web Services account that owns the bucket, the calling identity must both have the GetBucketPolicy permissions on the specified bucket and belong to the bucket owner's account in order to use this operation.

If you don't have GetBucketPolicy permissions, Amazon S3 returns a 403 Access Denied error. If you have the correct permissions, but you're not using an identity that belongs to the bucket owner's account, Amazon S3 returns a 405 Method Not Allowed error.

To ensure that bucket owners don't inadvertently lock themselves out of their own buckets, the root principal in a bucket owner's Amazon Web Services account can perform the GetBucketPolicy, PutBucketPolicy, and DeleteBucketPolicy API actions, even if their bucket policy explicitly denies the root principal's access. Bucket owner root principals can only be blocked from performing these API actions by VPC endpoint policies and Amazon Web Services Organizations policies.

Example bucket policies

General purpose buckets example bucket policies - See Bucket policy examples in the Amazon S3 User Guide.

Directory bucket example bucket policies - See Example bucket policies for S3 Express One Zone in the Amazon S3 User Guide.

HTTP Host header syntax

Directory buckets - The HTTP Host header syntax is s3express-control.region.amazonaws.com.

The following action is related to GetBucketPolicy:

", + "GetBucketPolicyStatus": "

This operation is not supported by directory buckets.

Retrieves the policy status for an Amazon S3 bucket, indicating whether the bucket is public. In order to use this operation, you must have the s3:GetBucketPolicyStatus permission. For more information about Amazon S3 permissions, see Specifying Permissions in a Policy.

For more information about when Amazon S3 considers a bucket public, see The Meaning of \"Public\".

The following operations are related to GetBucketPolicyStatus:

", + "GetBucketReplication": "

This operation is not supported by directory buckets.

Returns the replication configuration of a bucket.

It can take a while to propagate the put or delete a replication configuration to all Amazon S3 systems. Therefore, a get request soon after put or delete can return a wrong result.

For information about replication configuration, see Replication in the Amazon S3 User Guide.

This action requires permissions for the s3:GetReplicationConfiguration action. For more information about permissions, see Using Bucket Policies and User Policies.

If you include the Filter element in a replication configuration, you must also include the DeleteMarkerReplication and Priority elements. The response also returns those elements.

For information about GetBucketReplication errors, see List of replication-related error codes

The following operations are related to GetBucketReplication:

", + "GetBucketRequestPayment": "

This operation is not supported by directory buckets.

Returns the request payment configuration of a bucket. To use this version of the operation, you must be the bucket owner. For more information, see Requester Pays Buckets.

The following operations are related to GetBucketRequestPayment:

", + "GetBucketTagging": "

This operation is not supported by directory buckets.

Returns the tag set associated with the bucket.

To use this operation, you must have permission to perform the s3:GetBucketTagging action. By default, the bucket owner has this permission and can grant this permission to others.

GetBucketTagging has the following special error:

The following operations are related to GetBucketTagging:

", + "GetBucketVersioning": "

This operation is not supported by directory buckets.

Returns the versioning state of a bucket.

To retrieve the versioning state of a bucket, you must be the bucket owner.

This implementation also returns the MFA Delete status of the versioning state. If the MFA Delete status is enabled, the bucket owner must use an authentication device to change the versioning state of the bucket.

The following operations are related to GetBucketVersioning:

", + "GetBucketWebsite": "

This operation is not supported by directory buckets.

Returns the website configuration for a bucket. To host website on Amazon S3, you can configure a bucket as website by adding a website configuration. For more information about hosting websites, see Hosting Websites on Amazon S3.

This GET action requires the S3:GetBucketWebsite permission. By default, only the bucket owner can read the bucket website configuration. However, bucket owners can allow other users to read the website configuration by writing a bucket policy granting them the S3:GetBucketWebsite permission.

The following operations are related to GetBucketWebsite:

", + "GetObject": "

Retrieves an object from Amazon S3.

In the GetObject request, specify the full key name for the object.

General purpose buckets - Both the virtual-hosted-style requests and the path-style requests are supported. For a virtual hosted-style request example, if you have the object photos/2006/February/sample.jpg, specify the object key name as /photos/2006/February/sample.jpg. For a path-style request example, if you have the object photos/2006/February/sample.jpg in the bucket named examplebucket, specify the object key name as /examplebucket/photos/2006/February/sample.jpg. For more information about request types, see HTTP Host Header Bucket Specification in the Amazon S3 User Guide.

Directory buckets - Only virtual-hosted-style requests are supported. For a virtual hosted-style request example, if you have the object photos/2006/February/sample.jpg in the bucket named examplebucket--use1-az5--x-s3, specify the object key name as /photos/2006/February/sample.jpg. Also, when you make requests to this API operation, your requests are sent to the Zonal endpoint. These endpoints support virtual-hosted-style requests in the format https://bucket_name.s3express-az_id.region.amazonaws.com/key-name . Path-style requests are not supported. For more information, see Regional and Zonal endpoints in the Amazon S3 User Guide.

Permissions
Storage classes

If the object you are retrieving is stored in the S3 Glacier Flexible Retrieval storage class, the S3 Glacier Deep Archive storage class, the S3 Intelligent-Tiering Archive Access tier, or the S3 Intelligent-Tiering Deep Archive Access tier, before you can retrieve the object you must first restore a copy using RestoreObject. Otherwise, this operation returns an InvalidObjectState error. For information about restoring archived objects, see Restoring Archived Objects in the Amazon S3 User Guide.

Directory buckets - For directory buckets, only the S3 Express One Zone storage class is supported to store newly created objects. Unsupported storage class values won't write a destination object and will respond with the HTTP status code 400 Bad Request.

Encryption

Encryption request headers, like x-amz-server-side-encryption, should not be sent for the GetObject requests, if your object uses server-side encryption with Amazon S3 managed encryption keys (SSE-S3), server-side encryption with Key Management Service (KMS) keys (SSE-KMS), or dual-layer server-side encryption with Amazon Web Services KMS keys (DSSE-KMS). If you include the header in your GetObject requests for the object that uses these types of keys, you’ll get an HTTP 400 Bad Request error.

Overriding response header values through the request

There are times when you want to override certain response header values of a GetObject response. For example, you might override the Content-Disposition response header value through your GetObject request.

You can override values for a set of response headers. These modified response header values are included only in a successful response, that is, when the HTTP status code 200 OK is returned. The headers you can override using the following query parameters in the request are a subset of the headers that Amazon S3 accepts when you create an object.

The response headers that you can override for the GetObject response are Cache-Control, Content-Disposition, Content-Encoding, Content-Language, Content-Type, and Expires.

To override values for a set of response headers in the GetObject response, you can use the following query parameters in the request.

When you use these parameters, you must sign the request by using either an Authorization header or a presigned URL. These parameters cannot be used with an unsigned (anonymous) request.

HTTP Host header syntax

Directory buckets - The HTTP Host header syntax is Bucket_name.s3express-az_id.region.amazonaws.com.

The following operations are related to GetObject:

", + "GetObjectAcl": "

This operation is not supported by directory buckets.

Returns the access control list (ACL) of an object. To use this operation, you must have s3:GetObjectAcl permissions or READ_ACP access to the object. For more information, see Mapping of ACL permissions and access policy permissions in the Amazon S3 User Guide

This functionality is not supported for Amazon S3 on Outposts.

By default, GET returns ACL information about the current version of an object. To return ACL information about a different version, use the versionId subresource.

If your bucket uses the bucket owner enforced setting for S3 Object Ownership, requests to read ACLs are still supported and return the bucket-owner-full-control ACL with the owner being the account that created the bucket. For more information, see Controlling object ownership and disabling ACLs in the Amazon S3 User Guide.

The following operations are related to GetObjectAcl:

", + "GetObjectAttributes": "

Retrieves all the metadata from an object without returning the object itself. This operation is useful if you're interested only in an object's metadata.

GetObjectAttributes combines the functionality of HeadObject and ListParts. All of the data returned with each of those individual calls can be returned with a single call to GetObjectAttributes.

Directory buckets - For directory buckets, you must make requests for this API operation to the Zonal endpoint. These endpoints support virtual-hosted-style requests in the format https://bucket_name.s3express-az_id.region.amazonaws.com/key-name . Path-style requests are not supported. For more information, see Regional and Zonal endpoints in the Amazon S3 User Guide.

Permissions
Encryption

Encryption request headers, like x-amz-server-side-encryption, should not be sent for HEAD requests if your object uses server-side encryption with Key Management Service (KMS) keys (SSE-KMS), dual-layer server-side encryption with Amazon Web Services KMS keys (DSSE-KMS), or server-side encryption with Amazon S3 managed encryption keys (SSE-S3). The x-amz-server-side-encryption header is used when you PUT an object to S3 and want to specify the encryption method. If you include this header in a GET request for an object that uses these types of keys, you’ll get an HTTP 400 Bad Request error. It's because the encryption method can't be changed when you retrieve the object.

If you encrypt an object by using server-side encryption with customer-provided encryption keys (SSE-C) when you store the object in Amazon S3, then when you retrieve the metadata from the object, you must use the following headers to provide the encryption key for the server to be able to retrieve the object's metadata. The headers are:

For more information about SSE-C, see Server-Side Encryption (Using Customer-Provided Encryption Keys) in the Amazon S3 User Guide.

Directory bucket permissions - For directory buckets, only server-side encryption with Amazon S3 managed keys (SSE-S3) (AES256) is supported.

Versioning

Directory buckets - S3 Versioning isn't enabled and supported for directory buckets. For this API operation, only the null value of the version ID is supported by directory buckets. You can only specify null to the versionId query parameter in the request.

Conditional request headers

Consider the following when using request headers:

HTTP Host header syntax

Directory buckets - The HTTP Host header syntax is Bucket_name.s3express-az_id.region.amazonaws.com.

The following actions are related to GetObjectAttributes:

", + "GetObjectLegalHold": "

This operation is not supported by directory buckets.

Gets an object's current legal hold status. For more information, see Locking Objects.

This functionality is not supported for Amazon S3 on Outposts.

The following action is related to GetObjectLegalHold:

", + "GetObjectLockConfiguration": "

This operation is not supported by directory buckets.

Gets the Object Lock configuration for a bucket. The rule specified in the Object Lock configuration will be applied by default to every new object placed in the specified bucket. For more information, see Locking Objects.

The following action is related to GetObjectLockConfiguration:

", + "GetObjectRetention": "

This operation is not supported by directory buckets.

Retrieves an object's retention settings. For more information, see Locking Objects.

This functionality is not supported for Amazon S3 on Outposts.

The following action is related to GetObjectRetention:

", + "GetObjectTagging": "

This operation is not supported by directory buckets.

Returns the tag-set of an object. You send the GET request against the tagging subresource associated with the object.

To use this operation, you must have permission to perform the s3:GetObjectTagging action. By default, the GET action returns information about current version of an object. For a versioned bucket, you can have multiple versions of an object in your bucket. To retrieve tags of any other version, use the versionId query parameter. You also need permission for the s3:GetObjectVersionTagging action.

By default, the bucket owner has this permission and can grant this permission to others.

For information about the Amazon S3 object tagging feature, see Object Tagging.

The following actions are related to GetObjectTagging:

", + "GetObjectTorrent": "

This operation is not supported by directory buckets.

Returns torrent files from a bucket. BitTorrent can save you bandwidth when you're distributing large files.

You can get torrent only for objects that are less than 5 GB in size, and that are not encrypted using server-side encryption with a customer-provided encryption key.

To use GET, you must have READ access to the object.

This functionality is not supported for Amazon S3 on Outposts.

The following action is related to GetObjectTorrent:

", + "GetPublicAccessBlock": "

This operation is not supported by directory buckets.

Retrieves the PublicAccessBlock configuration for an Amazon S3 bucket. To use this operation, you must have the s3:GetBucketPublicAccessBlock permission. For more information about Amazon S3 permissions, see Specifying Permissions in a Policy.

When Amazon S3 evaluates the PublicAccessBlock configuration for a bucket or an object, it checks the PublicAccessBlock configuration for both the bucket (or the bucket that contains the object) and the bucket owner's account. If the PublicAccessBlock settings are different between the bucket and the account, Amazon S3 uses the most restrictive combination of the bucket-level and account-level settings.

For more information about when Amazon S3 considers a bucket or an object public, see The Meaning of \"Public\".

The following operations are related to GetPublicAccessBlock:

", + "HeadBucket": "

You can use this operation to determine if a bucket exists and if you have permission to access it. The action returns a 200 OK if the bucket exists and you have permission to access it.

If the bucket does not exist or you do not have permission to access it, the HEAD request returns a generic 400 Bad Request, 403 Forbidden or 404 Not Found code. A message body is not included, so you cannot determine the exception beyond these error codes.

Directory buckets - You must make requests for this API operation to the Zonal endpoint. These endpoints support virtual-hosted-style requests in the format https://bucket_name.s3express-az_id.region.amazonaws.com. Path-style requests are not supported. For more information, see Regional and Zonal endpoints in the Amazon S3 User Guide.

Authentication and authorization

All HeadBucket requests must be authenticated and signed by using IAM credentials (access key ID and secret access key for the IAM identities). All headers with the x-amz- prefix, including x-amz-copy-source, must be signed. For more information, see REST Authentication.

Directory bucket - You must use IAM credentials to authenticate and authorize your access to the HeadBucket API operation, instead of using the temporary security credentials through the CreateSession API operation.

Amazon Web Services CLI or SDKs handles authentication and authorization on your behalf.

Permissions

HTTP Host header syntax

Directory buckets - The HTTP Host header syntax is Bucket_name.s3express-az_id.region.amazonaws.com.

", + "HeadObject": "

The HEAD operation retrieves metadata from an object without returning the object itself. This operation is useful if you're interested only in an object's metadata.

A HEAD request has the same options as a GET operation on an object. The response is identical to the GET response except that there is no response body. Because of this, if the HEAD request generates an error, it returns a generic code, such as 400 Bad Request, 403 Forbidden, 404 Not Found, 405 Method Not Allowed, 412 Precondition Failed, or 304 Not Modified. It's not possible to retrieve the exact exception of these error codes.

Request headers are limited to 8 KB in size. For more information, see Common Request Headers.

Directory buckets - For directory buckets, you must make requests for this API operation to the Zonal endpoint. These endpoints support virtual-hosted-style requests in the format https://bucket_name.s3express-az_id.region.amazonaws.com/key-name . Path-style requests are not supported. For more information, see Regional and Zonal endpoints in the Amazon S3 User Guide.

Permissions

Encryption

Encryption request headers, like x-amz-server-side-encryption, should not be sent for HEAD requests if your object uses server-side encryption with Key Management Service (KMS) keys (SSE-KMS), dual-layer server-side encryption with Amazon Web Services KMS keys (DSSE-KMS), or server-side encryption with Amazon S3 managed encryption keys (SSE-S3). The x-amz-server-side-encryption header is used when you PUT an object to S3 and want to specify the encryption method. If you include this header in a HEAD request for an object that uses these types of keys, you’ll get an HTTP 400 Bad Request error. It's because the encryption method can't be changed when you retrieve the object.

If you encrypt an object by using server-side encryption with customer-provided encryption keys (SSE-C) when you store the object in Amazon S3, then when you retrieve the metadata from the object, you must use the following headers to provide the encryption key for the server to be able to retrieve the object's metadata. The headers are:

For more information about SSE-C, see Server-Side Encryption (Using Customer-Provided Encryption Keys) in the Amazon S3 User Guide.

Directory bucket permissions - For directory buckets, only server-side encryption with Amazon S3 managed keys (SSE-S3) (AES256) is supported.

Versioning
  • Directory buckets - Delete marker is not supported by directory buckets.

  • Directory buckets - S3 Versioning isn't enabled and supported for directory buckets. For this API operation, only the null value of the version ID is supported by directory buckets. You can only specify null to the versionId query parameter in the request.

HTTP Host header syntax

Directory buckets - The HTTP Host header syntax is Bucket_name.s3express-az_id.region.amazonaws.com.

The following actions are related to HeadObject:

", + "ListBucketAnalyticsConfigurations": "

This operation is not supported by directory buckets.

Lists the analytics configurations for the bucket. You can have up to 1,000 analytics configurations per bucket.

This action supports list pagination and does not return more than 100 configurations at a time. You should always check the IsTruncated element in the response. If there are no more configurations to list, IsTruncated is set to false. If there are more configurations to list, IsTruncated is set to true, and there will be a value in NextContinuationToken. You use the NextContinuationToken value to continue the pagination of the list by passing the value in continuation-token in the request to GET the next page.

To use this operation, you must have permissions to perform the s3:GetAnalyticsConfiguration action. The bucket owner has this permission by default. The bucket owner can grant this permission to others. For more information about permissions, see Permissions Related to Bucket Subresource Operations and Managing Access Permissions to Your Amazon S3 Resources.

For information about Amazon S3 analytics feature, see Amazon S3 Analytics – Storage Class Analysis.

The following operations are related to ListBucketAnalyticsConfigurations:

", + "ListBucketIntelligentTieringConfigurations": "

This operation is not supported by directory buckets.

Lists the S3 Intelligent-Tiering configuration from the specified bucket.

The S3 Intelligent-Tiering storage class is designed to optimize storage costs by automatically moving data to the most cost-effective storage access tier, without performance impact or operational overhead. S3 Intelligent-Tiering delivers automatic cost savings in three low latency and high throughput access tiers. To get the lowest storage cost on data that can be accessed in minutes to hours, you can choose to activate additional archiving capabilities.

The S3 Intelligent-Tiering storage class is the ideal storage class for data with unknown, changing, or unpredictable access patterns, independent of object size or retention period. If the size of an object is less than 128 KB, it is not monitored and not eligible for auto-tiering. Smaller objects can be stored, but they are always charged at the Frequent Access tier rates in the S3 Intelligent-Tiering storage class.

For more information, see Storage class for automatically optimizing frequently and infrequently accessed objects.

Operations related to ListBucketIntelligentTieringConfigurations include:

", + "ListBucketInventoryConfigurations": "

This operation is not supported by directory buckets.

Returns a list of inventory configurations for the bucket. You can have up to 1,000 analytics configurations per bucket.

This action supports list pagination and does not return more than 100 configurations at a time. Always check the IsTruncated element in the response. If there are no more configurations to list, IsTruncated is set to false. If there are more configurations to list, IsTruncated is set to true, and there is a value in NextContinuationToken. You use the NextContinuationToken value to continue the pagination of the list by passing the value in continuation-token in the request to GET the next page.

To use this operation, you must have permissions to perform the s3:GetInventoryConfiguration action. The bucket owner has this permission by default. The bucket owner can grant this permission to others. For more information about permissions, see Permissions Related to Bucket Subresource Operations and Managing Access Permissions to Your Amazon S3 Resources.

For information about the Amazon S3 inventory feature, see Amazon S3 Inventory

The following operations are related to ListBucketInventoryConfigurations:

", + "ListBucketMetricsConfigurations": "

This operation is not supported by directory buckets.

Lists the metrics configurations for the bucket. The metrics configurations are only for the request metrics of the bucket and do not provide information on daily storage metrics. You can have up to 1,000 configurations per bucket.

This action supports list pagination and does not return more than 100 configurations at a time. Always check the IsTruncated element in the response. If there are no more configurations to list, IsTruncated is set to false. If there are more configurations to list, IsTruncated is set to true, and there is a value in NextContinuationToken. You use the NextContinuationToken value to continue the pagination of the list by passing the value in continuation-token in the request to GET the next page.

To use this operation, you must have permissions to perform the s3:GetMetricsConfiguration action. The bucket owner has this permission by default. The bucket owner can grant this permission to others. For more information about permissions, see Permissions Related to Bucket Subresource Operations and Managing Access Permissions to Your Amazon S3 Resources.

For more information about metrics configurations and CloudWatch request metrics, see Monitoring Metrics with Amazon CloudWatch.

The following operations are related to ListBucketMetricsConfigurations:

", + "ListBuckets": "

This operation is not supported by directory buckets.

Returns a list of all buckets owned by the authenticated sender of the request. To use this operation, you must have the s3:ListAllMyBuckets permission.

For information about Amazon S3 buckets, see Creating, configuring, and working with Amazon S3 buckets.

", + "ListDirectoryBuckets": "

Returns a list of all Amazon S3 directory buckets owned by the authenticated sender of the request. For more information about directory buckets, see Directory buckets in the Amazon S3 User Guide.

Directory buckets - For directory buckets, you must make requests for this API operation to the Regional endpoint. These endpoints support path-style requests in the format https://s3express-control.region_code.amazonaws.com/bucket-name . Virtual-hosted-style requests aren't supported. For more information, see Regional and Zonal endpoints in the Amazon S3 User Guide.

Permissions

You must have the s3express:ListAllMyDirectoryBuckets permission in an IAM identity-based policy instead of a bucket policy. Cross-account access to this API operation isn't supported. This operation can only be performed by the Amazon Web Services account that owns the resource. For more information about directory bucket policies and permissions, see Amazon Web Services Identity and Access Management (IAM) for S3 Express One Zone in the Amazon S3 User Guide.

HTTP Host header syntax

Directory buckets - The HTTP Host header syntax is s3express-control.region.amazonaws.com.

", + "ListMultipartUploads": "

This operation lists in-progress multipart uploads in a bucket. An in-progress multipart upload is a multipart upload that has been initiated by the CreateMultipartUpload request, but has not yet been completed or aborted.

Directory buckets - If multipart uploads in a directory bucket are in progress, you can't delete the bucket until all the in-progress multipart uploads are aborted or completed.

The ListMultipartUploads operation returns a maximum of 1,000 multipart uploads in the response. The limit of 1,000 multipart uploads is also the default value. You can further limit the number of uploads in a response by specifying the max-uploads request parameter. If there are more than 1,000 multipart uploads that satisfy your ListMultipartUploads request, the response returns an IsTruncated element with the value of true, a NextKeyMarker element, and a NextUploadIdMarker element. To list the remaining multipart uploads, you need to make subsequent ListMultipartUploads requests. In these requests, include two query parameters: key-marker and upload-id-marker. Set the value of key-marker to the NextKeyMarker value from the previous response. Similarly, set the value of upload-id-marker to the NextUploadIdMarker value from the previous response.

Directory buckets - The upload-id-marker element and the NextUploadIdMarker element aren't supported by directory buckets. To list the additional multipart uploads, you only need to set the value of key-marker to the NextKeyMarker value from the previous response.

For more information about multipart uploads, see Uploading Objects Using Multipart Upload in the Amazon S3 User Guide.

Directory buckets - For directory buckets, you must make requests for this API operation to the Zonal endpoint. These endpoints support virtual-hosted-style requests in the format https://bucket_name.s3express-az_id.region.amazonaws.com/key-name . Path-style requests are not supported. For more information, see Regional and Zonal endpoints in the Amazon S3 User Guide.

Permissions
Sorting of multipart uploads in response
HTTP Host header syntax

Directory buckets - The HTTP Host header syntax is Bucket_name.s3express-az_id.region.amazonaws.com.

The following operations are related to ListMultipartUploads:

", + "ListObjectVersions": "

This operation is not supported by directory buckets.

Returns metadata about all versions of the objects in a bucket. You can also use request parameters as selection criteria to return metadata about a subset of all the object versions.

To use this operation, you must have permission to perform the s3:ListBucketVersions action. Be aware of the name difference.

A 200 OK response can contain valid or invalid XML. Make sure to design your application to parse the contents of the response and handle it appropriately.

To use this operation, you must have READ access to the bucket.

The following operations are related to ListObjectVersions:

", + "ListObjects": "

This operation is not supported by directory buckets.

Returns some or all (up to 1,000) of the objects in a bucket. You can use the request parameters as selection criteria to return a subset of the objects in a bucket. A 200 OK response can contain valid or invalid XML. Be sure to design your application to parse the contents of the response and handle it appropriately.

This action has been revised. We recommend that you use the newer version, ListObjectsV2, when developing applications. For backward compatibility, Amazon S3 continues to support ListObjects.

The following operations are related to ListObjects:

", + "ListObjectsV2": "

Returns some or all (up to 1,000) of the objects in a bucket with each request. You can use the request parameters as selection criteria to return a subset of the objects in a bucket. A 200 OK response can contain valid or invalid XML. Make sure to design your application to parse the contents of the response and handle it appropriately. For more information about listing objects, see Listing object keys programmatically in the Amazon S3 User Guide. To get a list of your buckets, see ListBuckets.

Directory buckets - For directory buckets, you must make requests for this API operation to the Zonal endpoint. These endpoints support virtual-hosted-style requests in the format https://bucket_name.s3express-az_id.region.amazonaws.com/key-name . Path-style requests are not supported. For more information, see Regional and Zonal endpoints in the Amazon S3 User Guide.

Permissions
Sorting order of returned objects
HTTP Host header syntax

Directory buckets - The HTTP Host header syntax is Bucket_name.s3express-az_id.region.amazonaws.com.

This section describes the latest revision of this action. We recommend that you use this revised API operation for application development. For backward compatibility, Amazon S3 continues to support the prior version of this API operation, ListObjects.

The following operations are related to ListObjectsV2:

", + "ListParts": "

Lists the parts that have been uploaded for a specific multipart upload.

To use this operation, you must provide the upload ID in the request. You obtain this uploadID by sending the initiate multipart upload request through CreateMultipartUpload.

The ListParts request returns a maximum of 1,000 uploaded parts. The limit of 1,000 parts is also the default value. You can restrict the number of parts in a response by specifying the max-parts request parameter. If your multipart upload consists of more than 1,000 parts, the response returns an IsTruncated field with the value of true, and a NextPartNumberMarker element. To list remaining uploaded parts, in subsequent ListParts requests, include the part-number-marker query string parameter and set its value to the NextPartNumberMarker field value from the previous response.

For more information on multipart uploads, see Uploading Objects Using Multipart Upload in the Amazon S3 User Guide.

Directory buckets - For directory buckets, you must make requests for this API operation to the Zonal endpoint. These endpoints support virtual-hosted-style requests in the format https://bucket_name.s3express-az_id.region.amazonaws.com/key-name . Path-style requests are not supported. For more information, see Regional and Zonal endpoints in the Amazon S3 User Guide.

Permissions
HTTP Host header syntax

Directory buckets - The HTTP Host header syntax is Bucket_name.s3express-az_id.region.amazonaws.com.

The following operations are related to ListParts:

", + "PutBucketAccelerateConfiguration": "

This operation is not supported by directory buckets.

Sets the accelerate configuration of an existing bucket. Amazon S3 Transfer Acceleration is a bucket-level feature that enables you to perform faster data transfers to Amazon S3.

To use this operation, you must have permission to perform the s3:PutAccelerateConfiguration action. The bucket owner has this permission by default. The bucket owner can grant this permission to others. For more information about permissions, see Permissions Related to Bucket Subresource Operations and Managing Access Permissions to Your Amazon S3 Resources.

The Transfer Acceleration state of a bucket can be set to one of the following two values:

The GetBucketAccelerateConfiguration action returns the transfer acceleration state of a bucket.

After setting the Transfer Acceleration state of a bucket to Enabled, it might take up to thirty minutes before the data transfer rates to the bucket increase.

The name of the bucket used for Transfer Acceleration must be DNS-compliant and must not contain periods (\".\").

For more information about transfer acceleration, see Transfer Acceleration.

The following operations are related to PutBucketAccelerateConfiguration:

", + "PutBucketAcl": "

This operation is not supported by directory buckets.

Sets the permissions on an existing bucket using access control lists (ACL). For more information, see Using ACLs. To set the ACL of a bucket, you must have the WRITE_ACP permission.

You can use one of the following two ways to set a bucket's permissions:

You cannot specify access permission using both the body and the request headers.

Depending on your application needs, you may choose to set the ACL on a bucket using either the request body or the headers. For example, if you have an existing application that updates a bucket ACL using the request body, then you can continue to use that approach.

If your bucket uses the bucket owner enforced setting for S3 Object Ownership, ACLs are disabled and no longer affect permissions. You must use policies to grant access to your bucket and the objects in it. Requests to set ACLs or update ACLs fail and return the AccessControlListNotSupported error code. Requests to read ACLs are still supported. For more information, see Controlling object ownership in the Amazon S3 User Guide.

Permissions

You can set access permissions by using one of the following methods:

You can use either a canned ACL or specify access permissions explicitly. You cannot do both.

Grantee Values

You can specify the person (grantee) to whom you're assigning access rights (using request elements) in the following ways:

The following operations are related to PutBucketAcl:

", + "PutBucketAnalyticsConfiguration": "

This operation is not supported by directory buckets.

Sets an analytics configuration for the bucket (specified by the analytics configuration ID). You can have up to 1,000 analytics configurations per bucket.

You can choose to have storage class analysis export analysis reports sent to a comma-separated values (CSV) flat file. See the DataExport request element. Reports are updated daily and are based on the object filters that you configure. When selecting data export, you specify a destination bucket and an optional destination prefix where the file is written. You can export the data to a destination bucket in a different account. However, the destination bucket must be in the same Region as the bucket that you are making the PUT analytics configuration to. For more information, see Amazon S3 Analytics – Storage Class Analysis.

You must create a bucket policy on the destination bucket where the exported file is written to grant permissions to Amazon S3 to write objects to the bucket. For an example policy, see Granting Permissions for Amazon S3 Inventory and Storage Class Analysis.

To use this operation, you must have permissions to perform the s3:PutAnalyticsConfiguration action. The bucket owner has this permission by default. The bucket owner can grant this permission to others. For more information about permissions, see Permissions Related to Bucket Subresource Operations and Managing Access Permissions to Your Amazon S3 Resources.

PutBucketAnalyticsConfiguration has the following special errors:

The following operations are related to PutBucketAnalyticsConfiguration:

", + "PutBucketCors": "

This operation is not supported by directory buckets.

Sets the cors configuration for your bucket. If the configuration exists, Amazon S3 replaces it.

To use this operation, you must be allowed to perform the s3:PutBucketCORS action. By default, the bucket owner has this permission and can grant it to others.

You set this configuration on a bucket so that the bucket can service cross-origin requests. For example, you might want to enable a request whose origin is http://www.example.com to access your Amazon S3 bucket at my.example.bucket.com by using the browser's XMLHttpRequest capability.

To enable cross-origin resource sharing (CORS) on a bucket, you add the cors subresource to the bucket. The cors subresource is an XML document in which you configure rules that identify origins and the HTTP methods that can be executed on your bucket. The document is limited to 64 KB in size.

When Amazon S3 receives a cross-origin request (or a pre-flight OPTIONS request) against a bucket, it evaluates the cors configuration on the bucket and uses the first CORSRule rule that matches the incoming browser request to enable a cross-origin request. For a rule to match, the following conditions must be met:

For more information about CORS, go to Enabling Cross-Origin Resource Sharing in the Amazon S3 User Guide.

The following operations are related to PutBucketCors:

", + "PutBucketEncryption": "

This operation is not supported by directory buckets.

This action uses the encryption subresource to configure default encryption and Amazon S3 Bucket Keys for an existing bucket.

By default, all buckets have a default encryption configuration that uses server-side encryption with Amazon S3 managed keys (SSE-S3). You can optionally configure default encryption for a bucket by using server-side encryption with Key Management Service (KMS) keys (SSE-KMS) or dual-layer server-side encryption with Amazon Web Services KMS keys (DSSE-KMS). If you specify default encryption by using SSE-KMS, you can also configure Amazon S3 Bucket Keys. If you use PutBucketEncryption to set your default bucket encryption to SSE-KMS, you should verify that your KMS key ID is correct. Amazon S3 does not validate the KMS key ID provided in PutBucketEncryption requests.

This action requires Amazon Web Services Signature Version 4. For more information, see Authenticating Requests (Amazon Web Services Signature Version 4).

To use this operation, you must have permission to perform the s3:PutEncryptionConfiguration action. The bucket owner has this permission by default. The bucket owner can grant this permission to others. For more information about permissions, see Permissions Related to Bucket Subresource Operations and Managing Access Permissions to Your Amazon S3 Resources in the Amazon S3 User Guide.

The following operations are related to PutBucketEncryption:

", + "PutBucketIntelligentTieringConfiguration": "

This operation is not supported by directory buckets.

Puts a S3 Intelligent-Tiering configuration to the specified bucket. You can have up to 1,000 S3 Intelligent-Tiering configurations per bucket.

The S3 Intelligent-Tiering storage class is designed to optimize storage costs by automatically moving data to the most cost-effective storage access tier, without performance impact or operational overhead. S3 Intelligent-Tiering delivers automatic cost savings in three low latency and high throughput access tiers. To get the lowest storage cost on data that can be accessed in minutes to hours, you can choose to activate additional archiving capabilities.

The S3 Intelligent-Tiering storage class is the ideal storage class for data with unknown, changing, or unpredictable access patterns, independent of object size or retention period. If the size of an object is less than 128 KB, it is not monitored and not eligible for auto-tiering. Smaller objects can be stored, but they are always charged at the Frequent Access tier rates in the S3 Intelligent-Tiering storage class.

For more information, see Storage class for automatically optimizing frequently and infrequently accessed objects.

Operations related to PutBucketIntelligentTieringConfiguration include:

You only need S3 Intelligent-Tiering enabled on a bucket if you want to automatically move objects stored in the S3 Intelligent-Tiering storage class to the Archive Access or Deep Archive Access tier.

PutBucketIntelligentTieringConfiguration has the following special errors:

HTTP 400 Bad Request Error

Code: InvalidArgument

Cause: Invalid Argument

HTTP 400 Bad Request Error

Code: TooManyConfigurations

Cause: You are attempting to create a new configuration but have already reached the 1,000-configuration limit.

HTTP 403 Forbidden Error

Cause: You are not the owner of the specified bucket, or you do not have the s3:PutIntelligentTieringConfiguration bucket permission to set the configuration on the bucket.

", + "PutBucketInventoryConfiguration": "

This operation is not supported by directory buckets.

This implementation of the PUT action adds an inventory configuration (identified by the inventory ID) to the bucket. You can have up to 1,000 inventory configurations per bucket.

Amazon S3 inventory generates inventories of the objects in the bucket on a daily or weekly basis, and the results are published to a flat file. The bucket that is inventoried is called the source bucket, and the bucket where the inventory flat file is stored is called the destination bucket. The destination bucket must be in the same Amazon Web Services Region as the source bucket.

When you configure an inventory for a source bucket, you specify the destination bucket where you want the inventory to be stored, and whether to generate the inventory daily or weekly. You can also configure what object metadata to include and whether to inventory all object versions or only current versions. For more information, see Amazon S3 Inventory in the Amazon S3 User Guide.

You must create a bucket policy on the destination bucket to grant permissions to Amazon S3 to write objects to the bucket in the defined location. For an example policy, see Granting Permissions for Amazon S3 Inventory and Storage Class Analysis.

Permissions

To use this operation, you must have permission to perform the s3:PutInventoryConfiguration action. The bucket owner has this permission by default and can grant this permission to others.

The s3:PutInventoryConfiguration permission allows a user to create an S3 Inventory report that includes all object metadata fields available and to specify the destination bucket to store the inventory. A user with read access to objects in the destination bucket can also access all object metadata fields that are available in the inventory report.

To restrict access to an inventory report, see Restricting access to an Amazon S3 Inventory report in the Amazon S3 User Guide. For more information about the metadata fields available in S3 Inventory, see Amazon S3 Inventory lists in the Amazon S3 User Guide. For more information about permissions, see Permissions related to bucket subresource operations and Identity and access management in Amazon S3 in the Amazon S3 User Guide.

PutBucketInventoryConfiguration has the following special errors:

HTTP 400 Bad Request Error

Code: InvalidArgument

Cause: Invalid Argument

HTTP 400 Bad Request Error

Code: TooManyConfigurations

Cause: You are attempting to create a new configuration but have already reached the 1,000-configuration limit.

HTTP 403 Forbidden Error

Cause: You are not the owner of the specified bucket, or you do not have the s3:PutInventoryConfiguration bucket permission to set the configuration on the bucket.

The following operations are related to PutBucketInventoryConfiguration:

", + "PutBucketLifecycle": "

This operation is not supported by directory buckets.

For an updated version of this API, see PutBucketLifecycleConfiguration. This version has been deprecated. Existing lifecycle configurations will work. For new lifecycle configurations, use the updated API.

Creates a new lifecycle configuration for the bucket or replaces an existing lifecycle configuration. For information about lifecycle configuration, see Object Lifecycle Management in the Amazon S3 User Guide.

By default, all Amazon S3 resources, including buckets, objects, and related subresources (for example, lifecycle configuration and website configuration) are private. Only the resource owner, the Amazon Web Services account that created the resource, can access it. The resource owner can optionally grant access permissions to others by writing an access policy. For this operation, users must get the s3:PutLifecycleConfiguration permission.

You can also explicitly deny permissions. Explicit denial also supersedes any other permissions. If you want to prevent users or accounts from removing or deleting objects from your bucket, you must deny them permissions for the following actions:

For more information about permissions, see Managing Access Permissions to your Amazon S3 Resources in the Amazon S3 User Guide.

For more examples of transitioning objects to storage classes such as STANDARD_IA or ONEZONE_IA, see Examples of Lifecycle Configuration.

The following operations are related to PutBucketLifecycle:

", + "PutBucketLifecycleConfiguration": "

This operation is not supported by directory buckets.

Creates a new lifecycle configuration for the bucket or replaces an existing lifecycle configuration. Keep in mind that this will overwrite an existing lifecycle configuration, so if you want to retain any configuration details, they must be included in the new lifecycle configuration. For information about lifecycle configuration, see Managing your storage lifecycle.

Bucket lifecycle configuration now supports specifying a lifecycle rule using an object key name prefix, one or more object tags, or a combination of both. Accordingly, this section describes the latest API. The previous version of the API supported filtering based only on an object key name prefix, which is supported for backward compatibility. For the related API description, see PutBucketLifecycle.

Rules

You specify the lifecycle configuration in your request body. The lifecycle configuration is specified as XML consisting of one or more rules. An Amazon S3 Lifecycle configuration can have up to 1,000 rules. This limit is not adjustable. Each rule consists of the following:

For more information, see Object Lifecycle Management and Lifecycle Configuration Elements.

Permissions

By default, all Amazon S3 resources are private, including buckets, objects, and related subresources (for example, lifecycle configuration and website configuration). Only the resource owner (that is, the Amazon Web Services account that created it) can access the resource. The resource owner can optionally grant access permissions to others by writing an access policy. For this operation, a user must get the s3:PutLifecycleConfiguration permission.

You can also explicitly deny permissions. An explicit deny also supersedes any other permissions. If you want to block users or accounts from removing or deleting objects from your bucket, you must deny them permissions for the following actions:

For more information about permissions, see Managing Access Permissions to Your Amazon S3 Resources.

The following operations are related to PutBucketLifecycleConfiguration:

", + "PutBucketLogging": "

This operation is not supported by directory buckets.

Set the logging parameters for a bucket and to specify permissions for who can view and modify the logging parameters. All logs are saved to buckets in the same Amazon Web Services Region as the source bucket. To set the logging status of a bucket, you must be the bucket owner.

The bucket owner is automatically granted FULL_CONTROL to all logs. You use the Grantee request element to grant access to other people. The Permissions request element specifies the kind of access the grantee has to the logs.

If the target bucket for log delivery uses the bucket owner enforced setting for S3 Object Ownership, you can't use the Grantee request element to grant access to others. Permissions can only be granted using policies. For more information, see Permissions for server access log delivery in the Amazon S3 User Guide.

Grantee Values

You can specify the person (grantee) to whom you're assigning access rights (by using request elements) in the following ways:

To enable logging, you use LoggingEnabled and its children request elements. To disable logging, you use an empty BucketLoggingStatus request element:

<BucketLoggingStatus xmlns=\"http://doc.s3.amazonaws.com/2006-03-01\" />

For more information about server access logging, see Server Access Logging in the Amazon S3 User Guide.

For more information about creating a bucket, see CreateBucket. For more information about returning the logging status of a bucket, see GetBucketLogging.

The following operations are related to PutBucketLogging:

", + "PutBucketMetricsConfiguration": "

This operation is not supported by directory buckets.

Sets a metrics configuration (specified by the metrics configuration ID) for the bucket. You can have up to 1,000 metrics configurations per bucket. If you're updating an existing metrics configuration, note that this is a full replacement of the existing metrics configuration. If you don't include the elements you want to keep, they are erased.

To use this operation, you must have permissions to perform the s3:PutMetricsConfiguration action. The bucket owner has this permission by default. The bucket owner can grant this permission to others. For more information about permissions, see Permissions Related to Bucket Subresource Operations and Managing Access Permissions to Your Amazon S3 Resources.

For information about CloudWatch request metrics for Amazon S3, see Monitoring Metrics with Amazon CloudWatch.

The following operations are related to PutBucketMetricsConfiguration:

PutBucketMetricsConfiguration has the following special error:

", + "PutBucketNotification": "

This operation is not supported by directory buckets.

No longer used, see the PutBucketNotificationConfiguration operation.

", + "PutBucketNotificationConfiguration": "

This operation is not supported by directory buckets.

Enables notifications of specified events for a bucket. For more information about event notifications, see Configuring Event Notifications.

Using this API, you can replace an existing notification configuration. The configuration is an XML file that defines the event types that you want Amazon S3 to publish and the destination where you want Amazon S3 to publish an event notification when it detects an event of the specified type.

By default, your bucket has no event notifications configured. That is, the notification configuration will be an empty NotificationConfiguration.

<NotificationConfiguration>

</NotificationConfiguration>

This action replaces the existing notification configuration with the configuration you include in the request body.

After Amazon S3 receives this request, it first verifies that any Amazon Simple Notification Service (Amazon SNS) or Amazon Simple Queue Service (Amazon SQS) destination exists, and that the bucket owner has permission to publish to it by sending a test notification. In the case of Lambda destinations, Amazon S3 verifies that the Lambda function permissions grant Amazon S3 permission to invoke the function from the Amazon S3 bucket. For more information, see Configuring Notifications for Amazon S3 Events.

You can disable notifications by adding the empty NotificationConfiguration element.

For more information about the number of event notification configurations that you can create per bucket, see Amazon S3 service quotas in Amazon Web Services General Reference.

By default, only the bucket owner can configure notifications on a bucket. However, bucket owners can use a bucket policy to grant permission to other users to set this configuration with the required s3:PutBucketNotification permission.

The PUT notification is an atomic operation. For example, suppose your notification configuration includes SNS topic, SQS queue, and Lambda function configurations. When you send a PUT request with this configuration, Amazon S3 sends test messages to your SNS topic. If the message fails, the entire PUT action will fail, and Amazon S3 will not add the configuration to your bucket.

If the configuration in the request body includes only one TopicConfiguration specifying only the s3:ReducedRedundancyLostObject event type, the response will also include the x-amz-sns-test-message-id header containing the message ID of the test notification sent to the topic.

The following action is related to PutBucketNotificationConfiguration:

", + "PutBucketOwnershipControls": "

This operation is not supported by directory buckets.

Creates or modifies OwnershipControls for an Amazon S3 bucket. To use this operation, you must have the s3:PutBucketOwnershipControls permission. For more information about Amazon S3 permissions, see Specifying permissions in a policy.

For information about Amazon S3 Object Ownership, see Using object ownership.

The following operations are related to PutBucketOwnershipControls:

", + "PutBucketPolicy": "

Applies an Amazon S3 bucket policy to an Amazon S3 bucket.

Directory buckets - For directory buckets, you must make requests for this API operation to the Regional endpoint. These endpoints support path-style requests in the format https://s3express-control.region_code.amazonaws.com/bucket-name . Virtual-hosted-style requests aren't supported. For more information, see Regional and Zonal endpoints in the Amazon S3 User Guide.

Permissions

If you are using an identity other than the root user of the Amazon Web Services account that owns the bucket, the calling identity must both have the PutBucketPolicy permissions on the specified bucket and belong to the bucket owner's account in order to use this operation.

If you don't have PutBucketPolicy permissions, Amazon S3 returns a 403 Access Denied error. If you have the correct permissions, but you're not using an identity that belongs to the bucket owner's account, Amazon S3 returns a 405 Method Not Allowed error.

To ensure that bucket owners don't inadvertently lock themselves out of their own buckets, the root principal in a bucket owner's Amazon Web Services account can perform the GetBucketPolicy, PutBucketPolicy, and DeleteBucketPolicy API actions, even if their bucket policy explicitly denies the root principal's access. Bucket owner root principals can only be blocked from performing these API actions by VPC endpoint policies and Amazon Web Services Organizations policies.

Example bucket policies

General purpose buckets example bucket policies - See Bucket policy examples in the Amazon S3 User Guide.

Directory bucket example bucket policies - See Example bucket policies for S3 Express One Zone in the Amazon S3 User Guide.

HTTP Host header syntax

Directory buckets - The HTTP Host header syntax is s3express-control.region.amazonaws.com.

The following operations are related to PutBucketPolicy:

", + "PutBucketReplication": "

This operation is not supported by directory buckets.

Creates a replication configuration or replaces an existing one. For more information, see Replication in the Amazon S3 User Guide.

Specify the replication configuration in the request body. In the replication configuration, you provide the name of the destination bucket or buckets where you want Amazon S3 to replicate objects, the IAM role that Amazon S3 can assume to replicate objects on your behalf, and other relevant information. You can invoke this request for a specific Amazon Web Services Region by using the aws:RequestedRegion condition key.

A replication configuration must include at least one rule, and can contain a maximum of 1,000. Each rule identifies a subset of objects to replicate by filtering the objects in the source bucket. To choose additional subsets of objects to replicate, add a rule for each subset.

To specify a subset of the objects in the source bucket to apply a replication rule to, add the Filter element as a child of the Rule element. You can filter objects based on an object key prefix, one or more object tags, or both. When you add the Filter element in the configuration, you must also add the following elements: DeleteMarkerReplication, Status, and Priority.

If you are using an earlier version of the replication configuration, Amazon S3 handles replication of delete markers differently. For more information, see Backward Compatibility.

For information about enabling versioning on a bucket, see Using Versioning.

Handling Replication of Encrypted Objects

By default, Amazon S3 doesn't replicate objects that are stored at rest using server-side encryption with KMS keys. To replicate Amazon Web Services KMS-encrypted objects, add the following: SourceSelectionCriteria, SseKmsEncryptedObjects, Status, EncryptionConfiguration, and ReplicaKmsKeyID. For information about replication configuration, see Replicating Objects Created with SSE Using KMS keys.

For information on PutBucketReplication errors, see List of replication-related error codes

Permissions

To create a PutBucketReplication request, you must have s3:PutReplicationConfiguration permissions for the bucket.

By default, a resource owner, in this case the Amazon Web Services account that created the bucket, can perform this operation. The resource owner can also grant others permissions to perform the operation. For more information about permissions, see Specifying Permissions in a Policy and Managing Access Permissions to Your Amazon S3 Resources.

To perform this operation, the user or role performing the action must have the iam:PassRole permission.

The following operations are related to PutBucketReplication:

", + "PutBucketRequestPayment": "

This operation is not supported by directory buckets.

Sets the request payment configuration for a bucket. By default, the bucket owner pays for downloads from the bucket. This configuration parameter enables the bucket owner (only) to specify that the person requesting the download will be charged for the download. For more information, see Requester Pays Buckets.

The following operations are related to PutBucketRequestPayment:

", + "PutBucketTagging": "

This operation is not supported by directory buckets.

Sets the tags for a bucket.

Use tags to organize your Amazon Web Services bill to reflect your own cost structure. To do this, sign up to get your Amazon Web Services account bill with tag key values included. Then, to see the cost of combined resources, organize your billing information according to resources with the same tag key values. For example, you can tag several resources with a specific application name, and then organize your billing information to see the total cost of that application across several services. For more information, see Cost Allocation and Tagging and Using Cost Allocation in Amazon S3 Bucket Tags.

When this operation sets the tags for a bucket, it will overwrite any current tags the bucket already has. You cannot use this operation to add tags to an existing list of tags.

To use this operation, you must have permissions to perform the s3:PutBucketTagging action. The bucket owner has this permission by default and can grant this permission to others. For more information about permissions, see Permissions Related to Bucket Subresource Operations and Managing Access Permissions to Your Amazon S3 Resources.

PutBucketTagging has the following special errors. For more Amazon S3 errors see, Error Responses.

The following operations are related to PutBucketTagging:

", + "PutBucketVersioning": "

This operation is not supported by directory buckets.

Sets the versioning state of an existing bucket.

You can set the versioning state with one of the following values:

Enabled—Enables versioning for the objects in the bucket. All objects added to the bucket receive a unique version ID.

Suspended—Disables versioning for the objects in the bucket. All objects added to the bucket receive the version ID null.

If the versioning state has never been set on a bucket, it has no versioning state; a GetBucketVersioning request does not return a versioning state value.

In order to enable MFA Delete, you must be the bucket owner. If you are the bucket owner and want to enable MFA Delete in the bucket versioning configuration, you must include the x-amz-mfa request header and the Status and the MfaDelete request elements in a request to set the versioning state of the bucket.

If you have an object expiration lifecycle configuration in your non-versioned bucket and you want to maintain the same permanent delete behavior when you enable versioning, you must add a noncurrent expiration policy. The noncurrent expiration lifecycle configuration will manage the deletes of the noncurrent object versions in the version-enabled bucket. (A version-enabled bucket maintains one current and zero or more noncurrent object versions.) For more information, see Lifecycle and Versioning.

The following operations are related to PutBucketVersioning:

", + "PutBucketWebsite": "

This operation is not supported by directory buckets.

Sets the configuration of the website that is specified in the website subresource. To configure a bucket as a website, you can add this subresource on the bucket with website configuration information such as the file name of the index document and any redirect rules. For more information, see Hosting Websites on Amazon S3.

This PUT action requires the S3:PutBucketWebsite permission. By default, only the bucket owner can configure the website attached to a bucket; however, bucket owners can allow other users to set the website configuration by writing a bucket policy that grants them the S3:PutBucketWebsite permission.

To redirect all website requests sent to the bucket's website endpoint, you add a website configuration with the following elements. Because all requests are sent to another website, you don't need to provide index document name for the bucket.

If you want granular control over redirects, you can use the following elements to add routing rules that describe conditions for redirecting requests and information about the redirect destination. In this case, the website configuration must provide an index document for the bucket, because some requests might not be redirected.

Amazon S3 has a limitation of 50 routing rules per website configuration. If you require more than 50 routing rules, you can use object redirect. For more information, see Configuring an Object Redirect in the Amazon S3 User Guide.

The maximum request length is limited to 128 KB.

", + "PutObject": "

Adds an object to a bucket.

Amazon S3 is a distributed system. If it receives multiple write requests for the same object simultaneously, it overwrites all but the last object written. However, Amazon S3 provides features that can modify this behavior:

Permissions
Data integrity with Content-MD5
HTTP Host header syntax

Directory buckets - The HTTP Host header syntax is Bucket_name.s3express-az_id.region.amazonaws.com.

For more information about related Amazon S3 APIs, see the following:

", + "PutObjectAcl": "

This operation is not supported by directory buckets.

Uses the acl subresource to set the access control list (ACL) permissions for a new or existing object in an S3 bucket. You must have the WRITE_ACP permission to set the ACL of an object. For more information, see What permissions can I grant? in the Amazon S3 User Guide.

This functionality is not supported for Amazon S3 on Outposts.

Depending on your application needs, you can choose to set the ACL on an object using either the request body or the headers. For example, if you have an existing application that updates a bucket ACL using the request body, you can continue to use that approach. For more information, see Access Control List (ACL) Overview in the Amazon S3 User Guide.

If your bucket uses the bucket owner enforced setting for S3 Object Ownership, ACLs are disabled and no longer affect permissions. You must use policies to grant access to your bucket and the objects in it. Requests to set ACLs or update ACLs fail and return the AccessControlListNotSupported error code. Requests to read ACLs are still supported. For more information, see Controlling object ownership in the Amazon S3 User Guide.

Permissions

You can set access permissions using one of the following methods:

You can use either a canned ACL or specify access permissions explicitly. You cannot do both.

Grantee Values

You can specify the person (grantee) to whom you're assigning access rights (using request elements) in the following ways:

Versioning

The ACL of an object is set at the object version level. By default, PUT sets the ACL of the current version of an object. To set the ACL of a different version, use the versionId subresource.

The following operations are related to PutObjectAcl:

", + "PutObjectLegalHold": "

This operation is not supported by directory buckets.

Applies a legal hold configuration to the specified object. For more information, see Locking Objects.

This functionality is not supported for Amazon S3 on Outposts.

", + "PutObjectLockConfiguration": "

This operation is not supported by directory buckets.

Places an Object Lock configuration on the specified bucket. The rule specified in the Object Lock configuration will be applied by default to every new object placed in the specified bucket. For more information, see Locking Objects.

", + "PutObjectRetention": "

This operation is not supported by directory buckets.

Places an Object Retention configuration on an object. For more information, see Locking Objects. Users or accounts require the s3:PutObjectRetention permission in order to place an Object Retention configuration on objects. Bypassing a Governance Retention configuration requires the s3:BypassGovernanceRetention permission.

This functionality is not supported for Amazon S3 on Outposts.

", + "PutObjectTagging": "

This operation is not supported by directory buckets.

Sets the supplied tag-set to an object that already exists in a bucket. A tag is a key-value pair. For more information, see Object Tagging.

You can associate tags with an object by sending a PUT request against the tagging subresource that is associated with the object. You can retrieve tags by sending a GET request. For more information, see GetObjectTagging.

For tagging-related restrictions related to characters and encodings, see Tag Restrictions. Note that Amazon S3 limits the maximum number of tags to 10 tags per object.

To use this operation, you must have permission to perform the s3:PutObjectTagging action. By default, the bucket owner has this permission and can grant this permission to others.

To put tags of any other version, use the versionId query parameter. You also need permission for the s3:PutObjectVersionTagging action.

PutObjectTagging has the following special errors. For more Amazon S3 errors see, Error Responses.

The following operations are related to PutObjectTagging:

", + "PutPublicAccessBlock": "

This operation is not supported by directory buckets.

Creates or modifies the PublicAccessBlock configuration for an Amazon S3 bucket. To use this operation, you must have the s3:PutBucketPublicAccessBlock permission. For more information about Amazon S3 permissions, see Specifying Permissions in a Policy.

When Amazon S3 evaluates the PublicAccessBlock configuration for a bucket or an object, it checks the PublicAccessBlock configuration for both the bucket (or the bucket that contains the object) and the bucket owner's account. If the PublicAccessBlock configurations are different between the bucket and the account, Amazon S3 uses the most restrictive combination of the bucket-level and account-level settings.

For more information about when Amazon S3 considers a bucket or an object public, see The Meaning of \"Public\".

The following operations are related to PutPublicAccessBlock:

", + "RestoreObject": "

This operation is not supported by directory buckets.

Restores an archived copy of an object back into Amazon S3

This functionality is not supported for Amazon S3 on Outposts.

This action performs the following types of requests:

For more information about the S3 structure in the request body, see the following:

Define the SQL expression for the SELECT type of restoration for your query in the request body's SelectParameters structure. You can use expressions like the following examples.

When making a select request, you can also do the following:

The following are additional important facts about the select feature:

Permissions

To use this operation, you must have permissions to perform the s3:RestoreObject action. The bucket owner has this permission by default and can grant this permission to others. For more information about permissions, see Permissions Related to Bucket Subresource Operations and Managing Access Permissions to Your Amazon S3 Resources in the Amazon S3 User Guide.

Restoring objects

Objects that you archive to the S3 Glacier Flexible Retrieval Flexible Retrieval or S3 Glacier Deep Archive storage class, and S3 Intelligent-Tiering Archive or S3 Intelligent-Tiering Deep Archive tiers, are not accessible in real time. For objects in the S3 Glacier Flexible Retrieval Flexible Retrieval or S3 Glacier Deep Archive storage classes, you must first initiate a restore request, and then wait until a temporary copy of the object is available. If you want a permanent copy of the object, create a copy of it in the Amazon S3 Standard storage class in your S3 bucket. To access an archived object, you must restore the object for the duration (number of days) that you specify. For objects in the Archive Access or Deep Archive Access tiers of S3 Intelligent-Tiering, you must first initiate a restore request, and then wait until the object is moved into the Frequent Access tier.

To restore a specific object version, you can provide a version ID. If you don't provide a version ID, Amazon S3 restores the current version.

When restoring an archived object, you can specify one of the following data access tier options in the Tier element of the request body:

For more information about archive retrieval options and provisioned capacity for Expedited data access, see Restoring Archived Objects in the Amazon S3 User Guide.

You can use Amazon S3 restore speed upgrade to change the restore speed to a faster speed while it is in progress. For more information, see Upgrading the speed of an in-progress restore in the Amazon S3 User Guide.

To get the status of object restoration, you can send a HEAD request. Operations return the x-amz-restore header, which provides information about the restoration status, in the response. You can use Amazon S3 event notifications to notify you when a restore is initiated or completed. For more information, see Configuring Amazon S3 Event Notifications in the Amazon S3 User Guide.

After restoring an archived object, you can update the restoration period by reissuing the request with a new period. Amazon S3 updates the restoration period relative to the current time and charges only for the request-there are no data transfer charges. You cannot update the restoration period when Amazon S3 is actively processing your current restore request for the object.

If your bucket has a lifecycle configuration with a rule that includes an expiration action, the object expiration overrides the life span that you specify in a restore request. For example, if you restore an object copy for 10 days, but the object is scheduled to expire in 3 days, Amazon S3 deletes the object in 3 days. For more information about lifecycle configuration, see PutBucketLifecycleConfiguration and Object Lifecycle Management in Amazon S3 User Guide.

Responses

A successful action returns either the 200 OK or 202 Accepted status code.

The following operations are related to RestoreObject:

", + "SelectObjectContent": "

This operation is not supported by directory buckets.

This action filters the contents of an Amazon S3 object based on a simple structured query language (SQL) statement. In the request, along with the SQL expression, you must also specify a data serialization format (JSON, CSV, or Apache Parquet) of the object. Amazon S3 uses this format to parse object data into records, and returns only records that match the specified SQL expression. You must also specify the data serialization format for the response.

This functionality is not supported for Amazon S3 on Outposts.

For more information about Amazon S3 Select, see Selecting Content from Objects and SELECT Command in the Amazon S3 User Guide.

Permissions

You must have the s3:GetObject permission for this operation. Amazon S3 Select does not support anonymous access. For more information about permissions, see Specifying Permissions in a Policy in the Amazon S3 User Guide.

Object Data Formats

You can use Amazon S3 Select to query objects that have the following format properties:

Working with the Response Body

Given the response size is unknown, Amazon S3 Select streams the response as a series of messages and includes a Transfer-Encoding header with chunked as its value in the response. For more information, see Appendix: SelectObjectContent Response.

GetObject Support

The SelectObjectContent action does not support the following GetObject functionality. For more information, see GetObject.

Special Errors

For a list of special errors for this operation, see List of SELECT Object Content Error Codes

The following operations are related to SelectObjectContent:

", + "UploadPart": "

Uploads a part in a multipart upload.

In this operation, you provide new data as a part of an object in your request. However, you have an option to specify your existing Amazon S3 object as a data source for the part you are uploading. To upload a part from an existing object, you use the UploadPartCopy operation.

You must initiate a multipart upload (see CreateMultipartUpload) before you can upload any part. In response to your initiate request, Amazon S3 returns an upload ID, a unique identifier that you must include in your upload part request.

Part numbers can be any number from 1 to 10,000, inclusive. A part number uniquely identifies a part and also defines its position within the object being created. If you upload a new part using the same part number that was used with a previous part, the previously uploaded part is overwritten.

For information about maximum and minimum part sizes and other multipart upload specifications, see Multipart upload limits in the Amazon S3 User Guide.

After you initiate multipart upload and upload one or more parts, you must either complete or abort multipart upload in order to stop getting charged for storage of the uploaded parts. Only after you either complete or abort multipart upload, Amazon S3 frees up the parts storage and stops charging you for the parts storage.

For more information on multipart uploads, go to Multipart Upload Overview in the Amazon S3 User Guide .

Directory buckets - For directory buckets, you must make requests for this API operation to the Zonal endpoint. These endpoints support virtual-hosted-style requests in the format https://bucket_name.s3express-az_id.region.amazonaws.com/key-name . Path-style requests are not supported. For more information, see Regional and Zonal endpoints in the Amazon S3 User Guide.

Permissions
Data integrity

General purpose bucket - To ensure that data is not corrupted traversing the network, specify the Content-MD5 header in the upload part request. Amazon S3 checks the part data against the provided MD5 value. If they do not match, Amazon S3 returns an error. If the upload request is signed with Signature Version 4, then Amazon Web Services S3 uses the x-amz-content-sha256 header as a checksum instead of Content-MD5. For more information see Authenticating Requests: Using the Authorization Header (Amazon Web Services Signature Version 4).

Directory buckets - MD5 is not supported by directory buckets. You can use checksum algorithms to check object integrity.

Encryption

For more information, see Using Server-Side Encryption in the Amazon S3 User Guide.

Special errors
HTTP Host header syntax

Directory buckets - The HTTP Host header syntax is Bucket_name.s3express-az_id.region.amazonaws.com.

The following operations are related to UploadPart:

", + "UploadPartCopy": "

Uploads a part by copying data from an existing object as data source. To specify the data source, you add the request header x-amz-copy-source in your request. To specify a byte range, you add the request header x-amz-copy-source-range in your request.

For information about maximum and minimum part sizes and other multipart upload specifications, see Multipart upload limits in the Amazon S3 User Guide.

Instead of copying data from an existing object as part data, you might use the UploadPart action to upload new data as a part of an object in your request.

You must initiate a multipart upload before you can upload any part. In response to your initiate request, Amazon S3 returns the upload ID, a unique identifier that you must include in your upload part request.

For conceptual information about multipart uploads, see Uploading Objects Using Multipart Upload in the Amazon S3 User Guide. For information about copying objects using a single atomic action vs. a multipart upload, see Operations on Objects in the Amazon S3 User Guide.

Directory buckets - For directory buckets, you must make requests for this API operation to the Zonal endpoint. These endpoints support virtual-hosted-style requests in the format https://bucket_name.s3express-az_id.region.amazonaws.com/key-name . Path-style requests are not supported. For more information, see Regional and Zonal endpoints in the Amazon S3 User Guide.

Authentication and authorization

All UploadPartCopy requests must be authenticated and signed by using IAM credentials (access key ID and secret access key for the IAM identities). All headers with the x-amz- prefix, including x-amz-copy-source, must be signed. For more information, see REST Authentication.

Directory buckets - You must use IAM credentials to authenticate and authorize your access to the UploadPartCopy API operation, instead of using the temporary security credentials through the CreateSession API operation.

Amazon Web Services CLI or SDKs handles authentication and authorization on your behalf.

Permissions

You must have READ access to the source object and WRITE access to the destination bucket.

Encryption
Special errors
HTTP Host header syntax

Directory buckets - The HTTP Host header syntax is Bucket_name.s3express-az_id.region.amazonaws.com.

The following operations are related to UploadPartCopy:

", + "WriteGetObjectResponse": "

This operation is not supported by directory buckets.

Passes transformed objects to a GetObject operation when using Object Lambda access points. For information about Object Lambda access points, see Transforming objects with Object Lambda access points in the Amazon S3 User Guide.

This operation supports metadata that can be returned by GetObject, in addition to RequestRoute, RequestToken, StatusCode, ErrorCode, and ErrorMessage. The GetObject response metadata is supported so that the WriteGetObjectResponse caller, typically an Lambda function, can provide the same metadata when it internally invokes GetObject. When WriteGetObjectResponse is called by a customer-owned Lambda function, the metadata returned to the end user GetObject call might differ from what Amazon S3 would normally return.

You can include any number of metadata headers. When including a metadata header, it should be prefaced with x-amz-meta. For example, x-amz-meta-my-custom-header: MyCustomValue. The primary use case for this is to forward GetObject metadata.

Amazon Web Services provides some prebuilt Lambda functions that you can use with S3 Object Lambda to detect and redact personally identifiable information (PII) and decompress S3 objects. These Lambda functions are available in the Amazon Web Services Serverless Application Repository, and can be selected through the Amazon Web Services Management Console when you create your Object Lambda access point.

Example 1: PII Access Control - This Lambda function uses Amazon Comprehend, a natural language processing (NLP) service using machine learning to find insights and relationships in text. It automatically detects personally identifiable information (PII) such as names, addresses, dates, credit card numbers, and social security numbers from documents in your Amazon S3 bucket.

Example 2: PII Redaction - This Lambda function uses Amazon Comprehend, a natural language processing (NLP) service using machine learning to find insights and relationships in text. It automatically redacts personally identifiable information (PII) such as names, addresses, dates, credit card numbers, and social security numbers from documents in your Amazon S3 bucket.

Example 3: Decompression - The Lambda function S3ObjectLambdaDecompression, is equipped to decompress objects stored in S3 in one of six compressed file formats including bzip2, gzip, snappy, zlib, zstandard and ZIP.

For information on how to view and use these functions, see Using Amazon Web Services built Lambda functions in the Amazon S3 User Guide.

" }, "shapes": { "AbortDate": { "base": null, "refs": { - "CreateMultipartUploadOutput$AbortDate": "

If the bucket has a lifecycle rule configured with an action to abort incomplete multipart uploads and the prefix in the lifecycle rule matches the object name in the request, the response includes this header. The header indicates when the initiated multipart upload becomes eligible for an abort operation. For more information, see Aborting Incomplete Multipart Uploads Using a Bucket Lifecycle Configuration.

The response also includes the x-amz-abort-rule-id header that provides the ID of the lifecycle configuration rule that defines this action.

", - "ListPartsOutput$AbortDate": "

If the bucket has a lifecycle rule configured with an action to abort incomplete multipart uploads and the prefix in the lifecycle rule matches the object name in the request, then the response includes this header indicating when the initiated multipart upload will become eligible for abort operation. For more information, see Aborting Incomplete Multipart Uploads Using a Bucket Lifecycle Configuration.

The response will also include the x-amz-abort-rule-id header that will provide the ID of the lifecycle configuration rule that defines this action.

" + "CreateMultipartUploadOutput$AbortDate": "

If the bucket has a lifecycle rule configured with an action to abort incomplete multipart uploads and the prefix in the lifecycle rule matches the object name in the request, the response includes this header. The header indicates when the initiated multipart upload becomes eligible for an abort operation. For more information, see Aborting Incomplete Multipart Uploads Using a Bucket Lifecycle Configuration in the Amazon S3 User Guide.

The response also includes the x-amz-abort-rule-id header that provides the ID of the lifecycle configuration rule that defines the abort action.

This functionality is not supported for directory buckets.

", + "ListPartsOutput$AbortDate": "

If the bucket has a lifecycle rule configured with an action to abort incomplete multipart uploads and the prefix in the lifecycle rule matches the object name in the request, then the response includes this header indicating when the initiated multipart upload will become eligible for abort operation. For more information, see Aborting Incomplete Multipart Uploads Using a Bucket Lifecycle Configuration.

The response will also include the x-amz-abort-rule-id header that will provide the ID of the lifecycle configuration rule that defines this action.

This functionality is not supported for directory buckets.

" } }, "AbortIncompleteMultipartUpload": { @@ -128,8 +130,8 @@ "AbortRuleId": { "base": null, "refs": { - "CreateMultipartUploadOutput$AbortRuleId": "

This header is returned along with the x-amz-abort-date header. It identifies the applicable lifecycle configuration rule that defines the action to abort incomplete multipart uploads.

", - "ListPartsOutput$AbortRuleId": "

This header is returned along with the x-amz-abort-date header. It identifies applicable lifecycle configuration rule that defines the action to abort incomplete multipart uploads.

" + "CreateMultipartUploadOutput$AbortRuleId": "

This header is returned along with the x-amz-abort-date header. It identifies the applicable lifecycle configuration rule that defines the action to abort incomplete multipart uploads.

This functionality is not supported for directory buckets.

", + "ListPartsOutput$AbortRuleId": "

This header is returned along with the x-amz-abort-date header. It identifies applicable lifecycle configuration rule that defines the action to abort incomplete multipart uploads.

This functionality is not supported for directory buckets.

" } }, "AccelerateConfiguration": { @@ -141,7 +143,7 @@ "AcceptRanges": { "base": null, "refs": { - "GetObjectOutput$AcceptRanges": "

Indicates that a range of bytes was specified.

", + "GetObjectOutput$AcceptRanges": "

Indicates that a range of bytes was specified in the request.

", "HeadObjectOutput$AcceptRanges": "

Indicates that a range of bytes was specified.

", "WriteGetObjectResponseRequest$AcceptRanges": "

Indicates that a range of bytes was specified.

" } @@ -159,6 +161,18 @@ "Destination$AccessControlTranslation": "

Specify this only in a cross-account scenario (where source and destination bucket owners are not the same), and you want to change replica ownership to the Amazon Web Services account that owns the destination bucket. If this is not specified in the replication configuration, the replicas are owned by same Amazon Web Services account that owns the source object.

" } }, + "AccessKeyIdValue": { + "base": null, + "refs": { + "SessionCredentials$AccessKeyId": "

A unique identifier that's associated with a secret access key. The access key ID and the secret access key are used together to sign programmatic Amazon Web Services requests cryptographically.

" + } + }, + "AccessPointAlias": { + "base": null, + "refs": { + "HeadBucketOutput$AccessPointAlias": "

Indicates whether the bucket name used in the request is an access point alias.

This functionality is not supported for directory buckets.

" + } + }, "AccessPointArn": { "base": null, "refs": { @@ -169,100 +183,100 @@ "AccountId": { "base": null, "refs": { - "AbortMultipartUploadRequest$ExpectedBucketOwner": "

The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

", + "AbortMultipartUploadRequest$ExpectedBucketOwner": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

", "AnalyticsS3BucketDestination$BucketAccountId": "

The account ID that owns the destination S3 bucket. If no account ID is provided, the owner is not validated before exporting data.

Although this value is optional, we strongly recommend that you set it to help prevent problems if the destination bucket ownership changes.

", - "CompleteMultipartUploadRequest$ExpectedBucketOwner": "

The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

", - "CopyObjectRequest$ExpectedBucketOwner": "

The account ID of the expected destination bucket owner. If the destination bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

", - "CopyObjectRequest$ExpectedSourceBucketOwner": "

The account ID of the expected source bucket owner. If the source bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

", - "CreateMultipartUploadRequest$ExpectedBucketOwner": "

The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

", - "DeleteBucketAnalyticsConfigurationRequest$ExpectedBucketOwner": "

The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

", - "DeleteBucketCorsRequest$ExpectedBucketOwner": "

The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

", - "DeleteBucketEncryptionRequest$ExpectedBucketOwner": "

The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

", - "DeleteBucketInventoryConfigurationRequest$ExpectedBucketOwner": "

The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

", - "DeleteBucketLifecycleRequest$ExpectedBucketOwner": "

The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

", - "DeleteBucketMetricsConfigurationRequest$ExpectedBucketOwner": "

The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

", - "DeleteBucketOwnershipControlsRequest$ExpectedBucketOwner": "

The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

", - "DeleteBucketPolicyRequest$ExpectedBucketOwner": "

The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

", - "DeleteBucketReplicationRequest$ExpectedBucketOwner": "

The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

", - "DeleteBucketRequest$ExpectedBucketOwner": "

The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

", - "DeleteBucketTaggingRequest$ExpectedBucketOwner": "

The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

", - "DeleteBucketWebsiteRequest$ExpectedBucketOwner": "

The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

", - "DeleteObjectRequest$ExpectedBucketOwner": "

The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

", - "DeleteObjectTaggingRequest$ExpectedBucketOwner": "

The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

", - "DeleteObjectsRequest$ExpectedBucketOwner": "

The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

", - "DeletePublicAccessBlockRequest$ExpectedBucketOwner": "

The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

", + "CompleteMultipartUploadRequest$ExpectedBucketOwner": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

", + "CopyObjectRequest$ExpectedBucketOwner": "

The account ID of the expected destination bucket owner. If the account ID that you provide does not match the actual owner of the destination bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

", + "CopyObjectRequest$ExpectedSourceBucketOwner": "

The account ID of the expected source bucket owner. If the account ID that you provide does not match the actual owner of the source bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

", + "CreateMultipartUploadRequest$ExpectedBucketOwner": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

", + "DeleteBucketAnalyticsConfigurationRequest$ExpectedBucketOwner": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

", + "DeleteBucketCorsRequest$ExpectedBucketOwner": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

", + "DeleteBucketEncryptionRequest$ExpectedBucketOwner": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

", + "DeleteBucketInventoryConfigurationRequest$ExpectedBucketOwner": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

", + "DeleteBucketLifecycleRequest$ExpectedBucketOwner": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

", + "DeleteBucketMetricsConfigurationRequest$ExpectedBucketOwner": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

", + "DeleteBucketOwnershipControlsRequest$ExpectedBucketOwner": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

", + "DeleteBucketPolicyRequest$ExpectedBucketOwner": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

For directory buckets, this header is not supported in this API operation. If you specify this header, the request fails with the HTTP status code 501 Not Implemented.

", + "DeleteBucketReplicationRequest$ExpectedBucketOwner": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

", + "DeleteBucketRequest$ExpectedBucketOwner": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

For directory buckets, this header is not supported in this API operation. If you specify this header, the request fails with the HTTP status code 501 Not Implemented.

", + "DeleteBucketTaggingRequest$ExpectedBucketOwner": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

", + "DeleteBucketWebsiteRequest$ExpectedBucketOwner": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

", + "DeleteObjectRequest$ExpectedBucketOwner": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

", + "DeleteObjectTaggingRequest$ExpectedBucketOwner": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

", + "DeleteObjectsRequest$ExpectedBucketOwner": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

", + "DeletePublicAccessBlockRequest$ExpectedBucketOwner": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

", "Destination$Account": "

Destination bucket owner account ID. In a cross-account scenario, if you direct Amazon S3 to change replica ownership to the Amazon Web Services account that owns the destination bucket by specifying the AccessControlTranslation property, this is the account ID of the destination bucket owner. For more information, see Replication Additional Configuration: Changing the Replica Owner in the Amazon S3 User Guide.

", - "GetBucketAccelerateConfigurationRequest$ExpectedBucketOwner": "

The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

", - "GetBucketAclRequest$ExpectedBucketOwner": "

The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

", - "GetBucketAnalyticsConfigurationRequest$ExpectedBucketOwner": "

The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

", - "GetBucketCorsRequest$ExpectedBucketOwner": "

The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

", - "GetBucketEncryptionRequest$ExpectedBucketOwner": "

The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

", - "GetBucketInventoryConfigurationRequest$ExpectedBucketOwner": "

The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

", - "GetBucketLifecycleConfigurationRequest$ExpectedBucketOwner": "

The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

", - "GetBucketLifecycleRequest$ExpectedBucketOwner": "

The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

", - "GetBucketLocationRequest$ExpectedBucketOwner": "

The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

", - "GetBucketLoggingRequest$ExpectedBucketOwner": "

The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

", - "GetBucketMetricsConfigurationRequest$ExpectedBucketOwner": "

The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

", - "GetBucketNotificationConfigurationRequest$ExpectedBucketOwner": "

The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

", - "GetBucketOwnershipControlsRequest$ExpectedBucketOwner": "

The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

", - "GetBucketPolicyRequest$ExpectedBucketOwner": "

The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

", - "GetBucketPolicyStatusRequest$ExpectedBucketOwner": "

The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

", - "GetBucketReplicationRequest$ExpectedBucketOwner": "

The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

", - "GetBucketRequestPaymentRequest$ExpectedBucketOwner": "

The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

", - "GetBucketTaggingRequest$ExpectedBucketOwner": "

The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

", - "GetBucketVersioningRequest$ExpectedBucketOwner": "

The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

", - "GetBucketWebsiteRequest$ExpectedBucketOwner": "

The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

", - "GetObjectAclRequest$ExpectedBucketOwner": "

The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

", - "GetObjectAttributesRequest$ExpectedBucketOwner": "

The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

", - "GetObjectLegalHoldRequest$ExpectedBucketOwner": "

The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

", - "GetObjectLockConfigurationRequest$ExpectedBucketOwner": "

The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

", - "GetObjectRequest$ExpectedBucketOwner": "

The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

", - "GetObjectRetentionRequest$ExpectedBucketOwner": "

The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

", - "GetObjectTaggingRequest$ExpectedBucketOwner": "

The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

", - "GetObjectTorrentRequest$ExpectedBucketOwner": "

The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

", - "GetPublicAccessBlockRequest$ExpectedBucketOwner": "

The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

", - "HeadBucketRequest$ExpectedBucketOwner": "

The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

", - "HeadObjectRequest$ExpectedBucketOwner": "

The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

", + "GetBucketAccelerateConfigurationRequest$ExpectedBucketOwner": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

", + "GetBucketAclRequest$ExpectedBucketOwner": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

", + "GetBucketAnalyticsConfigurationRequest$ExpectedBucketOwner": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

", + "GetBucketCorsRequest$ExpectedBucketOwner": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

", + "GetBucketEncryptionRequest$ExpectedBucketOwner": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

", + "GetBucketInventoryConfigurationRequest$ExpectedBucketOwner": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

", + "GetBucketLifecycleConfigurationRequest$ExpectedBucketOwner": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

", + "GetBucketLifecycleRequest$ExpectedBucketOwner": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

", + "GetBucketLocationRequest$ExpectedBucketOwner": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

", + "GetBucketLoggingRequest$ExpectedBucketOwner": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

", + "GetBucketMetricsConfigurationRequest$ExpectedBucketOwner": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

", + "GetBucketNotificationConfigurationRequest$ExpectedBucketOwner": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

", + "GetBucketOwnershipControlsRequest$ExpectedBucketOwner": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

", + "GetBucketPolicyRequest$ExpectedBucketOwner": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

For directory buckets, this header is not supported in this API operation. If you specify this header, the request fails with the HTTP status code 501 Not Implemented.

", + "GetBucketPolicyStatusRequest$ExpectedBucketOwner": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

", + "GetBucketReplicationRequest$ExpectedBucketOwner": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

", + "GetBucketRequestPaymentRequest$ExpectedBucketOwner": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

", + "GetBucketTaggingRequest$ExpectedBucketOwner": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

", + "GetBucketVersioningRequest$ExpectedBucketOwner": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

", + "GetBucketWebsiteRequest$ExpectedBucketOwner": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

", + "GetObjectAclRequest$ExpectedBucketOwner": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

", + "GetObjectAttributesRequest$ExpectedBucketOwner": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

", + "GetObjectLegalHoldRequest$ExpectedBucketOwner": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

", + "GetObjectLockConfigurationRequest$ExpectedBucketOwner": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

", + "GetObjectRequest$ExpectedBucketOwner": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

", + "GetObjectRetentionRequest$ExpectedBucketOwner": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

", + "GetObjectTaggingRequest$ExpectedBucketOwner": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

", + "GetObjectTorrentRequest$ExpectedBucketOwner": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

", + "GetPublicAccessBlockRequest$ExpectedBucketOwner": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

", + "HeadBucketRequest$ExpectedBucketOwner": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

", + "HeadObjectRequest$ExpectedBucketOwner": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

", "InventoryS3BucketDestination$AccountId": "

The account ID that owns the destination S3 bucket. If no account ID is provided, the owner is not validated before exporting data.

Although this value is optional, we strongly recommend that you set it to help prevent problems if the destination bucket ownership changes.

", - "ListBucketAnalyticsConfigurationsRequest$ExpectedBucketOwner": "

The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

", - "ListBucketInventoryConfigurationsRequest$ExpectedBucketOwner": "

The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

", - "ListBucketMetricsConfigurationsRequest$ExpectedBucketOwner": "

The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

", - "ListMultipartUploadsRequest$ExpectedBucketOwner": "

The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

", - "ListObjectVersionsRequest$ExpectedBucketOwner": "

The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

", - "ListObjectsRequest$ExpectedBucketOwner": "

The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

", - "ListObjectsV2Request$ExpectedBucketOwner": "

The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

", - "ListPartsRequest$ExpectedBucketOwner": "

The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

", - "PutBucketAccelerateConfigurationRequest$ExpectedBucketOwner": "

The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

", - "PutBucketAclRequest$ExpectedBucketOwner": "

The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

", - "PutBucketAnalyticsConfigurationRequest$ExpectedBucketOwner": "

The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

", - "PutBucketCorsRequest$ExpectedBucketOwner": "

The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

", - "PutBucketEncryptionRequest$ExpectedBucketOwner": "

The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

", - "PutBucketInventoryConfigurationRequest$ExpectedBucketOwner": "

The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

", - "PutBucketLifecycleConfigurationRequest$ExpectedBucketOwner": "

The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

", - "PutBucketLifecycleRequest$ExpectedBucketOwner": "

The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

", - "PutBucketLoggingRequest$ExpectedBucketOwner": "

The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

", - "PutBucketMetricsConfigurationRequest$ExpectedBucketOwner": "

The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

", - "PutBucketNotificationConfigurationRequest$ExpectedBucketOwner": "

The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

", - "PutBucketNotificationRequest$ExpectedBucketOwner": "

The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

", - "PutBucketOwnershipControlsRequest$ExpectedBucketOwner": "

The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

", - "PutBucketPolicyRequest$ExpectedBucketOwner": "

The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

", - "PutBucketReplicationRequest$ExpectedBucketOwner": "

The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

", - "PutBucketRequestPaymentRequest$ExpectedBucketOwner": "

The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

", - "PutBucketTaggingRequest$ExpectedBucketOwner": "

The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

", - "PutBucketVersioningRequest$ExpectedBucketOwner": "

The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

", - "PutBucketWebsiteRequest$ExpectedBucketOwner": "

The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

", - "PutObjectAclRequest$ExpectedBucketOwner": "

The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

", - "PutObjectLegalHoldRequest$ExpectedBucketOwner": "

The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

", - "PutObjectLockConfigurationRequest$ExpectedBucketOwner": "

The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

", - "PutObjectRequest$ExpectedBucketOwner": "

The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

", - "PutObjectRetentionRequest$ExpectedBucketOwner": "

The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

", - "PutObjectTaggingRequest$ExpectedBucketOwner": "

The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

", - "PutPublicAccessBlockRequest$ExpectedBucketOwner": "

The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

", - "RestoreObjectRequest$ExpectedBucketOwner": "

The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

", - "SelectObjectContentRequest$ExpectedBucketOwner": "

The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

", - "UploadPartCopyRequest$ExpectedBucketOwner": "

The account ID of the expected destination bucket owner. If the destination bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

", - "UploadPartCopyRequest$ExpectedSourceBucketOwner": "

The account ID of the expected source bucket owner. If the source bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

", - "UploadPartRequest$ExpectedBucketOwner": "

The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden (access denied).

" + "ListBucketAnalyticsConfigurationsRequest$ExpectedBucketOwner": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

", + "ListBucketInventoryConfigurationsRequest$ExpectedBucketOwner": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

", + "ListBucketMetricsConfigurationsRequest$ExpectedBucketOwner": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

", + "ListMultipartUploadsRequest$ExpectedBucketOwner": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

", + "ListObjectVersionsRequest$ExpectedBucketOwner": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

", + "ListObjectsRequest$ExpectedBucketOwner": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

", + "ListObjectsV2Request$ExpectedBucketOwner": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

", + "ListPartsRequest$ExpectedBucketOwner": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

", + "PutBucketAccelerateConfigurationRequest$ExpectedBucketOwner": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

", + "PutBucketAclRequest$ExpectedBucketOwner": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

", + "PutBucketAnalyticsConfigurationRequest$ExpectedBucketOwner": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

", + "PutBucketCorsRequest$ExpectedBucketOwner": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

", + "PutBucketEncryptionRequest$ExpectedBucketOwner": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

", + "PutBucketInventoryConfigurationRequest$ExpectedBucketOwner": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

", + "PutBucketLifecycleConfigurationRequest$ExpectedBucketOwner": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

", + "PutBucketLifecycleRequest$ExpectedBucketOwner": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

", + "PutBucketLoggingRequest$ExpectedBucketOwner": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

", + "PutBucketMetricsConfigurationRequest$ExpectedBucketOwner": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

", + "PutBucketNotificationConfigurationRequest$ExpectedBucketOwner": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

", + "PutBucketNotificationRequest$ExpectedBucketOwner": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

", + "PutBucketOwnershipControlsRequest$ExpectedBucketOwner": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

", + "PutBucketPolicyRequest$ExpectedBucketOwner": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

For directory buckets, this header is not supported in this API operation. If you specify this header, the request fails with the HTTP status code 501 Not Implemented.

", + "PutBucketReplicationRequest$ExpectedBucketOwner": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

", + "PutBucketRequestPaymentRequest$ExpectedBucketOwner": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

", + "PutBucketTaggingRequest$ExpectedBucketOwner": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

", + "PutBucketVersioningRequest$ExpectedBucketOwner": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

", + "PutBucketWebsiteRequest$ExpectedBucketOwner": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

", + "PutObjectAclRequest$ExpectedBucketOwner": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

", + "PutObjectLegalHoldRequest$ExpectedBucketOwner": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

", + "PutObjectLockConfigurationRequest$ExpectedBucketOwner": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

", + "PutObjectRequest$ExpectedBucketOwner": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

", + "PutObjectRetentionRequest$ExpectedBucketOwner": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

", + "PutObjectTaggingRequest$ExpectedBucketOwner": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

", + "PutPublicAccessBlockRequest$ExpectedBucketOwner": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

", + "RestoreObjectRequest$ExpectedBucketOwner": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

", + "SelectObjectContentRequest$ExpectedBucketOwner": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

", + "UploadPartCopyRequest$ExpectedBucketOwner": "

The account ID of the expected destination bucket owner. If the account ID that you provide does not match the actual owner of the destination bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

", + "UploadPartCopyRequest$ExpectedSourceBucketOwner": "

The account ID of the expected source bucket owner. If the account ID that you provide does not match the actual owner of the source bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

", + "UploadPartRequest$ExpectedBucketOwner": "

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

" } }, "AllowQuotedRecordDelimiter": { @@ -363,7 +377,7 @@ "ArchiveStatus": { "base": null, "refs": { - "HeadObjectOutput$ArchiveStatus": "

The archive state of the head object.

" + "HeadObjectOutput$ArchiveStatus": "

The archive state of the head object.

This functionality is not supported for directory buckets.

" } }, "Body": { @@ -378,7 +392,7 @@ } }, "Bucket": { - "base": "

In terms of implementation, a Bucket is a resource. An Amazon S3 bucket name is globally unique, and the namespace is shared by all Amazon Web Services accounts.

", + "base": "

In terms of implementation, a Bucket is a resource.

", "refs": { "Buckets$member": null } @@ -403,25 +417,31 @@ "BucketCannedACL": { "base": null, "refs": { - "CreateBucketRequest$ACL": "

The canned ACL to apply to the bucket.

", + "CreateBucketRequest$ACL": "

The canned ACL to apply to the bucket.

This functionality is not supported for directory buckets.

", "PutBucketAclRequest$ACL": "

The canned ACL to apply to the bucket.

" } }, + "BucketInfo": { + "base": "

Specifies the information about the bucket that will be created. For more information about directory buckets, see Directory buckets in the Amazon S3 User Guide.

This functionality is only supported by directory buckets.

", + "refs": { + "CreateBucketConfiguration$Bucket": "

Specifies the information about the bucket that will be created.

This functionality is only supported by directory buckets.

" + } + }, "BucketKeyEnabled": { "base": null, "refs": { - "CompleteMultipartUploadOutput$BucketKeyEnabled": "

Indicates whether the multipart upload uses an S3 Bucket Key for server-side encryption with Key Management Service (KMS) keys (SSE-KMS).

", - "CopyObjectOutput$BucketKeyEnabled": "

Indicates whether the copied object uses an S3 Bucket Key for server-side encryption with Key Management Service (KMS) keys (SSE-KMS).

", - "CopyObjectRequest$BucketKeyEnabled": "

Specifies whether Amazon S3 should use an S3 Bucket Key for object encryption with server-side encryption using Key Management Service (KMS) keys (SSE-KMS). Setting this header to true causes Amazon S3 to use an S3 Bucket Key for object encryption with SSE-KMS.

Specifying this header with a COPY action doesn’t affect bucket-level settings for S3 Bucket Key.

", - "CreateMultipartUploadOutput$BucketKeyEnabled": "

Indicates whether the multipart upload uses an S3 Bucket Key for server-side encryption with Key Management Service (KMS) keys (SSE-KMS).

", - "CreateMultipartUploadRequest$BucketKeyEnabled": "

Specifies whether Amazon S3 should use an S3 Bucket Key for object encryption with server-side encryption using Key Management Service (KMS) keys (SSE-KMS). Setting this header to true causes Amazon S3 to use an S3 Bucket Key for object encryption with SSE-KMS.

Specifying this header with an object action doesn’t affect bucket-level settings for S3 Bucket Key.

", - "GetObjectOutput$BucketKeyEnabled": "

Indicates whether the object uses an S3 Bucket Key for server-side encryption with Key Management Service (KMS) keys (SSE-KMS).

", - "HeadObjectOutput$BucketKeyEnabled": "

Indicates whether the object uses an S3 Bucket Key for server-side encryption with Key Management Service (KMS) keys (SSE-KMS).

", - "PutObjectOutput$BucketKeyEnabled": "

Indicates whether the uploaded object uses an S3 Bucket Key for server-side encryption with Key Management Service (KMS) keys (SSE-KMS).

", - "PutObjectRequest$BucketKeyEnabled": "

Specifies whether Amazon S3 should use an S3 Bucket Key for object encryption with server-side encryption using Key Management Service (KMS) keys (SSE-KMS). Setting this header to true causes Amazon S3 to use an S3 Bucket Key for object encryption with SSE-KMS.

Specifying this header with a PUT action doesn’t affect bucket-level settings for S3 Bucket Key.

", + "CompleteMultipartUploadOutput$BucketKeyEnabled": "

Indicates whether the multipart upload uses an S3 Bucket Key for server-side encryption with Key Management Service (KMS) keys (SSE-KMS).

This functionality is not supported for directory buckets.

", + "CopyObjectOutput$BucketKeyEnabled": "

Indicates whether the copied object uses an S3 Bucket Key for server-side encryption with Key Management Service (KMS) keys (SSE-KMS).

This functionality is not supported for directory buckets.

", + "CopyObjectRequest$BucketKeyEnabled": "

Specifies whether Amazon S3 should use an S3 Bucket Key for object encryption with server-side encryption using Key Management Service (KMS) keys (SSE-KMS). If a target object uses SSE-KMS, you can enable an S3 Bucket Key for the object.

Setting this header to true causes Amazon S3 to use an S3 Bucket Key for object encryption with SSE-KMS. Specifying this header with a COPY action doesn’t affect bucket-level settings for S3 Bucket Key.

For more information, see Amazon S3 Bucket Keys in the Amazon S3 User Guide.

This functionality is not supported when the destination bucket is a directory bucket.

", + "CreateMultipartUploadOutput$BucketKeyEnabled": "

Indicates whether the multipart upload uses an S3 Bucket Key for server-side encryption with Key Management Service (KMS) keys (SSE-KMS).

This functionality is not supported for directory buckets.

", + "CreateMultipartUploadRequest$BucketKeyEnabled": "

Specifies whether Amazon S3 should use an S3 Bucket Key for object encryption with server-side encryption using Key Management Service (KMS) keys (SSE-KMS). Setting this header to true causes Amazon S3 to use an S3 Bucket Key for object encryption with SSE-KMS.

Specifying this header with an object action doesn’t affect bucket-level settings for S3 Bucket Key.

This functionality is not supported for directory buckets.

", + "GetObjectOutput$BucketKeyEnabled": "

Indicates whether the object uses an S3 Bucket Key for server-side encryption with Key Management Service (KMS) keys (SSE-KMS).

This functionality is not supported for directory buckets.

", + "HeadObjectOutput$BucketKeyEnabled": "

Indicates whether the object uses an S3 Bucket Key for server-side encryption with Key Management Service (KMS) keys (SSE-KMS).

This functionality is not supported for directory buckets.

", + "PutObjectOutput$BucketKeyEnabled": "

Indicates whether the uploaded object uses an S3 Bucket Key for server-side encryption with Key Management Service (KMS) keys (SSE-KMS).

This functionality is not supported for directory buckets.

", + "PutObjectRequest$BucketKeyEnabled": "

Specifies whether Amazon S3 should use an S3 Bucket Key for object encryption with server-side encryption using Key Management Service (KMS) keys (SSE-KMS). Setting this header to true causes Amazon S3 to use an S3 Bucket Key for object encryption with SSE-KMS.

Specifying this header with a PUT action doesn’t affect bucket-level settings for S3 Bucket Key.

This functionality is not supported for directory buckets.

", "ServerSideEncryptionRule$BucketKeyEnabled": "

Specifies whether Amazon S3 should use an S3 Bucket Key with server-side encryption using KMS (SSE-KMS) for new objects in the bucket. Existing objects are not affected. Setting the BucketKeyEnabled element to true causes Amazon S3 to use an S3 Bucket Key. By default, S3 Bucket Key is not enabled.

For more information, see Amazon S3 Bucket Keys in the Amazon S3 User Guide.

", - "UploadPartCopyOutput$BucketKeyEnabled": "

Indicates whether the multipart upload uses an S3 Bucket Key for server-side encryption with Key Management Service (KMS) keys (SSE-KMS).

", - "UploadPartOutput$BucketKeyEnabled": "

Indicates whether the multipart upload uses an S3 Bucket Key for server-side encryption with Key Management Service (KMS) keys (SSE-KMS).

", + "UploadPartCopyOutput$BucketKeyEnabled": "

Indicates whether the multipart upload uses an S3 Bucket Key for server-side encryption with Key Management Service (KMS) keys (SSE-KMS).

This functionality is not supported for directory buckets.

", + "UploadPartOutput$BucketKeyEnabled": "

Indicates whether the multipart upload uses an S3 Bucket Key for server-side encryption with Key Management Service (KMS) keys (SSE-KMS).

This functionality is not supported for directory buckets.

", "WriteGetObjectResponseRequest$BucketKeyEnabled": "

Indicates whether the object stored in Amazon S3 uses an S3 bucket key for server-side encryption with Amazon Web Services KMS (SSE-KMS).

" } }, @@ -434,10 +454,16 @@ "BucketLocationConstraint": { "base": null, "refs": { - "CreateBucketConfiguration$LocationConstraint": "

Specifies the Region where the bucket will be created. If you don't specify a Region, the bucket is created in the US East (N. Virginia) Region (us-east-1).

", + "CreateBucketConfiguration$LocationConstraint": "

Specifies the Region where the bucket will be created. You might choose a Region to optimize latency, minimize costs, or address regulatory requirements. For example, if you reside in Europe, you will probably find it advantageous to create buckets in the Europe (Ireland) Region. For more information, see Accessing a bucket in the Amazon S3 User Guide.

If you don't specify a Region, the bucket is created in the US East (N. Virginia) Region (us-east-1) by default.

This functionality is not supported for directory buckets.

", "GetBucketLocationOutput$LocationConstraint": "

Specifies the Region where the bucket resides. For a list of all the Amazon S3 supported location constraints by Region, see Regions and Endpoints. Buckets in Region us-east-1 have a LocationConstraint of null.

" } }, + "BucketLocationName": { + "base": null, + "refs": { + "HeadBucketOutput$BucketLocationName": "

The name of the location where the bucket will be created.

For directory buckets, the AZ ID of the Availability Zone where the bucket is created. An example AZ ID value is usw2-az2.

This functionality is only supported by directory buckets.

" + } + }, "BucketLoggingStatus": { "base": "

Container for logging status information.

", "refs": { @@ -453,15 +479,16 @@ "BucketName": { "base": null, "refs": { - "AbortMultipartUploadRequest$Bucket": "

The bucket name to which the upload was taking place.

When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see What is S3 on Outposts? in the Amazon S3 User Guide.

", + "AbortMultipartUploadRequest$Bucket": "

The bucket name to which the upload was taking place.

Directory buckets - When you use this operation with a directory bucket, you must use virtual-hosted-style requests in the format Bucket_name.s3express-az_id.region.amazonaws.com. Path-style requests are not supported. Directory bucket names must be unique in the chosen Availability Zone. Bucket names must follow the format bucket_base_name--az-id--x-s3 (for example, DOC-EXAMPLE-BUCKET--usw2-az2--x-s3). For information about bucket naming restrictions, see Directory bucket naming rules in the Amazon S3 User Guide.

Access points - When you use this action with an access point, you must provide the alias of the access point in place of the bucket name or specify the access point ARN. When using the access point ARN, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

Access points and Object Lambda access points are not supported by directory buckets.

S3 on Outposts - When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see What is S3 on Outposts? in the Amazon S3 User Guide.

", "AnalyticsS3BucketDestination$Bucket": "

The Amazon Resource Name (ARN) of the bucket to which data is exported.

", "Bucket$Name": "

The name of the bucket.

", - "CompleteMultipartUploadOutput$Bucket": "

The name of the bucket that contains the newly created object. Does not return the access point ARN or access point alias if used.

When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see What is S3 on Outposts? in the Amazon S3 User Guide.

", - "CompleteMultipartUploadRequest$Bucket": "

Name of the bucket to which the multipart upload was initiated.

When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see What is S3 on Outposts? in the Amazon S3 User Guide.

", - "CopyObjectRequest$Bucket": "

The name of the destination bucket.

When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see What is S3 on Outposts? in the Amazon S3 User Guide.

", - "CreateBucketRequest$Bucket": "

The name of the bucket to create.

", - "CreateMultipartUploadOutput$Bucket": "

The name of the bucket to which the multipart upload was initiated. Does not return the access point ARN or access point alias if used.

When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see What is S3 on Outposts? in the Amazon S3 User Guide.

", - "CreateMultipartUploadRequest$Bucket": "

The name of the bucket to which to initiate the upload

When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see What is S3 on Outposts? in the Amazon S3 User Guide.

", + "CompleteMultipartUploadOutput$Bucket": "

The name of the bucket that contains the newly created object. Does not return the access point ARN or access point alias if used.

Access points are not supported by directory buckets.

", + "CompleteMultipartUploadRequest$Bucket": "

Name of the bucket to which the multipart upload was initiated.

Directory buckets - When you use this operation with a directory bucket, you must use virtual-hosted-style requests in the format Bucket_name.s3express-az_id.region.amazonaws.com. Path-style requests are not supported. Directory bucket names must be unique in the chosen Availability Zone. Bucket names must follow the format bucket_base_name--az-id--x-s3 (for example, DOC-EXAMPLE-BUCKET--usw2-az2--x-s3). For information about bucket naming restrictions, see Directory bucket naming rules in the Amazon S3 User Guide.

Access points - When you use this action with an access point, you must provide the alias of the access point in place of the bucket name or specify the access point ARN. When using the access point ARN, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

Access points and Object Lambda access points are not supported by directory buckets.

S3 on Outposts - When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see What is S3 on Outposts? in the Amazon S3 User Guide.

", + "CopyObjectRequest$Bucket": "

The name of the destination bucket.

Directory buckets - When you use this operation with a directory bucket, you must use virtual-hosted-style requests in the format Bucket_name.s3express-az_id.region.amazonaws.com. Path-style requests are not supported. Directory bucket names must be unique in the chosen Availability Zone. Bucket names must follow the format bucket_base_name--az-id--x-s3 (for example, DOC-EXAMPLE-BUCKET--usw2-az2--x-s3). For information about bucket naming restrictions, see Directory bucket naming rules in the Amazon S3 User Guide.

Access points - When you use this action with an access point, you must provide the alias of the access point in place of the bucket name or specify the access point ARN. When using the access point ARN, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

Access points and Object Lambda access points are not supported by directory buckets.

S3 on Outposts - When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see What is S3 on Outposts? in the Amazon S3 User Guide.

", + "CreateBucketRequest$Bucket": "

The name of the bucket to create.

General purpose buckets - For information about bucket naming restrictions, see Bucket naming rules in the Amazon S3 User Guide.

Directory buckets - When you use this operation with a directory bucket, you must use path-style requests in the format https://s3express-control.region_code.amazonaws.com/bucket-name . Virtual-hosted-style requests aren't supported. Directory bucket names must be unique in the chosen Availability Zone. Bucket names must also follow the format bucket_base_name--az_id--x-s3 (for example, DOC-EXAMPLE-BUCKET--usw2-az2--x-s3). For information about bucket naming restrictions, see Directory bucket naming rules in the Amazon S3 User Guide

", + "CreateMultipartUploadOutput$Bucket": "

The name of the bucket to which the multipart upload was initiated. Does not return the access point ARN or access point alias if used.

Access points are not supported by directory buckets.

", + "CreateMultipartUploadRequest$Bucket": "

The name of the bucket where the multipart upload is initiated and where the object is uploaded.

Directory buckets - When you use this operation with a directory bucket, you must use virtual-hosted-style requests in the format Bucket_name.s3express-az_id.region.amazonaws.com. Path-style requests are not supported. Directory bucket names must be unique in the chosen Availability Zone. Bucket names must follow the format bucket_base_name--az-id--x-s3 (for example, DOC-EXAMPLE-BUCKET--usw2-az2--x-s3). For information about bucket naming restrictions, see Directory bucket naming rules in the Amazon S3 User Guide.

Access points - When you use this action with an access point, you must provide the alias of the access point in place of the bucket name or specify the access point ARN. When using the access point ARN, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

Access points and Object Lambda access points are not supported by directory buckets.

S3 on Outposts - When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see What is S3 on Outposts? in the Amazon S3 User Guide.

", + "CreateSessionRequest$Bucket": "

The name of the bucket that you create a session for.

", "DeleteBucketAnalyticsConfigurationRequest$Bucket": "

The name of the bucket from which an analytics configuration is deleted.

", "DeleteBucketCorsRequest$Bucket": "

Specifies the bucket whose cors configuration is being deleted.

", "DeleteBucketEncryptionRequest$Bucket": "

The name of the bucket containing the server-side encryption configuration to delete.

", @@ -470,63 +497,63 @@ "DeleteBucketLifecycleRequest$Bucket": "

The bucket name of the lifecycle to delete.

", "DeleteBucketMetricsConfigurationRequest$Bucket": "

The name of the bucket containing the metrics configuration to delete.

", "DeleteBucketOwnershipControlsRequest$Bucket": "

The Amazon S3 bucket whose OwnershipControls you want to delete.

", - "DeleteBucketPolicyRequest$Bucket": "

The bucket name.

", + "DeleteBucketPolicyRequest$Bucket": "

The bucket name.

Directory buckets - When you use this operation with a directory bucket, you must use path-style requests in the format https://s3express-control.region_code.amazonaws.com/bucket-name . Virtual-hosted-style requests aren't supported. Directory bucket names must be unique in the chosen Availability Zone. Bucket names must also follow the format bucket_base_name--az_id--x-s3 (for example, DOC-EXAMPLE-BUCKET--usw2-az2--x-s3). For information about bucket naming restrictions, see Directory bucket naming rules in the Amazon S3 User Guide

", "DeleteBucketReplicationRequest$Bucket": "

The bucket name.

", - "DeleteBucketRequest$Bucket": "

Specifies the bucket being deleted.

", + "DeleteBucketRequest$Bucket": "

Specifies the bucket being deleted.

Directory buckets - When you use this operation with a directory bucket, you must use path-style requests in the format https://s3express-control.region_code.amazonaws.com/bucket-name . Virtual-hosted-style requests aren't supported. Directory bucket names must be unique in the chosen Availability Zone. Bucket names must also follow the format bucket_base_name--az_id--x-s3 (for example, DOC-EXAMPLE-BUCKET--usw2-az2--x-s3). For information about bucket naming restrictions, see Directory bucket naming rules in the Amazon S3 User Guide

", "DeleteBucketTaggingRequest$Bucket": "

The bucket that has the tag set to be removed.

", "DeleteBucketWebsiteRequest$Bucket": "

The bucket name for which you want to remove the website configuration.

", - "DeleteObjectRequest$Bucket": "

The bucket name of the bucket containing the object.

When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see What is S3 on Outposts? in the Amazon S3 User Guide.

", - "DeleteObjectTaggingRequest$Bucket": "

The bucket name containing the objects from which to remove the tags.

When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see What is S3 on Outposts? in the Amazon S3 User Guide.

", - "DeleteObjectsRequest$Bucket": "

The bucket name containing the objects to delete.

When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see What is S3 on Outposts? in the Amazon S3 User Guide.

", + "DeleteObjectRequest$Bucket": "

The bucket name of the bucket containing the object.

Directory buckets - When you use this operation with a directory bucket, you must use virtual-hosted-style requests in the format Bucket_name.s3express-az_id.region.amazonaws.com. Path-style requests are not supported. Directory bucket names must be unique in the chosen Availability Zone. Bucket names must follow the format bucket_base_name--az-id--x-s3 (for example, DOC-EXAMPLE-BUCKET--usw2-az2--x-s3). For information about bucket naming restrictions, see Directory bucket naming rules in the Amazon S3 User Guide.

Access points - When you use this action with an access point, you must provide the alias of the access point in place of the bucket name or specify the access point ARN. When using the access point ARN, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

Access points and Object Lambda access points are not supported by directory buckets.

S3 on Outposts - When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see What is S3 on Outposts? in the Amazon S3 User Guide.

", + "DeleteObjectTaggingRequest$Bucket": "

The bucket name containing the objects from which to remove the tags.

Access points - When you use this action with an access point, you must provide the alias of the access point in place of the bucket name or specify the access point ARN. When using the access point ARN, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

S3 on Outposts - When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see What is S3 on Outposts? in the Amazon S3 User Guide.

", + "DeleteObjectsRequest$Bucket": "

The bucket name containing the objects to delete.

Directory buckets - When you use this operation with a directory bucket, you must use virtual-hosted-style requests in the format Bucket_name.s3express-az_id.region.amazonaws.com. Path-style requests are not supported. Directory bucket names must be unique in the chosen Availability Zone. Bucket names must follow the format bucket_base_name--az-id--x-s3 (for example, DOC-EXAMPLE-BUCKET--usw2-az2--x-s3). For information about bucket naming restrictions, see Directory bucket naming rules in the Amazon S3 User Guide.

Access points - When you use this action with an access point, you must provide the alias of the access point in place of the bucket name or specify the access point ARN. When using the access point ARN, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

Access points and Object Lambda access points are not supported by directory buckets.

S3 on Outposts - When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see What is S3 on Outposts? in the Amazon S3 User Guide.

", "DeletePublicAccessBlockRequest$Bucket": "

The Amazon S3 bucket whose PublicAccessBlock configuration you want to delete.

", "Destination$Bucket": "

The Amazon Resource Name (ARN) of the bucket where you want Amazon S3 to store the results.

", "GetBucketAccelerateConfigurationRequest$Bucket": "

The name of the bucket for which the accelerate configuration is retrieved.

", - "GetBucketAclRequest$Bucket": "

Specifies the S3 bucket whose ACL is being requested.

To use this API operation against an access point, provide the alias of the access point in place of the bucket name.

To use this API operation against an Object Lambda access point, provide the alias of the Object Lambda access point in place of the bucket name. If the Object Lambda access point alias in a request is not valid, the error code InvalidAccessPointAliasError is returned. For more information about InvalidAccessPointAliasError, see List of Error Codes.

", + "GetBucketAclRequest$Bucket": "

Specifies the S3 bucket whose ACL is being requested.

When you use this API operation with an access point, provide the alias of the access point in place of the bucket name.

When you use this API operation with an Object Lambda access point, provide the alias of the Object Lambda access point in place of the bucket name. If the Object Lambda access point alias in a request is not valid, the error code InvalidAccessPointAliasError is returned. For more information about InvalidAccessPointAliasError, see List of Error Codes.

", "GetBucketAnalyticsConfigurationRequest$Bucket": "

The name of the bucket from which an analytics configuration is retrieved.

", - "GetBucketCorsRequest$Bucket": "

The bucket name for which to get the cors configuration.

To use this API operation against an access point, provide the alias of the access point in place of the bucket name.

To use this API operation against an Object Lambda access point, provide the alias of the Object Lambda access point in place of the bucket name. If the Object Lambda access point alias in a request is not valid, the error code InvalidAccessPointAliasError is returned. For more information about InvalidAccessPointAliasError, see List of Error Codes.

", + "GetBucketCorsRequest$Bucket": "

The bucket name for which to get the cors configuration.

When you use this API operation with an access point, provide the alias of the access point in place of the bucket name.

When you use this API operation with an Object Lambda access point, provide the alias of the Object Lambda access point in place of the bucket name. If the Object Lambda access point alias in a request is not valid, the error code InvalidAccessPointAliasError is returned. For more information about InvalidAccessPointAliasError, see List of Error Codes.

", "GetBucketEncryptionRequest$Bucket": "

The name of the bucket from which the server-side encryption configuration is retrieved.

", "GetBucketIntelligentTieringConfigurationRequest$Bucket": "

The name of the Amazon S3 bucket whose configuration you want to modify or retrieve.

", "GetBucketInventoryConfigurationRequest$Bucket": "

The name of the bucket containing the inventory configuration to retrieve.

", "GetBucketLifecycleConfigurationRequest$Bucket": "

The name of the bucket for which to get the lifecycle information.

", "GetBucketLifecycleRequest$Bucket": "

The name of the bucket for which to get the lifecycle information.

", - "GetBucketLocationRequest$Bucket": "

The name of the bucket for which to get the location.

To use this API operation against an access point, provide the alias of the access point in place of the bucket name.

To use this API operation against an Object Lambda access point, provide the alias of the Object Lambda access point in place of the bucket name. If the Object Lambda access point alias in a request is not valid, the error code InvalidAccessPointAliasError is returned. For more information about InvalidAccessPointAliasError, see List of Error Codes.

", + "GetBucketLocationRequest$Bucket": "

The name of the bucket for which to get the location.

When you use this API operation with an access point, provide the alias of the access point in place of the bucket name.

When you use this API operation with an Object Lambda access point, provide the alias of the Object Lambda access point in place of the bucket name. If the Object Lambda access point alias in a request is not valid, the error code InvalidAccessPointAliasError is returned. For more information about InvalidAccessPointAliasError, see List of Error Codes.

", "GetBucketLoggingRequest$Bucket": "

The bucket name for which to get the logging information.

", "GetBucketMetricsConfigurationRequest$Bucket": "

The name of the bucket containing the metrics configuration to retrieve.

", - "GetBucketNotificationConfigurationRequest$Bucket": "

The name of the bucket for which to get the notification configuration.

To use this API operation against an access point, provide the alias of the access point in place of the bucket name.

To use this API operation against an Object Lambda access point, provide the alias of the Object Lambda access point in place of the bucket name. If the Object Lambda access point alias in a request is not valid, the error code InvalidAccessPointAliasError is returned. For more information about InvalidAccessPointAliasError, see List of Error Codes.

", + "GetBucketNotificationConfigurationRequest$Bucket": "

The name of the bucket for which to get the notification configuration.

When you use this API operation with an access point, provide the alias of the access point in place of the bucket name.

When you use this API operation with an Object Lambda access point, provide the alias of the Object Lambda access point in place of the bucket name. If the Object Lambda access point alias in a request is not valid, the error code InvalidAccessPointAliasError is returned. For more information about InvalidAccessPointAliasError, see List of Error Codes.

", "GetBucketOwnershipControlsRequest$Bucket": "

The name of the Amazon S3 bucket whose OwnershipControls you want to retrieve.

", - "GetBucketPolicyRequest$Bucket": "

The bucket name for which to get the bucket policy.

To use this API operation against an access point, provide the alias of the access point in place of the bucket name.

To use this API operation against an Object Lambda access point, provide the alias of the Object Lambda access point in place of the bucket name. If the Object Lambda access point alias in a request is not valid, the error code InvalidAccessPointAliasError is returned. For more information about InvalidAccessPointAliasError, see List of Error Codes.

", + "GetBucketPolicyRequest$Bucket": "

The bucket name to get the bucket policy for.

Directory buckets - When you use this operation with a directory bucket, you must use path-style requests in the format https://s3express-control.region_code.amazonaws.com/bucket-name . Virtual-hosted-style requests aren't supported. Directory bucket names must be unique in the chosen Availability Zone. Bucket names must also follow the format bucket_base_name--az_id--x-s3 (for example, DOC-EXAMPLE-BUCKET--usw2-az2--x-s3). For information about bucket naming restrictions, see Directory bucket naming rules in the Amazon S3 User Guide

Access points - When you use this API operation with an access point, provide the alias of the access point in place of the bucket name.

Object Lambda access points - When you use this API operation with an Object Lambda access point, provide the alias of the Object Lambda access point in place of the bucket name. If the Object Lambda access point alias in a request is not valid, the error code InvalidAccessPointAliasError is returned. For more information about InvalidAccessPointAliasError, see List of Error Codes.

Access points and Object Lambda access points are not supported by directory buckets.

", "GetBucketPolicyStatusRequest$Bucket": "

The name of the Amazon S3 bucket whose policy status you want to retrieve.

", "GetBucketReplicationRequest$Bucket": "

The bucket name for which to get the replication information.

", "GetBucketRequestPaymentRequest$Bucket": "

The name of the bucket for which to get the payment request configuration

", "GetBucketTaggingRequest$Bucket": "

The name of the bucket for which to get the tagging information.

", "GetBucketVersioningRequest$Bucket": "

The name of the bucket for which to get the versioning information.

", "GetBucketWebsiteRequest$Bucket": "

The bucket name for which to get the website configuration.

", - "GetObjectAclRequest$Bucket": "

The bucket name that contains the object for which to get the ACL information.

When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

", - "GetObjectAttributesRequest$Bucket": "

The name of the bucket that contains the object.

When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see What is S3 on Outposts? in the Amazon S3 User Guide.

", - "GetObjectLegalHoldRequest$Bucket": "

The bucket name containing the object whose legal hold status you want to retrieve.

When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

", - "GetObjectLockConfigurationRequest$Bucket": "

The bucket whose Object Lock configuration you want to retrieve.

When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

", - "GetObjectRequest$Bucket": "

The bucket name containing the object.

When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

When using an Object Lambda access point the hostname takes the form AccessPointName-AccountId.s3-object-lambda.Region.amazonaws.com.

When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see What is S3 on Outposts? in the Amazon S3 User Guide.

", - "GetObjectRetentionRequest$Bucket": "

The bucket name containing the object whose retention settings you want to retrieve.

When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

", - "GetObjectTaggingRequest$Bucket": "

The bucket name containing the object for which to get the tagging information.

When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see What is S3 on Outposts? in the Amazon S3 User Guide.

", + "GetObjectAclRequest$Bucket": "

The bucket name that contains the object for which to get the ACL information.

Access points - When you use this action with an access point, you must provide the alias of the access point in place of the bucket name or specify the access point ARN. When using the access point ARN, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

", + "GetObjectAttributesRequest$Bucket": "

The name of the bucket that contains the object.

Directory buckets - When you use this operation with a directory bucket, you must use virtual-hosted-style requests in the format Bucket_name.s3express-az_id.region.amazonaws.com. Path-style requests are not supported. Directory bucket names must be unique in the chosen Availability Zone. Bucket names must follow the format bucket_base_name--az-id--x-s3 (for example, DOC-EXAMPLE-BUCKET--usw2-az2--x-s3). For information about bucket naming restrictions, see Directory bucket naming rules in the Amazon S3 User Guide.

Access points - When you use this action with an access point, you must provide the alias of the access point in place of the bucket name or specify the access point ARN. When using the access point ARN, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

Access points and Object Lambda access points are not supported by directory buckets.

S3 on Outposts - When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see What is S3 on Outposts? in the Amazon S3 User Guide.

", + "GetObjectLegalHoldRequest$Bucket": "

The bucket name containing the object whose legal hold status you want to retrieve.

Access points - When you use this action with an access point, you must provide the alias of the access point in place of the bucket name or specify the access point ARN. When using the access point ARN, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

", + "GetObjectLockConfigurationRequest$Bucket": "

The bucket whose Object Lock configuration you want to retrieve.

Access points - When you use this action with an access point, you must provide the alias of the access point in place of the bucket name or specify the access point ARN. When using the access point ARN, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

", + "GetObjectRequest$Bucket": "

The bucket name containing the object.

Directory buckets - When you use this operation with a directory bucket, you must use virtual-hosted-style requests in the format Bucket_name.s3express-az_id.region.amazonaws.com. Path-style requests are not supported. Directory bucket names must be unique in the chosen Availability Zone. Bucket names must follow the format bucket_base_name--az-id--x-s3 (for example, DOC-EXAMPLE-BUCKET--usw2-az2--x-s3). For information about bucket naming restrictions, see Directory bucket naming rules in the Amazon S3 User Guide.

Access points - When you use this action with an access point, you must provide the alias of the access point in place of the bucket name or specify the access point ARN. When using the access point ARN, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

Object Lambda access points - When you use this action with an Object Lambda access point, you must direct requests to the Object Lambda access point hostname. The Object Lambda access point hostname takes the form AccessPointName-AccountId.s3-object-lambda.Region.amazonaws.com.

Access points and Object Lambda access points are not supported by directory buckets.

S3 on Outposts - When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see What is S3 on Outposts? in the Amazon S3 User Guide.

", + "GetObjectRetentionRequest$Bucket": "

The bucket name containing the object whose retention settings you want to retrieve.

Access points - When you use this action with an access point, you must provide the alias of the access point in place of the bucket name or specify the access point ARN. When using the access point ARN, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

", + "GetObjectTaggingRequest$Bucket": "

The bucket name containing the object for which to get the tagging information.

Access points - When you use this action with an access point, you must provide the alias of the access point in place of the bucket name or specify the access point ARN. When using the access point ARN, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

S3 on Outposts - When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see What is S3 on Outposts? in the Amazon S3 User Guide.

", "GetObjectTorrentRequest$Bucket": "

The name of the bucket containing the object for which to get the torrent files.

", "GetPublicAccessBlockRequest$Bucket": "

The name of the Amazon S3 bucket whose PublicAccessBlock configuration you want to retrieve.

", - "HeadBucketRequest$Bucket": "

The bucket name.

When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

When you use this action with an Object Lambda access point, provide the alias of the Object Lambda access point in place of the bucket name. If the Object Lambda access point alias in a request is not valid, the error code InvalidAccessPointAliasError is returned. For more information about InvalidAccessPointAliasError, see List of Error Codes.

When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see What is S3 on Outposts? in the Amazon S3 User Guide.

", - "HeadObjectRequest$Bucket": "

The name of the bucket containing the object.

When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see What is S3 on Outposts? in the Amazon S3 User Guide.

", + "HeadBucketRequest$Bucket": "

The bucket name.

Directory buckets - When you use this operation with a directory bucket, you must use virtual-hosted-style requests in the format Bucket_name.s3express-az_id.region.amazonaws.com. Path-style requests are not supported. Directory bucket names must be unique in the chosen Availability Zone. Bucket names must follow the format bucket_base_name--az-id--x-s3 (for example, DOC-EXAMPLE-BUCKET--usw2-az2--x-s3). For information about bucket naming restrictions, see Directory bucket naming rules in the Amazon S3 User Guide.

Access points - When you use this action with an access point, you must provide the alias of the access point in place of the bucket name or specify the access point ARN. When using the access point ARN, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

Object Lambda access points - When you use this API operation with an Object Lambda access point, provide the alias of the Object Lambda access point in place of the bucket name. If the Object Lambda access point alias in a request is not valid, the error code InvalidAccessPointAliasError is returned. For more information about InvalidAccessPointAliasError, see List of Error Codes.

Access points and Object Lambda access points are not supported by directory buckets.

S3 on Outposts - When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see What is S3 on Outposts? in the Amazon S3 User Guide.

", + "HeadObjectRequest$Bucket": "

The name of the bucket that contains the object.

Directory buckets - When you use this operation with a directory bucket, you must use virtual-hosted-style requests in the format Bucket_name.s3express-az_id.region.amazonaws.com. Path-style requests are not supported. Directory bucket names must be unique in the chosen Availability Zone. Bucket names must follow the format bucket_base_name--az-id--x-s3 (for example, DOC-EXAMPLE-BUCKET--usw2-az2--x-s3). For information about bucket naming restrictions, see Directory bucket naming rules in the Amazon S3 User Guide.

Access points - When you use this action with an access point, you must provide the alias of the access point in place of the bucket name or specify the access point ARN. When using the access point ARN, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

Access points and Object Lambda access points are not supported by directory buckets.

S3 on Outposts - When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see What is S3 on Outposts? in the Amazon S3 User Guide.

", "InventoryS3BucketDestination$Bucket": "

The Amazon Resource Name (ARN) of the bucket where inventory results will be published.

", "ListBucketAnalyticsConfigurationsRequest$Bucket": "

The name of the bucket from which analytics configurations are retrieved.

", "ListBucketIntelligentTieringConfigurationsRequest$Bucket": "

The name of the Amazon S3 bucket whose configuration you want to modify or retrieve.

", "ListBucketInventoryConfigurationsRequest$Bucket": "

The name of the bucket containing the inventory configurations to retrieve.

", "ListBucketMetricsConfigurationsRequest$Bucket": "

The name of the bucket containing the metrics configurations to retrieve.

", "ListMultipartUploadsOutput$Bucket": "

The name of the bucket to which the multipart upload was initiated. Does not return the access point ARN or access point alias if used.

", - "ListMultipartUploadsRequest$Bucket": "

The name of the bucket to which the multipart upload was initiated.

When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see What is S3 on Outposts? in the Amazon S3 User Guide.

", + "ListMultipartUploadsRequest$Bucket": "

The name of the bucket to which the multipart upload was initiated.

Directory buckets - When you use this operation with a directory bucket, you must use virtual-hosted-style requests in the format Bucket_name.s3express-az_id.region.amazonaws.com. Path-style requests are not supported. Directory bucket names must be unique in the chosen Availability Zone. Bucket names must follow the format bucket_base_name--az-id--x-s3 (for example, DOC-EXAMPLE-BUCKET--usw2-az2--x-s3). For information about bucket naming restrictions, see Directory bucket naming rules in the Amazon S3 User Guide.

Access points - When you use this action with an access point, you must provide the alias of the access point in place of the bucket name or specify the access point ARN. When using the access point ARN, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

Access points and Object Lambda access points are not supported by directory buckets.

S3 on Outposts - When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see What is S3 on Outposts? in the Amazon S3 User Guide.

", "ListObjectVersionsOutput$Name": "

The bucket name.

", "ListObjectVersionsRequest$Bucket": "

The bucket name that contains the objects.

", "ListObjectsOutput$Name": "

The bucket name.

", - "ListObjectsRequest$Bucket": "

The name of the bucket containing the objects.

When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see What is S3 on Outposts? in the Amazon S3 User Guide.

", - "ListObjectsV2Output$Name": "

The bucket name.

When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see What is S3 on Outposts? in the Amazon S3 User Guide.

", - "ListObjectsV2Request$Bucket": "

Bucket name to list.

When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see What is S3 on Outposts? in the Amazon S3 User Guide.

", + "ListObjectsRequest$Bucket": "

The name of the bucket containing the objects.

Directory buckets - When you use this operation with a directory bucket, you must use virtual-hosted-style requests in the format Bucket_name.s3express-az_id.region.amazonaws.com. Path-style requests are not supported. Directory bucket names must be unique in the chosen Availability Zone. Bucket names must follow the format bucket_base_name--az-id--x-s3 (for example, DOC-EXAMPLE-BUCKET--usw2-az2--x-s3). For information about bucket naming restrictions, see Directory bucket naming rules in the Amazon S3 User Guide.

Access points - When you use this action with an access point, you must provide the alias of the access point in place of the bucket name or specify the access point ARN. When using the access point ARN, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

Access points and Object Lambda access points are not supported by directory buckets.

S3 on Outposts - When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see What is S3 on Outposts? in the Amazon S3 User Guide.

", + "ListObjectsV2Output$Name": "

The bucket name.

", + "ListObjectsV2Request$Bucket": "

Directory buckets - When you use this operation with a directory bucket, you must use virtual-hosted-style requests in the format Bucket_name.s3express-az_id.region.amazonaws.com. Path-style requests are not supported. Directory bucket names must be unique in the chosen Availability Zone. Bucket names must follow the format bucket_base_name--az-id--x-s3 (for example, DOC-EXAMPLE-BUCKET--usw2-az2--x-s3). For information about bucket naming restrictions, see Directory bucket naming rules in the Amazon S3 User Guide.

Access points - When you use this action with an access point, you must provide the alias of the access point in place of the bucket name or specify the access point ARN. When using the access point ARN, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

Access points and Object Lambda access points are not supported by directory buckets.

S3 on Outposts - When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see What is S3 on Outposts? in the Amazon S3 User Guide.

", "ListPartsOutput$Bucket": "

The name of the bucket to which the multipart upload was initiated. Does not return the access point ARN or access point alias if used.

", - "ListPartsRequest$Bucket": "

The name of the bucket to which the parts are being uploaded.

When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see What is S3 on Outposts? in the Amazon S3 User Guide.

", + "ListPartsRequest$Bucket": "

The name of the bucket to which the parts are being uploaded.

Directory buckets - When you use this operation with a directory bucket, you must use virtual-hosted-style requests in the format Bucket_name.s3express-az_id.region.amazonaws.com. Path-style requests are not supported. Directory bucket names must be unique in the chosen Availability Zone. Bucket names must follow the format bucket_base_name--az-id--x-s3 (for example, DOC-EXAMPLE-BUCKET--usw2-az2--x-s3). For information about bucket naming restrictions, see Directory bucket naming rules in the Amazon S3 User Guide.

Access points - When you use this action with an access point, you must provide the alias of the access point in place of the bucket name or specify the access point ARN. When using the access point ARN, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

Access points and Object Lambda access points are not supported by directory buckets.

S3 on Outposts - When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see What is S3 on Outposts? in the Amazon S3 User Guide.

", "PutBucketAccelerateConfigurationRequest$Bucket": "

The name of the bucket for which the accelerate configuration is set.

", "PutBucketAclRequest$Bucket": "

The bucket to which to apply the ACL.

", "PutBucketAnalyticsConfigurationRequest$Bucket": "

The name of the bucket to which an analytics configuration is stored.

", @@ -541,24 +568,30 @@ "PutBucketNotificationConfigurationRequest$Bucket": "

The name of the bucket.

", "PutBucketNotificationRequest$Bucket": "

The name of the bucket.

", "PutBucketOwnershipControlsRequest$Bucket": "

The name of the Amazon S3 bucket whose OwnershipControls you want to set.

", - "PutBucketPolicyRequest$Bucket": "

The name of the bucket.

", + "PutBucketPolicyRequest$Bucket": "

The name of the bucket.

Directory buckets - When you use this operation with a directory bucket, you must use path-style requests in the format https://s3express-control.region_code.amazonaws.com/bucket-name . Virtual-hosted-style requests aren't supported. Directory bucket names must be unique in the chosen Availability Zone. Bucket names must also follow the format bucket_base_name--az_id--x-s3 (for example, DOC-EXAMPLE-BUCKET--usw2-az2--x-s3). For information about bucket naming restrictions, see Directory bucket naming rules in the Amazon S3 User Guide

", "PutBucketReplicationRequest$Bucket": "

The name of the bucket

", "PutBucketRequestPaymentRequest$Bucket": "

The bucket name.

", "PutBucketTaggingRequest$Bucket": "

The bucket name.

", "PutBucketVersioningRequest$Bucket": "

The bucket name.

", "PutBucketWebsiteRequest$Bucket": "

The bucket name.

", - "PutObjectAclRequest$Bucket": "

The bucket name that contains the object to which you want to attach the ACL.

When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

", - "PutObjectLegalHoldRequest$Bucket": "

The bucket name containing the object that you want to place a legal hold on.

When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

", + "PutObjectAclRequest$Bucket": "

The bucket name that contains the object to which you want to attach the ACL.

Access points - When you use this action with an access point, you must provide the alias of the access point in place of the bucket name or specify the access point ARN. When using the access point ARN, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

S3 on Outposts - When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see What is S3 on Outposts? in the Amazon S3 User Guide.

", + "PutObjectLegalHoldRequest$Bucket": "

The bucket name containing the object that you want to place a legal hold on.

Access points - When you use this action with an access point, you must provide the alias of the access point in place of the bucket name or specify the access point ARN. When using the access point ARN, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

", "PutObjectLockConfigurationRequest$Bucket": "

The bucket whose Object Lock configuration you want to create or replace.

", - "PutObjectRequest$Bucket": "

The bucket name to which the PUT action was initiated.

When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see What is S3 on Outposts? in the Amazon S3 User Guide.

", - "PutObjectRetentionRequest$Bucket": "

The bucket name that contains the object you want to apply this Object Retention configuration to.

When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

", - "PutObjectTaggingRequest$Bucket": "

The bucket name containing the object.

When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see What is S3 on Outposts? in the Amazon S3 User Guide.

", + "PutObjectRequest$Bucket": "

The bucket name to which the PUT action was initiated.

Directory buckets - When you use this operation with a directory bucket, you must use virtual-hosted-style requests in the format Bucket_name.s3express-az_id.region.amazonaws.com. Path-style requests are not supported. Directory bucket names must be unique in the chosen Availability Zone. Bucket names must follow the format bucket_base_name--az-id--x-s3 (for example, DOC-EXAMPLE-BUCKET--usw2-az2--x-s3). For information about bucket naming restrictions, see Directory bucket naming rules in the Amazon S3 User Guide.

Access points - When you use this action with an access point, you must provide the alias of the access point in place of the bucket name or specify the access point ARN. When using the access point ARN, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

Access points and Object Lambda access points are not supported by directory buckets.

S3 on Outposts - When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see What is S3 on Outposts? in the Amazon S3 User Guide.

", + "PutObjectRetentionRequest$Bucket": "

The bucket name that contains the object you want to apply this Object Retention configuration to.

Access points - When you use this action with an access point, you must provide the alias of the access point in place of the bucket name or specify the access point ARN. When using the access point ARN, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

", + "PutObjectTaggingRequest$Bucket": "

The bucket name containing the object.

Access points - When you use this action with an access point, you must provide the alias of the access point in place of the bucket name or specify the access point ARN. When using the access point ARN, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

S3 on Outposts - When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see What is S3 on Outposts? in the Amazon S3 User Guide.

", "PutPublicAccessBlockRequest$Bucket": "

The name of the Amazon S3 bucket whose PublicAccessBlock configuration you want to set.

", - "RestoreObjectRequest$Bucket": "

The bucket name containing the object to restore.

When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see What is S3 on Outposts? in the Amazon S3 User Guide.

", + "RestoreObjectRequest$Bucket": "

The bucket name containing the object to restore.

Access points - When you use this action with an access point, you must provide the alias of the access point in place of the bucket name or specify the access point ARN. When using the access point ARN, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

S3 on Outposts - When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see What is S3 on Outposts? in the Amazon S3 User Guide.

", "S3Location$BucketName": "

The name of the bucket where the restore results will be placed.

", "SelectObjectContentRequest$Bucket": "

The S3 bucket.

", - "UploadPartCopyRequest$Bucket": "

The bucket name.

When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see What is S3 on Outposts? in the Amazon S3 User Guide.

", - "UploadPartRequest$Bucket": "

The name of the bucket to which the multipart upload was initiated.

When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see What is S3 on Outposts? in the Amazon S3 User Guide.

" + "UploadPartCopyRequest$Bucket": "

The bucket name.

Directory buckets - When you use this operation with a directory bucket, you must use virtual-hosted-style requests in the format Bucket_name.s3express-az_id.region.amazonaws.com. Path-style requests are not supported. Directory bucket names must be unique in the chosen Availability Zone. Bucket names must follow the format bucket_base_name--az-id--x-s3 (for example, DOC-EXAMPLE-BUCKET--usw2-az2--x-s3). For information about bucket naming restrictions, see Directory bucket naming rules in the Amazon S3 User Guide.

Access points - When you use this action with an access point, you must provide the alias of the access point in place of the bucket name or specify the access point ARN. When using the access point ARN, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

Access points and Object Lambda access points are not supported by directory buckets.

S3 on Outposts - When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see What is S3 on Outposts? in the Amazon S3 User Guide.

", + "UploadPartRequest$Bucket": "

The name of the bucket to which the multipart upload was initiated.

Directory buckets - When you use this operation with a directory bucket, you must use virtual-hosted-style requests in the format Bucket_name.s3express-az_id.region.amazonaws.com. Path-style requests are not supported. Directory bucket names must be unique in the chosen Availability Zone. Bucket names must follow the format bucket_base_name--az-id--x-s3 (for example, DOC-EXAMPLE-BUCKET--usw2-az2--x-s3). For information about bucket naming restrictions, see Directory bucket naming rules in the Amazon S3 User Guide.

Access points - When you use this action with an access point, you must provide the alias of the access point in place of the bucket name or specify the access point ARN. When using the access point ARN, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

Access points and Object Lambda access points are not supported by directory buckets.

S3 on Outposts - When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see What is S3 on Outposts? in the Amazon S3 User Guide.

" + } + }, + "BucketType": { + "base": null, + "refs": { + "BucketInfo$Type": "

The type of bucket.

" } }, "BucketVersioningStatus": { @@ -571,14 +604,15 @@ "Buckets": { "base": null, "refs": { - "ListBucketsOutput$Buckets": "

The list of buckets owned by the requester.

" + "ListBucketsOutput$Buckets": "

The list of buckets owned by the requester.

", + "ListDirectoryBucketsOutput$Buckets": "

The list of buckets owned by the requester.

" } }, "BypassGovernanceRetention": { "base": null, "refs": { - "DeleteObjectRequest$BypassGovernanceRetention": "

Indicates whether S3 Object Lock should bypass Governance-mode restrictions to process this operation. To use this header, you must have the s3:BypassGovernanceRetention permission.

", - "DeleteObjectsRequest$BypassGovernanceRetention": "

Specifies whether you want to delete this object even if it has a Governance-type Object Lock in place. To use this header, you must have the s3:BypassGovernanceRetention permission.

", + "DeleteObjectRequest$BypassGovernanceRetention": "

Indicates whether S3 Object Lock should bypass Governance-mode restrictions to process this operation. To use this header, you must have the s3:BypassGovernanceRetention permission.

This functionality is not supported for directory buckets.

", + "DeleteObjectsRequest$BypassGovernanceRetention": "

Specifies whether you want to delete this object even if it has a Governance-type Object Lock in place. To use this header, you must have the s3:BypassGovernanceRetention permission.

This functionality is not supported for directory buckets.

", "PutObjectRetentionRequest$BypassGovernanceRetention": "

Indicates whether this action should bypass Governance-mode restrictions.

" } }, @@ -637,11 +671,11 @@ "CacheControl": { "base": null, "refs": { - "CopyObjectRequest$CacheControl": "

Specifies caching behavior along the request/reply chain.

", + "CopyObjectRequest$CacheControl": "

Specifies the caching behavior along the request/reply chain.

", "CreateMultipartUploadRequest$CacheControl": "

Specifies caching behavior along the request/reply chain.

", "GetObjectOutput$CacheControl": "

Specifies caching behavior along the request/reply chain.

", "HeadObjectOutput$CacheControl": "

Specifies caching behavior along the request/reply chain.

", - "PutObjectRequest$CacheControl": "

Can be used to specify caching behavior along the request/reply chain. For more information, see http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9.

", + "PutObjectRequest$CacheControl": "

Can be used to specify caching behavior along the request/reply chain. For more information, see http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9.

", "WriteGetObjectResponseRequest$CacheControl": "

Specifies caching behavior along the request/reply chain.

" } }, @@ -655,35 +689,35 @@ "base": null, "refs": { "ChecksumAlgorithmList$member": null, - "CopyObjectRequest$ChecksumAlgorithm": "

Indicates the algorithm you want Amazon S3 to use to create the checksum for the object. For more information, see Checking object integrity in the Amazon S3 User Guide.

", + "CopyObjectRequest$ChecksumAlgorithm": "

Indicates the algorithm that you want Amazon S3 to use to create the checksum for the object. For more information, see Checking object integrity in the Amazon S3 User Guide.

When you copy an object, if the source object has a checksum, that checksum value will be copied to the new object by default. If the CopyObject request does not include this x-amz-checksum-algorithm header, the checksum algorithm will be copied from the source object to the destination object (if it's present on the source object). You can optionally specify a different checksum algorithm to use with the x-amz-checksum-algorithm header. Unrecognized or unsupported values will respond with the HTTP status code 400 Bad Request.

For directory buckets, when you use Amazon Web Services SDKs, CRC32 is the default checksum algorithm that's used for performance.

", "CreateMultipartUploadOutput$ChecksumAlgorithm": "

The algorithm that was used to create a checksum of the object.

", - "CreateMultipartUploadRequest$ChecksumAlgorithm": "

Indicates the algorithm you want Amazon S3 to use to create the checksum for the object. For more information, see Checking object integrity in the Amazon S3 User Guide.

", - "DeleteObjectsRequest$ChecksumAlgorithm": "

Indicates the algorithm used to create the checksum for the object when using the SDK. This header will not provide any additional functionality if not using the SDK. When sending this header, there must be a corresponding x-amz-checksum or x-amz-trailer header sent. Otherwise, Amazon S3 fails the request with the HTTP status code 400 Bad Request. For more information, see Checking object integrity in the Amazon S3 User Guide.

If you provide an individual checksum, Amazon S3 ignores any provided ChecksumAlgorithm parameter.

This checksum algorithm must be the same for all parts and it match the checksum value supplied in the CreateMultipartUpload request.

", + "CreateMultipartUploadRequest$ChecksumAlgorithm": "

Indicates the algorithm that you want Amazon S3 to use to create the checksum for the object. For more information, see Checking object integrity in the Amazon S3 User Guide.

", + "DeleteObjectsRequest$ChecksumAlgorithm": "

Indicates the algorithm used to create the checksum for the object when you use the SDK. This header will not provide any additional functionality if you don't use the SDK. When you send this header, there must be a corresponding x-amz-checksum-algorithm or x-amz-trailer header sent. Otherwise, Amazon S3 fails the request with the HTTP status code 400 Bad Request.

For the x-amz-checksum-algorithm header, replace algorithm with the supported algorithm from the following list:

For more information, see Checking object integrity in the Amazon S3 User Guide.

If the individual checksum value you provide through x-amz-checksum-algorithm doesn't match the checksum algorithm you set through x-amz-sdk-checksum-algorithm, Amazon S3 ignores any provided ChecksumAlgorithm parameter and uses the checksum algorithm that matches the provided value in x-amz-checksum-algorithm .

If you provide an individual checksum, Amazon S3 ignores any provided ChecksumAlgorithm parameter.

", "ListPartsOutput$ChecksumAlgorithm": "

The algorithm that was used to create a checksum of the object.

", "MultipartUpload$ChecksumAlgorithm": "

The algorithm that was used to create a checksum of the object.

", - "PutBucketAccelerateConfigurationRequest$ChecksumAlgorithm": "

Indicates the algorithm used to create the checksum for the object when using the SDK. This header will not provide any additional functionality if not using the SDK. When sending this header, there must be a corresponding x-amz-checksum or x-amz-trailer header sent. Otherwise, Amazon S3 fails the request with the HTTP status code 400 Bad Request. For more information, see Checking object integrity in the Amazon S3 User Guide.

If you provide an individual checksum, Amazon S3 ignores any provided ChecksumAlgorithm parameter.

", - "PutBucketAclRequest$ChecksumAlgorithm": "

Indicates the algorithm used to create the checksum for the object when using the SDK. This header will not provide any additional functionality if not using the SDK. When sending this header, there must be a corresponding x-amz-checksum or x-amz-trailer header sent. Otherwise, Amazon S3 fails the request with the HTTP status code 400 Bad Request. For more information, see Checking object integrity in the Amazon S3 User Guide.

If you provide an individual checksum, Amazon S3 ignores any provided ChecksumAlgorithm parameter.

", - "PutBucketCorsRequest$ChecksumAlgorithm": "

Indicates the algorithm used to create the checksum for the object when using the SDK. This header will not provide any additional functionality if not using the SDK. When sending this header, there must be a corresponding x-amz-checksum or x-amz-trailer header sent. Otherwise, Amazon S3 fails the request with the HTTP status code 400 Bad Request. For more information, see Checking object integrity in the Amazon S3 User Guide.

If you provide an individual checksum, Amazon S3 ignores any provided ChecksumAlgorithm parameter.

", - "PutBucketEncryptionRequest$ChecksumAlgorithm": "

Indicates the algorithm used to create the checksum for the object when using the SDK. This header will not provide any additional functionality if not using the SDK. When sending this header, there must be a corresponding x-amz-checksum or x-amz-trailer header sent. Otherwise, Amazon S3 fails the request with the HTTP status code 400 Bad Request. For more information, see Checking object integrity in the Amazon S3 User Guide.

If you provide an individual checksum, Amazon S3 ignores any provided ChecksumAlgorithm parameter.

", - "PutBucketLifecycleConfigurationRequest$ChecksumAlgorithm": "

Indicates the algorithm used to create the checksum for the object when using the SDK. This header will not provide any additional functionality if not using the SDK. When sending this header, there must be a corresponding x-amz-checksum or x-amz-trailer header sent. Otherwise, Amazon S3 fails the request with the HTTP status code 400 Bad Request. For more information, see Checking object integrity in the Amazon S3 User Guide.

If you provide an individual checksum, Amazon S3 ignores any provided ChecksumAlgorithm parameter.

", - "PutBucketLifecycleRequest$ChecksumAlgorithm": "

Indicates the algorithm used to create the checksum for the object when using the SDK. This header will not provide any additional functionality if not using the SDK. When sending this header, there must be a corresponding x-amz-checksum or x-amz-trailer header sent. Otherwise, Amazon S3 fails the request with the HTTP status code 400 Bad Request. For more information, see Checking object integrity in the Amazon S3 User Guide.

If you provide an individual checksum, Amazon S3 ignores any provided ChecksumAlgorithm parameter.

", - "PutBucketLoggingRequest$ChecksumAlgorithm": "

Indicates the algorithm used to create the checksum for the object when using the SDK. This header will not provide any additional functionality if not using the SDK. When sending this header, there must be a corresponding x-amz-checksum or x-amz-trailer header sent. Otherwise, Amazon S3 fails the request with the HTTP status code 400 Bad Request. For more information, see Checking object integrity in the Amazon S3 User Guide.

If you provide an individual checksum, Amazon S3 ignores any provided ChecksumAlgorithm parameter.

", - "PutBucketNotificationRequest$ChecksumAlgorithm": "

Indicates the algorithm used to create the checksum for the object when using the SDK. This header will not provide any additional functionality if not using the SDK. When sending this header, there must be a corresponding x-amz-checksum or x-amz-trailer header sent. Otherwise, Amazon S3 fails the request with the HTTP status code 400 Bad Request. For more information, see Checking object integrity in the Amazon S3 User Guide.

If you provide an individual checksum, Amazon S3 ignores any provided ChecksumAlgorithm parameter.

", - "PutBucketPolicyRequest$ChecksumAlgorithm": "

Indicates the algorithm used to create the checksum for the object when using the SDK. This header will not provide any additional functionality if not using the SDK. When sending this header, there must be a corresponding x-amz-checksum or x-amz-trailer header sent. Otherwise, Amazon S3 fails the request with the HTTP status code 400 Bad Request. For more information, see Checking object integrity in the Amazon S3 User Guide.

If you provide an individual checksum, Amazon S3 ignores any provided ChecksumAlgorithm parameter.

", - "PutBucketReplicationRequest$ChecksumAlgorithm": "

Indicates the algorithm used to create the checksum for the object when using the SDK. This header will not provide any additional functionality if not using the SDK. When sending this header, there must be a corresponding x-amz-checksum or x-amz-trailer header sent. Otherwise, Amazon S3 fails the request with the HTTP status code 400 Bad Request. For more information, see Checking object integrity in the Amazon S3 User Guide.

If you provide an individual checksum, Amazon S3 ignores any provided ChecksumAlgorithm parameter.

", - "PutBucketRequestPaymentRequest$ChecksumAlgorithm": "

Indicates the algorithm used to create the checksum for the object when using the SDK. This header will not provide any additional functionality if not using the SDK. When sending this header, there must be a corresponding x-amz-checksum or x-amz-trailer header sent. Otherwise, Amazon S3 fails the request with the HTTP status code 400 Bad Request. For more information, see Checking object integrity in the Amazon S3 User Guide.

If you provide an individual checksum, Amazon S3 ignores any provided ChecksumAlgorithm parameter.

", - "PutBucketTaggingRequest$ChecksumAlgorithm": "

Indicates the algorithm used to create the checksum for the object when using the SDK. This header will not provide any additional functionality if not using the SDK. When sending this header, there must be a corresponding x-amz-checksum or x-amz-trailer header sent. Otherwise, Amazon S3 fails the request with the HTTP status code 400 Bad Request. For more information, see Checking object integrity in the Amazon S3 User Guide.

If you provide an individual checksum, Amazon S3 ignores any provided ChecksumAlgorithm parameter.

", - "PutBucketVersioningRequest$ChecksumAlgorithm": "

Indicates the algorithm used to create the checksum for the object when using the SDK. This header will not provide any additional functionality if not using the SDK. When sending this header, there must be a corresponding x-amz-checksum or x-amz-trailer header sent. Otherwise, Amazon S3 fails the request with the HTTP status code 400 Bad Request. For more information, see Checking object integrity in the Amazon S3 User Guide.

If you provide an individual checksum, Amazon S3 ignores any provided ChecksumAlgorithm parameter.

", - "PutBucketWebsiteRequest$ChecksumAlgorithm": "

Indicates the algorithm used to create the checksum for the object when using the SDK. This header will not provide any additional functionality if not using the SDK. When sending this header, there must be a corresponding x-amz-checksum or x-amz-trailer header sent. Otherwise, Amazon S3 fails the request with the HTTP status code 400 Bad Request. For more information, see Checking object integrity in the Amazon S3 User Guide.

If you provide an individual checksum, Amazon S3 ignores any provided ChecksumAlgorithm parameter.

", - "PutObjectAclRequest$ChecksumAlgorithm": "

Indicates the algorithm used to create the checksum for the object when using the SDK. This header will not provide any additional functionality if not using the SDK. When sending this header, there must be a corresponding x-amz-checksum or x-amz-trailer header sent. Otherwise, Amazon S3 fails the request with the HTTP status code 400 Bad Request. For more information, see Checking object integrity in the Amazon S3 User Guide.

If you provide an individual checksum, Amazon S3 ignores any provided ChecksumAlgorithm parameter.

", - "PutObjectLegalHoldRequest$ChecksumAlgorithm": "

Indicates the algorithm used to create the checksum for the object when using the SDK. This header will not provide any additional functionality if not using the SDK. When sending this header, there must be a corresponding x-amz-checksum or x-amz-trailer header sent. Otherwise, Amazon S3 fails the request with the HTTP status code 400 Bad Request. For more information, see Checking object integrity in the Amazon S3 User Guide.

If you provide an individual checksum, Amazon S3 ignores any provided ChecksumAlgorithm parameter.

", - "PutObjectLockConfigurationRequest$ChecksumAlgorithm": "

Indicates the algorithm used to create the checksum for the object when using the SDK. This header will not provide any additional functionality if not using the SDK. When sending this header, there must be a corresponding x-amz-checksum or x-amz-trailer header sent. Otherwise, Amazon S3 fails the request with the HTTP status code 400 Bad Request. For more information, see Checking object integrity in the Amazon S3 User Guide.

If you provide an individual checksum, Amazon S3 ignores any provided ChecksumAlgorithm parameter.

", - "PutObjectRequest$ChecksumAlgorithm": "

Indicates the algorithm used to create the checksum for the object when using the SDK. This header will not provide any additional functionality if not using the SDK. When sending this header, there must be a corresponding x-amz-checksum or x-amz-trailer header sent. Otherwise, Amazon S3 fails the request with the HTTP status code 400 Bad Request. For more information, see Checking object integrity in the Amazon S3 User Guide.

If you provide an individual checksum, Amazon S3 ignores any provided ChecksumAlgorithm parameter.

", - "PutObjectRetentionRequest$ChecksumAlgorithm": "

Indicates the algorithm used to create the checksum for the object when using the SDK. This header will not provide any additional functionality if not using the SDK. When sending this header, there must be a corresponding x-amz-checksum or x-amz-trailer header sent. Otherwise, Amazon S3 fails the request with the HTTP status code 400 Bad Request. For more information, see Checking object integrity in the Amazon S3 User Guide.

If you provide an individual checksum, Amazon S3 ignores any provided ChecksumAlgorithm parameter.

", - "PutObjectTaggingRequest$ChecksumAlgorithm": "

Indicates the algorithm used to create the checksum for the object when using the SDK. This header will not provide any additional functionality if not using the SDK. When sending this header, there must be a corresponding x-amz-checksum or x-amz-trailer header sent. Otherwise, Amazon S3 fails the request with the HTTP status code 400 Bad Request. For more information, see Checking object integrity in the Amazon S3 User Guide.

If you provide an individual checksum, Amazon S3 ignores any provided ChecksumAlgorithm parameter.

", - "PutPublicAccessBlockRequest$ChecksumAlgorithm": "

Indicates the algorithm used to create the checksum for the object when using the SDK. This header will not provide any additional functionality if not using the SDK. When sending this header, there must be a corresponding x-amz-checksum or x-amz-trailer header sent. Otherwise, Amazon S3 fails the request with the HTTP status code 400 Bad Request. For more information, see Checking object integrity in the Amazon S3 User Guide.

If you provide an individual checksum, Amazon S3 ignores any provided ChecksumAlgorithm parameter.

", - "RestoreObjectRequest$ChecksumAlgorithm": "

Indicates the algorithm used to create the checksum for the object when using the SDK. This header will not provide any additional functionality if not using the SDK. When sending this header, there must be a corresponding x-amz-checksum or x-amz-trailer header sent. Otherwise, Amazon S3 fails the request with the HTTP status code 400 Bad Request. For more information, see Checking object integrity in the Amazon S3 User Guide.

If you provide an individual checksum, Amazon S3 ignores any provided ChecksumAlgorithm parameter.

", - "UploadPartRequest$ChecksumAlgorithm": "

Indicates the algorithm used to create the checksum for the object when using the SDK. This header will not provide any additional functionality if not using the SDK. When sending this header, there must be a corresponding x-amz-checksum or x-amz-trailer header sent. Otherwise, Amazon S3 fails the request with the HTTP status code 400 Bad Request. For more information, see Checking object integrity in the Amazon S3 User Guide.

If you provide an individual checksum, Amazon S3 ignores any provided ChecksumAlgorithm parameter.

This checksum algorithm must be the same for all parts and it match the checksum value supplied in the CreateMultipartUpload request.

" + "PutBucketAccelerateConfigurationRequest$ChecksumAlgorithm": "

Indicates the algorithm used to create the checksum for the object when you use the SDK. This header will not provide any additional functionality if you don't use the SDK. When you send this header, there must be a corresponding x-amz-checksum or x-amz-trailer header sent. Otherwise, Amazon S3 fails the request with the HTTP status code 400 Bad Request. For more information, see Checking object integrity in the Amazon S3 User Guide.

If you provide an individual checksum, Amazon S3 ignores any provided ChecksumAlgorithm parameter.

", + "PutBucketAclRequest$ChecksumAlgorithm": "

Indicates the algorithm used to create the checksum for the object when you use the SDK. This header will not provide any additional functionality if you don't use the SDK. When you send this header, there must be a corresponding x-amz-checksum or x-amz-trailer header sent. Otherwise, Amazon S3 fails the request with the HTTP status code 400 Bad Request. For more information, see Checking object integrity in the Amazon S3 User Guide.

If you provide an individual checksum, Amazon S3 ignores any provided ChecksumAlgorithm parameter.

", + "PutBucketCorsRequest$ChecksumAlgorithm": "

Indicates the algorithm used to create the checksum for the object when you use the SDK. This header will not provide any additional functionality if you don't use the SDK. When you send this header, there must be a corresponding x-amz-checksum or x-amz-trailer header sent. Otherwise, Amazon S3 fails the request with the HTTP status code 400 Bad Request. For more information, see Checking object integrity in the Amazon S3 User Guide.

If you provide an individual checksum, Amazon S3 ignores any provided ChecksumAlgorithm parameter.

", + "PutBucketEncryptionRequest$ChecksumAlgorithm": "

Indicates the algorithm used to create the checksum for the object when you use the SDK. This header will not provide any additional functionality if you don't use the SDK. When you send this header, there must be a corresponding x-amz-checksum or x-amz-trailer header sent. Otherwise, Amazon S3 fails the request with the HTTP status code 400 Bad Request. For more information, see Checking object integrity in the Amazon S3 User Guide.

If you provide an individual checksum, Amazon S3 ignores any provided ChecksumAlgorithm parameter.

", + "PutBucketLifecycleConfigurationRequest$ChecksumAlgorithm": "

Indicates the algorithm used to create the checksum for the object when you use the SDK. This header will not provide any additional functionality if you don't use the SDK. When you send this header, there must be a corresponding x-amz-checksum or x-amz-trailer header sent. Otherwise, Amazon S3 fails the request with the HTTP status code 400 Bad Request. For more information, see Checking object integrity in the Amazon S3 User Guide.

If you provide an individual checksum, Amazon S3 ignores any provided ChecksumAlgorithm parameter.

", + "PutBucketLifecycleRequest$ChecksumAlgorithm": "

Indicates the algorithm used to create the checksum for the object when you use the SDK. This header will not provide any additional functionality if you don't use the SDK. When you send this header, there must be a corresponding x-amz-checksum or x-amz-trailer header sent. Otherwise, Amazon S3 fails the request with the HTTP status code 400 Bad Request. For more information, see Checking object integrity in the Amazon S3 User Guide.

If you provide an individual checksum, Amazon S3 ignores any provided ChecksumAlgorithm parameter.

", + "PutBucketLoggingRequest$ChecksumAlgorithm": "

Indicates the algorithm used to create the checksum for the object when you use the SDK. This header will not provide any additional functionality if you don't use the SDK. When you send this header, there must be a corresponding x-amz-checksum or x-amz-trailer header sent. Otherwise, Amazon S3 fails the request with the HTTP status code 400 Bad Request. For more information, see Checking object integrity in the Amazon S3 User Guide.

If you provide an individual checksum, Amazon S3 ignores any provided ChecksumAlgorithm parameter.

", + "PutBucketNotificationRequest$ChecksumAlgorithm": "

Indicates the algorithm used to create the checksum for the object when you use the SDK. This header will not provide any additional functionality if you don't use the SDK. When you send this header, there must be a corresponding x-amz-checksum or x-amz-trailer header sent. Otherwise, Amazon S3 fails the request with the HTTP status code 400 Bad Request. For more information, see Checking object integrity in the Amazon S3 User Guide.

If you provide an individual checksum, Amazon S3 ignores any provided ChecksumAlgorithm parameter.

", + "PutBucketPolicyRequest$ChecksumAlgorithm": "

Indicates the algorithm used to create the checksum for the object when you use the SDK. This header will not provide any additional functionality if you don't use the SDK. When you send this header, there must be a corresponding x-amz-checksum-algorithm or x-amz-trailer header sent. Otherwise, Amazon S3 fails the request with the HTTP status code 400 Bad Request.

For the x-amz-checksum-algorithm header, replace algorithm with the supported algorithm from the following list:

For more information, see Checking object integrity in the Amazon S3 User Guide.

If the individual checksum value you provide through x-amz-checksum-algorithm doesn't match the checksum algorithm you set through x-amz-sdk-checksum-algorithm, Amazon S3 ignores any provided ChecksumAlgorithm parameter and uses the checksum algorithm that matches the provided value in x-amz-checksum-algorithm .

For directory buckets, when you use Amazon Web Services SDKs, CRC32 is the default checksum algorithm that's used for performance.

", + "PutBucketReplicationRequest$ChecksumAlgorithm": "

Indicates the algorithm used to create the checksum for the object when you use the SDK. This header will not provide any additional functionality if you don't use the SDK. When you send this header, there must be a corresponding x-amz-checksum or x-amz-trailer header sent. Otherwise, Amazon S3 fails the request with the HTTP status code 400 Bad Request. For more information, see Checking object integrity in the Amazon S3 User Guide.

If you provide an individual checksum, Amazon S3 ignores any provided ChecksumAlgorithm parameter.

", + "PutBucketRequestPaymentRequest$ChecksumAlgorithm": "

Indicates the algorithm used to create the checksum for the object when you use the SDK. This header will not provide any additional functionality if you don't use the SDK. When you send this header, there must be a corresponding x-amz-checksum or x-amz-trailer header sent. Otherwise, Amazon S3 fails the request with the HTTP status code 400 Bad Request. For more information, see Checking object integrity in the Amazon S3 User Guide.

If you provide an individual checksum, Amazon S3 ignores any provided ChecksumAlgorithm parameter.

", + "PutBucketTaggingRequest$ChecksumAlgorithm": "

Indicates the algorithm used to create the checksum for the object when you use the SDK. This header will not provide any additional functionality if you don't use the SDK. When you send this header, there must be a corresponding x-amz-checksum or x-amz-trailer header sent. Otherwise, Amazon S3 fails the request with the HTTP status code 400 Bad Request. For more information, see Checking object integrity in the Amazon S3 User Guide.

If you provide an individual checksum, Amazon S3 ignores any provided ChecksumAlgorithm parameter.

", + "PutBucketVersioningRequest$ChecksumAlgorithm": "

Indicates the algorithm used to create the checksum for the object when you use the SDK. This header will not provide any additional functionality if you don't use the SDK. When you send this header, there must be a corresponding x-amz-checksum or x-amz-trailer header sent. Otherwise, Amazon S3 fails the request with the HTTP status code 400 Bad Request. For more information, see Checking object integrity in the Amazon S3 User Guide.

If you provide an individual checksum, Amazon S3 ignores any provided ChecksumAlgorithm parameter.

", + "PutBucketWebsiteRequest$ChecksumAlgorithm": "

Indicates the algorithm used to create the checksum for the object when you use the SDK. This header will not provide any additional functionality if you don't use the SDK. When you send this header, there must be a corresponding x-amz-checksum or x-amz-trailer header sent. Otherwise, Amazon S3 fails the request with the HTTP status code 400 Bad Request. For more information, see Checking object integrity in the Amazon S3 User Guide.

If you provide an individual checksum, Amazon S3 ignores any provided ChecksumAlgorithm parameter.

", + "PutObjectAclRequest$ChecksumAlgorithm": "

Indicates the algorithm used to create the checksum for the object when you use the SDK. This header will not provide any additional functionality if you don't use the SDK. When you send this header, there must be a corresponding x-amz-checksum or x-amz-trailer header sent. Otherwise, Amazon S3 fails the request with the HTTP status code 400 Bad Request. For more information, see Checking object integrity in the Amazon S3 User Guide.

If you provide an individual checksum, Amazon S3 ignores any provided ChecksumAlgorithm parameter.

", + "PutObjectLegalHoldRequest$ChecksumAlgorithm": "

Indicates the algorithm used to create the checksum for the object when you use the SDK. This header will not provide any additional functionality if you don't use the SDK. When you send this header, there must be a corresponding x-amz-checksum or x-amz-trailer header sent. Otherwise, Amazon S3 fails the request with the HTTP status code 400 Bad Request. For more information, see Checking object integrity in the Amazon S3 User Guide.

If you provide an individual checksum, Amazon S3 ignores any provided ChecksumAlgorithm parameter.

", + "PutObjectLockConfigurationRequest$ChecksumAlgorithm": "

Indicates the algorithm used to create the checksum for the object when you use the SDK. This header will not provide any additional functionality if you don't use the SDK. When you send this header, there must be a corresponding x-amz-checksum or x-amz-trailer header sent. Otherwise, Amazon S3 fails the request with the HTTP status code 400 Bad Request. For more information, see Checking object integrity in the Amazon S3 User Guide.

If you provide an individual checksum, Amazon S3 ignores any provided ChecksumAlgorithm parameter.

", + "PutObjectRequest$ChecksumAlgorithm": "

Indicates the algorithm used to create the checksum for the object when you use the SDK. This header will not provide any additional functionality if you don't use the SDK. When you send this header, there must be a corresponding x-amz-checksum-algorithm or x-amz-trailer header sent. Otherwise, Amazon S3 fails the request with the HTTP status code 400 Bad Request.

For the x-amz-checksum-algorithm header, replace algorithm with the supported algorithm from the following list:

For more information, see Checking object integrity in the Amazon S3 User Guide.

If the individual checksum value you provide through x-amz-checksum-algorithm doesn't match the checksum algorithm you set through x-amz-sdk-checksum-algorithm, Amazon S3 ignores any provided ChecksumAlgorithm parameter and uses the checksum algorithm that matches the provided value in x-amz-checksum-algorithm .

For directory buckets, when you use Amazon Web Services SDKs, CRC32 is the default checksum algorithm that's used for performance.

", + "PutObjectRetentionRequest$ChecksumAlgorithm": "

Indicates the algorithm used to create the checksum for the object when you use the SDK. This header will not provide any additional functionality if you don't use the SDK. When you send this header, there must be a corresponding x-amz-checksum or x-amz-trailer header sent. Otherwise, Amazon S3 fails the request with the HTTP status code 400 Bad Request. For more information, see Checking object integrity in the Amazon S3 User Guide.

If you provide an individual checksum, Amazon S3 ignores any provided ChecksumAlgorithm parameter.

", + "PutObjectTaggingRequest$ChecksumAlgorithm": "

Indicates the algorithm used to create the checksum for the object when you use the SDK. This header will not provide any additional functionality if you don't use the SDK. When you send this header, there must be a corresponding x-amz-checksum or x-amz-trailer header sent. Otherwise, Amazon S3 fails the request with the HTTP status code 400 Bad Request. For more information, see Checking object integrity in the Amazon S3 User Guide.

If you provide an individual checksum, Amazon S3 ignores any provided ChecksumAlgorithm parameter.

", + "PutPublicAccessBlockRequest$ChecksumAlgorithm": "

Indicates the algorithm used to create the checksum for the object when you use the SDK. This header will not provide any additional functionality if you don't use the SDK. When you send this header, there must be a corresponding x-amz-checksum or x-amz-trailer header sent. Otherwise, Amazon S3 fails the request with the HTTP status code 400 Bad Request. For more information, see Checking object integrity in the Amazon S3 User Guide.

If you provide an individual checksum, Amazon S3 ignores any provided ChecksumAlgorithm parameter.

", + "RestoreObjectRequest$ChecksumAlgorithm": "

Indicates the algorithm used to create the checksum for the object when you use the SDK. This header will not provide any additional functionality if you don't use the SDK. When you send this header, there must be a corresponding x-amz-checksum or x-amz-trailer header sent. Otherwise, Amazon S3 fails the request with the HTTP status code 400 Bad Request. For more information, see Checking object integrity in the Amazon S3 User Guide.

If you provide an individual checksum, Amazon S3 ignores any provided ChecksumAlgorithm parameter.

", + "UploadPartRequest$ChecksumAlgorithm": "

Indicates the algorithm used to create the checksum for the object when you use the SDK. This header will not provide any additional functionality if you don't use the SDK. When you send this header, there must be a corresponding x-amz-checksum or x-amz-trailer header sent. Otherwise, Amazon S3 fails the request with the HTTP status code 400 Bad Request. For more information, see Checking object integrity in the Amazon S3 User Guide.

If you provide an individual checksum, Amazon S3 ignores any provided ChecksumAlgorithm parameter.

This checksum algorithm must be the same for all parts and it match the checksum value supplied in the CreateMultipartUpload request.

" } }, "ChecksumAlgorithmList": { @@ -696,19 +730,19 @@ "ChecksumCRC32": { "base": null, "refs": { - "Checksum$ChecksumCRC32": "

The base64-encoded, 32-bit CRC32 checksum of the object. This will only be present if it was uploaded with the object. With multipart uploads, this may not be a checksum value of the object. For more information about how checksums are calculated with multipart uploads, see Checking object integrity in the Amazon S3 User Guide.

", - "CompleteMultipartUploadOutput$ChecksumCRC32": "

The base64-encoded, 32-bit CRC32 checksum of the object. This will only be present if it was uploaded with the object. With multipart uploads, this may not be a checksum value of the object. For more information about how checksums are calculated with multipart uploads, see Checking object integrity in the Amazon S3 User Guide.

", + "Checksum$ChecksumCRC32": "

The base64-encoded, 32-bit CRC32 checksum of the object. This will only be present if it was uploaded with the object. When you use an API operation on an object that was uploaded using multipart uploads, this value may not be a direct checksum value of the full object. Instead, it's a calculation based on the checksum values of each individual part. For more information about how checksums are calculated with multipart uploads, see Checking object integrity in the Amazon S3 User Guide.

", + "CompleteMultipartUploadOutput$ChecksumCRC32": "

The base64-encoded, 32-bit CRC32 checksum of the object. This will only be present if it was uploaded with the object. When you use an API operation on an object that was uploaded using multipart uploads, this value may not be a direct checksum value of the full object. Instead, it's a calculation based on the checksum values of each individual part. For more information about how checksums are calculated with multipart uploads, see Checking object integrity in the Amazon S3 User Guide.

", "CompleteMultipartUploadRequest$ChecksumCRC32": "

This header can be used as a data integrity check to verify that the data received is the same data that was originally sent. This header specifies the base64-encoded, 32-bit CRC32 checksum of the object. For more information, see Checking object integrity in the Amazon S3 User Guide.

", - "CompletedPart$ChecksumCRC32": "

The base64-encoded, 32-bit CRC32 checksum of the object. This will only be present if it was uploaded with the object. With multipart uploads, this may not be a checksum value of the object. For more information about how checksums are calculated with multipart uploads, see Checking object integrity in the Amazon S3 User Guide.

", - "CopyObjectResult$ChecksumCRC32": "

The base64-encoded, 32-bit CRC32 checksum of the object. This will only be present if it was uploaded with the object. With multipart uploads, this may not be a checksum value of the object. For more information about how checksums are calculated with multipart uploads, see Checking object integrity in the Amazon S3 User Guide.

", - "CopyPartResult$ChecksumCRC32": "

The base64-encoded, 32-bit CRC32 checksum of the object. This will only be present if it was uploaded with the object. With multipart uploads, this may not be a checksum value of the object. For more information about how checksums are calculated with multipart uploads, see Checking object integrity in the Amazon S3 User Guide.

", - "GetObjectOutput$ChecksumCRC32": "

The base64-encoded, 32-bit CRC32 checksum of the object. This will only be present if it was uploaded with the object. With multipart uploads, this may not be a checksum value of the object. For more information about how checksums are calculated with multipart uploads, see Checking object integrity in the Amazon S3 User Guide.

", - "HeadObjectOutput$ChecksumCRC32": "

The base64-encoded, 32-bit CRC32 checksum of the object. This will only be present if it was uploaded with the object. With multipart uploads, this may not be a checksum value of the object. For more information about how checksums are calculated with multipart uploads, see Checking object integrity in the Amazon S3 User Guide.

", + "CompletedPart$ChecksumCRC32": "

The base64-encoded, 32-bit CRC32 checksum of the object. This will only be present if it was uploaded with the object. When you use an API operation on an object that was uploaded using multipart uploads, this value may not be a direct checksum value of the full object. Instead, it's a calculation based on the checksum values of each individual part. For more information about how checksums are calculated with multipart uploads, see Checking object integrity in the Amazon S3 User Guide.

", + "CopyObjectResult$ChecksumCRC32": "

The base64-encoded, 32-bit CRC32 checksum of the object. This will only be present if it was uploaded with the object. For more information, see Checking object integrity in the Amazon S3 User Guide.

", + "CopyPartResult$ChecksumCRC32": "

The base64-encoded, 32-bit CRC32 checksum of the object. This will only be present if it was uploaded with the object. When you use an API operation on an object that was uploaded using multipart uploads, this value may not be a direct checksum value of the full object. Instead, it's a calculation based on the checksum values of each individual part. For more information about how checksums are calculated with multipart uploads, see Checking object integrity in the Amazon S3 User Guide.

", + "GetObjectOutput$ChecksumCRC32": "

The base64-encoded, 32-bit CRC32 checksum of the object. This will only be present if it was uploaded with the object. For more information, see Checking object integrity in the Amazon S3 User Guide.

", + "HeadObjectOutput$ChecksumCRC32": "

The base64-encoded, 32-bit CRC32 checksum of the object. This will only be present if it was uploaded with the object. When you use an API operation on an object that was uploaded using multipart uploads, this value may not be a direct checksum value of the full object. Instead, it's a calculation based on the checksum values of each individual part. For more information about how checksums are calculated with multipart uploads, see Checking object integrity in the Amazon S3 User Guide.

", "ObjectPart$ChecksumCRC32": "

This header can be used as a data integrity check to verify that the data received is the same data that was originally sent. This header specifies the base64-encoded, 32-bit CRC32 checksum of the object. For more information, see Checking object integrity in the Amazon S3 User Guide.

", "Part$ChecksumCRC32": "

This header can be used as a data integrity check to verify that the data received is the same data that was originally sent. This header specifies the base64-encoded, 32-bit CRC32 checksum of the object. For more information, see Checking object integrity in the Amazon S3 User Guide.

", - "PutObjectOutput$ChecksumCRC32": "

The base64-encoded, 32-bit CRC32 checksum of the object. This will only be present if it was uploaded with the object. With multipart uploads, this may not be a checksum value of the object. For more information about how checksums are calculated with multipart uploads, see Checking object integrity in the Amazon S3 User Guide.

", + "PutObjectOutput$ChecksumCRC32": "

The base64-encoded, 32-bit CRC32 checksum of the object. This will only be present if it was uploaded with the object. When you use an API operation on an object that was uploaded using multipart uploads, this value may not be a direct checksum value of the full object. Instead, it's a calculation based on the checksum values of each individual part. For more information about how checksums are calculated with multipart uploads, see Checking object integrity in the Amazon S3 User Guide.

", "PutObjectRequest$ChecksumCRC32": "

This header can be used as a data integrity check to verify that the data received is the same data that was originally sent. This header specifies the base64-encoded, 32-bit CRC32 checksum of the object. For more information, see Checking object integrity in the Amazon S3 User Guide.

", - "UploadPartOutput$ChecksumCRC32": "

The base64-encoded, 32-bit CRC32 checksum of the object. This will only be present if it was uploaded with the object. With multipart uploads, this may not be a checksum value of the object. For more information about how checksums are calculated with multipart uploads, see Checking object integrity in the Amazon S3 User Guide.

", + "UploadPartOutput$ChecksumCRC32": "

The base64-encoded, 32-bit CRC32 checksum of the object. This will only be present if it was uploaded with the object. When you use an API operation on an object that was uploaded using multipart uploads, this value may not be a direct checksum value of the full object. Instead, it's a calculation based on the checksum values of each individual part. For more information about how checksums are calculated with multipart uploads, see Checking object integrity in the Amazon S3 User Guide.

", "UploadPartRequest$ChecksumCRC32": "

This header can be used as a data integrity check to verify that the data received is the same data that was originally sent. This header specifies the base64-encoded, 32-bit CRC32 checksum of the object. For more information, see Checking object integrity in the Amazon S3 User Guide.

", "WriteGetObjectResponseRequest$ChecksumCRC32": "

This header can be used as a data integrity check to verify that the data received is the same data that was originally sent. This specifies the base64-encoded, 32-bit CRC32 checksum of the object returned by the Object Lambda function. This may not match the checksum for the object stored in Amazon S3. Amazon S3 will perform validation of the checksum values only when the original GetObject request required checksum validation. For more information about checksums, see Checking object integrity in the Amazon S3 User Guide.

Only one checksum header can be specified at a time. If you supply multiple checksum headers, this request will fail.

" } @@ -716,19 +750,19 @@ "ChecksumCRC32C": { "base": null, "refs": { - "Checksum$ChecksumCRC32C": "

The base64-encoded, 32-bit CRC32C checksum of the object. This will only be present if it was uploaded with the object. With multipart uploads, this may not be a checksum value of the object. For more information about how checksums are calculated with multipart uploads, see Checking object integrity in the Amazon S3 User Guide.

", - "CompleteMultipartUploadOutput$ChecksumCRC32C": "

The base64-encoded, 32-bit CRC32C checksum of the object. This will only be present if it was uploaded with the object. With multipart uploads, this may not be a checksum value of the object. For more information about how checksums are calculated with multipart uploads, see Checking object integrity in the Amazon S3 User Guide.

", + "Checksum$ChecksumCRC32C": "

The base64-encoded, 32-bit CRC32C checksum of the object. This will only be present if it was uploaded with the object. When you use an API operation on an object that was uploaded using multipart uploads, this value may not be a direct checksum value of the full object. Instead, it's a calculation based on the checksum values of each individual part. For more information about how checksums are calculated with multipart uploads, see Checking object integrity in the Amazon S3 User Guide.

", + "CompleteMultipartUploadOutput$ChecksumCRC32C": "

The base64-encoded, 32-bit CRC32C checksum of the object. This will only be present if it was uploaded with the object. When you use an API operation on an object that was uploaded using multipart uploads, this value may not be a direct checksum value of the full object. Instead, it's a calculation based on the checksum values of each individual part. For more information about how checksums are calculated with multipart uploads, see Checking object integrity in the Amazon S3 User Guide.

", "CompleteMultipartUploadRequest$ChecksumCRC32C": "

This header can be used as a data integrity check to verify that the data received is the same data that was originally sent. This header specifies the base64-encoded, 32-bit CRC32C checksum of the object. For more information, see Checking object integrity in the Amazon S3 User Guide.

", - "CompletedPart$ChecksumCRC32C": "

The base64-encoded, 32-bit CRC32C checksum of the object. This will only be present if it was uploaded with the object. With multipart uploads, this may not be a checksum value of the object. For more information about how checksums are calculated with multipart uploads, see Checking object integrity in the Amazon S3 User Guide.

", - "CopyObjectResult$ChecksumCRC32C": "

The base64-encoded, 32-bit CRC32C checksum of the object. This will only be present if it was uploaded with the object. With multipart uploads, this may not be a checksum value of the object. For more information about how checksums are calculated with multipart uploads, see Checking object integrity in the Amazon S3 User Guide.

", - "CopyPartResult$ChecksumCRC32C": "

The base64-encoded, 32-bit CRC32C checksum of the object. This will only be present if it was uploaded with the object. With multipart uploads, this may not be a checksum value of the object. For more information about how checksums are calculated with multipart uploads, see Checking object integrity in the Amazon S3 User Guide.

", - "GetObjectOutput$ChecksumCRC32C": "

The base64-encoded, 32-bit CRC32C checksum of the object. This will only be present if it was uploaded with the object. With multipart uploads, this may not be a checksum value of the object. For more information about how checksums are calculated with multipart uploads, see Checking object integrity in the Amazon S3 User Guide.

", - "HeadObjectOutput$ChecksumCRC32C": "

The base64-encoded, 32-bit CRC32C checksum of the object. This will only be present if it was uploaded with the object. With multipart uploads, this may not be a checksum value of the object. For more information about how checksums are calculated with multipart uploads, see Checking object integrity in the Amazon S3 User Guide.

", - "ObjectPart$ChecksumCRC32C": "

The base64-encoded, 32-bit CRC32C checksum of the object. This will only be present if it was uploaded with the object. With multipart uploads, this may not be a checksum value of the object. For more information about how checksums are calculated with multipart uploads, see Checking object integrity in the Amazon S3 User Guide.

", - "Part$ChecksumCRC32C": "

The base64-encoded, 32-bit CRC32C checksum of the object. This will only be present if it was uploaded with the object. With multipart uploads, this may not be a checksum value of the object. For more information about how checksums are calculated with multipart uploads, see Checking object integrity in the Amazon S3 User Guide.

", - "PutObjectOutput$ChecksumCRC32C": "

The base64-encoded, 32-bit CRC32C checksum of the object. This will only be present if it was uploaded with the object. With multipart uploads, this may not be a checksum value of the object. For more information about how checksums are calculated with multipart uploads, see Checking object integrity in the Amazon S3 User Guide.

", + "CompletedPart$ChecksumCRC32C": "

The base64-encoded, 32-bit CRC32C checksum of the object. This will only be present if it was uploaded with the object. When you use an API operation on an object that was uploaded using multipart uploads, this value may not be a direct checksum value of the full object. Instead, it's a calculation based on the checksum values of each individual part. For more information about how checksums are calculated with multipart uploads, see Checking object integrity in the Amazon S3 User Guide.

", + "CopyObjectResult$ChecksumCRC32C": "

The base64-encoded, 32-bit CRC32C checksum of the object. This will only be present if it was uploaded with the object. For more information, see Checking object integrity in the Amazon S3 User Guide.

", + "CopyPartResult$ChecksumCRC32C": "

The base64-encoded, 32-bit CRC32C checksum of the object. This will only be present if it was uploaded with the object. When you use an API operation on an object that was uploaded using multipart uploads, this value may not be a direct checksum value of the full object. Instead, it's a calculation based on the checksum values of each individual part. For more information about how checksums are calculated with multipart uploads, see Checking object integrity in the Amazon S3 User Guide.

", + "GetObjectOutput$ChecksumCRC32C": "

The base64-encoded, 32-bit CRC32C checksum of the object. This will only be present if it was uploaded with the object. For more information, see Checking object integrity in the Amazon S3 User Guide.

", + "HeadObjectOutput$ChecksumCRC32C": "

The base64-encoded, 32-bit CRC32C checksum of the object. This will only be present if it was uploaded with the object. When you use an API operation on an object that was uploaded using multipart uploads, this value may not be a direct checksum value of the full object. Instead, it's a calculation based on the checksum values of each individual part. For more information about how checksums are calculated with multipart uploads, see Checking object integrity in the Amazon S3 User Guide.

", + "ObjectPart$ChecksumCRC32C": "

The base64-encoded, 32-bit CRC32C checksum of the object. This will only be present if it was uploaded with the object. When you use an API operation on an object that was uploaded using multipart uploads, this value may not be a direct checksum value of the full object. Instead, it's a calculation based on the checksum values of each individual part. For more information about how checksums are calculated with multipart uploads, see Checking object integrity in the Amazon S3 User Guide.

", + "Part$ChecksumCRC32C": "

The base64-encoded, 32-bit CRC32C checksum of the object. This will only be present if it was uploaded with the object. When you use an API operation on an object that was uploaded using multipart uploads, this value may not be a direct checksum value of the full object. Instead, it's a calculation based on the checksum values of each individual part. For more information about how checksums are calculated with multipart uploads, see Checking object integrity in the Amazon S3 User Guide.

", + "PutObjectOutput$ChecksumCRC32C": "

The base64-encoded, 32-bit CRC32C checksum of the object. This will only be present if it was uploaded with the object. When you use an API operation on an object that was uploaded using multipart uploads, this value may not be a direct checksum value of the full object. Instead, it's a calculation based on the checksum values of each individual part. For more information about how checksums are calculated with multipart uploads, see Checking object integrity in the Amazon S3 User Guide.

", "PutObjectRequest$ChecksumCRC32C": "

This header can be used as a data integrity check to verify that the data received is the same data that was originally sent. This header specifies the base64-encoded, 32-bit CRC32C checksum of the object. For more information, see Checking object integrity in the Amazon S3 User Guide.

", - "UploadPartOutput$ChecksumCRC32C": "

The base64-encoded, 32-bit CRC32C checksum of the object. This will only be present if it was uploaded with the object. With multipart uploads, this may not be a checksum value of the object. For more information about how checksums are calculated with multipart uploads, see Checking object integrity in the Amazon S3 User Guide.

", + "UploadPartOutput$ChecksumCRC32C": "

The base64-encoded, 32-bit CRC32C checksum of the object. This will only be present if it was uploaded with the object. When you use an API operation on an object that was uploaded using multipart uploads, this value may not be a direct checksum value of the full object. Instead, it's a calculation based on the checksum values of each individual part. For more information about how checksums are calculated with multipart uploads, see Checking object integrity in the Amazon S3 User Guide.

", "UploadPartRequest$ChecksumCRC32C": "

This header can be used as a data integrity check to verify that the data received is the same data that was originally sent. This header specifies the base64-encoded, 32-bit CRC32C checksum of the object. For more information, see Checking object integrity in the Amazon S3 User Guide.

", "WriteGetObjectResponseRequest$ChecksumCRC32C": "

This header can be used as a data integrity check to verify that the data received is the same data that was originally sent. This specifies the base64-encoded, 32-bit CRC32C checksum of the object returned by the Object Lambda function. This may not match the checksum for the object stored in Amazon S3. Amazon S3 will perform validation of the checksum values only when the original GetObject request required checksum validation. For more information about checksums, see Checking object integrity in the Amazon S3 User Guide.

Only one checksum header can be specified at a time. If you supply multiple checksum headers, this request will fail.

" } @@ -743,19 +777,19 @@ "ChecksumSHA1": { "base": null, "refs": { - "Checksum$ChecksumSHA1": "

The base64-encoded, 160-bit SHA-1 digest of the object. This will only be present if it was uploaded with the object. With multipart uploads, this may not be a checksum value of the object. For more information about how checksums are calculated with multipart uploads, see Checking object integrity in the Amazon S3 User Guide.

", - "CompleteMultipartUploadOutput$ChecksumSHA1": "

The base64-encoded, 160-bit SHA-1 digest of the object. This will only be present if it was uploaded with the object. With multipart uploads, this may not be a checksum value of the object. For more information about how checksums are calculated with multipart uploads, see Checking object integrity in the Amazon S3 User Guide.

", + "Checksum$ChecksumSHA1": "

The base64-encoded, 160-bit SHA-1 digest of the object. This will only be present if it was uploaded with the object. When you use the API operation on an object that was uploaded using multipart uploads, this value may not be a direct checksum value of the full object. Instead, it's a calculation based on the checksum values of each individual part. For more information about how checksums are calculated with multipart uploads, see Checking object integrity in the Amazon S3 User Guide.

", + "CompleteMultipartUploadOutput$ChecksumSHA1": "

The base64-encoded, 160-bit SHA-1 digest of the object. This will only be present if it was uploaded with the object. When you use the API operation on an object that was uploaded using multipart uploads, this value may not be a direct checksum value of the full object. Instead, it's a calculation based on the checksum values of each individual part. For more information about how checksums are calculated with multipart uploads, see Checking object integrity in the Amazon S3 User Guide.

", "CompleteMultipartUploadRequest$ChecksumSHA1": "

This header can be used as a data integrity check to verify that the data received is the same data that was originally sent. This header specifies the base64-encoded, 160-bit SHA-1 digest of the object. For more information, see Checking object integrity in the Amazon S3 User Guide.

", - "CompletedPart$ChecksumSHA1": "

The base64-encoded, 160-bit SHA-1 digest of the object. This will only be present if it was uploaded with the object. With multipart uploads, this may not be a checksum value of the object. For more information about how checksums are calculated with multipart uploads, see Checking object integrity in the Amazon S3 User Guide.

", - "CopyObjectResult$ChecksumSHA1": "

The base64-encoded, 160-bit SHA-1 digest of the object. This will only be present if it was uploaded with the object. With multipart uploads, this may not be a checksum value of the object. For more information about how checksums are calculated with multipart uploads, see Checking object integrity in the Amazon S3 User Guide.

", - "CopyPartResult$ChecksumSHA1": "

The base64-encoded, 160-bit SHA-1 digest of the object. This will only be present if it was uploaded with the object. With multipart uploads, this may not be a checksum value of the object. For more information about how checksums are calculated with multipart uploads, see Checking object integrity in the Amazon S3 User Guide.

", - "GetObjectOutput$ChecksumSHA1": "

The base64-encoded, 160-bit SHA-1 digest of the object. This will only be present if it was uploaded with the object. With multipart uploads, this may not be a checksum value of the object. For more information about how checksums are calculated with multipart uploads, see Checking object integrity in the Amazon S3 User Guide.

", - "HeadObjectOutput$ChecksumSHA1": "

The base64-encoded, 160-bit SHA-1 digest of the object. This will only be present if it was uploaded with the object. With multipart uploads, this may not be a checksum value of the object. For more information about how checksums are calculated with multipart uploads, see Checking object integrity in the Amazon S3 User Guide.

", - "ObjectPart$ChecksumSHA1": "

The base64-encoded, 160-bit SHA-1 digest of the object. This will only be present if it was uploaded with the object. With multipart uploads, this may not be a checksum value of the object. For more information about how checksums are calculated with multipart uploads, see Checking object integrity in the Amazon S3 User Guide.

", - "Part$ChecksumSHA1": "

The base64-encoded, 160-bit SHA-1 digest of the object. This will only be present if it was uploaded with the object. With multipart uploads, this may not be a checksum value of the object. For more information about how checksums are calculated with multipart uploads, see Checking object integrity in the Amazon S3 User Guide.

", - "PutObjectOutput$ChecksumSHA1": "

The base64-encoded, 160-bit SHA-1 digest of the object. This will only be present if it was uploaded with the object. With multipart uploads, this may not be a checksum value of the object. For more information about how checksums are calculated with multipart uploads, see Checking object integrity in the Amazon S3 User Guide.

", + "CompletedPart$ChecksumSHA1": "

The base64-encoded, 160-bit SHA-1 digest of the object. This will only be present if it was uploaded with the object. When you use the API operation on an object that was uploaded using multipart uploads, this value may not be a direct checksum value of the full object. Instead, it's a calculation based on the checksum values of each individual part. For more information about how checksums are calculated with multipart uploads, see Checking object integrity in the Amazon S3 User Guide.

", + "CopyObjectResult$ChecksumSHA1": "

The base64-encoded, 160-bit SHA-1 digest of the object. This will only be present if it was uploaded with the object. For more information, see Checking object integrity in the Amazon S3 User Guide.

", + "CopyPartResult$ChecksumSHA1": "

The base64-encoded, 160-bit SHA-1 digest of the object. This will only be present if it was uploaded with the object. When you use the API operation on an object that was uploaded using multipart uploads, this value may not be a direct checksum value of the full object. Instead, it's a calculation based on the checksum values of each individual part. For more information about how checksums are calculated with multipart uploads, see Checking object integrity in the Amazon S3 User Guide.

", + "GetObjectOutput$ChecksumSHA1": "

The base64-encoded, 160-bit SHA-1 digest of the object. This will only be present if it was uploaded with the object. For more information, see Checking object integrity in the Amazon S3 User Guide.

", + "HeadObjectOutput$ChecksumSHA1": "

The base64-encoded, 160-bit SHA-1 digest of the object. This will only be present if it was uploaded with the object. When you use the API operation on an object that was uploaded using multipart uploads, this value may not be a direct checksum value of the full object. Instead, it's a calculation based on the checksum values of each individual part. For more information about how checksums are calculated with multipart uploads, see Checking object integrity in the Amazon S3 User Guide.

", + "ObjectPart$ChecksumSHA1": "

The base64-encoded, 160-bit SHA-1 digest of the object. This will only be present if it was uploaded with the object. When you use the API operation on an object that was uploaded using multipart uploads, this value may not be a direct checksum value of the full object. Instead, it's a calculation based on the checksum values of each individual part. For more information about how checksums are calculated with multipart uploads, see Checking object integrity in the Amazon S3 User Guide.

", + "Part$ChecksumSHA1": "

The base64-encoded, 160-bit SHA-1 digest of the object. This will only be present if it was uploaded with the object. When you use the API operation on an object that was uploaded using multipart uploads, this value may not be a direct checksum value of the full object. Instead, it's a calculation based on the checksum values of each individual part. For more information about how checksums are calculated with multipart uploads, see Checking object integrity in the Amazon S3 User Guide.

", + "PutObjectOutput$ChecksumSHA1": "

The base64-encoded, 160-bit SHA-1 digest of the object. This will only be present if it was uploaded with the object. When you use the API operation on an object that was uploaded using multipart uploads, this value may not be a direct checksum value of the full object. Instead, it's a calculation based on the checksum values of each individual part. For more information about how checksums are calculated with multipart uploads, see Checking object integrity in the Amazon S3 User Guide.

", "PutObjectRequest$ChecksumSHA1": "

This header can be used as a data integrity check to verify that the data received is the same data that was originally sent. This header specifies the base64-encoded, 160-bit SHA-1 digest of the object. For more information, see Checking object integrity in the Amazon S3 User Guide.

", - "UploadPartOutput$ChecksumSHA1": "

The base64-encoded, 160-bit SHA-1 digest of the object. This will only be present if it was uploaded with the object. With multipart uploads, this may not be a checksum value of the object. For more information about how checksums are calculated with multipart uploads, see Checking object integrity in the Amazon S3 User Guide.

", + "UploadPartOutput$ChecksumSHA1": "

The base64-encoded, 160-bit SHA-1 digest of the object. This will only be present if it was uploaded with the object. When you use the API operation on an object that was uploaded using multipart uploads, this value may not be a direct checksum value of the full object. Instead, it's a calculation based on the checksum values of each individual part. For more information about how checksums are calculated with multipart uploads, see Checking object integrity in the Amazon S3 User Guide.

", "UploadPartRequest$ChecksumSHA1": "

This header can be used as a data integrity check to verify that the data received is the same data that was originally sent. This header specifies the base64-encoded, 160-bit SHA-1 digest of the object. For more information, see Checking object integrity in the Amazon S3 User Guide.

", "WriteGetObjectResponseRequest$ChecksumSHA1": "

This header can be used as a data integrity check to verify that the data received is the same data that was originally sent. This specifies the base64-encoded, 160-bit SHA-1 digest of the object returned by the Object Lambda function. This may not match the checksum for the object stored in Amazon S3. Amazon S3 will perform validation of the checksum values only when the original GetObject request required checksum validation. For more information about checksums, see Checking object integrity in the Amazon S3 User Guide.

Only one checksum header can be specified at a time. If you supply multiple checksum headers, this request will fail.

" } @@ -763,19 +797,19 @@ "ChecksumSHA256": { "base": null, "refs": { - "Checksum$ChecksumSHA256": "

The base64-encoded, 256-bit SHA-256 digest of the object. This will only be present if it was uploaded with the object. With multipart uploads, this may not be a checksum value of the object. For more information about how checksums are calculated with multipart uploads, see Checking object integrity in the Amazon S3 User Guide.

", - "CompleteMultipartUploadOutput$ChecksumSHA256": "

The base64-encoded, 256-bit SHA-256 digest of the object. This will only be present if it was uploaded with the object. With multipart uploads, this may not be a checksum value of the object. For more information about how checksums are calculated with multipart uploads, see Checking object integrity in the Amazon S3 User Guide.

", + "Checksum$ChecksumSHA256": "

The base64-encoded, 256-bit SHA-256 digest of the object. This will only be present if it was uploaded with the object. When you use an API operation on an object that was uploaded using multipart uploads, this value may not be a direct checksum value of the full object. Instead, it's a calculation based on the checksum values of each individual part. For more information about how checksums are calculated with multipart uploads, see Checking object integrity in the Amazon S3 User Guide.

", + "CompleteMultipartUploadOutput$ChecksumSHA256": "

The base64-encoded, 256-bit SHA-256 digest of the object. This will only be present if it was uploaded with the object. When you use an API operation on an object that was uploaded using multipart uploads, this value may not be a direct checksum value of the full object. Instead, it's a calculation based on the checksum values of each individual part. For more information about how checksums are calculated with multipart uploads, see Checking object integrity in the Amazon S3 User Guide.

", "CompleteMultipartUploadRequest$ChecksumSHA256": "

This header can be used as a data integrity check to verify that the data received is the same data that was originally sent. This header specifies the base64-encoded, 256-bit SHA-256 digest of the object. For more information, see Checking object integrity in the Amazon S3 User Guide.

", - "CompletedPart$ChecksumSHA256": "

The base64-encoded, 256-bit SHA-256 digest of the object. This will only be present if it was uploaded with the object. With multipart uploads, this may not be a checksum value of the object. For more information about how checksums are calculated with multipart uploads, see Checking object integrity in the Amazon S3 User Guide.

", - "CopyObjectResult$ChecksumSHA256": "

The base64-encoded, 256-bit SHA-256 digest of the object. This will only be present if it was uploaded with the object. With multipart uploads, this may not be a checksum value of the object. For more information about how checksums are calculated with multipart uploads, see Checking object integrity in the Amazon S3 User Guide.

", - "CopyPartResult$ChecksumSHA256": "

The base64-encoded, 256-bit SHA-256 digest of the object. This will only be present if it was uploaded with the object. With multipart uploads, this may not be a checksum value of the object. For more information about how checksums are calculated with multipart uploads, see Checking object integrity in the Amazon S3 User Guide.

", - "GetObjectOutput$ChecksumSHA256": "

The base64-encoded, 256-bit SHA-256 digest of the object. This will only be present if it was uploaded with the object. With multipart uploads, this may not be a checksum value of the object. For more information about how checksums are calculated with multipart uploads, see Checking object integrity in the Amazon S3 User Guide.

", - "HeadObjectOutput$ChecksumSHA256": "

The base64-encoded, 256-bit SHA-256 digest of the object. This will only be present if it was uploaded with the object. With multipart uploads, this may not be a checksum value of the object. For more information about how checksums are calculated with multipart uploads, see Checking object integrity in the Amazon S3 User Guide.

", - "ObjectPart$ChecksumSHA256": "

The base64-encoded, 256-bit SHA-256 digest of the object. This will only be present if it was uploaded with the object. With multipart uploads, this may not be a checksum value of the object. For more information about how checksums are calculated with multipart uploads, see Checking object integrity in the Amazon S3 User Guide.

", + "CompletedPart$ChecksumSHA256": "

The base64-encoded, 256-bit SHA-256 digest of the object. This will only be present if it was uploaded with the object. When you use an API operation on an object that was uploaded using multipart uploads, this value may not be a direct checksum value of the full object. Instead, it's a calculation based on the checksum values of each individual part. For more information about how checksums are calculated with multipart uploads, see Checking object integrity in the Amazon S3 User Guide.

", + "CopyObjectResult$ChecksumSHA256": "

The base64-encoded, 256-bit SHA-256 digest of the object. This will only be present if it was uploaded with the object. For more information, see Checking object integrity in the Amazon S3 User Guide.

", + "CopyPartResult$ChecksumSHA256": "

The base64-encoded, 256-bit SHA-256 digest of the object. This will only be present if it was uploaded with the object. When you use an API operation on an object that was uploaded using multipart uploads, this value may not be a direct checksum value of the full object. Instead, it's a calculation based on the checksum values of each individual part. For more information about how checksums are calculated with multipart uploads, see Checking object integrity in the Amazon S3 User Guide.

", + "GetObjectOutput$ChecksumSHA256": "

The base64-encoded, 256-bit SHA-256 digest of the object. This will only be present if it was uploaded with the object. For more information, see Checking object integrity in the Amazon S3 User Guide.

", + "HeadObjectOutput$ChecksumSHA256": "

The base64-encoded, 256-bit SHA-256 digest of the object. This will only be present if it was uploaded with the object. When you use an API operation on an object that was uploaded using multipart uploads, this value may not be a direct checksum value of the full object. Instead, it's a calculation based on the checksum values of each individual part. For more information about how checksums are calculated with multipart uploads, see Checking object integrity in the Amazon S3 User Guide.

", + "ObjectPart$ChecksumSHA256": "

The base64-encoded, 256-bit SHA-256 digest of the object. This will only be present if it was uploaded with the object. When you use an API operation on an object that was uploaded using multipart uploads, this value may not be a direct checksum value of the full object. Instead, it's a calculation based on the checksum values of each individual part. For more information about how checksums are calculated with multipart uploads, see Checking object integrity in the Amazon S3 User Guide.

", "Part$ChecksumSHA256": "

This header can be used as a data integrity check to verify that the data received is the same data that was originally sent. This header specifies the base64-encoded, 256-bit SHA-256 digest of the object. For more information, see Checking object integrity in the Amazon S3 User Guide.

", - "PutObjectOutput$ChecksumSHA256": "

The base64-encoded, 256-bit SHA-256 digest of the object. This will only be present if it was uploaded with the object. With multipart uploads, this may not be a checksum value of the object. For more information about how checksums are calculated with multipart uploads, see Checking object integrity in the Amazon S3 User Guide.

", + "PutObjectOutput$ChecksumSHA256": "

The base64-encoded, 256-bit SHA-256 digest of the object. This will only be present if it was uploaded with the object. When you use an API operation on an object that was uploaded using multipart uploads, this value may not be a direct checksum value of the full object. Instead, it's a calculation based on the checksum values of each individual part. For more information about how checksums are calculated with multipart uploads, see Checking object integrity in the Amazon S3 User Guide.

", "PutObjectRequest$ChecksumSHA256": "

This header can be used as a data integrity check to verify that the data received is the same data that was originally sent. This header specifies the base64-encoded, 256-bit SHA-256 digest of the object. For more information, see Checking object integrity in the Amazon S3 User Guide.

", - "UploadPartOutput$ChecksumSHA256": "

The base64-encoded, 256-bit SHA-256 digest of the object. This will only be present if it was uploaded with the object. With multipart uploads, this may not be a checksum value of the object. For more information about how checksums are calculated with multipart uploads, see Checking object integrity in the Amazon S3 User Guide.

", + "UploadPartOutput$ChecksumSHA256": "

The base64-encoded, 256-bit SHA-256 digest of the object. This will only be present if it was uploaded with the object. When you use an API operation on an object that was uploaded using multipart uploads, this value may not be a direct checksum value of the full object. Instead, it's a calculation based on the checksum values of each individual part. For more information about how checksums are calculated with multipart uploads, see Checking object integrity in the Amazon S3 User Guide.

", "UploadPartRequest$ChecksumSHA256": "

This header can be used as a data integrity check to verify that the data received is the same data that was originally sent. This header specifies the base64-encoded, 256-bit SHA-256 digest of the object. For more information, see Checking object integrity in the Amazon S3 User Guide.

", "WriteGetObjectResponseRequest$ChecksumSHA256": "

This header can be used as a data integrity check to verify that the data received is the same data that was originally sent. This specifies the base64-encoded, 256-bit SHA-256 digest of the object returned by the Object Lambda function. This may not match the checksum for the object stored in Amazon S3. Amazon S3 will perform validation of the checksum values only when the original GetObject request required checksum validation. For more information about checksums, see Checking object integrity in the Amazon S3 User Guide.

Only one checksum header can be specified at a time. If you supply multiple checksum headers, this request will fail.

" } @@ -819,10 +853,10 @@ "CommonPrefixList": { "base": null, "refs": { - "ListMultipartUploadsOutput$CommonPrefixes": "

If you specify a delimiter in the request, then the result returns each distinct key prefix containing the delimiter in a CommonPrefixes element. The distinct key prefixes are returned in the Prefix child element.

", + "ListMultipartUploadsOutput$CommonPrefixes": "

If you specify a delimiter in the request, then the result returns each distinct key prefix containing the delimiter in a CommonPrefixes element. The distinct key prefixes are returned in the Prefix child element.

Directory buckets - For directory buckets, only prefixes that end in a delimiter (/) are supported.

", "ListObjectVersionsOutput$CommonPrefixes": "

All of the keys rolled up into a common prefix count as a single return when calculating the number of returns.

", "ListObjectsOutput$CommonPrefixes": "

All of the keys (up to 1,000) rolled up in a common prefix count as a single return when calculating the number of returns.

A response can contain CommonPrefixes only if you specify a delimiter.

CommonPrefixes contains all (if there are any) keys between Prefix and the next occurrence of the string specified by the delimiter.

CommonPrefixes lists keys that act like subdirectories in the directory specified by Prefix.

For example, if the prefix is notes/ and the delimiter is a slash (/), as in notes/summer/july, the common prefix is notes/summer/. All of the keys that roll up into a common prefix count as a single return when calculating the number of returns.

", - "ListObjectsV2Output$CommonPrefixes": "

All of the keys (up to 1,000) rolled up into a common prefix count as a single return when calculating the number of returns.

A response can contain CommonPrefixes only if you specify a delimiter.

CommonPrefixes contains all (if there are any) keys between Prefix and the next occurrence of the string specified by a delimiter.

CommonPrefixes lists keys that act like subdirectories in the directory specified by Prefix.

For example, if the prefix is notes/ and the delimiter is a slash (/) as in notes/summer/july, the common prefix is notes/summer/. All of the keys that roll up into a common prefix count as a single return when calculating the number of returns.

" + "ListObjectsV2Output$CommonPrefixes": "

All of the keys (up to 1,000) that share the same prefix are grouped together. When counting the total numbers of returns by this API operation, this group of keys is considered as one item.

A response can contain CommonPrefixes only if you specify a delimiter.

CommonPrefixes contains all (if there are any) keys between Prefix and the next occurrence of the string specified by a delimiter.

CommonPrefixes lists keys that act like subdirectories in the directory specified by Prefix.

For example, if the prefix is notes/ and the delimiter is a slash (/) as in notes/summer/july, the common prefix is notes/summer/. All of the keys that roll up into a common prefix count as a single return when calculating the number of returns.

" } }, "CompleteMultipartUploadOutput": { @@ -868,13 +902,13 @@ "ConfirmRemoveSelfBucketAccess": { "base": null, "refs": { - "PutBucketPolicyRequest$ConfirmRemoveSelfBucketAccess": "

Set this parameter to true to confirm that you want to remove your permissions to change this bucket policy in the future.

" + "PutBucketPolicyRequest$ConfirmRemoveSelfBucketAccess": "

Set this parameter to true to confirm that you want to remove your permissions to change this bucket policy in the future.

This functionality is not supported for directory buckets.

" } }, "ContentDisposition": { "base": null, "refs": { - "CopyObjectRequest$ContentDisposition": "

Specifies presentational information for the object.

", + "CopyObjectRequest$ContentDisposition": "

Specifies presentational information for the object. Indicates whether an object should be displayed in a web browser or downloaded as a file. It allows specifying the desired filename for the downloaded file.

", "CreateMultipartUploadRequest$ContentDisposition": "

Specifies presentational information for the object.

", "GetObjectOutput$ContentDisposition": "

Specifies presentational information for the object.

", "HeadObjectOutput$ContentDisposition": "

Specifies presentational information for the object.

", @@ -885,10 +919,10 @@ "ContentEncoding": { "base": null, "refs": { - "CopyObjectRequest$ContentEncoding": "

Specifies what content encodings have been applied to the object and thus what decoding mechanisms must be applied to obtain the media-type referenced by the Content-Type header field.

", - "CreateMultipartUploadRequest$ContentEncoding": "

Specifies what content encodings have been applied to the object and thus what decoding mechanisms must be applied to obtain the media-type referenced by the Content-Type header field.

", - "GetObjectOutput$ContentEncoding": "

Specifies what content encodings have been applied to the object and thus what decoding mechanisms must be applied to obtain the media-type referenced by the Content-Type header field.

", - "HeadObjectOutput$ContentEncoding": "

Specifies what content encodings have been applied to the object and thus what decoding mechanisms must be applied to obtain the media-type referenced by the Content-Type header field.

", + "CopyObjectRequest$ContentEncoding": "

Specifies what content encodings have been applied to the object and thus what decoding mechanisms must be applied to obtain the media-type referenced by the Content-Type header field.

For directory buckets, only the aws-chunked value is supported in this header field.

", + "CreateMultipartUploadRequest$ContentEncoding": "

Specifies what content encodings have been applied to the object and thus what decoding mechanisms must be applied to obtain the media-type referenced by the Content-Type header field.

For directory buckets, only the aws-chunked value is supported in this header field.

", + "GetObjectOutput$ContentEncoding": "

Indicates what content encodings have been applied to the object and thus what decoding mechanisms must be applied to obtain the media-type referenced by the Content-Type header field.

", + "HeadObjectOutput$ContentEncoding": "

Indicates what content encodings have been applied to the object and thus what decoding mechanisms must be applied to obtain the media-type referenced by the Content-Type header field.

", "PutObjectRequest$ContentEncoding": "

Specifies what content encodings have been applied to the object and thus what decoding mechanisms must be applied to obtain the media-type referenced by the Content-Type header field. For more information, see https://www.rfc-editor.org/rfc/rfc9110.html#field.content-encoding.

", "WriteGetObjectResponseRequest$ContentEncoding": "

Specifies what content encodings have been applied to the object and thus what decoding mechanisms must be applied to obtain the media-type referenced by the Content-Type header field.

" } @@ -897,7 +931,7 @@ "base": null, "refs": { "CopyObjectRequest$ContentLanguage": "

The language the content is in.

", - "CreateMultipartUploadRequest$ContentLanguage": "

The language the content is in.

", + "CreateMultipartUploadRequest$ContentLanguage": "

The language that the content is in.

", "GetObjectOutput$ContentLanguage": "

The language the content is in.

", "HeadObjectOutput$ContentLanguage": "

The language the content is in.

", "PutObjectRequest$ContentLanguage": "

The language the content is in.

", @@ -924,7 +958,7 @@ "PutBucketLoggingRequest$ContentMD5": "

The MD5 hash of the PutBucketLogging request body.

For requests made using the Amazon Web Services Command Line Interface (CLI) or Amazon Web Services SDKs, this field is calculated automatically.

", "PutBucketNotificationRequest$ContentMD5": "

The MD5 hash of the PutPublicAccessBlock request body.

For requests made using the Amazon Web Services Command Line Interface (CLI) or Amazon Web Services SDKs, this field is calculated automatically.

", "PutBucketOwnershipControlsRequest$ContentMD5": "

The MD5 hash of the OwnershipControls request body.

For requests made using the Amazon Web Services Command Line Interface (CLI) or Amazon Web Services SDKs, this field is calculated automatically.

", - "PutBucketPolicyRequest$ContentMD5": "

The MD5 hash of the request body.

For requests made using the Amazon Web Services Command Line Interface (CLI) or Amazon Web Services SDKs, this field is calculated automatically.

", + "PutBucketPolicyRequest$ContentMD5": "

The MD5 hash of the request body.

For requests made using the Amazon Web Services Command Line Interface (CLI) or Amazon Web Services SDKs, this field is calculated automatically.

This functionality is not supported for directory buckets.

", "PutBucketReplicationRequest$ContentMD5": "

The base64-encoded 128-bit MD5 digest of the data. You must use this header as a message integrity check to verify that the request body was not corrupted in transit. For more information, see RFC 1864.

For requests made using the Amazon Web Services Command Line Interface (CLI) or Amazon Web Services SDKs, this field is calculated automatically.

", "PutBucketRequestPaymentRequest$ContentMD5": "

The base64-encoded 128-bit MD5 digest of the data. You must use this header as a message integrity check to verify that the request body was not corrupted in transit. For more information, see RFC 1864.

For requests made using the Amazon Web Services Command Line Interface (CLI) or Amazon Web Services SDKs, this field is calculated automatically.

", "PutBucketTaggingRequest$ContentMD5": "

The base64-encoded 128-bit MD5 digest of the data. You must use this header as a message integrity check to verify that the request body was not corrupted in transit. For more information, see RFC 1864.

For requests made using the Amazon Web Services Command Line Interface (CLI) or Amazon Web Services SDKs, this field is calculated automatically.

", @@ -933,11 +967,11 @@ "PutObjectAclRequest$ContentMD5": "

The base64-encoded 128-bit MD5 digest of the data. This header must be used as a message integrity check to verify that the request body was not corrupted in transit. For more information, go to RFC 1864.>

For requests made using the Amazon Web Services Command Line Interface (CLI) or Amazon Web Services SDKs, this field is calculated automatically.

", "PutObjectLegalHoldRequest$ContentMD5": "

The MD5 hash for the request body.

For requests made using the Amazon Web Services Command Line Interface (CLI) or Amazon Web Services SDKs, this field is calculated automatically.

", "PutObjectLockConfigurationRequest$ContentMD5": "

The MD5 hash for the request body.

For requests made using the Amazon Web Services Command Line Interface (CLI) or Amazon Web Services SDKs, this field is calculated automatically.

", - "PutObjectRequest$ContentMD5": "

The base64-encoded 128-bit MD5 digest of the message (without the headers) according to RFC 1864. This header can be used as a message integrity check to verify that the data is the same data that was originally sent. Although it is optional, we recommend using the Content-MD5 mechanism as an end-to-end integrity check. For more information about REST request authentication, see REST Authentication.

", + "PutObjectRequest$ContentMD5": "

The base64-encoded 128-bit MD5 digest of the message (without the headers) according to RFC 1864. This header can be used as a message integrity check to verify that the data is the same data that was originally sent. Although it is optional, we recommend using the Content-MD5 mechanism as an end-to-end integrity check. For more information about REST request authentication, see REST Authentication.

The Content-MD5 header is required for any request to upload an object with a retention period configured using Amazon S3 Object Lock. For more information about Amazon S3 Object Lock, see Amazon S3 Object Lock Overview in the Amazon S3 User Guide.

This functionality is not supported for directory buckets.

", "PutObjectRetentionRequest$ContentMD5": "

The MD5 hash for the request body.

For requests made using the Amazon Web Services Command Line Interface (CLI) or Amazon Web Services SDKs, this field is calculated automatically.

", "PutObjectTaggingRequest$ContentMD5": "

The MD5 hash for the request body.

For requests made using the Amazon Web Services Command Line Interface (CLI) or Amazon Web Services SDKs, this field is calculated automatically.

", "PutPublicAccessBlockRequest$ContentMD5": "

The MD5 hash of the PutPublicAccessBlock request body.

For requests made using the Amazon Web Services Command Line Interface (CLI) or Amazon Web Services SDKs, this field is calculated automatically.

", - "UploadPartRequest$ContentMD5": "

The base64-encoded 128-bit MD5 digest of the part data. This parameter is auto-populated when using the command from the CLI. This parameter is required if object lock parameters are specified.

" + "UploadPartRequest$ContentMD5": "

The base64-encoded 128-bit MD5 digest of the part data. This parameter is auto-populated when using the command from the CLI. This parameter is required if object lock parameters are specified.

This functionality is not supported for directory buckets.

" } }, "ContentRange": { @@ -950,7 +984,7 @@ "ContentType": { "base": null, "refs": { - "CopyObjectRequest$ContentType": "

A standard MIME type describing the format of the object data.

", + "CopyObjectRequest$ContentType": "

A standard MIME type that describes the format of the object data.

", "CreateMultipartUploadRequest$ContentType": "

A standard MIME type describing the format of the object data.

", "GetObjectOutput$ContentType": "

A standard MIME type describing the format of the object data.

", "HeadObjectOutput$ContentType": "

A standard MIME type describing the format of the object data.

", @@ -989,36 +1023,36 @@ "CopySource": { "base": null, "refs": { - "CopyObjectRequest$CopySource": "

Specifies the source object for the copy operation. You specify the value in one of two formats, depending on whether you want to access the source object through an access point:

To copy a specific version of an object, append ?versionId=<version-id> to the value (for example, awsexamplebucket/reports/january.pdf?versionId=QUpfdndhfd8438MNFDN93jdnJFkdmqnh893). If you don't specify a version ID, Amazon S3 copies the latest version of the source object.

", - "UploadPartCopyRequest$CopySource": "

Specifies the source object for the copy operation. You specify the value in one of two formats, depending on whether you want to access the source object through an access point:

To copy a specific version of an object, append ?versionId=<version-id> to the value (for example, awsexamplebucket/reports/january.pdf?versionId=QUpfdndhfd8438MNFDN93jdnJFkdmqnh893). If you don't specify a version ID, Amazon S3 copies the latest version of the source object.

" + "CopyObjectRequest$CopySource": "

Specifies the source object for the copy operation. The source object can be up to 5 GB. If the source object is an object that was uploaded by using a multipart upload, the object copy will be a single part object after the source object is copied to the destination bucket.

You specify the value of the copy source in one of two formats, depending on whether you want to access the source object through an access point:

If your source bucket versioning is enabled, the x-amz-copy-source header by default identifies the current version of an object to copy. If the current version is a delete marker, Amazon S3 behaves as if the object was deleted. To copy a different version, use the versionId query parameter. Specifically, append ?versionId=<version-id> to the value (for example, awsexamplebucket/reports/january.pdf?versionId=QUpfdndhfd8438MNFDN93jdnJFkdmqnh893). If you don't specify a version ID, Amazon S3 copies the latest version of the source object.

If you enable versioning on the destination bucket, Amazon S3 generates a unique version ID for the copied object. This version ID is different from the version ID of the source object. Amazon S3 returns the version ID of the copied object in the x-amz-version-id response header in the response.

If you do not enable versioning or suspend it on the destination bucket, the version ID that Amazon S3 generates in the x-amz-version-id response header is always null.

Directory buckets - S3 Versioning isn't enabled and supported for directory buckets.

", + "UploadPartCopyRequest$CopySource": "

Specifies the source object for the copy operation. You specify the value in one of two formats, depending on whether you want to access the source object through an access point:

If your bucket has versioning enabled, you could have multiple versions of the same object. By default, x-amz-copy-source identifies the current version of the source object to copy. To copy a specific version of the source object to copy, append ?versionId=<version-id> to the x-amz-copy-source request header (for example, x-amz-copy-source: /awsexamplebucket/reports/january.pdf?versionId=QUpfdndhfd8438MNFDN93jdnJFkdmqnh893).

If the current version is a delete marker and you don't specify a versionId in the x-amz-copy-source request header, Amazon S3 returns a 404 Not Found error, because the object does not exist. If you specify versionId in the x-amz-copy-source and the versionId is a delete marker, Amazon S3 returns an HTTP 400 Bad Request error, because you are not allowed to specify a delete marker as a version for the x-amz-copy-source.

Directory buckets - S3 Versioning isn't enabled and supported for directory buckets.

" } }, "CopySourceIfMatch": { "base": null, "refs": { - "CopyObjectRequest$CopySourceIfMatch": "

Copies the object if its entity tag (ETag) matches the specified tag.

", - "UploadPartCopyRequest$CopySourceIfMatch": "

Copies the object if its entity tag (ETag) matches the specified tag.

" + "CopyObjectRequest$CopySourceIfMatch": "

Copies the object if its entity tag (ETag) matches the specified tag.

If both the x-amz-copy-source-if-match and x-amz-copy-source-if-unmodified-since headers are present in the request and evaluate as follows, Amazon S3 returns 200 OK and copies the data:

", + "UploadPartCopyRequest$CopySourceIfMatch": "

Copies the object if its entity tag (ETag) matches the specified tag.

If both of the x-amz-copy-source-if-match and x-amz-copy-source-if-unmodified-since headers are present in the request as follows:

x-amz-copy-source-if-match condition evaluates to true, and;

x-amz-copy-source-if-unmodified-since condition evaluates to false;

Amazon S3 returns 200 OK and copies the data.

" } }, "CopySourceIfModifiedSince": { "base": null, "refs": { - "CopyObjectRequest$CopySourceIfModifiedSince": "

Copies the object if it has been modified since the specified time.

", - "UploadPartCopyRequest$CopySourceIfModifiedSince": "

Copies the object if it has been modified since the specified time.

" + "CopyObjectRequest$CopySourceIfModifiedSince": "

Copies the object if it has been modified since the specified time.

If both the x-amz-copy-source-if-none-match and x-amz-copy-source-if-modified-since headers are present in the request and evaluate as follows, Amazon S3 returns the 412 Precondition Failed response code:

", + "UploadPartCopyRequest$CopySourceIfModifiedSince": "

Copies the object if it has been modified since the specified time.

If both of the x-amz-copy-source-if-none-match and x-amz-copy-source-if-modified-since headers are present in the request as follows:

x-amz-copy-source-if-none-match condition evaluates to false, and;

x-amz-copy-source-if-modified-since condition evaluates to true;

Amazon S3 returns 412 Precondition Failed response code.

" } }, "CopySourceIfNoneMatch": { "base": null, "refs": { - "CopyObjectRequest$CopySourceIfNoneMatch": "

Copies the object if its entity tag (ETag) is different than the specified ETag.

", - "UploadPartCopyRequest$CopySourceIfNoneMatch": "

Copies the object if its entity tag (ETag) is different than the specified ETag.

" + "CopyObjectRequest$CopySourceIfNoneMatch": "

Copies the object if its entity tag (ETag) is different than the specified ETag.

If both the x-amz-copy-source-if-none-match and x-amz-copy-source-if-modified-since headers are present in the request and evaluate as follows, Amazon S3 returns the 412 Precondition Failed response code:

", + "UploadPartCopyRequest$CopySourceIfNoneMatch": "

Copies the object if its entity tag (ETag) is different than the specified ETag.

If both of the x-amz-copy-source-if-none-match and x-amz-copy-source-if-modified-since headers are present in the request as follows:

x-amz-copy-source-if-none-match condition evaluates to false, and;

x-amz-copy-source-if-modified-since condition evaluates to true;

Amazon S3 returns 412 Precondition Failed response code.

" } }, "CopySourceIfUnmodifiedSince": { "base": null, "refs": { - "CopyObjectRequest$CopySourceIfUnmodifiedSince": "

Copies the object if it hasn't been modified since the specified time.

", - "UploadPartCopyRequest$CopySourceIfUnmodifiedSince": "

Copies the object if it hasn't been modified since the specified time.

" + "CopyObjectRequest$CopySourceIfUnmodifiedSince": "

Copies the object if it hasn't been modified since the specified time.

If both the x-amz-copy-source-if-match and x-amz-copy-source-if-unmodified-since headers are present in the request and evaluate as follows, Amazon S3 returns 200 OK and copies the data:

", + "UploadPartCopyRequest$CopySourceIfUnmodifiedSince": "

Copies the object if it hasn't been modified since the specified time.

If both of the x-amz-copy-source-if-match and x-amz-copy-source-if-unmodified-since headers are present in the request as follows:

x-amz-copy-source-if-match condition evaluates to true, and;

x-amz-copy-source-if-unmodified-since condition evaluates to false;

Amazon S3 returns 200 OK and copies the data.

" } }, "CopySourceRange": { @@ -1030,29 +1064,29 @@ "CopySourceSSECustomerAlgorithm": { "base": null, "refs": { - "CopyObjectRequest$CopySourceSSECustomerAlgorithm": "

Specifies the algorithm to use when decrypting the source object (for example, AES256).

", - "UploadPartCopyRequest$CopySourceSSECustomerAlgorithm": "

Specifies the algorithm to use when decrypting the source object (for example, AES256).

" + "CopyObjectRequest$CopySourceSSECustomerAlgorithm": "

Specifies the algorithm to use when decrypting the source object (for example, AES256).

If the source object for the copy is stored in Amazon S3 using SSE-C, you must provide the necessary encryption information in your request so that Amazon S3 can decrypt the object for copying.

This functionality is not supported when the source object is in a directory bucket.

", + "UploadPartCopyRequest$CopySourceSSECustomerAlgorithm": "

Specifies the algorithm to use when decrypting the source object (for example, AES256).

This functionality is not supported when the source object is in a directory bucket.

" } }, "CopySourceSSECustomerKey": { "base": null, "refs": { - "CopyObjectRequest$CopySourceSSECustomerKey": "

Specifies the customer-provided encryption key for Amazon S3 to use to decrypt the source object. The encryption key provided in this header must be one that was used when the source object was created.

", - "UploadPartCopyRequest$CopySourceSSECustomerKey": "

Specifies the customer-provided encryption key for Amazon S3 to use to decrypt the source object. The encryption key provided in this header must be one that was used when the source object was created.

" + "CopyObjectRequest$CopySourceSSECustomerKey": "

Specifies the customer-provided encryption key for Amazon S3 to use to decrypt the source object. The encryption key provided in this header must be the same one that was used when the source object was created.

If the source object for the copy is stored in Amazon S3 using SSE-C, you must provide the necessary encryption information in your request so that Amazon S3 can decrypt the object for copying.

This functionality is not supported when the source object is in a directory bucket.

", + "UploadPartCopyRequest$CopySourceSSECustomerKey": "

Specifies the customer-provided encryption key for Amazon S3 to use to decrypt the source object. The encryption key provided in this header must be one that was used when the source object was created.

This functionality is not supported when the source object is in a directory bucket.

" } }, "CopySourceSSECustomerKeyMD5": { "base": null, "refs": { - "CopyObjectRequest$CopySourceSSECustomerKeyMD5": "

Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. Amazon S3 uses this header for a message integrity check to ensure that the encryption key was transmitted without error.

", - "UploadPartCopyRequest$CopySourceSSECustomerKeyMD5": "

Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. Amazon S3 uses this header for a message integrity check to ensure that the encryption key was transmitted without error.

" + "CopyObjectRequest$CopySourceSSECustomerKeyMD5": "

Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. Amazon S3 uses this header for a message integrity check to ensure that the encryption key was transmitted without error.

If the source object for the copy is stored in Amazon S3 using SSE-C, you must provide the necessary encryption information in your request so that Amazon S3 can decrypt the object for copying.

This functionality is not supported when the source object is in a directory bucket.

", + "UploadPartCopyRequest$CopySourceSSECustomerKeyMD5": "

Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. Amazon S3 uses this header for a message integrity check to ensure that the encryption key was transmitted without error.

This functionality is not supported when the source object is in a directory bucket.

" } }, "CopySourceVersionId": { "base": null, "refs": { - "CopyObjectOutput$CopySourceVersionId": "

Version of the copied object in the destination bucket.

", - "UploadPartCopyOutput$CopySourceVersionId": "

The version of the source object that was copied, if you have enabled versioning on the source bucket.

" + "CopyObjectOutput$CopySourceVersionId": "

Version ID of the source object that was copied.

This functionality is not supported when the source object is in a directory bucket.

", + "UploadPartCopyOutput$CopySourceVersionId": "

The version of the source object that was copied, if you have enabled versioning on the source bucket.

This functionality is not supported when the source object is in a directory bucket.

" } }, "CreateBucketConfiguration": { @@ -1081,12 +1115,28 @@ "refs": { } }, + "CreateSessionOutput": { + "base": null, + "refs": { + } + }, + "CreateSessionRequest": { + "base": null, + "refs": { + } + }, "CreationDate": { "base": null, "refs": { "Bucket$CreationDate": "

Date the bucket was created. This date can change when making changes to your bucket, such as editing its bucket policy.

" } }, + "DataRedundancy": { + "base": null, + "refs": { + "BucketInfo$DataRedundancy": "

The number of Availability Zone that's used for redundancy for the bucket.

" + } + }, "Date": { "base": null, "refs": { @@ -1192,11 +1242,11 @@ "DeleteMarker": { "base": null, "refs": { - "DeleteObjectOutput$DeleteMarker": "

Indicates whether the specified object version that was permanently deleted was (true) or was not (false) a delete marker before deletion. In a simple DELETE, this header indicates whether (true) or not (false) the current version of the object is a delete marker.

", - "DeletedObject$DeleteMarker": "

Indicates whether the specified object version that was permanently deleted was (true) or was not (false) a delete marker before deletion. In a simple DELETE, this header indicates whether (true) or not (false) the current version of the object is a delete marker.

", - "GetObjectAttributesOutput$DeleteMarker": "

Specifies whether the object retrieved was (true) or was not (false) a delete marker. If false, this response header does not appear in the response.

", - "GetObjectOutput$DeleteMarker": "

Specifies whether the object retrieved was (true) or was not (false) a Delete Marker. If false, this response header does not appear in the response.

", - "HeadObjectOutput$DeleteMarker": "

Specifies whether the object retrieved was (true) or was not (false) a Delete Marker. If false, this response header does not appear in the response.

", + "DeleteObjectOutput$DeleteMarker": "

Indicates whether the specified object version that was permanently deleted was (true) or was not (false) a delete marker before deletion. In a simple DELETE, this header indicates whether (true) or not (false) the current version of the object is a delete marker.

This functionality is not supported for directory buckets.

", + "DeletedObject$DeleteMarker": "

Indicates whether the specified object version that was permanently deleted was (true) or was not (false) a delete marker before deletion. In a simple DELETE, this header indicates whether (true) or not (false) the current version of the object is a delete marker.

This functionality is not supported for directory buckets.

", + "GetObjectAttributesOutput$DeleteMarker": "

Specifies whether the object retrieved was (true) or was not (false) a delete marker. If false, this response header does not appear in the response.

This functionality is not supported for directory buckets.

", + "GetObjectOutput$DeleteMarker": "

Indicates whether the object retrieved was (true) or was not (false) a Delete Marker. If false, this response header does not appear in the response.

", + "HeadObjectOutput$DeleteMarker": "

Specifies whether the object retrieved was (true) or was not (false) a Delete Marker. If false, this response header does not appear in the response.

This functionality is not supported for directory buckets.

", "WriteGetObjectResponseRequest$DeleteMarker": "

Specifies whether an object stored in Amazon S3 is (true) or is not (false) a delete marker.

" } }, @@ -1221,7 +1271,7 @@ "DeleteMarkerVersionId": { "base": null, "refs": { - "DeletedObject$DeleteMarkerVersionId": "

The version ID of the delete marker created as a result of the DELETE operation. If you delete a specific object version, the value returned by this header is the version ID of the object version deleted.

" + "DeletedObject$DeleteMarkerVersionId": "

The version ID of the delete marker created as a result of the DELETE operation. If you delete a specific object version, the value returned by this header is the version ID of the object version deleted.

This functionality is not supported for directory buckets.

" } }, "DeleteMarkers": { @@ -1280,14 +1330,14 @@ "Delimiter": { "base": null, "refs": { - "ListMultipartUploadsOutput$Delimiter": "

Contains the delimiter you specified in the request. If you don't specify a delimiter in your request, this element is absent from the response.

", - "ListMultipartUploadsRequest$Delimiter": "

Character you use to group keys.

All keys that contain the same string between the prefix, if specified, and the first occurrence of the delimiter after the prefix are grouped under a single result element, CommonPrefixes. If you don't specify the prefix parameter, then the substring starts at the beginning of the key. The keys that are grouped under CommonPrefixes result element are not returned elsewhere in the response.

", + "ListMultipartUploadsOutput$Delimiter": "

Contains the delimiter you specified in the request. If you don't specify a delimiter in your request, this element is absent from the response.

Directory buckets - For directory buckets, / is the only supported delimiter.

", + "ListMultipartUploadsRequest$Delimiter": "

Character you use to group keys.

All keys that contain the same string between the prefix, if specified, and the first occurrence of the delimiter after the prefix are grouped under a single result element, CommonPrefixes. If you don't specify the prefix parameter, then the substring starts at the beginning of the key. The keys that are grouped under CommonPrefixes result element are not returned elsewhere in the response.

Directory buckets - For directory buckets, / is the only supported delimiter.

", "ListObjectVersionsOutput$Delimiter": "

The delimiter grouping the included keys. A delimiter is a character that you specify to group keys. All keys that contain the same string between the prefix and the first occurrence of the delimiter are grouped under a single result element in CommonPrefixes. These groups are counted as one result against the max-keys limitation. These keys are not returned elsewhere in the response.

", "ListObjectVersionsRequest$Delimiter": "

A delimiter is a character that you specify to group keys. All keys that contain the same string between the prefix and the first occurrence of the delimiter are grouped under a single result element in CommonPrefixes. These groups are counted as one result against the max-keys limitation. These keys are not returned elsewhere in the response.

", "ListObjectsOutput$Delimiter": "

Causes keys that contain the same string between the prefix and the first occurrence of the delimiter to be rolled up into a single result element in the CommonPrefixes collection. These rolled-up keys are not returned elsewhere in the response. Each rolled-up result counts as only one return against the MaxKeys value.

", "ListObjectsRequest$Delimiter": "

A delimiter is a character that you use to group keys.

", - "ListObjectsV2Output$Delimiter": "

Causes keys that contain the same string between the prefix and the first occurrence of the delimiter to be rolled up into a single result element in the CommonPrefixes collection. These rolled-up keys are not returned elsewhere in the response. Each rolled-up result counts as only one return against the MaxKeys value.

", - "ListObjectsV2Request$Delimiter": "

A delimiter is a character that you use to group keys.

" + "ListObjectsV2Output$Delimiter": "

Causes keys that contain the same string between the prefix and the first occurrence of the delimiter to be rolled up into a single result element in the CommonPrefixes collection. These rolled-up keys are not returned elsewhere in the response. Each rolled-up result counts as only one return against the MaxKeys value.

Directory buckets - For directory buckets, / is the only supported delimiter.

", + "ListObjectsV2Request$Delimiter": "

A delimiter is a character that you use to group keys.

" } }, "Description": { @@ -1302,12 +1352,19 @@ "ReplicationRule$Destination": "

A container for information about the replication destination and its configurations including enabling the S3 Replication Time Control (S3 RTC).

" } }, + "DirectoryBucketToken": { + "base": null, + "refs": { + "ListDirectoryBucketsOutput$ContinuationToken": "

If ContinuationToken was sent with the request, it is included in the response. You can use the returned ContinuationToken for pagination of the list response.

", + "ListDirectoryBucketsRequest$ContinuationToken": "

ContinuationToken indicates to Amazon S3 that the list is being continued on this bucket with a token. ContinuationToken is obfuscated and is not a real key. You can use this ContinuationToken for pagination of the list results.

" + } + }, "DisplayName": { "base": null, "refs": { "Grantee$DisplayName": "

Screen name of the grantee.

", - "Initiator$DisplayName": "

Name of the Principal.

", - "Owner$DisplayName": "

Container for the display name of the owner. This value is only supported in the following Amazon Web Services Regions:

" + "Initiator$DisplayName": "

Name of the Principal.

This functionality is not supported for directory buckets.

", + "Owner$DisplayName": "

Container for the display name of the owner. This value is only supported in the following Amazon Web Services Regions:

This functionality is not supported for directory buckets.

" } }, "ETag": { @@ -1320,10 +1377,10 @@ "GetObjectAttributesOutput$ETag": "

An ETag is an opaque identifier assigned by a web server to a specific version of a resource found at a URL.

", "GetObjectOutput$ETag": "

An entity tag (ETag) is an opaque identifier assigned by a web server to a specific version of a resource found at a URL.

", "HeadObjectOutput$ETag": "

An entity tag (ETag) is an opaque identifier assigned by a web server to a specific version of a resource found at a URL.

", - "Object$ETag": "

The entity tag is a hash of the object. The ETag reflects changes only to the contents of an object, not its metadata. The ETag may or may not be an MD5 digest of the object data. Whether or not it is depends on how the object was created and how it is encrypted as described below:

", + "Object$ETag": "

The entity tag is a hash of the object. The ETag reflects changes only to the contents of an object, not its metadata. The ETag may or may not be an MD5 digest of the object data. Whether or not it is depends on how the object was created and how it is encrypted as described below:

Directory buckets - MD5 is not supported by directory buckets.

", "ObjectVersion$ETag": "

The entity tag is an MD5 hash of that version of the object.

", "Part$ETag": "

Entity tag returned when the part was uploaded.

", - "PutObjectOutput$ETag": "

Entity tag for the uploaded object.

", + "PutObjectOutput$ETag": "

Entity tag for the uploaded object.

General purpose buckets - To ensure that data is not corrupted traversing the network, for objects where the ETag is the MD5 digest of the object, you can calculate the MD5 while putting an object to Amazon S3 and compare the returned ETag to the calculated MD5 value.

Directory buckets - The ETag for the object in a directory bucket isn't the MD5 digest of the object.

", "UploadPartOutput$ETag": "

Entity tag for the uploaded object.

", "WriteGetObjectResponseRequest$ETag": "

An opaque identifier assigned by a web server to a specific version of a resource found at a URL.

" } @@ -1449,11 +1506,11 @@ "Expiration": { "base": null, "refs": { - "CompleteMultipartUploadOutput$Expiration": "

If the object expiration is configured, this will contain the expiration date (expiry-date) and rule ID (rule-id). The value of rule-id is URL-encoded.

", - "CopyObjectOutput$Expiration": "

If the object expiration is configured, the response includes this header.

", - "GetObjectOutput$Expiration": "

If the object expiration is configured (see PUT Bucket lifecycle), the response includes this header. It includes the expiry-date and rule-id key-value pairs providing object expiration information. The value of the rule-id is URL-encoded.

", - "HeadObjectOutput$Expiration": "

If the object expiration is configured (see PUT Bucket lifecycle), the response includes this header. It includes the expiry-date and rule-id key-value pairs providing object expiration information. The value of the rule-id is URL-encoded.

", - "PutObjectOutput$Expiration": "

If the expiration is configured for the object (see PutBucketLifecycleConfiguration), the response includes this header. It includes the expiry-date and rule-id key-value pairs that provide information about object expiration. The value of the rule-id is URL-encoded.

", + "CompleteMultipartUploadOutput$Expiration": "

If the object expiration is configured, this will contain the expiration date (expiry-date) and rule ID (rule-id). The value of rule-id is URL-encoded.

This functionality is not supported for directory buckets.

", + "CopyObjectOutput$Expiration": "

If the object expiration is configured, the response includes this header.

This functionality is not supported for directory buckets.

", + "GetObjectOutput$Expiration": "

If the object expiration is configured (see PutBucketLifecycleConfiguration ), the response includes this header. It includes the expiry-date and rule-id key-value pairs providing object expiration information. The value of the rule-id is URL-encoded.

This functionality is not supported for directory buckets.

", + "HeadObjectOutput$Expiration": "

If the object expiration is configured (see PutBucketLifecycleConfiguration ), the response includes this header. It includes the expiry-date and rule-id key-value pairs providing object expiration information. The value of the rule-id is URL-encoded.

This functionality is not supported for directory buckets.

", + "PutObjectOutput$Expiration": "

If the expiration is configured for the object (see PutBucketLifecycleConfiguration) in the Amazon S3 User Guide, the response includes this header. It includes the expiry-date and rule-id key-value pairs that provide information about object expiration. The value of the rule-id is URL-encoded.

This functionality is not supported for directory buckets.

", "WriteGetObjectResponseRequest$Expiration": "

If the object expiration is configured (see PUT Bucket lifecycle), the response includes this header. It includes the expiry-date and rule-id key-value pairs that provide the object expiration information. The value of the rule-id is URL-encoded.

" } }, @@ -1510,7 +1567,7 @@ "FetchOwner": { "base": null, "refs": { - "ListObjectsV2Request$FetchOwner": "

The owner field is not present in ListObjectsV2 by default. If you want to return the owner field with each key in the result, then set the FetchOwner field to true.

" + "ListObjectsV2Request$FetchOwner": "

The owner field is not present in ListObjectsV2 by default. If you want to return the owner field with each key in the result, then set the FetchOwner field to true.

Directory buckets - For directory buckets, the bucket owner is returned as the object owner for all objects.

" } }, "FieldDelimiter": { @@ -1872,40 +1929,40 @@ "GrantFullControl": { "base": null, "refs": { - "CopyObjectRequest$GrantFullControl": "

Gives the grantee READ, READ_ACP, and WRITE_ACP permissions on the object.

This action is not supported by Amazon S3 on Outposts.

", - "CreateBucketRequest$GrantFullControl": "

Allows grantee the read, write, read ACP, and write ACP permissions on the bucket.

", - "CreateMultipartUploadRequest$GrantFullControl": "

Gives the grantee READ, READ_ACP, and WRITE_ACP permissions on the object.

This action is not supported by Amazon S3 on Outposts.

", + "CopyObjectRequest$GrantFullControl": "

Gives the grantee READ, READ_ACP, and WRITE_ACP permissions on the object.

", + "CreateBucketRequest$GrantFullControl": "

Allows grantee the read, write, read ACP, and write ACP permissions on the bucket.

This functionality is not supported for directory buckets.

", + "CreateMultipartUploadRequest$GrantFullControl": "

Specify access permissions explicitly to give the grantee READ, READ_ACP, and WRITE_ACP permissions on the object.

By default, all objects are private. Only the owner has full access control. When uploading an object, you can use this header to explicitly grant access permissions to specific Amazon Web Services accounts or groups. This header maps to specific permissions that Amazon S3 supports in an ACL. For more information, see Access Control List (ACL) Overview in the Amazon S3 User Guide.

You specify each grantee as a type=value pair, where the type is one of the following:

For example, the following x-amz-grant-read header grants the Amazon Web Services accounts identified by account IDs permissions to read object data and its metadata:

x-amz-grant-read: id=\"11112222333\", id=\"444455556666\"

", "PutBucketAclRequest$GrantFullControl": "

Allows grantee the read, write, read ACP, and write ACP permissions on the bucket.

", - "PutObjectAclRequest$GrantFullControl": "

Allows grantee the read, write, read ACP, and write ACP permissions on the bucket.

This action is not supported by Amazon S3 on Outposts.

", - "PutObjectRequest$GrantFullControl": "

Gives the grantee READ, READ_ACP, and WRITE_ACP permissions on the object.

This action is not supported by Amazon S3 on Outposts.

" + "PutObjectAclRequest$GrantFullControl": "

Allows grantee the read, write, read ACP, and write ACP permissions on the bucket.

This functionality is not supported for Amazon S3 on Outposts.

", + "PutObjectRequest$GrantFullControl": "

Gives the grantee READ, READ_ACP, and WRITE_ACP permissions on the object.

" } }, "GrantRead": { "base": null, "refs": { - "CopyObjectRequest$GrantRead": "

Allows grantee to read the object data and its metadata.

This action is not supported by Amazon S3 on Outposts.

", - "CreateBucketRequest$GrantRead": "

Allows grantee to list the objects in the bucket.

", - "CreateMultipartUploadRequest$GrantRead": "

Allows grantee to read the object data and its metadata.

This action is not supported by Amazon S3 on Outposts.

", + "CopyObjectRequest$GrantRead": "

Allows grantee to read the object data and its metadata.

", + "CreateBucketRequest$GrantRead": "

Allows grantee to list the objects in the bucket.

This functionality is not supported for directory buckets.

", + "CreateMultipartUploadRequest$GrantRead": "

Specify access permissions explicitly to allow grantee to read the object data and its metadata.

By default, all objects are private. Only the owner has full access control. When uploading an object, you can use this header to explicitly grant access permissions to specific Amazon Web Services accounts or groups. This header maps to specific permissions that Amazon S3 supports in an ACL. For more information, see Access Control List (ACL) Overview in the Amazon S3 User Guide.

You specify each grantee as a type=value pair, where the type is one of the following:

For example, the following x-amz-grant-read header grants the Amazon Web Services accounts identified by account IDs permissions to read object data and its metadata:

x-amz-grant-read: id=\"11112222333\", id=\"444455556666\"

", "PutBucketAclRequest$GrantRead": "

Allows grantee to list the objects in the bucket.

", - "PutObjectAclRequest$GrantRead": "

Allows grantee to list the objects in the bucket.

This action is not supported by Amazon S3 on Outposts.

", - "PutObjectRequest$GrantRead": "

Allows grantee to read the object data and its metadata.

This action is not supported by Amazon S3 on Outposts.

" + "PutObjectAclRequest$GrantRead": "

Allows grantee to list the objects in the bucket.

This functionality is not supported for Amazon S3 on Outposts.

", + "PutObjectRequest$GrantRead": "

Allows grantee to read the object data and its metadata.

" } }, "GrantReadACP": { "base": null, "refs": { - "CopyObjectRequest$GrantReadACP": "

Allows grantee to read the object ACL.

This action is not supported by Amazon S3 on Outposts.

", - "CreateBucketRequest$GrantReadACP": "

Allows grantee to read the bucket ACL.

", - "CreateMultipartUploadRequest$GrantReadACP": "

Allows grantee to read the object ACL.

This action is not supported by Amazon S3 on Outposts.

", + "CopyObjectRequest$GrantReadACP": "

Allows grantee to read the object ACL.

", + "CreateBucketRequest$GrantReadACP": "

Allows grantee to read the bucket ACL.

This functionality is not supported for directory buckets.

", + "CreateMultipartUploadRequest$GrantReadACP": "

Specify access permissions explicitly to allows grantee to read the object ACL.

By default, all objects are private. Only the owner has full access control. When uploading an object, you can use this header to explicitly grant access permissions to specific Amazon Web Services accounts or groups. This header maps to specific permissions that Amazon S3 supports in an ACL. For more information, see Access Control List (ACL) Overview in the Amazon S3 User Guide.

You specify each grantee as a type=value pair, where the type is one of the following:

For example, the following x-amz-grant-read header grants the Amazon Web Services accounts identified by account IDs permissions to read object data and its metadata:

x-amz-grant-read: id=\"11112222333\", id=\"444455556666\"

", "PutBucketAclRequest$GrantReadACP": "

Allows grantee to read the bucket ACL.

", - "PutObjectAclRequest$GrantReadACP": "

Allows grantee to read the bucket ACL.

This action is not supported by Amazon S3 on Outposts.

", - "PutObjectRequest$GrantReadACP": "

Allows grantee to read the object ACL.

This action is not supported by Amazon S3 on Outposts.

" + "PutObjectAclRequest$GrantReadACP": "

Allows grantee to read the bucket ACL.

This functionality is not supported for Amazon S3 on Outposts.

", + "PutObjectRequest$GrantReadACP": "

Allows grantee to read the object ACL.

" } }, "GrantWrite": { "base": null, "refs": { - "CreateBucketRequest$GrantWrite": "

Allows grantee to create new objects in the bucket.

For the bucket and object owners of existing objects, also allows deletions and overwrites of those objects.

", + "CreateBucketRequest$GrantWrite": "

Allows grantee to create new objects in the bucket.

For the bucket and object owners of existing objects, also allows deletions and overwrites of those objects.

This functionality is not supported for directory buckets.

", "PutBucketAclRequest$GrantWrite": "

Allows grantee to create new objects in the bucket.

For the bucket and object owners of existing objects, also allows deletions and overwrites of those objects.

", "PutObjectAclRequest$GrantWrite": "

Allows grantee to create new objects in the bucket.

For the bucket and object owners of existing objects, also allows deletions and overwrites of those objects.

" } @@ -1913,12 +1970,12 @@ "GrantWriteACP": { "base": null, "refs": { - "CopyObjectRequest$GrantWriteACP": "

Allows grantee to write the ACL for the applicable object.

This action is not supported by Amazon S3 on Outposts.

", - "CreateBucketRequest$GrantWriteACP": "

Allows grantee to write the ACL for the applicable bucket.

", - "CreateMultipartUploadRequest$GrantWriteACP": "

Allows grantee to write the ACL for the applicable object.

This action is not supported by Amazon S3 on Outposts.

", + "CopyObjectRequest$GrantWriteACP": "

Allows grantee to write the ACL for the applicable object.

", + "CreateBucketRequest$GrantWriteACP": "

Allows grantee to write the ACL for the applicable bucket.

This functionality is not supported for directory buckets.

", + "CreateMultipartUploadRequest$GrantWriteACP": "

Specify access permissions explicitly to allows grantee to allow grantee to write the ACL for the applicable object.

By default, all objects are private. Only the owner has full access control. When uploading an object, you can use this header to explicitly grant access permissions to specific Amazon Web Services accounts or groups. This header maps to specific permissions that Amazon S3 supports in an ACL. For more information, see Access Control List (ACL) Overview in the Amazon S3 User Guide.

You specify each grantee as a type=value pair, where the type is one of the following:

For example, the following x-amz-grant-read header grants the Amazon Web Services accounts identified by account IDs permissions to read object data and its metadata:

x-amz-grant-read: id=\"11112222333\", id=\"444455556666\"

", "PutBucketAclRequest$GrantWriteACP": "

Allows grantee to write the ACL for the applicable bucket.

", - "PutObjectAclRequest$GrantWriteACP": "

Allows grantee to write the ACL for the applicable bucket.

This action is not supported by Amazon S3 on Outposts.

", - "PutObjectRequest$GrantWriteACP": "

Allows grantee to write the ACL for the applicable object.

This action is not supported by Amazon S3 on Outposts.

" + "PutObjectAclRequest$GrantWriteACP": "

Allows grantee to write the ACL for the applicable bucket.

This functionality is not supported for Amazon S3 on Outposts.

", + "PutObjectRequest$GrantWriteACP": "

Allows grantee to write the ACL for the applicable object.

" } }, "Grantee": { @@ -1937,6 +1994,11 @@ "S3Location$AccessControlList": "

A list of grants that control access to the staged results.

" } }, + "HeadBucketOutput": { + "base": null, + "refs": { + } + }, "HeadBucketRequest": { "base": null, "refs": { @@ -1976,7 +2038,7 @@ "refs": { "CORSRule$ID": "

Unique identifier for the rule. The value cannot be longer than 255 characters.

", "Grantee$ID": "

The canonical user ID of the grantee.

", - "Initiator$ID": "

If the principal is an Amazon Web Services account, it provides the Canonical User ID. If the principal is an IAM User, it provides a user ARN value.

", + "Initiator$ID": "

If the principal is an Amazon Web Services account, it provides the Canonical User ID. If the principal is an IAM User, it provides a user ARN value.

Directory buckets - If the principal is an Amazon Web Services account, it provides the Amazon Web Services account ID. If the principal is an IAM User, it provides a user ARN value.

", "LifecycleRule$ID": "

Unique identifier for the rule. The value cannot be longer than 255 characters.

", "Owner$ID": "

Container for the ID of the owner.

", "ReplicationRule$ID": "

A unique identifier for the rule. The maximum value is 255 characters.

", @@ -1986,29 +2048,29 @@ "IfMatch": { "base": null, "refs": { - "GetObjectRequest$IfMatch": "

Return the object only if its entity tag (ETag) is the same as the one specified; otherwise, return a 412 (precondition failed) error.

", - "HeadObjectRequest$IfMatch": "

Return the object only if its entity tag (ETag) is the same as the one specified; otherwise, return a 412 (precondition failed) error.

" + "GetObjectRequest$IfMatch": "

Return the object only if its entity tag (ETag) is the same as the one specified in this header; otherwise, return a 412 Precondition Failed error.

If both of the If-Match and If-Unmodified-Since headers are present in the request as follows: If-Match condition evaluates to true, and; If-Unmodified-Since condition evaluates to false; then, S3 returns 200 OK and the data requested.

For more information about conditional requests, see RFC 7232.

", + "HeadObjectRequest$IfMatch": "

Return the object only if its entity tag (ETag) is the same as the one specified; otherwise, return a 412 (precondition failed) error.

If both of the If-Match and If-Unmodified-Since headers are present in the request as follows:

Then Amazon S3 returns 200 OK and the data requested.

For more information about conditional requests, see RFC 7232.

" } }, "IfModifiedSince": { "base": null, "refs": { - "GetObjectRequest$IfModifiedSince": "

Return the object only if it has been modified since the specified time; otherwise, return a 304 (not modified) error.

", - "HeadObjectRequest$IfModifiedSince": "

Return the object only if it has been modified since the specified time; otherwise, return a 304 (not modified) error.

" + "GetObjectRequest$IfModifiedSince": "

Return the object only if it has been modified since the specified time; otherwise, return a 304 Not Modified error.

If both of the If-None-Match and If-Modified-Since headers are present in the request as follows: If-None-Match condition evaluates to false, and; If-Modified-Since condition evaluates to true; then, S3 returns 304 Not Modified status code.

For more information about conditional requests, see RFC 7232.

", + "HeadObjectRequest$IfModifiedSince": "

Return the object only if it has been modified since the specified time; otherwise, return a 304 (not modified) error.

If both of the If-None-Match and If-Modified-Since headers are present in the request as follows:

Then Amazon S3 returns the 304 Not Modified response code.

For more information about conditional requests, see RFC 7232.

" } }, "IfNoneMatch": { "base": null, "refs": { - "GetObjectRequest$IfNoneMatch": "

Return the object only if its entity tag (ETag) is different from the one specified; otherwise, return a 304 (not modified) error.

", - "HeadObjectRequest$IfNoneMatch": "

Return the object only if its entity tag (ETag) is different from the one specified; otherwise, return a 304 (not modified) error.

" + "GetObjectRequest$IfNoneMatch": "

Return the object only if its entity tag (ETag) is different from the one specified in this header; otherwise, return a 304 Not Modified error.

If both of the If-None-Match and If-Modified-Since headers are present in the request as follows: If-None-Match condition evaluates to false, and; If-Modified-Since condition evaluates to true; then, S3 returns 304 Not Modified HTTP status code.

For more information about conditional requests, see RFC 7232.

", + "HeadObjectRequest$IfNoneMatch": "

Return the object only if its entity tag (ETag) is different from the one specified; otherwise, return a 304 (not modified) error.

If both of the If-None-Match and If-Modified-Since headers are present in the request as follows:

Then Amazon S3 returns the 304 Not Modified response code.

For more information about conditional requests, see RFC 7232.

" } }, "IfUnmodifiedSince": { "base": null, "refs": { - "GetObjectRequest$IfUnmodifiedSince": "

Return the object only if it has not been modified since the specified time; otherwise, return a 412 (precondition failed) error.

", - "HeadObjectRequest$IfUnmodifiedSince": "

Return the object only if it has not been modified since the specified time; otherwise, return a 412 (precondition failed) error.

" + "GetObjectRequest$IfUnmodifiedSince": "

Return the object only if it has not been modified since the specified time; otherwise, return a 412 Precondition Failed error.

If both of the If-Match and If-Unmodified-Since headers are present in the request as follows: If-Match condition evaluates to true, and; If-Unmodified-Since condition evaluates to false; then, S3 returns 200 OK and the data requested.

For more information about conditional requests, see RFC 7232.

", + "HeadObjectRequest$IfUnmodifiedSince": "

Return the object only if it has not been modified since the specified time; otherwise, return a 412 (precondition failed) error.

If both of the If-Match and If-Unmodified-Since headers are present in the request as follows:

Then Amazon S3 returns 200 OK and the data requested.

For more information about conditional requests, see RFC 7232.

" } }, "IndexDocument": { @@ -2093,7 +2155,7 @@ } }, "InvalidObjectState": { - "base": "

Object is archived and inaccessible until restored.

", + "base": "

Object is archived and inaccessible until restored.

If the object you are retrieving is stored in the S3 Glacier Flexible Retrieval storage class, the S3 Glacier Deep Archive storage class, the S3 Intelligent-Tiering Archive Access tier, or the S3 Intelligent-Tiering Deep Archive Access tier, before you can retrieve the object you must first restore a copy using RestoreObject. Otherwise, this operation returns an InvalidObjectState error. For information about restoring archived objects, see Restoring Archived Objects in the Amazon S3 User Guide.

", "refs": { } }, @@ -2254,7 +2316,7 @@ "base": null, "refs": { "ListMultipartUploadsOutput$KeyMarker": "

The key at or after which the listing began.

", - "ListMultipartUploadsRequest$KeyMarker": "

Together with upload-id-marker, this parameter specifies the multipart upload after which listing should begin.

If upload-id-marker is not specified, only the keys lexicographically greater than the specified key-marker will be included in the list.

If upload-id-marker is specified, any multipart uploads for a key equal to the key-marker might also be included, provided those multipart uploads have upload IDs lexicographically greater than the specified upload-id-marker.

", + "ListMultipartUploadsRequest$KeyMarker": "

Specifies the multipart upload after which listing should begin.

", "ListObjectVersionsOutput$KeyMarker": "

Marks the last key returned in a truncated response.

", "ListObjectVersionsRequest$KeyMarker": "

Specifies the key to start with when listing objects in a bucket.

" } @@ -2290,7 +2352,7 @@ "CopyPartResult$LastModified": "

Date and time at which the object was uploaded.

", "DeleteMarkerEntry$LastModified": "

Date and time when the object was last modified.

", "GetObjectAttributesOutput$LastModified": "

The creation date of the object.

", - "GetObjectOutput$LastModified": "

Date and time when the object was last modified.

", + "GetObjectOutput$LastModified": "

Date and time when the object was last modified.

General purpose buckets - When you specify a versionId of the object in your request, if the specified version in the request is a delete marker, the response returns a 405 Method Not Allowed error and the Last-Modified: timestamp response header.

", "HeadObjectOutput$LastModified": "

Date and time when the object was last modified.

", "Object$LastModified": "

Creation date of the object.

", "ObjectVersion$LastModified": "

Date and time when the object was last modified.

", @@ -2381,6 +2443,16 @@ "refs": { } }, + "ListDirectoryBucketsOutput": { + "base": null, + "refs": { + } + }, + "ListDirectoryBucketsRequest": { + "base": null, + "refs": { + } + }, "ListMultipartUploadsOutput": { "base": null, "refs": { @@ -2438,12 +2510,31 @@ "CreateBucketOutput$Location": "

A forward slash followed by the name of the bucket.

" } }, + "LocationInfo": { + "base": "

Specifies the location where the bucket will be created.

For directory buckets, the location type is Availability Zone. For more information about directory buckets, see Directory buckets in the Amazon S3 User Guide.

This functionality is only supported by directory buckets.

", + "refs": { + "CreateBucketConfiguration$Location": "

Specifies the location where the bucket will be created.

For directory buckets, the location type is Availability Zone.

This functionality is only supported by directory buckets.

" + } + }, + "LocationNameAsString": { + "base": null, + "refs": { + "LocationInfo$Name": "

The name of the location where the bucket will be created.

For directory buckets, the AZ ID of the Availability Zone where the bucket will be created. An example AZ ID value is usw2-az2.

" + } + }, "LocationPrefix": { "base": null, "refs": { "S3Location$Prefix": "

The prefix that is prepended to the restore results for this request.

" } }, + "LocationType": { + "base": null, + "refs": { + "HeadBucketOutput$BucketLocationType": "

The type of location where the bucket is created.

This functionality is only supported by directory buckets.

", + "LocationInfo$Type": "

The type of location where the bucket will be created.

" + } + }, "LoggingEnabled": { "base": "

Describes where logs are stored and the prefix that Amazon S3 assigns to all log object keys for a bucket. For more information, see PUT Bucket logging in the Amazon S3 API Reference.

", "refs": { @@ -2454,8 +2545,8 @@ "MFA": { "base": null, "refs": { - "DeleteObjectRequest$MFA": "

The concatenation of the authentication device's serial number, a space, and the value that is displayed on your authentication device. Required to permanently delete a versioned object if versioning is configured with MFA delete enabled.

", - "DeleteObjectsRequest$MFA": "

The concatenation of the authentication device's serial number, a space, and the value that is displayed on your authentication device. Required to permanently delete a versioned object if versioning is configured with MFA delete enabled.

", + "DeleteObjectRequest$MFA": "

The concatenation of the authentication device's serial number, a space, and the value that is displayed on your authentication device. Required to permanently delete a versioned object if versioning is configured with MFA delete enabled.

This functionality is not supported for directory buckets.

", + "DeleteObjectsRequest$MFA": "

The concatenation of the authentication device's serial number, a space, and the value that is displayed on your authentication device. Required to permanently delete a versioned object if versioning is configured with MFA delete enabled.

When performing the DeleteObjects operation on an MFA delete enabled bucket, which attempts to delete the specified versioned objects, you must include an MFA token. If you don't provide an MFA token, the entire request will fail, even if there are non-versioned objects that you are trying to delete. If you provide an invalid token, whether there are versioned object keys in the request or not, the entire Multi-Object Delete request will fail. For information about MFA Delete, see MFA Delete in the Amazon S3 User Guide.

This functionality is not supported for directory buckets.

", "PutBucketVersioningRequest$MFA": "

The concatenation of the authentication device's serial number, a space, and the value that is displayed on your authentication device.

" } }, @@ -2484,6 +2575,12 @@ "CORSRule$MaxAgeSeconds": "

The time in seconds that your browser is to cache the preflight response for the specified resource.

" } }, + "MaxDirectoryBuckets": { + "base": null, + "refs": { + "ListDirectoryBucketsRequest$MaxDirectoryBuckets": "

Maximum number of buckets to be returned in response. When the number is more than the count of buckets that are owned by an Amazon Web Services account, return all the buckets in response.

" + } + }, "MaxKeys": { "base": null, "refs": { @@ -2531,7 +2628,7 @@ "MetadataDirective": { "base": null, "refs": { - "CopyObjectRequest$MetadataDirective": "

Specifies whether the metadata is copied from the source object or replaced with metadata provided in the request.

" + "CopyObjectRequest$MetadataDirective": "

Specifies whether the metadata is copied from the source object or replaced with metadata that's provided in the request. When copying an object, you can preserve all metadata (the default) or specify new metadata. If this header isn’t specified, COPY is the default behavior.

General purpose bucket - For general purpose buckets, when you grant permissions, you can use the s3:x-amz-metadata-directive condition key to enforce certain metadata behavior when objects are uploaded. For more information, see Amazon S3 condition key examples in the Amazon S3 User Guide.

x-amz-website-redirect-location is unique to each object and is not copied when using the x-amz-metadata-directive header. To copy the value, you must specify x-amz-website-redirect-location in the request header.

" } }, "MetadataEntry": { @@ -2610,8 +2707,8 @@ "MissingMeta": { "base": null, "refs": { - "GetObjectOutput$MissingMeta": "

This is set to the number of metadata entries not returned in x-amz-meta headers. This can happen if you create metadata using an API like SOAP that supports more flexible metadata than the REST API. For example, using SOAP, you can create metadata whose values are not legal HTTP headers.

", - "HeadObjectOutput$MissingMeta": "

This is set to the number of metadata entries not returned in x-amz-meta headers. This can happen if you create metadata using an API like SOAP that supports more flexible metadata than the REST API. For example, using SOAP, you can create metadata whose values are not legal HTTP headers.

", + "GetObjectOutput$MissingMeta": "

This is set to the number of metadata entries not returned in the headers that are prefixed with x-amz-meta-. This can happen if you create metadata using an API like SOAP that supports more flexible metadata than the REST API. For example, using SOAP, you can create metadata whose values are not legal HTTP headers.

This functionality is not supported for directory buckets.

", + "HeadObjectOutput$MissingMeta": "

This is set to the number of metadata entries not returned in x-amz-meta headers. This can happen if you create metadata using an API like SOAP that supports more flexible metadata than the REST API. For example, using SOAP, you can create metadata whose values are not legal HTTP headers.

This functionality is not supported for directory buckets.

", "WriteGetObjectResponseRequest$MissingMeta": "

Set to the number of metadata entries not returned in x-amz-meta headers. This can happen if you create metadata using an API like SOAP that supports more flexible metadata than the REST API. For example, using SOAP, you can create metadata whose values are not legal HTTP headers.

" } }, @@ -2673,7 +2770,7 @@ "NextUploadIdMarker": { "base": null, "refs": { - "ListMultipartUploadsOutput$NextUploadIdMarker": "

When a list is truncated, this element specifies the value that should be used for the upload-id-marker request parameter in a subsequent request.

" + "ListMultipartUploadsOutput$NextUploadIdMarker": "

When a list is truncated, this element specifies the value that should be used for the upload-id-marker request parameter in a subsequent request.

This functionality is not supported for directory buckets.

" } }, "NextVersionIdMarker": { @@ -2774,10 +2871,10 @@ "ObjectCannedACL": { "base": null, "refs": { - "CopyObjectRequest$ACL": "

The canned ACL to apply to the object.

This action is not supported by Amazon S3 on Outposts.

", - "CreateMultipartUploadRequest$ACL": "

The canned ACL to apply to the object.

This action is not supported by Amazon S3 on Outposts.

", + "CopyObjectRequest$ACL": "

The canned access control list (ACL) to apply to the object.

When you copy an object, the ACL metadata is not preserved and is set to private by default. Only the owner has full access control. To override the default ACL setting, specify a new ACL when you generate a copy request. For more information, see Using ACLs.

If the destination bucket that you're copying objects to uses the bucket owner enforced setting for S3 Object Ownership, ACLs are disabled and no longer affect permissions. Buckets that use this setting only accept PUT requests that don't specify an ACL or PUT requests that specify bucket owner full control ACLs, such as the bucket-owner-full-control canned ACL or an equivalent form of this ACL expressed in the XML format. For more information, see Controlling ownership of objects and disabling ACLs in the Amazon S3 User Guide.

", + "CreateMultipartUploadRequest$ACL": "

The canned ACL to apply to the object. Amazon S3 supports a set of predefined ACLs, known as canned ACLs. Each canned ACL has a predefined set of grantees and permissions. For more information, see Canned ACL in the Amazon S3 User Guide.

By default, all objects are private. Only the owner has full access control. When uploading an object, you can grant access permissions to individual Amazon Web Services accounts or to predefined groups defined by Amazon S3. These permissions are then added to the access control list (ACL) on the new object. For more information, see Using ACLs. One way to grant the permissions using the request headers is to specify a canned ACL with the x-amz-acl request header.

", "PutObjectAclRequest$ACL": "

The canned ACL to apply to the object. For more information, see Canned ACL.

", - "PutObjectRequest$ACL": "

The canned ACL to apply to the object. For more information, see Canned ACL.

This action is not supported by Amazon S3 on Outposts.

", + "PutObjectRequest$ACL": "

The canned ACL to apply to the object. For more information, see Canned ACL in the Amazon S3 User Guide.

When adding a new object, you can use headers to grant ACL-based permissions to individual Amazon Web Services accounts or to predefined groups defined by Amazon S3. These permissions are then added to the ACL on the object. By default, all objects are private. Only the owner has full access control. For more information, see Access Control List (ACL) Overview and Managing ACLs Using the REST API in the Amazon S3 User Guide.

If the bucket that you're uploading objects to uses the bucket owner enforced setting for S3 Object Ownership, ACLs are disabled and no longer affect permissions. Buckets that use this setting only accept PUT requests that don't specify an ACL or PUT requests that specify bucket owner full control ACLs, such as the bucket-owner-full-control canned ACL or an equivalent form of this ACL expressed in the XML format. PUT requests that contain other ACLs (for example, custom grants to certain Amazon Web Services accounts) fail and return a 400 error with the error code AccessControlListNotSupported. For more information, see Controlling ownership of objects and disabling ACLs in the Amazon S3 User Guide.

", "S3Location$CannedACL": "

The canned ACL to apply to the restore results.

" } }, @@ -2790,7 +2887,7 @@ "ObjectIdentifierList": { "base": null, "refs": { - "Delete$Objects": "

The object to delete.

" + "Delete$Objects": "

The object to delete.

Directory buckets - For directory buckets, an object that's composed entirely of whitespace characters is not supported by the DeleteObjects API operation. The request will receive a 400 Bad Request error and none of the objects in the request will be deleted.

" } }, "ObjectKey": { @@ -2822,7 +2919,7 @@ "Object$Key": "

The name that you assign to an object. You use the object key to retrieve the object.

", "ObjectIdentifier$Key": "

Key name of the object.

Replacement must be made for object keys containing special characters (such as carriage returns) when using XML requests. For more information, see XML related object key constraints.

", "ObjectVersion$Key": "

The object key.

", - "PutObjectAclRequest$Key": "

Key for which the PUT action was initiated.

When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see What is S3 on Outposts? in the Amazon S3 User Guide.

", + "PutObjectAclRequest$Key": "

Key for which the PUT action was initiated.

", "PutObjectLegalHoldRequest$Key": "

The key name for the object that you want to place a legal hold on.

", "PutObjectRequest$Key": "

Object key for which the PUT action was initiated.

", "PutObjectRetentionRequest$Key": "

The key name for the object that you want to apply this Object Retention configuration to.

", @@ -2857,7 +2954,7 @@ "ObjectLockEnabledForBucket": { "base": null, "refs": { - "CreateBucketRequest$ObjectLockEnabledForBucket": "

Specifies whether you want S3 Object Lock to be enabled for the new bucket.

" + "CreateBucketRequest$ObjectLockEnabledForBucket": "

Specifies whether you want S3 Object Lock to be enabled for the new bucket.

This functionality is not supported for directory buckets.

" } }, "ObjectLockLegalHold": { @@ -2870,34 +2967,34 @@ "ObjectLockLegalHoldStatus": { "base": null, "refs": { - "CopyObjectRequest$ObjectLockLegalHoldStatus": "

Specifies whether you want to apply a legal hold to the copied object.

", - "CreateMultipartUploadRequest$ObjectLockLegalHoldStatus": "

Specifies whether you want to apply a legal hold to the uploaded object.

", - "GetObjectOutput$ObjectLockLegalHoldStatus": "

Indicates whether this object has an active legal hold. This field is only returned if you have permission to view an object's legal hold status.

", - "HeadObjectOutput$ObjectLockLegalHoldStatus": "

Specifies whether a legal hold is in effect for this object. This header is only returned if the requester has the s3:GetObjectLegalHold permission. This header is not returned if the specified version of this object has never had a legal hold applied. For more information about S3 Object Lock, see Object Lock.

", + "CopyObjectRequest$ObjectLockLegalHoldStatus": "

Specifies whether you want to apply a legal hold to the object copy.

This functionality is not supported for directory buckets.

", + "CreateMultipartUploadRequest$ObjectLockLegalHoldStatus": "

Specifies whether you want to apply a legal hold to the uploaded object.

This functionality is not supported for directory buckets.

", + "GetObjectOutput$ObjectLockLegalHoldStatus": "

Indicates whether this object has an active legal hold. This field is only returned if you have permission to view an object's legal hold status.

This functionality is not supported for directory buckets.

", + "HeadObjectOutput$ObjectLockLegalHoldStatus": "

Specifies whether a legal hold is in effect for this object. This header is only returned if the requester has the s3:GetObjectLegalHold permission. This header is not returned if the specified version of this object has never had a legal hold applied. For more information about S3 Object Lock, see Object Lock.

This functionality is not supported for directory buckets.

", "ObjectLockLegalHold$Status": "

Indicates whether the specified object has a legal hold in place.

", - "PutObjectRequest$ObjectLockLegalHoldStatus": "

Specifies whether a legal hold will be applied to this object. For more information about S3 Object Lock, see Object Lock.

", + "PutObjectRequest$ObjectLockLegalHoldStatus": "

Specifies whether a legal hold will be applied to this object. For more information about S3 Object Lock, see Object Lock in the Amazon S3 User Guide.

This functionality is not supported for directory buckets.

", "WriteGetObjectResponseRequest$ObjectLockLegalHoldStatus": "

Indicates whether an object stored in Amazon S3 has an active legal hold.

" } }, "ObjectLockMode": { "base": null, "refs": { - "CopyObjectRequest$ObjectLockMode": "

The Object Lock mode that you want to apply to the copied object.

", - "CreateMultipartUploadRequest$ObjectLockMode": "

Specifies the Object Lock mode that you want to apply to the uploaded object.

", - "GetObjectOutput$ObjectLockMode": "

The Object Lock mode currently in place for this object.

", - "HeadObjectOutput$ObjectLockMode": "

The Object Lock mode, if any, that's in effect for this object. This header is only returned if the requester has the s3:GetObjectRetention permission. For more information about S3 Object Lock, see Object Lock.

", - "PutObjectRequest$ObjectLockMode": "

The Object Lock mode that you want to apply to this object.

", + "CopyObjectRequest$ObjectLockMode": "

The Object Lock mode that you want to apply to the object copy.

This functionality is not supported for directory buckets.

", + "CreateMultipartUploadRequest$ObjectLockMode": "

Specifies the Object Lock mode that you want to apply to the uploaded object.

This functionality is not supported for directory buckets.

", + "GetObjectOutput$ObjectLockMode": "

The Object Lock mode that's currently in place for this object.

This functionality is not supported for directory buckets.

", + "HeadObjectOutput$ObjectLockMode": "

The Object Lock mode, if any, that's in effect for this object. This header is only returned if the requester has the s3:GetObjectRetention permission. For more information about S3 Object Lock, see Object Lock.

This functionality is not supported for directory buckets.

", + "PutObjectRequest$ObjectLockMode": "

The Object Lock mode that you want to apply to this object.

This functionality is not supported for directory buckets.

", "WriteGetObjectResponseRequest$ObjectLockMode": "

Indicates whether an object stored in Amazon S3 has Object Lock enabled. For more information about S3 Object Lock, see Object Lock.

" } }, "ObjectLockRetainUntilDate": { "base": null, "refs": { - "CopyObjectRequest$ObjectLockRetainUntilDate": "

The date and time when you want the copied object's Object Lock to expire.

", - "CreateMultipartUploadRequest$ObjectLockRetainUntilDate": "

Specifies the date and time when you want the Object Lock to expire.

", - "GetObjectOutput$ObjectLockRetainUntilDate": "

The date and time when this object's Object Lock will expire.

", - "HeadObjectOutput$ObjectLockRetainUntilDate": "

The date and time when the Object Lock retention period expires. This header is only returned if the requester has the s3:GetObjectRetention permission.

", - "PutObjectRequest$ObjectLockRetainUntilDate": "

The date and time when you want this object's Object Lock to expire. Must be formatted as a timestamp parameter.

", + "CopyObjectRequest$ObjectLockRetainUntilDate": "

The date and time when you want the Object Lock of the object copy to expire.

This functionality is not supported for directory buckets.

", + "CreateMultipartUploadRequest$ObjectLockRetainUntilDate": "

Specifies the date and time when you want the Object Lock to expire.

This functionality is not supported for directory buckets.

", + "GetObjectOutput$ObjectLockRetainUntilDate": "

The date and time when this object's Object Lock will expire.

This functionality is not supported for directory buckets.

", + "HeadObjectOutput$ObjectLockRetainUntilDate": "

The date and time when the Object Lock retention period expires. This header is only returned if the requester has the s3:GetObjectRetention permission.

This functionality is not supported for directory buckets.

", + "PutObjectRequest$ObjectLockRetainUntilDate": "

The date and time when you want this object's Object Lock to expire. Must be formatted as a timestamp parameter.

This functionality is not supported for directory buckets.

", "WriteGetObjectResponseRequest$ObjectLockRetainUntilDate": "

The date and time when Object Lock is configured to expire.

" } }, @@ -2934,7 +3031,7 @@ } }, "ObjectOwnership": { - "base": "

The container element for object ownership for a bucket's ownership controls.

BucketOwnerPreferred - Objects uploaded to the bucket change ownership to the bucket owner if the objects are uploaded with the bucket-owner-full-control canned ACL.

ObjectWriter - The uploading account will own the object if the object is uploaded with the bucket-owner-full-control canned ACL.

BucketOwnerEnforced - Access control lists (ACLs) are disabled and no longer affect permissions. The bucket owner automatically owns and has full control over every object in the bucket. The bucket only accepts PUT requests that don't specify an ACL or bucket owner full control ACLs, such as the bucket-owner-full-control canned ACL or an equivalent form of this ACL expressed in the XML format.

", + "base": "

The container element for object ownership for a bucket's ownership controls.

BucketOwnerPreferred - Objects uploaded to the bucket change ownership to the bucket owner if the objects are uploaded with the bucket-owner-full-control canned ACL.

ObjectWriter - The uploading account will own the object if the object is uploaded with the bucket-owner-full-control canned ACL.

BucketOwnerEnforced - Access control lists (ACLs) are disabled and no longer affect permissions. The bucket owner automatically owns and has full control over every object in the bucket. The bucket only accepts PUT requests that don't specify an ACL or specify bucket owner full control ACLs (such as the predefined bucket-owner-full-control canned ACL or a custom ACL in XML format that grants the same permissions).

By default, ObjectOwnership is set to BucketOwnerEnforced and ACLs are disabled. We recommend keeping ACLs disabled, except in uncommon use cases where you must control access for each object individually. For more information about S3 Object Ownership, see Controlling ownership of objects and disabling ACLs for your bucket in the Amazon S3 User Guide.

This functionality is not supported for directory buckets. Directory buckets use the bucket owner enforced setting for S3 Object Ownership.

", "refs": { "CreateBucketRequest$ObjectOwnership": null, "OwnershipControlsRule$ObjectOwnership": null @@ -2969,7 +3066,7 @@ "ObjectStorageClass": { "base": null, "refs": { - "Object$StorageClass": "

The class of storage used to store the object.

" + "Object$StorageClass": "

The class of storage used to store the object.

Directory buckets - Only the S3 Express One Zone storage class is supported by directory buckets to store objects.

" } }, "ObjectVersion": { @@ -2981,31 +3078,31 @@ "ObjectVersionId": { "base": null, "refs": { - "CompleteMultipartUploadOutput$VersionId": "

Version ID of the newly created object, in case the bucket has versioning turned on.

", - "CopyObjectOutput$VersionId": "

Version ID of the newly created copy.

", + "CompleteMultipartUploadOutput$VersionId": "

Version ID of the newly created object, in case the bucket has versioning turned on.

This functionality is not supported for directory buckets.

", + "CopyObjectOutput$VersionId": "

Version ID of the newly created copy.

This functionality is not supported for directory buckets.

", "DeleteMarkerEntry$VersionId": "

Version ID of an object.

", - "DeleteObjectOutput$VersionId": "

Returns the version ID of the delete marker created as a result of the DELETE operation.

", - "DeleteObjectRequest$VersionId": "

VersionId used to reference a specific version of the object.

", + "DeleteObjectOutput$VersionId": "

Returns the version ID of the delete marker created as a result of the DELETE operation.

This functionality is not supported for directory buckets.

", + "DeleteObjectRequest$VersionId": "

Version ID used to reference a specific version of the object.

For directory buckets in this API operation, only the null value of the version ID is supported.

", "DeleteObjectTaggingOutput$VersionId": "

The versionId of the object the tag-set was removed from.

", "DeleteObjectTaggingRequest$VersionId": "

The versionId of the object that the tag-set will be removed from.

", - "DeletedObject$VersionId": "

The version ID of the deleted object.

", - "Error$VersionId": "

The version ID of the error.

", - "GetObjectAclRequest$VersionId": "

VersionId used to reference a specific version of the object.

", - "GetObjectAttributesOutput$VersionId": "

The version ID of the object.

", - "GetObjectAttributesRequest$VersionId": "

The version ID used to reference a specific version of the object.

", + "DeletedObject$VersionId": "

The version ID of the deleted object.

This functionality is not supported for directory buckets.

", + "Error$VersionId": "

The version ID of the error.

This functionality is not supported for directory buckets.

", + "GetObjectAclRequest$VersionId": "

Version ID used to reference a specific version of the object.

This functionality is not supported for directory buckets.

", + "GetObjectAttributesOutput$VersionId": "

The version ID of the object.

This functionality is not supported for directory buckets.

", + "GetObjectAttributesRequest$VersionId": "

The version ID used to reference a specific version of the object.

S3 Versioning isn't enabled and supported for directory buckets. For this API operation, only the null value of the version ID is supported by directory buckets. You can only specify null to the versionId query parameter in the request.

", "GetObjectLegalHoldRequest$VersionId": "

The version ID of the object whose legal hold status you want to retrieve.

", - "GetObjectOutput$VersionId": "

Version of the object.

", - "GetObjectRequest$VersionId": "

VersionId used to reference a specific version of the object.

", + "GetObjectOutput$VersionId": "

Version ID of the object.

This functionality is not supported for directory buckets.

", + "GetObjectRequest$VersionId": "

Version ID used to reference a specific version of the object.

By default, the GetObject operation returns the current version of an object. To return a different version, use the versionId subresource.

For more information about versioning, see PutBucketVersioning.

", "GetObjectRetentionRequest$VersionId": "

The version ID for the object whose retention settings you want to retrieve.

", "GetObjectTaggingOutput$VersionId": "

The versionId of the object for which you got the tagging information.

", "GetObjectTaggingRequest$VersionId": "

The versionId of the object for which to get the tagging information.

", - "HeadObjectOutput$VersionId": "

Version of the object.

", - "HeadObjectRequest$VersionId": "

VersionId used to reference a specific version of the object.

", - "ObjectIdentifier$VersionId": "

VersionId for the specific version of the object to delete.

", + "HeadObjectOutput$VersionId": "

Version ID of the object.

This functionality is not supported for directory buckets.

", + "HeadObjectRequest$VersionId": "

Version ID used to reference a specific version of the object.

For directory buckets in this API operation, only the null value of the version ID is supported.

", + "ObjectIdentifier$VersionId": "

Version ID for the specific version of the object to delete.

This functionality is not supported for directory buckets.

", "ObjectVersion$VersionId": "

Version ID of an object.

", - "PutObjectAclRequest$VersionId": "

VersionId used to reference a specific version of the object.

", + "PutObjectAclRequest$VersionId": "

Version ID used to reference a specific version of the object.

This functionality is not supported for directory buckets.

", "PutObjectLegalHoldRequest$VersionId": "

The version ID of the object that you want to place a legal hold on.

", - "PutObjectOutput$VersionId": "

Version of the object.

", + "PutObjectOutput$VersionId": "

Version ID of the object.

If you enable versioning for a bucket, Amazon S3 automatically generates a unique version ID for the object being stored. Amazon S3 returns this ID in the response. When you enable versioning for a bucket, if Amazon S3 receives multiple write requests for the same object simultaneously, it stores all of the objects. For more information about versioning, see Adding Objects to Versioning-Enabled Buckets in the Amazon S3 User Guide. For information about returning the versioning state of a bucket, see GetBucketVersioning.

This functionality is not supported for directory buckets.

", "PutObjectRetentionRequest$VersionId": "

The version ID for the object that you want to apply this Object Retention configuration to.

", "PutObjectTaggingOutput$VersionId": "

The versionId of the object the tag-set was added to.

", "PutObjectTaggingRequest$VersionId": "

The versionId of the object that the tag-set will be added to.

", @@ -3036,7 +3133,7 @@ "refs": { "ListObjectVersionsRequest$OptionalObjectAttributes": "

Specifies the optional fields that you want returned in the response. Fields that you do not specify are not returned.

", "ListObjectsRequest$OptionalObjectAttributes": "

Specifies the optional fields that you want returned in the response. Fields that you do not specify are not returned.

", - "ListObjectsV2Request$OptionalObjectAttributes": "

Specifies the optional fields that you want returned in the response. Fields that you do not specify are not returned.

" + "ListObjectsV2Request$OptionalObjectAttributes": "

Specifies the optional fields that you want returned in the response. Fields that you do not specify are not returned.

This functionality is not supported for directory buckets.

" } }, "OutputLocation": { @@ -3060,9 +3157,9 @@ "GetBucketAclOutput$Owner": "

Container for the bucket owner's display name and ID.

", "GetObjectAclOutput$Owner": "

Container for the bucket owner's display name and ID.

", "ListBucketsOutput$Owner": "

The owner of the buckets listed.

", - "ListPartsOutput$Owner": "

Container element that identifies the object owner, after the object is created. If multipart upload is initiated by an IAM user, this element provides the parent account ID and display name.

", - "MultipartUpload$Owner": "

Specifies the owner of the object that is part of the multipart upload.

", - "Object$Owner": "

The owner of the object

", + "ListPartsOutput$Owner": "

Container element that identifies the object owner, after the object is created. If multipart upload is initiated by an IAM user, this element provides the parent account ID and display name.

Directory buckets - The bucket owner is returned as the object owner for all the parts.

", + "MultipartUpload$Owner": "

Specifies the owner of the object that is part of the multipart upload.

Directory buckets - The bucket owner is returned as the object owner for all the objects.

", + "Object$Owner": "

The owner of the object

Directory buckets - The bucket owner is returned as the object owner.

", "ObjectVersion$Owner": "

Specifies the owner of the object.

" } }, @@ -3106,7 +3203,7 @@ "PartNumber": { "base": null, "refs": { - "CompletedPart$PartNumber": "

Part number that identifies the part. This is a positive integer between 1 and 10,000.

", + "CompletedPart$PartNumber": "

Part number that identifies the part. This is a positive integer between 1 and 10,000.

", "GetObjectRequest$PartNumber": "

Part number of the object being read. This is a positive integer between 1 and 10,000. Effectively performs a 'ranged' GET request for the part specified. Useful for downloading just a part of an object.

", "HeadObjectRequest$PartNumber": "

Part number of the object being read. This is a positive integer between 1 and 10,000. Effectively performs a 'ranged' HEAD request for the part specified. Useful querying about the size of the part and the number of parts in this object.

", "ObjectPart$PartNumber": "

The part number identifying the part. This value is a positive integer between 1 and 10,000.

", @@ -3139,7 +3236,7 @@ "Parts": { "base": null, "refs": { - "ListPartsOutput$Parts": "

Container for elements related to a particular part. A response can contain zero or more Part elements.

" + "ListPartsOutput$Parts": "

Container for elements related to a particular part. A response can contain zero or more Part elements.

" } }, "PartsCount": { @@ -3154,7 +3251,7 @@ "PartsList": { "base": null, "refs": { - "GetObjectAttributesParts$Parts": "

A container for elements related to a particular part. A response can contain zero or more Parts elements.

" + "GetObjectAttributesParts$Parts": "

A container for elements related to a particular part. A response can contain zero or more Parts elements.

" } }, "Payer": { @@ -3174,7 +3271,7 @@ "base": null, "refs": { "GetBucketPolicyOutput$Policy": "

The bucket policy as a JSON document.

", - "PutBucketPolicyRequest$Policy": "

The bucket policy as a JSON document.

" + "PutBucketPolicyRequest$Policy": "

The bucket policy as a JSON document.

For directory buckets, the only IAM action supported in the bucket policy is s3express:CreateSession.

" } }, "PolicyStatus": { @@ -3197,14 +3294,14 @@ "LifecycleRule$Prefix": "

Prefix identifying one or more objects to which the rule applies. This is no longer used; use Filter instead.

Replacement must be made for object keys containing special characters (such as carriage returns) when using XML requests. For more information, see XML related object key constraints.

", "LifecycleRuleAndOperator$Prefix": "

Prefix identifying one or more objects to which the rule applies.

", "LifecycleRuleFilter$Prefix": "

Prefix identifying one or more objects to which the rule applies.

Replacement must be made for object keys containing special characters (such as carriage returns) when using XML requests. For more information, see XML related object key constraints.

", - "ListMultipartUploadsOutput$Prefix": "

When a prefix is provided in the request, this field contains the specified prefix. The result contains only keys starting with the specified prefix.

", - "ListMultipartUploadsRequest$Prefix": "

Lists in-progress uploads only for those keys that begin with the specified prefix. You can use prefixes to separate a bucket into different grouping of keys. (You can think of using prefix to make groups in the same way that you'd use a folder in a file system.)

", + "ListMultipartUploadsOutput$Prefix": "

When a prefix is provided in the request, this field contains the specified prefix. The result contains only keys starting with the specified prefix.

Directory buckets - For directory buckets, only prefixes that end in a delimiter (/) are supported.

", + "ListMultipartUploadsRequest$Prefix": "

Lists in-progress uploads only for those keys that begin with the specified prefix. You can use prefixes to separate a bucket into different grouping of keys. (You can think of using prefix to make groups in the same way that you'd use a folder in a file system.)

Directory buckets - For directory buckets, only prefixes that end in a delimiter (/) are supported.

", "ListObjectVersionsOutput$Prefix": "

Selects objects that start with the value supplied by this parameter.

", "ListObjectVersionsRequest$Prefix": "

Use this parameter to select only those keys that begin with the specified prefix. You can use prefixes to separate a bucket into different groupings of keys. (You can think of using prefix to make groups in the same way that you'd use a folder in a file system.) You can use prefix with delimiter to roll up numerous objects into a single result under CommonPrefixes.

", "ListObjectsOutput$Prefix": "

Keys that begin with the indicated prefix.

", "ListObjectsRequest$Prefix": "

Limits the response to keys that begin with the specified prefix.

", - "ListObjectsV2Output$Prefix": "

Keys that begin with the indicated prefix.

", - "ListObjectsV2Request$Prefix": "

Limits the response to keys that begin with the specified prefix.

", + "ListObjectsV2Output$Prefix": "

Keys that begin with the indicated prefix.

Directory buckets - For directory buckets, only prefixes that end in a delimiter (/) are supported.

", + "ListObjectsV2Request$Prefix": "

Limits the response to keys that begin with the specified prefix.

Directory buckets - For directory buckets, only prefixes that end in a delimiter (/) are supported.

", "MetricsAndOperator$Prefix": "

The prefix used when evaluating an AND predicate.

", "MetricsFilter$Prefix": "

The prefix used when evaluating a metrics filter.

", "ReplicationRule$Prefix": "

An object key name prefix that identifies the object or objects to which the rule applies. The maximum prefix length is 1,024 characters. To include all objects in a bucket, specify an empty string.

Replacement must be made for object keys containing special characters (such as carriage returns) when using XML requests. For more information, see XML related object key constraints.

", @@ -3438,7 +3535,7 @@ "Quiet": { "base": null, "refs": { - "Delete$Quiet": "

Element to enable quiet mode for the request. When you add this element, you must set its value to true.

" + "Delete$Quiet": "

Element to enable quiet mode for the request. When you add this element, you must set its value to true.

" } }, "QuoteCharacter": { @@ -3464,7 +3561,7 @@ "Range": { "base": null, "refs": { - "GetObjectRequest$Range": "

Downloads the specified range bytes of an object. For more information about the HTTP Range header, see https://www.rfc-editor.org/rfc/rfc9110.html#name-range.

Amazon S3 doesn't support retrieving multiple ranges of data per GET request.

", + "GetObjectRequest$Range": "

Downloads the specified byte range of an object. For more information about the HTTP Range header, see https://www.rfc-editor.org/rfc/rfc9110.html#name-range.

Amazon S3 doesn't support retrieving multiple ranges of data per GET request.

", "HeadObjectRequest$Range": "

HeadObject returns only the metadata for an object. If the Range is satisfiable, only the ContentLength is affected in the response. If the Range is not satisfiable, S3 returns a 416 - Requested Range Not Satisfiable error.

" } }, @@ -3495,6 +3592,12 @@ "WebsiteConfiguration$RedirectAllRequestsTo": "

The redirect behavior for every request to this bucket's website endpoint.

If you specify this property, you can't specify any other property.

" } }, + "Region": { + "base": null, + "refs": { + "HeadBucketOutput$BucketRegion": "

The Region that the bucket is located.

This functionality is not supported for directory buckets.

" + } + }, "ReplaceKeyPrefixWith": { "base": null, "refs": { @@ -3565,8 +3668,8 @@ "ReplicationStatus": { "base": null, "refs": { - "GetObjectOutput$ReplicationStatus": "

Amazon S3 can return this if your request involves a bucket that is either a source or destination in a replication rule.

", - "HeadObjectOutput$ReplicationStatus": "

Amazon S3 can return this header if your request involves a bucket that is either a source or a destination in a replication rule.

In replication, you have a source bucket on which you configure replication and destination bucket or buckets where Amazon S3 stores object replicas. When you request an object (GetObject) or object metadata (HeadObject) from these buckets, Amazon S3 will return the x-amz-replication-status header in the response as follows:

For more information, see Replication.

", + "GetObjectOutput$ReplicationStatus": "

Amazon S3 can return this if your request involves a bucket that is either a source or destination in a replication rule.

This functionality is not supported for directory buckets.

", + "HeadObjectOutput$ReplicationStatus": "

Amazon S3 can return this header if your request involves a bucket that is either a source or a destination in a replication rule.

In replication, you have a source bucket on which you configure replication and destination bucket or buckets where Amazon S3 stores object replicas. When you request an object (GetObject) or object metadata (HeadObject) from these buckets, Amazon S3 will return the x-amz-replication-status header in the response as follows:

For more information, see Replication.

This functionality is not supported for directory buckets.

", "WriteGetObjectResponseRequest$ReplicationStatus": "

Indicates if request involves bucket that is either a source or destination in a Replication rule. For more information about S3 Replication, see Replication.

" } }, @@ -3590,7 +3693,7 @@ } }, "RequestCharged": { - "base": "

If present, indicates that the requester was successfully charged for the request.

", + "base": "

If present, indicates that the requester was successfully charged for the request.

This functionality is not supported for directory buckets.

", "refs": { "AbortMultipartUploadOutput$RequestCharged": null, "CompleteMultipartUploadOutput$RequestCharged": null, @@ -3621,7 +3724,7 @@ } }, "RequestPayer": { - "base": "

Confirms that the requester knows that they will be charged for the request. Bucket owners need not specify this parameter in their requests. If either the source or destination Amazon S3 bucket has Requester Pays enabled, the requester will pay for corresponding charges to copy the object. For information about downloading objects from Requester Pays buckets, see Downloading Objects in Requester Pays Buckets in the Amazon S3 User Guide.

", + "base": "

Confirms that the requester knows that they will be charged for the request. Bucket owners need not specify this parameter in their requests. If either the source or destination S3 bucket has Requester Pays enabled, the requester will pay for corresponding charges to copy the object. For information about downloading objects from Requester Pays buckets, see Downloading Objects in Requester Pays Buckets in the Amazon S3 User Guide.

This functionality is not supported for directory buckets.

", "refs": { "AbortMultipartUploadRequest$RequestPayer": null, "CompleteMultipartUploadRequest$RequestPayer": null, @@ -3641,7 +3744,7 @@ "ListMultipartUploadsRequest$RequestPayer": null, "ListObjectVersionsRequest$RequestPayer": null, "ListObjectsRequest$RequestPayer": "

Confirms that the requester knows that she or he will be charged for the list objects request. Bucket owners need not specify this parameter in their requests.

", - "ListObjectsV2Request$RequestPayer": "

Confirms that the requester knows that she or he will be charged for the list objects request in V2 style. Bucket owners need not specify this parameter in their requests.

", + "ListObjectsV2Request$RequestPayer": "

Confirms that the requester knows that she or he will be charged for the list objects request in V2 style. Bucket owners need not specify this parameter in their requests.

This functionality is not supported for directory buckets.

", "ListPartsRequest$RequestPayer": null, "PutObjectAclRequest$RequestPayer": null, "PutObjectLegalHoldRequest$RequestPayer": null, @@ -3687,7 +3790,7 @@ "ResponseContentDisposition": { "base": null, "refs": { - "GetObjectRequest$ResponseContentDisposition": "

Sets the Content-Disposition header of the response

" + "GetObjectRequest$ResponseContentDisposition": "

Sets the Content-Disposition header of the response.

" } }, "ResponseContentEncoding": { @@ -3717,8 +3820,8 @@ "Restore": { "base": null, "refs": { - "GetObjectOutput$Restore": "

Provides information about object restoration action and expiration time of the restored object copy.

", - "HeadObjectOutput$Restore": "

If the object is an archived object (an object whose storage class is GLACIER), the response includes this header if either the archive restoration is in progress (see RestoreObject or an archive copy is already restored.

If an archive copy is already restored, the header value indicates when Amazon S3 is scheduled to delete the object copy. For example:

x-amz-restore: ongoing-request=\"false\", expiry-date=\"Fri, 21 Dec 2012 00:00:00 GMT\"

If the object restoration is in progress, the header returns the value ongoing-request=\"true\".

For more information about archiving objects, see Transitioning Objects: General Considerations.

", + "GetObjectOutput$Restore": "

Provides information about object restoration action and expiration time of the restored object copy.

This functionality is not supported for directory buckets. Only the S3 Express One Zone storage class is supported by directory buckets to store objects.

", + "HeadObjectOutput$Restore": "

If the object is an archived object (an object whose storage class is GLACIER), the response includes this header if either the archive restoration is in progress (see RestoreObject or an archive copy is already restored.

If an archive copy is already restored, the header value indicates when Amazon S3 is scheduled to delete the object copy. For example:

x-amz-restore: ongoing-request=\"false\", expiry-date=\"Fri, 21 Dec 2012 00:00:00 GMT\"

If the object restoration is in progress, the header returns the value ongoing-request=\"true\".

For more information about archiving objects, see Transitioning Objects: General Considerations.

This functionality is not supported for directory buckets. Only the S3 Express One Zone storage class is supported by directory buckets to store objects.

", "WriteGetObjectResponseRequest$Restore": "

Provides information about object restoration operation and expiration time of the restored object copy.

" } }, @@ -3757,9 +3860,9 @@ } }, "RestoreStatus": { - "base": "

Specifies the restoration status of an object. Objects in certain storage classes must be restored before they can be retrieved. For more information about these storage classes and how to work with archived objects, see Working with archived objects in the Amazon S3 User Guide.

", + "base": "

Specifies the restoration status of an object. Objects in certain storage classes must be restored before they can be retrieved. For more information about these storage classes and how to work with archived objects, see Working with archived objects in the Amazon S3 User Guide.

This functionality is not supported for directory buckets. Only the S3 Express One Zone storage class is supported by directory buckets to store objects.

", "refs": { - "Object$RestoreStatus": "

Specifies the restoration status of an object. Objects in certain storage classes must be restored before they can be retrieved. For more information about these storage classes and how to work with archived objects, see Working with archived objects in the Amazon S3 User Guide.

", + "Object$RestoreStatus": "

Specifies the restoration status of an object. Objects in certain storage classes must be restored before they can be retrieved. For more information about these storage classes and how to work with archived objects, see Working with archived objects in the Amazon S3 User Guide.

This functionality is not supported for directory buckets. Only the S3 Express One Zone storage class is supported by directory buckets to store objects.

", "ObjectVersion$RestoreStatus": "

Specifies the restoration status of an object. Objects in certain storage classes must be restored before they can be retrieved. For more information about these storage classes and how to work with archived objects, see Working with archived objects in the Amazon S3 User Guide.

" } }, @@ -3810,64 +3913,64 @@ "SSECustomerAlgorithm": { "base": null, "refs": { - "CompleteMultipartUploadRequest$SSECustomerAlgorithm": "

The server-side encryption (SSE) algorithm used to encrypt the object. This parameter is required only when the object was created using a checksum algorithm or if your bucket policy requires the use of SSE-C. For more information, see Protecting data using SSE-C keys in the Amazon S3 User Guide.

", - "CopyObjectOutput$SSECustomerAlgorithm": "

If server-side encryption with a customer-provided encryption key was requested, the response will include this header confirming the encryption algorithm used.

", - "CopyObjectRequest$SSECustomerAlgorithm": "

Specifies the algorithm to use to when encrypting the object (for example, AES256).

", - "CreateMultipartUploadOutput$SSECustomerAlgorithm": "

If server-side encryption with a customer-provided encryption key was requested, the response will include this header confirming the encryption algorithm used.

", - "CreateMultipartUploadRequest$SSECustomerAlgorithm": "

Specifies the algorithm to use to when encrypting the object (for example, AES256).

", - "GetObjectAttributesRequest$SSECustomerAlgorithm": "

Specifies the algorithm to use when encrypting the object (for example, AES256).

", - "GetObjectOutput$SSECustomerAlgorithm": "

If server-side encryption with a customer-provided encryption key was requested, the response will include this header confirming the encryption algorithm used.

", - "GetObjectRequest$SSECustomerAlgorithm": "

Specifies the algorithm to use to when decrypting the object (for example, AES256).

", - "HeadObjectOutput$SSECustomerAlgorithm": "

If server-side encryption with a customer-provided encryption key was requested, the response will include this header confirming the encryption algorithm used.

", - "HeadObjectRequest$SSECustomerAlgorithm": "

Specifies the algorithm to use to when encrypting the object (for example, AES256).

", - "ListPartsRequest$SSECustomerAlgorithm": "

The server-side encryption (SSE) algorithm used to encrypt the object. This parameter is needed only when the object was created using a checksum algorithm. For more information, see Protecting data using SSE-C keys in the Amazon S3 User Guide.

", - "PutObjectOutput$SSECustomerAlgorithm": "

If server-side encryption with a customer-provided encryption key was requested, the response will include this header confirming the encryption algorithm used.

", - "PutObjectRequest$SSECustomerAlgorithm": "

Specifies the algorithm to use to when encrypting the object (for example, AES256).

", + "CompleteMultipartUploadRequest$SSECustomerAlgorithm": "

The server-side encryption (SSE) algorithm used to encrypt the object. This parameter is required only when the object was created using a checksum algorithm or if your bucket policy requires the use of SSE-C. For more information, see Protecting data using SSE-C keys in the Amazon S3 User Guide.

This functionality is not supported for directory buckets.

", + "CopyObjectOutput$SSECustomerAlgorithm": "

If server-side encryption with a customer-provided encryption key was requested, the response will include this header to confirm the encryption algorithm that's used.

This functionality is not supported for directory buckets.

", + "CopyObjectRequest$SSECustomerAlgorithm": "

Specifies the algorithm to use when encrypting the object (for example, AES256).

When you perform a CopyObject operation, if you want to use a different type of encryption setting for the target object, you can specify appropriate encryption-related headers to encrypt the target object with an Amazon S3 managed key, a KMS key, or a customer-provided key. If the encryption setting in your request is different from the default encryption configuration of the destination bucket, the encryption setting in your request takes precedence.

This functionality is not supported when the destination bucket is a directory bucket.

", + "CreateMultipartUploadOutput$SSECustomerAlgorithm": "

If server-side encryption with a customer-provided encryption key was requested, the response will include this header to confirm the encryption algorithm that's used.

This functionality is not supported for directory buckets.

", + "CreateMultipartUploadRequest$SSECustomerAlgorithm": "

Specifies the algorithm to use when encrypting the object (for example, AES256).

This functionality is not supported for directory buckets.

", + "GetObjectAttributesRequest$SSECustomerAlgorithm": "

Specifies the algorithm to use when encrypting the object (for example, AES256).

This functionality is not supported for directory buckets.

", + "GetObjectOutput$SSECustomerAlgorithm": "

If server-side encryption with a customer-provided encryption key was requested, the response will include this header to confirm the encryption algorithm that's used.

This functionality is not supported for directory buckets.

", + "GetObjectRequest$SSECustomerAlgorithm": "

Specifies the algorithm to use when decrypting the object (for example, AES256).

If you encrypt an object by using server-side encryption with customer-provided encryption keys (SSE-C) when you store the object in Amazon S3, then when you GET the object, you must use the following headers:

For more information about SSE-C, see Server-Side Encryption (Using Customer-Provided Encryption Keys) in the Amazon S3 User Guide.

This functionality is not supported for directory buckets.

", + "HeadObjectOutput$SSECustomerAlgorithm": "

If server-side encryption with a customer-provided encryption key was requested, the response will include this header to confirm the encryption algorithm that's used.

This functionality is not supported for directory buckets.

", + "HeadObjectRequest$SSECustomerAlgorithm": "

Specifies the algorithm to use when encrypting the object (for example, AES256).

This functionality is not supported for directory buckets.

", + "ListPartsRequest$SSECustomerAlgorithm": "

The server-side encryption (SSE) algorithm used to encrypt the object. This parameter is needed only when the object was created using a checksum algorithm. For more information, see Protecting data using SSE-C keys in the Amazon S3 User Guide.

This functionality is not supported for directory buckets.

", + "PutObjectOutput$SSECustomerAlgorithm": "

If server-side encryption with a customer-provided encryption key was requested, the response will include this header to confirm the encryption algorithm that's used.

This functionality is not supported for directory buckets.

", + "PutObjectRequest$SSECustomerAlgorithm": "

Specifies the algorithm to use when encrypting the object (for example, AES256).

This functionality is not supported for directory buckets.

", "SelectObjectContentRequest$SSECustomerAlgorithm": "

The server-side encryption (SSE) algorithm used to encrypt the object. This parameter is needed only when the object was created using a checksum algorithm. For more information, see Protecting data using SSE-C keys in the Amazon S3 User Guide.

", - "UploadPartCopyOutput$SSECustomerAlgorithm": "

If server-side encryption with a customer-provided encryption key was requested, the response will include this header confirming the encryption algorithm used.

", - "UploadPartCopyRequest$SSECustomerAlgorithm": "

Specifies the algorithm to use to when encrypting the object (for example, AES256).

", - "UploadPartOutput$SSECustomerAlgorithm": "

If server-side encryption with a customer-provided encryption key was requested, the response will include this header confirming the encryption algorithm used.

", - "UploadPartRequest$SSECustomerAlgorithm": "

Specifies the algorithm to use to when encrypting the object (for example, AES256).

", + "UploadPartCopyOutput$SSECustomerAlgorithm": "

If server-side encryption with a customer-provided encryption key was requested, the response will include this header to confirm the encryption algorithm that's used.

This functionality is not supported for directory buckets.

", + "UploadPartCopyRequest$SSECustomerAlgorithm": "

Specifies the algorithm to use when encrypting the object (for example, AES256).

This functionality is not supported when the destination bucket is a directory bucket.

", + "UploadPartOutput$SSECustomerAlgorithm": "

If server-side encryption with a customer-provided encryption key was requested, the response will include this header to confirm the encryption algorithm that's used.

This functionality is not supported for directory buckets.

", + "UploadPartRequest$SSECustomerAlgorithm": "

Specifies the algorithm to use when encrypting the object (for example, AES256).

This functionality is not supported for directory buckets.

", "WriteGetObjectResponseRequest$SSECustomerAlgorithm": "

Encryption algorithm used if server-side encryption with a customer-provided encryption key was specified for object stored in Amazon S3.

" } }, "SSECustomerKey": { "base": null, "refs": { - "CompleteMultipartUploadRequest$SSECustomerKey": "

The server-side encryption (SSE) customer managed key. This parameter is needed only when the object was created using a checksum algorithm. For more information, see Protecting data using SSE-C keys in the Amazon S3 User Guide.

", - "CopyObjectRequest$SSECustomerKey": "

Specifies the customer-provided encryption key for Amazon S3 to use in encrypting data. This value is used to store the object and then it is discarded; Amazon S3 does not store the encryption key. The key must be appropriate for use with the algorithm specified in the x-amz-server-side-encryption-customer-algorithm header.

", - "CreateMultipartUploadRequest$SSECustomerKey": "

Specifies the customer-provided encryption key for Amazon S3 to use in encrypting data. This value is used to store the object and then it is discarded; Amazon S3 does not store the encryption key. The key must be appropriate for use with the algorithm specified in the x-amz-server-side-encryption-customer-algorithm header.

", - "GetObjectAttributesRequest$SSECustomerKey": "

Specifies the customer-provided encryption key for Amazon S3 to use in encrypting data. This value is used to store the object and then it is discarded; Amazon S3 does not store the encryption key. The key must be appropriate for use with the algorithm specified in the x-amz-server-side-encryption-customer-algorithm header.

", - "GetObjectRequest$SSECustomerKey": "

Specifies the customer-provided encryption key for Amazon S3 used to encrypt the data. This value is used to decrypt the object when recovering it and must match the one used when storing the data. The key must be appropriate for use with the algorithm specified in the x-amz-server-side-encryption-customer-algorithm header.

", - "HeadObjectRequest$SSECustomerKey": "

Specifies the customer-provided encryption key for Amazon S3 to use in encrypting data. This value is used to store the object and then it is discarded; Amazon S3 does not store the encryption key. The key must be appropriate for use with the algorithm specified in the x-amz-server-side-encryption-customer-algorithm header.

", - "ListPartsRequest$SSECustomerKey": "

The server-side encryption (SSE) customer managed key. This parameter is needed only when the object was created using a checksum algorithm. For more information, see Protecting data using SSE-C keys in the Amazon S3 User Guide.

", - "PutObjectRequest$SSECustomerKey": "

Specifies the customer-provided encryption key for Amazon S3 to use in encrypting data. This value is used to store the object and then it is discarded; Amazon S3 does not store the encryption key. The key must be appropriate for use with the algorithm specified in the x-amz-server-side-encryption-customer-algorithm header.

", + "CompleteMultipartUploadRequest$SSECustomerKey": "

The server-side encryption (SSE) customer managed key. This parameter is needed only when the object was created using a checksum algorithm. For more information, see Protecting data using SSE-C keys in the Amazon S3 User Guide.

This functionality is not supported for directory buckets.

", + "CopyObjectRequest$SSECustomerKey": "

Specifies the customer-provided encryption key for Amazon S3 to use in encrypting data. This value is used to store the object and then it is discarded. Amazon S3 does not store the encryption key. The key must be appropriate for use with the algorithm specified in the x-amz-server-side-encryption-customer-algorithm header.

This functionality is not supported when the destination bucket is a directory bucket.

", + "CreateMultipartUploadRequest$SSECustomerKey": "

Specifies the customer-provided encryption key for Amazon S3 to use in encrypting data. This value is used to store the object and then it is discarded; Amazon S3 does not store the encryption key. The key must be appropriate for use with the algorithm specified in the x-amz-server-side-encryption-customer-algorithm header.

This functionality is not supported for directory buckets.

", + "GetObjectAttributesRequest$SSECustomerKey": "

Specifies the customer-provided encryption key for Amazon S3 to use in encrypting data. This value is used to store the object and then it is discarded; Amazon S3 does not store the encryption key. The key must be appropriate for use with the algorithm specified in the x-amz-server-side-encryption-customer-algorithm header.

This functionality is not supported for directory buckets.

", + "GetObjectRequest$SSECustomerKey": "

Specifies the customer-provided encryption key that you originally provided for Amazon S3 to encrypt the data before storing it. This value is used to decrypt the object when recovering it and must match the one used when storing the data. The key must be appropriate for use with the algorithm specified in the x-amz-server-side-encryption-customer-algorithm header.

If you encrypt an object by using server-side encryption with customer-provided encryption keys (SSE-C) when you store the object in Amazon S3, then when you GET the object, you must use the following headers:

For more information about SSE-C, see Server-Side Encryption (Using Customer-Provided Encryption Keys) in the Amazon S3 User Guide.

This functionality is not supported for directory buckets.

", + "HeadObjectRequest$SSECustomerKey": "

Specifies the customer-provided encryption key for Amazon S3 to use in encrypting data. This value is used to store the object and then it is discarded; Amazon S3 does not store the encryption key. The key must be appropriate for use with the algorithm specified in the x-amz-server-side-encryption-customer-algorithm header.

This functionality is not supported for directory buckets.

", + "ListPartsRequest$SSECustomerKey": "

The server-side encryption (SSE) customer managed key. This parameter is needed only when the object was created using a checksum algorithm. For more information, see Protecting data using SSE-C keys in the Amazon S3 User Guide.

This functionality is not supported for directory buckets.

", + "PutObjectRequest$SSECustomerKey": "

Specifies the customer-provided encryption key for Amazon S3 to use in encrypting data. This value is used to store the object and then it is discarded; Amazon S3 does not store the encryption key. The key must be appropriate for use with the algorithm specified in the x-amz-server-side-encryption-customer-algorithm header.

This functionality is not supported for directory buckets.

", "SelectObjectContentRequest$SSECustomerKey": "

The server-side encryption (SSE) customer managed key. This parameter is needed only when the object was created using a checksum algorithm. For more information, see Protecting data using SSE-C keys in the Amazon S3 User Guide.

", - "UploadPartCopyRequest$SSECustomerKey": "

Specifies the customer-provided encryption key for Amazon S3 to use in encrypting data. This value is used to store the object and then it is discarded; Amazon S3 does not store the encryption key. The key must be appropriate for use with the algorithm specified in the x-amz-server-side-encryption-customer-algorithm header. This must be the same encryption key specified in the initiate multipart upload request.

", - "UploadPartRequest$SSECustomerKey": "

Specifies the customer-provided encryption key for Amazon S3 to use in encrypting data. This value is used to store the object and then it is discarded; Amazon S3 does not store the encryption key. The key must be appropriate for use with the algorithm specified in the x-amz-server-side-encryption-customer-algorithm header. This must be the same encryption key specified in the initiate multipart upload request.

" + "UploadPartCopyRequest$SSECustomerKey": "

Specifies the customer-provided encryption key for Amazon S3 to use in encrypting data. This value is used to store the object and then it is discarded; Amazon S3 does not store the encryption key. The key must be appropriate for use with the algorithm specified in the x-amz-server-side-encryption-customer-algorithm header. This must be the same encryption key specified in the initiate multipart upload request.

This functionality is not supported when the destination bucket is a directory bucket.

", + "UploadPartRequest$SSECustomerKey": "

Specifies the customer-provided encryption key for Amazon S3 to use in encrypting data. This value is used to store the object and then it is discarded; Amazon S3 does not store the encryption key. The key must be appropriate for use with the algorithm specified in the x-amz-server-side-encryption-customer-algorithm header. This must be the same encryption key specified in the initiate multipart upload request.

This functionality is not supported for directory buckets.

" } }, "SSECustomerKeyMD5": { "base": null, "refs": { - "CompleteMultipartUploadRequest$SSECustomerKeyMD5": "

The MD5 server-side encryption (SSE) customer managed key. This parameter is needed only when the object was created using a checksum algorithm. For more information, see Protecting data using SSE-C keys in the Amazon S3 User Guide.

", - "CopyObjectOutput$SSECustomerKeyMD5": "

If server-side encryption with a customer-provided encryption key was requested, the response will include this header to provide round-trip message integrity verification of the customer-provided encryption key.

", - "CopyObjectRequest$SSECustomerKeyMD5": "

Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. Amazon S3 uses this header for a message integrity check to ensure that the encryption key was transmitted without error.

", - "CreateMultipartUploadOutput$SSECustomerKeyMD5": "

If server-side encryption with a customer-provided encryption key was requested, the response will include this header to provide round-trip message integrity verification of the customer-provided encryption key.

", - "CreateMultipartUploadRequest$SSECustomerKeyMD5": "

Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. Amazon S3 uses this header for a message integrity check to ensure that the encryption key was transmitted without error.

", - "GetObjectAttributesRequest$SSECustomerKeyMD5": "

Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. Amazon S3 uses this header for a message integrity check to ensure that the encryption key was transmitted without error.

", - "GetObjectOutput$SSECustomerKeyMD5": "

If server-side encryption with a customer-provided encryption key was requested, the response will include this header to provide round-trip message integrity verification of the customer-provided encryption key.

", - "GetObjectRequest$SSECustomerKeyMD5": "

Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. Amazon S3 uses this header for a message integrity check to ensure that the encryption key was transmitted without error.

", - "HeadObjectOutput$SSECustomerKeyMD5": "

If server-side encryption with a customer-provided encryption key was requested, the response will include this header to provide round-trip message integrity verification of the customer-provided encryption key.

", - "HeadObjectRequest$SSECustomerKeyMD5": "

Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. Amazon S3 uses this header for a message integrity check to ensure that the encryption key was transmitted without error.

", - "ListPartsRequest$SSECustomerKeyMD5": "

The MD5 server-side encryption (SSE) customer managed key. This parameter is needed only when the object was created using a checksum algorithm. For more information, see Protecting data using SSE-C keys in the Amazon S3 User Guide.

", - "PutObjectOutput$SSECustomerKeyMD5": "

If server-side encryption with a customer-provided encryption key was requested, the response will include this header to provide round-trip message integrity verification of the customer-provided encryption key.

", - "PutObjectRequest$SSECustomerKeyMD5": "

Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. Amazon S3 uses this header for a message integrity check to ensure that the encryption key was transmitted without error.

", + "CompleteMultipartUploadRequest$SSECustomerKeyMD5": "

The MD5 server-side encryption (SSE) customer managed key. This parameter is needed only when the object was created using a checksum algorithm. For more information, see Protecting data using SSE-C keys in the Amazon S3 User Guide.

This functionality is not supported for directory buckets.

", + "CopyObjectOutput$SSECustomerKeyMD5": "

If server-side encryption with a customer-provided encryption key was requested, the response will include this header to provide the round-trip message integrity verification of the customer-provided encryption key.

This functionality is not supported for directory buckets.

", + "CopyObjectRequest$SSECustomerKeyMD5": "

Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. Amazon S3 uses this header for a message integrity check to ensure that the encryption key was transmitted without error.

This functionality is not supported when the destination bucket is a directory bucket.

", + "CreateMultipartUploadOutput$SSECustomerKeyMD5": "

If server-side encryption with a customer-provided encryption key was requested, the response will include this header to provide the round-trip message integrity verification of the customer-provided encryption key.

This functionality is not supported for directory buckets.

", + "CreateMultipartUploadRequest$SSECustomerKeyMD5": "

Specifies the 128-bit MD5 digest of the customer-provided encryption key according to RFC 1321. Amazon S3 uses this header for a message integrity check to ensure that the encryption key was transmitted without error.

This functionality is not supported for directory buckets.

", + "GetObjectAttributesRequest$SSECustomerKeyMD5": "

Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. Amazon S3 uses this header for a message integrity check to ensure that the encryption key was transmitted without error.

This functionality is not supported for directory buckets.

", + "GetObjectOutput$SSECustomerKeyMD5": "

If server-side encryption with a customer-provided encryption key was requested, the response will include this header to provide the round-trip message integrity verification of the customer-provided encryption key.

This functionality is not supported for directory buckets.

", + "GetObjectRequest$SSECustomerKeyMD5": "

Specifies the 128-bit MD5 digest of the customer-provided encryption key according to RFC 1321. Amazon S3 uses this header for a message integrity check to ensure that the encryption key was transmitted without error.

If you encrypt an object by using server-side encryption with customer-provided encryption keys (SSE-C) when you store the object in Amazon S3, then when you GET the object, you must use the following headers:

For more information about SSE-C, see Server-Side Encryption (Using Customer-Provided Encryption Keys) in the Amazon S3 User Guide.

This functionality is not supported for directory buckets.

", + "HeadObjectOutput$SSECustomerKeyMD5": "

If server-side encryption with a customer-provided encryption key was requested, the response will include this header to provide the round-trip message integrity verification of the customer-provided encryption key.

This functionality is not supported for directory buckets.

", + "HeadObjectRequest$SSECustomerKeyMD5": "

Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. Amazon S3 uses this header for a message integrity check to ensure that the encryption key was transmitted without error.

This functionality is not supported for directory buckets.

", + "ListPartsRequest$SSECustomerKeyMD5": "

The MD5 server-side encryption (SSE) customer managed key. This parameter is needed only when the object was created using a checksum algorithm. For more information, see Protecting data using SSE-C keys in the Amazon S3 User Guide.

This functionality is not supported for directory buckets.

", + "PutObjectOutput$SSECustomerKeyMD5": "

If server-side encryption with a customer-provided encryption key was requested, the response will include this header to provide the round-trip message integrity verification of the customer-provided encryption key.

This functionality is not supported for directory buckets.

", + "PutObjectRequest$SSECustomerKeyMD5": "

Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. Amazon S3 uses this header for a message integrity check to ensure that the encryption key was transmitted without error.

This functionality is not supported for directory buckets.

", "SelectObjectContentRequest$SSECustomerKeyMD5": "

The MD5 server-side encryption (SSE) customer managed key. This parameter is needed only when the object was created using a checksum algorithm. For more information, see Protecting data using SSE-C keys in the Amazon S3 User Guide.

", - "UploadPartCopyOutput$SSECustomerKeyMD5": "

If server-side encryption with a customer-provided encryption key was requested, the response will include this header to provide round-trip message integrity verification of the customer-provided encryption key.

", - "UploadPartCopyRequest$SSECustomerKeyMD5": "

Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. Amazon S3 uses this header for a message integrity check to ensure that the encryption key was transmitted without error.

", - "UploadPartOutput$SSECustomerKeyMD5": "

If server-side encryption with a customer-provided encryption key was requested, the response will include this header to provide round-trip message integrity verification of the customer-provided encryption key.

", - "UploadPartRequest$SSECustomerKeyMD5": "

Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. Amazon S3 uses this header for a message integrity check to ensure that the encryption key was transmitted without error.

", + "UploadPartCopyOutput$SSECustomerKeyMD5": "

If server-side encryption with a customer-provided encryption key was requested, the response will include this header to provide the round-trip message integrity verification of the customer-provided encryption key.

This functionality is not supported for directory buckets.

", + "UploadPartCopyRequest$SSECustomerKeyMD5": "

Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. Amazon S3 uses this header for a message integrity check to ensure that the encryption key was transmitted without error.

This functionality is not supported when the destination bucket is a directory bucket.

", + "UploadPartOutput$SSECustomerKeyMD5": "

If server-side encryption with a customer-provided encryption key was requested, the response will include this header to provide the round-trip message integrity verification of the customer-provided encryption key.

This functionality is not supported for directory buckets.

", + "UploadPartRequest$SSECustomerKeyMD5": "

Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. Amazon S3 uses this header for a message integrity check to ensure that the encryption key was transmitted without error.

This functionality is not supported for directory buckets.

", "WriteGetObjectResponseRequest$SSECustomerKeyMD5": "

128-bit MD5 digest of customer-provided encryption key used in Amazon S3 to encrypt data stored in S3. For more information, see Protecting data using server-side encryption with customer-provided encryption keys (SSE-C).

" } }, @@ -3880,31 +3983,31 @@ "SSEKMSEncryptionContext": { "base": null, "refs": { - "CopyObjectOutput$SSEKMSEncryptionContext": "

If present, specifies the Amazon Web Services KMS Encryption Context to use for object encryption. The value of this header is a base64-encoded UTF-8 string holding JSON with the encryption context key-value pairs.

", - "CopyObjectRequest$SSEKMSEncryptionContext": "

Specifies the Amazon Web Services KMS Encryption Context to use for object encryption. The value of this header is a base64-encoded UTF-8 string holding JSON with the encryption context key-value pairs. This value must be explicitly added to specify encryption context for CopyObject requests.

", - "CreateMultipartUploadOutput$SSEKMSEncryptionContext": "

If present, specifies the Amazon Web Services KMS Encryption Context to use for object encryption. The value of this header is a base64-encoded UTF-8 string holding JSON with the encryption context key-value pairs.

", - "CreateMultipartUploadRequest$SSEKMSEncryptionContext": "

Specifies the Amazon Web Services KMS Encryption Context to use for object encryption. The value of this header is a base64-encoded UTF-8 string holding JSON with the encryption context key-value pairs.

", - "PutObjectOutput$SSEKMSEncryptionContext": "

If present, specifies the Amazon Web Services KMS Encryption Context to use for object encryption. The value of this header is a base64-encoded UTF-8 string holding JSON with the encryption context key-value pairs. This value is stored as object metadata and automatically gets passed on to Amazon Web Services KMS for future GetObject or CopyObject operations on this object.

", - "PutObjectRequest$SSEKMSEncryptionContext": "

Specifies the Amazon Web Services KMS Encryption Context to use for object encryption. The value of this header is a base64-encoded UTF-8 string holding JSON with the encryption context key-value pairs. This value is stored as object metadata and automatically gets passed on to Amazon Web Services KMS for future GetObject or CopyObject operations on this object. This value must be explicitly added during CopyObject operations.

" + "CopyObjectOutput$SSEKMSEncryptionContext": "

If present, indicates the Amazon Web Services KMS Encryption Context to use for object encryption. The value of this header is a base64-encoded UTF-8 string holding JSON with the encryption context key-value pairs.

This functionality is not supported for directory buckets.

", + "CopyObjectRequest$SSEKMSEncryptionContext": "

Specifies the Amazon Web Services KMS Encryption Context to use for object encryption. The value of this header is a base64-encoded UTF-8 string holding JSON with the encryption context key-value pairs. This value must be explicitly added to specify encryption context for CopyObject requests.

This functionality is not supported when the destination bucket is a directory bucket.

", + "CreateMultipartUploadOutput$SSEKMSEncryptionContext": "

If present, indicates the Amazon Web Services KMS Encryption Context to use for object encryption. The value of this header is a base64-encoded UTF-8 string holding JSON with the encryption context key-value pairs.

This functionality is not supported for directory buckets.

", + "CreateMultipartUploadRequest$SSEKMSEncryptionContext": "

Specifies the Amazon Web Services KMS Encryption Context to use for object encryption. The value of this header is a base64-encoded UTF-8 string holding JSON with the encryption context key-value pairs.

This functionality is not supported for directory buckets.

", + "PutObjectOutput$SSEKMSEncryptionContext": "

If present, indicates the Amazon Web Services KMS Encryption Context to use for object encryption. The value of this header is a base64-encoded UTF-8 string holding JSON with the encryption context key-value pairs. This value is stored as object metadata and automatically gets passed on to Amazon Web Services KMS for future GetObject or CopyObject operations on this object.

This functionality is not supported for directory buckets.

", + "PutObjectRequest$SSEKMSEncryptionContext": "

Specifies the Amazon Web Services KMS Encryption Context to use for object encryption. The value of this header is a base64-encoded UTF-8 string holding JSON with the encryption context key-value pairs. This value is stored as object metadata and automatically gets passed on to Amazon Web Services KMS for future GetObject or CopyObject operations on this object. This value must be explicitly added during CopyObject operations.

This functionality is not supported for directory buckets.

" } }, "SSEKMSKeyId": { "base": null, "refs": { - "CompleteMultipartUploadOutput$SSEKMSKeyId": "

If present, specifies the ID of the Key Management Service (KMS) symmetric encryption customer managed key that was used for the object.

", - "CopyObjectOutput$SSEKMSKeyId": "

If present, specifies the ID of the Key Management Service (KMS) symmetric encryption customer managed key that was used for the object.

", - "CopyObjectRequest$SSEKMSKeyId": "

Specifies the KMS ID (Key ID, Key ARN, or Key Alias) to use for object encryption. All GET and PUT requests for an object protected by KMS will fail if they're not made via SSL or using SigV4. For information about configuring any of the officially supported Amazon Web Services SDKs and Amazon Web Services CLI, see Specifying the Signature Version in Request Authentication in the Amazon S3 User Guide.

", - "CreateMultipartUploadOutput$SSEKMSKeyId": "

If present, specifies the ID of the Key Management Service (KMS) symmetric encryption customer managed key that was used for the object.

", - "CreateMultipartUploadRequest$SSEKMSKeyId": "

Specifies the ID (Key ID, Key ARN, or Key Alias) of the symmetric encryption customer managed key to use for object encryption. All GET and PUT requests for an object protected by KMS will fail if they're not made via SSL or using SigV4. For information about configuring any of the officially supported Amazon Web Services SDKs and Amazon Web Services CLI, see Specifying the Signature Version in Request Authentication in the Amazon S3 User Guide.

", + "CompleteMultipartUploadOutput$SSEKMSKeyId": "

If present, indicates the ID of the Key Management Service (KMS) symmetric encryption customer managed key that was used for the object.

This functionality is not supported for directory buckets.

", + "CopyObjectOutput$SSEKMSKeyId": "

If present, indicates the ID of the Key Management Service (KMS) symmetric encryption customer managed key that was used for the object.

This functionality is not supported for directory buckets.

", + "CopyObjectRequest$SSEKMSKeyId": "

Specifies the KMS ID (Key ID, Key ARN, or Key Alias) to use for object encryption. All GET and PUT requests for an object protected by KMS will fail if they're not made via SSL or using SigV4. For information about configuring any of the officially supported Amazon Web Services SDKs and Amazon Web Services CLI, see Specifying the Signature Version in Request Authentication in the Amazon S3 User Guide.

This functionality is not supported when the destination bucket is a directory bucket.

", + "CreateMultipartUploadOutput$SSEKMSKeyId": "

If present, indicates the ID of the Key Management Service (KMS) symmetric encryption customer managed key that was used for the object.

This functionality is not supported for directory buckets.

", + "CreateMultipartUploadRequest$SSEKMSKeyId": "

Specifies the ID (Key ID, Key ARN, or Key Alias) of the symmetric encryption customer managed key to use for object encryption.

This functionality is not supported for directory buckets.

", "Encryption$KMSKeyId": "

If the encryption type is aws:kms, this optional value specifies the ID of the symmetric encryption customer managed key to use for encryption of job results. Amazon S3 only supports symmetric encryption KMS keys. For more information, see Asymmetric keys in KMS in the Amazon Web Services Key Management Service Developer Guide.

", - "GetObjectOutput$SSEKMSKeyId": "

If present, specifies the ID of the Key Management Service (KMS) symmetric encryption customer managed key that was used for the object.

", - "HeadObjectOutput$SSEKMSKeyId": "

If present, specifies the ID of the Key Management Service (KMS) symmetric encryption customer managed key that was used for the object.

", - "PutObjectOutput$SSEKMSKeyId": "

If x-amz-server-side-encryption has a valid value of aws:kms or aws:kms:dsse, this header specifies the ID of the Key Management Service (KMS) symmetric encryption customer managed key that was used for the object.

", - "PutObjectRequest$SSEKMSKeyId": "

If x-amz-server-side-encryption has a valid value of aws:kms or aws:kms:dsse, this header specifies the ID (Key ID, Key ARN, or Key Alias) of the Key Management Service (KMS) symmetric encryption customer managed key that was used for the object. If you specify x-amz-server-side-encryption:aws:kms or x-amz-server-side-encryption:aws:kms:dsse, but do not provide x-amz-server-side-encryption-aws-kms-key-id, Amazon S3 uses the Amazon Web Services managed key (aws/s3) to protect the data. If the KMS key does not exist in the same account that's issuing the command, you must use the full ARN and not just the ID.

", + "GetObjectOutput$SSEKMSKeyId": "

If present, indicates the ID of the Key Management Service (KMS) symmetric encryption customer managed key that was used for the object.

This functionality is not supported for directory buckets.

", + "HeadObjectOutput$SSEKMSKeyId": "

If present, indicates the ID of the Key Management Service (KMS) symmetric encryption customer managed key that was used for the object.

This functionality is not supported for directory buckets.

", + "PutObjectOutput$SSEKMSKeyId": "

If x-amz-server-side-encryption has a valid value of aws:kms or aws:kms:dsse, this header indicates the ID of the Key Management Service (KMS) symmetric encryption customer managed key that was used for the object.

This functionality is not supported for directory buckets.

", + "PutObjectRequest$SSEKMSKeyId": "

If x-amz-server-side-encryption has a valid value of aws:kms or aws:kms:dsse, this header specifies the ID (Key ID, Key ARN, or Key Alias) of the Key Management Service (KMS) symmetric encryption customer managed key that was used for the object. If you specify x-amz-server-side-encryption:aws:kms or x-amz-server-side-encryption:aws:kms:dsse, but do not provide x-amz-server-side-encryption-aws-kms-key-id, Amazon S3 uses the Amazon Web Services managed key (aws/s3) to protect the data. If the KMS key does not exist in the same account that's issuing the command, you must use the full ARN and not just the ID.

This functionality is not supported for directory buckets.

", "SSEKMS$KeyId": "

Specifies the ID of the Key Management Service (KMS) symmetric encryption customer managed key to use for encrypting inventory reports.

", "ServerSideEncryptionByDefault$KMSMasterKeyID": "

Amazon Web Services Key Management Service (KMS) customer Amazon Web Services KMS key ID to use for the default encryption. This parameter is allowed if and only if SSEAlgorithm is set to aws:kms.

You can specify the key ID, key alias, or the Amazon Resource Name (ARN) of the KMS key.

If you use a key ID, you can run into a LogDestination undeliverable error when creating a VPC flow log.

If you are using encryption with cross-account or Amazon Web Services service operations you must use a fully qualified KMS key ARN. For more information, see Using encryption for cross-account operations.

Amazon S3 only supports symmetric encryption KMS keys. For more information, see Asymmetric keys in Amazon Web Services KMS in the Amazon Web Services Key Management Service Developer Guide.

", - "UploadPartCopyOutput$SSEKMSKeyId": "

If present, specifies the ID of the Key Management Service (KMS) symmetric encryption customer managed key that was used for the object.

", - "UploadPartOutput$SSEKMSKeyId": "

If present, specifies the ID of the Key Management Service (KMS) symmetric encryption customer managed key was used for the object.

", + "UploadPartCopyOutput$SSEKMSKeyId": "

If present, indicates the ID of the Key Management Service (KMS) symmetric encryption customer managed key that was used for the object.

This functionality is not supported for directory buckets.

", + "UploadPartOutput$SSEKMSKeyId": "

If present, indicates the ID of the Key Management Service (KMS) symmetric encryption customer managed key that was used for the object.

This functionality is not supported for directory buckets.

", "WriteGetObjectResponseRequest$SSEKMSKeyId": "

If present, specifies the ID (Key ID, Key ARN, or Key Alias) of the Amazon Web Services Key Management Service (Amazon Web Services KMS) symmetric encryption customer managed key that was used for stored in Amazon S3 object.

" } }, @@ -3945,19 +4048,19 @@ "ServerSideEncryption": { "base": null, "refs": { - "CompleteMultipartUploadOutput$ServerSideEncryption": "

The server-side encryption algorithm used when storing this object in Amazon S3 (for example, AES256, aws:kms).

", - "CopyObjectOutput$ServerSideEncryption": "

The server-side encryption algorithm used when storing this object in Amazon S3 (for example, AES256, aws:kms, aws:kms:dsse).

", - "CopyObjectRequest$ServerSideEncryption": "

The server-side encryption algorithm used when storing this object in Amazon S3 (for example, AES256, aws:kms, aws:kms:dsse).

", - "CreateMultipartUploadOutput$ServerSideEncryption": "

The server-side encryption algorithm used when storing this object in Amazon S3 (for example, AES256, aws:kms).

", - "CreateMultipartUploadRequest$ServerSideEncryption": "

The server-side encryption algorithm used when storing this object in Amazon S3 (for example, AES256, aws:kms).

", + "CompleteMultipartUploadOutput$ServerSideEncryption": "

The server-side encryption algorithm used when storing this object in Amazon S3 (for example, AES256, aws:kms).

For directory buckets, only server-side encryption with Amazon S3 managed keys (SSE-S3) (AES256) is supported.

", + "CopyObjectOutput$ServerSideEncryption": "

The server-side encryption algorithm used when you store this object in Amazon S3 (for example, AES256, aws:kms, aws:kms:dsse).

For directory buckets, only server-side encryption with Amazon S3 managed keys (SSE-S3) (AES256) is supported.

", + "CopyObjectRequest$ServerSideEncryption": "

The server-side encryption algorithm used when storing this object in Amazon S3 (for example, AES256, aws:kms, aws:kms:dsse). Unrecognized or unsupported values won’t write a destination object and will receive a 400 Bad Request response.

Amazon S3 automatically encrypts all new objects that are copied to an S3 bucket. When copying an object, if you don't specify encryption information in your copy request, the encryption setting of the target object is set to the default encryption configuration of the destination bucket. By default, all buckets have a base level of encryption configuration that uses server-side encryption with Amazon S3 managed keys (SSE-S3). If the destination bucket has a default encryption configuration that uses server-side encryption with Key Management Service (KMS) keys (SSE-KMS), dual-layer server-side encryption with Amazon Web Services KMS keys (DSSE-KMS), or server-side encryption with customer-provided encryption keys (SSE-C), Amazon S3 uses the corresponding KMS key, or a customer-provided key to encrypt the target object copy.

When you perform a CopyObject operation, if you want to use a different type of encryption setting for the target object, you can specify appropriate encryption-related headers to encrypt the target object with an Amazon S3 managed key, a KMS key, or a customer-provided key. If the encryption setting in your request is different from the default encryption configuration of the destination bucket, the encryption setting in your request takes precedence.

With server-side encryption, Amazon S3 encrypts your data as it writes your data to disks in its data centers and decrypts the data when you access it. For more information about server-side encryption, see Using Server-Side Encryption in the Amazon S3 User Guide.

For directory buckets, only server-side encryption with Amazon S3 managed keys (SSE-S3) (AES256) is supported.

", + "CreateMultipartUploadOutput$ServerSideEncryption": "

The server-side encryption algorithm used when you store this object in Amazon S3 (for example, AES256, aws:kms).

For directory buckets, only server-side encryption with Amazon S3 managed keys (SSE-S3) (AES256) is supported.

", + "CreateMultipartUploadRequest$ServerSideEncryption": "

The server-side encryption algorithm used when you store this object in Amazon S3 (for example, AES256, aws:kms).

For directory buckets, only server-side encryption with Amazon S3 managed keys (SSE-S3) (AES256) is supported.

", "Encryption$EncryptionType": "

The server-side encryption algorithm used when storing job results in Amazon S3 (for example, AES256, aws:kms).

", - "GetObjectOutput$ServerSideEncryption": "

The server-side encryption algorithm used when storing this object in Amazon S3 (for example, AES256, aws:kms, aws:kms:dsse).

", - "HeadObjectOutput$ServerSideEncryption": "

The server-side encryption algorithm used when storing this object in Amazon S3 (for example, AES256, aws:kms, aws:kms:dsse).

", - "PutObjectOutput$ServerSideEncryption": "

The server-side encryption algorithm used when storing this object in Amazon S3 (for example, AES256, aws:kms, aws:kms:dsse).

", - "PutObjectRequest$ServerSideEncryption": "

The server-side encryption algorithm used when storing this object in Amazon S3 (for example, AES256, aws:kms, aws:kms:dsse).

", + "GetObjectOutput$ServerSideEncryption": "

The server-side encryption algorithm used when you store this object in Amazon S3 (for example, AES256, aws:kms, aws:kms:dsse).

For directory buckets, only server-side encryption with Amazon S3 managed keys (SSE-S3) (AES256) is supported.

", + "HeadObjectOutput$ServerSideEncryption": "

The server-side encryption algorithm used when you store this object in Amazon S3 (for example, AES256, aws:kms, aws:kms:dsse).

For directory buckets, only server-side encryption with Amazon S3 managed keys (SSE-S3) (AES256) is supported.

", + "PutObjectOutput$ServerSideEncryption": "

The server-side encryption algorithm used when you store this object in Amazon S3 (for example, AES256, aws:kms, aws:kms:dsse).

For directory buckets, only server-side encryption with Amazon S3 managed keys (SSE-S3) (AES256) is supported.

", + "PutObjectRequest$ServerSideEncryption": "

The server-side encryption algorithm that was used when you store this object in Amazon S3 (for example, AES256, aws:kms, aws:kms:dsse).

General purpose buckets - You have four mutually exclusive options to protect data using server-side encryption in Amazon S3, depending on how you choose to manage the encryption keys. Specifically, the encryption key options are Amazon S3 managed keys (SSE-S3), Amazon Web Services KMS keys (SSE-KMS or DSSE-KMS), and customer-provided keys (SSE-C). Amazon S3 encrypts data with server-side encryption by using Amazon S3 managed keys (SSE-S3) by default. You can optionally tell Amazon S3 to encrypt data at rest by using server-side encryption with other key options. For more information, see Using Server-Side Encryption in the Amazon S3 User Guide.

Directory buckets - For directory buckets, only the server-side encryption with Amazon S3 managed keys (SSE-S3) (AES256) value is supported.

", "ServerSideEncryptionByDefault$SSEAlgorithm": "

Server-side encryption algorithm to use for the default encryption.

", - "UploadPartCopyOutput$ServerSideEncryption": "

The server-side encryption algorithm used when storing this object in Amazon S3 (for example, AES256, aws:kms).

", - "UploadPartOutput$ServerSideEncryption": "

The server-side encryption algorithm used when storing this object in Amazon S3 (for example, AES256, aws:kms).

", + "UploadPartCopyOutput$ServerSideEncryption": "

The server-side encryption algorithm used when you store this object in Amazon S3 (for example, AES256, aws:kms).

For directory buckets, only server-side encryption with Amazon S3 managed keys (SSE-S3) (AES256) is supported.

", + "UploadPartOutput$ServerSideEncryption": "

The server-side encryption algorithm used when you store this object in Amazon S3 (for example, AES256, aws:kms).

For directory buckets, only server-side encryption with Amazon S3 managed keys (SSE-S3) (AES256) is supported.

", "WriteGetObjectResponseRequest$ServerSideEncryption": "

The server-side encryption algorithm used when storing requested object in Amazon S3 (for example, AES256, aws:kms).

" } }, @@ -3986,6 +4089,31 @@ "ServerSideEncryptionConfiguration$Rules": "

Container for information about a particular server-side encryption configuration rule.

" } }, + "SessionCredentialValue": { + "base": null, + "refs": { + "SessionCredentials$SecretAccessKey": "

A key that's used with the access key ID to cryptographically sign programmatic Amazon Web Services requests. Signing a request identifies the sender and prevents the request from being altered.

", + "SessionCredentials$SessionToken": "

A part of the temporary security credentials. The session token is used to validate the temporary security credentials.

" + } + }, + "SessionCredentials": { + "base": "

The established temporary security credentials of the session.

Directory buckets - These session credentials are only supported for the authentication and authorization of Zonal endpoint APIs on directory buckets.

", + "refs": { + "CreateSessionOutput$Credentials": "

The established temporary security credentials for the created session..

" + } + }, + "SessionExpiration": { + "base": null, + "refs": { + "SessionCredentials$Expiration": "

Temporary security credentials expire after a specified interval. After temporary credentials expire, any calls that you make with those credentials will fail. So you must generate a new set of temporary credentials. Temporary credentials cannot be extended or refreshed beyond the original specified interval.

" + } + }, + "SessionMode": { + "base": null, + "refs": { + "CreateSessionRequest$SessionMode": "

Specifies the mode of the session that will be created, either ReadWrite or ReadOnly. By default, a ReadWrite session is created. A ReadWrite session is capable of executing all the Zonal endpoint APIs on a directory bucket. A ReadOnly session is constrained to execute the following Zonal endpoint APIs: GetObject, HeadObject, ListObjectsV2, GetObjectAttributes, ListParts, and ListMultipartUploads.

" + } + }, "Setting": { "base": null, "refs": { @@ -4043,8 +4171,8 @@ "StartAfter": { "base": null, "refs": { - "ListObjectsV2Output$StartAfter": "

If StartAfter was sent with the request, it is included in the response.

", - "ListObjectsV2Request$StartAfter": "

StartAfter is where you want Amazon S3 to start listing from. Amazon S3 starts listing after this specified key. StartAfter can be any key in the bucket.

" + "ListObjectsV2Output$StartAfter": "

If StartAfter was sent with the request, it is included in the response.

This functionality is not supported for directory buckets.

", + "ListObjectsV2Request$StartAfter": "

StartAfter is where you want Amazon S3 to start listing from. Amazon S3 starts listing after this specified key. StartAfter can be any key in the bucket.

This functionality is not supported for directory buckets.

" } }, "Stats": { @@ -4062,16 +4190,16 @@ "StorageClass": { "base": null, "refs": { - "CopyObjectRequest$StorageClass": "

If the x-amz-storage-class header is not used, the copied object will be stored in the STANDARD Storage Class by default. The STANDARD storage class provides high durability and high availability. Depending on performance needs, you can specify a different Storage Class. Amazon S3 on Outposts only uses the OUTPOSTS Storage Class. For more information, see Storage Classes in the Amazon S3 User Guide.

", - "CreateMultipartUploadRequest$StorageClass": "

By default, Amazon S3 uses the STANDARD Storage Class to store newly created objects. The STANDARD storage class provides high durability and high availability. Depending on performance needs, you can specify a different Storage Class. Amazon S3 on Outposts only uses the OUTPOSTS Storage Class. For more information, see Storage Classes in the Amazon S3 User Guide.

", + "CopyObjectRequest$StorageClass": "

If the x-amz-storage-class header is not used, the copied object will be stored in the STANDARD Storage Class by default. The STANDARD storage class provides high durability and high availability. Depending on performance needs, you can specify a different Storage Class.

You can use the CopyObject action to change the storage class of an object that is already stored in Amazon S3 by using the x-amz-storage-class header. For more information, see Storage Classes in the Amazon S3 User Guide.

Before using an object as a source object for the copy operation, you must restore a copy of it if it meets any of the following conditions:

For more information, see RestoreObject and Copying Objects in the Amazon S3 User Guide.

", + "CreateMultipartUploadRequest$StorageClass": "

By default, Amazon S3 uses the STANDARD Storage Class to store newly created objects. The STANDARD storage class provides high durability and high availability. Depending on performance needs, you can specify a different Storage Class. For more information, see Storage Classes in the Amazon S3 User Guide.

", "Destination$StorageClass": "

The storage class to use when replicating objects, such as S3 Standard or reduced redundancy. By default, Amazon S3 uses the storage class of the source object to create the object replica.

For valid values, see the StorageClass element of the PUT Bucket replication action in the Amazon S3 API Reference.

", - "GetObjectAttributesOutput$StorageClass": "

Provides the storage class information of the object. Amazon S3 returns this header for all objects except for S3 Standard storage class objects.

For more information, see Storage Classes.

", - "GetObjectOutput$StorageClass": "

Provides storage class information of the object. Amazon S3 returns this header for all objects except for S3 Standard storage class objects.

", - "HeadObjectOutput$StorageClass": "

Provides storage class information of the object. Amazon S3 returns this header for all objects except for S3 Standard storage class objects.

For more information, see Storage Classes.

", + "GetObjectAttributesOutput$StorageClass": "

Provides the storage class information of the object. Amazon S3 returns this header for all objects except for S3 Standard storage class objects.

For more information, see Storage Classes.

Directory buckets - Only the S3 Express One Zone storage class is supported by directory buckets to store objects.

", + "GetObjectOutput$StorageClass": "

Provides storage class information of the object. Amazon S3 returns this header for all objects except for S3 Standard storage class objects.

Directory buckets - Only the S3 Express One Zone storage class is supported by directory buckets to store objects.

", + "HeadObjectOutput$StorageClass": "

Provides storage class information of the object. Amazon S3 returns this header for all objects except for S3 Standard storage class objects.

For more information, see Storage Classes.

Directory buckets - Only the S3 Express One Zone storage class is supported by directory buckets to store objects.

", "InvalidObjectState$StorageClass": null, - "ListPartsOutput$StorageClass": "

Class of storage (STANDARD or REDUCED_REDUNDANCY) used to store the uploaded object.

", - "MultipartUpload$StorageClass": "

The class of storage used to store the object.

", - "PutObjectRequest$StorageClass": "

By default, Amazon S3 uses the STANDARD Storage Class to store newly created objects. The STANDARD storage class provides high durability and high availability. Depending on performance needs, you can specify a different Storage Class. Amazon S3 on Outposts only uses the OUTPOSTS Storage Class. For more information, see Storage Classes in the Amazon S3 User Guide.

", + "ListPartsOutput$StorageClass": "

The class of storage used to store the uploaded object.

Directory buckets - Only the S3 Express One Zone storage class is supported by directory buckets to store objects.

", + "MultipartUpload$StorageClass": "

The class of storage used to store the object.

Directory buckets - Only the S3 Express One Zone storage class is supported by directory buckets to store objects.

", + "PutObjectRequest$StorageClass": "

By default, Amazon S3 uses the STANDARD Storage Class to store newly created objects. The STANDARD storage class provides high durability and high availability. Depending on performance needs, you can specify a different Storage Class. For more information, see Storage Classes in the Amazon S3 User Guide.

", "S3Location$StorageClass": "

The class of storage used to store the restore results.

", "WriteGetObjectResponseRequest$StorageClass": "

Provides storage class information of the object. Amazon S3 returns this header for all objects except for S3 Standard storage class objects.

For more information, see Storage Classes.

" } @@ -4114,7 +4242,7 @@ "TagCount": { "base": null, "refs": { - "GetObjectOutput$TagCount": "

The number of tags, if any, on the object.

", + "GetObjectOutput$TagCount": "

The number of tags, if any, on the object, when you have the relevant permission to read object tags.

You can use GetObjectTagging to retrieve the tag set associated with an object.

This functionality is not supported for directory buckets.

", "WriteGetObjectResponseRequest$TagCount": "

The number of tags, if any, on the object.

" } }, @@ -4142,15 +4270,15 @@ "TaggingDirective": { "base": null, "refs": { - "CopyObjectRequest$TaggingDirective": "

Specifies whether the object tag-set are copied from the source object or replaced with tag-set provided in the request.

" + "CopyObjectRequest$TaggingDirective": "

Specifies whether the object tag-set is copied from the source object or replaced with the tag-set that's provided in the request.

The default value is COPY.

Directory buckets - For directory buckets in a CopyObject operation, only the empty tag-set is supported. Any requests that attempt to write non-empty tags into directory buckets will receive a 501 Not Implemented status code. When the destination bucket is a directory bucket, you will receive a 501 Not Implemented response in any of the following situations:

Because only the empty tag-set is supported for directory buckets in a CopyObject operation, the following situations are allowed:

" } }, "TaggingHeader": { "base": null, "refs": { - "CopyObjectRequest$Tagging": "

The tag-set for the object destination object this value must be used in conjunction with the TaggingDirective. The tag-set must be encoded as URL Query parameters.

", - "CreateMultipartUploadRequest$Tagging": "

The tag-set for the object. The tag-set must be encoded as URL Query parameters.

", - "PutObjectRequest$Tagging": "

The tag-set for the object. The tag-set must be encoded as URL Query parameters. (For example, \"Key1=Value1\")

" + "CopyObjectRequest$Tagging": "

The tag-set for the object copy in the destination bucket. This value must be used in conjunction with the x-amz-tagging-directive if you choose REPLACE for the x-amz-tagging-directive. If you choose COPY for the x-amz-tagging-directive, you don't need to set the x-amz-tagging header, because the tag-set will be copied from the source object directly. The tag-set must be encoded as URL Query parameters.

The default value is the empty value.

Directory buckets - For directory buckets in a CopyObject operation, only the empty tag-set is supported. Any requests that attempt to write non-empty tags into directory buckets will receive a 501 Not Implemented status code. When the destination bucket is a directory bucket, you will receive a 501 Not Implemented response in any of the following situations:

Because only the empty tag-set is supported for directory buckets in a CopyObject operation, the following situations are allowed:

", + "CreateMultipartUploadRequest$Tagging": "

The tag-set for the object. The tag-set must be encoded as URL Query parameters.

This functionality is not supported for directory buckets.

", + "PutObjectRequest$Tagging": "

The tag-set for the object. The tag-set must be encoded as URL Query parameters. (For example, \"Key1=Value1\")

This functionality is not supported for directory buckets.

" } }, "TargetBucket": { @@ -4213,8 +4341,8 @@ "ListBucketInventoryConfigurationsRequest$ContinuationToken": "

The marker used to continue an inventory configuration listing that has been truncated. Use the NextContinuationToken from a previously truncated list response to continue the listing. The continuation token is an opaque value that Amazon S3 understands.

", "ListBucketMetricsConfigurationsOutput$ContinuationToken": "

The marker that is used as a starting point for this metrics configuration list response. This value is present if it was sent in the request.

", "ListBucketMetricsConfigurationsRequest$ContinuationToken": "

The marker that is used to continue a metrics configuration listing that has been truncated. Use the NextContinuationToken from a previously truncated list response to continue the listing. The continuation token is an opaque value that Amazon S3 understands.

", - "ListObjectsV2Output$ContinuationToken": "

If ContinuationToken was sent with the request, it is included in the response.

", - "ListObjectsV2Request$ContinuationToken": "

ContinuationToken indicates to Amazon S3 that the list is being continued on this bucket with a token. ContinuationToken is obfuscated and is not a real key.

" + "ListObjectsV2Output$ContinuationToken": "

If ContinuationToken was sent with the request, it is included in the response. You can use the returned ContinuationToken for pagination of the list response. You can use this ContinuationToken for pagination of the list results.

", + "ListObjectsV2Request$ContinuationToken": "

ContinuationToken indicates to Amazon S3 that the list is being continued on this bucket with a token. ContinuationToken is obfuscated and is not a real key. You can use this ContinuationToken for pagination of the list results.

" } }, "TopicArn": { @@ -4277,8 +4405,8 @@ "UploadIdMarker": { "base": null, "refs": { - "ListMultipartUploadsOutput$UploadIdMarker": "

Upload ID after which listing began.

", - "ListMultipartUploadsRequest$UploadIdMarker": "

Together with key-marker, specifies the multipart upload after which listing should begin. If key-marker is not specified, the upload-id-marker parameter is ignored. Otherwise, any multipart uploads for a key equal to the key-marker might be included in the list only if they have an upload ID lexicographically greater than the specified upload-id-marker.

" + "ListMultipartUploadsOutput$UploadIdMarker": "

Upload ID after which listing began.

This functionality is not supported for directory buckets.

", + "ListMultipartUploadsRequest$UploadIdMarker": "

Together with key-marker, specifies the multipart upload after which listing should begin. If key-marker is not specified, the upload-id-marker parameter is ignored. Otherwise, any multipart uploads for a key equal to the key-marker might be included in the list only if they have an upload ID lexicographically greater than the specified upload-id-marker.

This functionality is not supported for directory buckets.

" } }, "UploadPartCopyOutput": { @@ -4342,11 +4470,11 @@ "WebsiteRedirectLocation": { "base": null, "refs": { - "CopyObjectRequest$WebsiteRedirectLocation": "

If the bucket is configured as a website, redirects requests for this object to another object in the same bucket or to an external URL. Amazon S3 stores the value of this header in the object metadata. This value is unique to each object and is not copied when using the x-amz-metadata-directive header. Instead, you may opt to provide this header in combination with the directive.

", - "CreateMultipartUploadRequest$WebsiteRedirectLocation": "

If the bucket is configured as a website, redirects requests for this object to another object in the same bucket or to an external URL. Amazon S3 stores the value of this header in the object metadata.

", - "GetObjectOutput$WebsiteRedirectLocation": "

If the bucket is configured as a website, redirects requests for this object to another object in the same bucket or to an external URL. Amazon S3 stores the value of this header in the object metadata.

", - "HeadObjectOutput$WebsiteRedirectLocation": "

If the bucket is configured as a website, redirects requests for this object to another object in the same bucket or to an external URL. Amazon S3 stores the value of this header in the object metadata.

", - "PutObjectRequest$WebsiteRedirectLocation": "

If the bucket is configured as a website, redirects requests for this object to another object in the same bucket or to an external URL. Amazon S3 stores the value of this header in the object metadata. For information about object metadata, see Object Key and Metadata.

In the following example, the request header sets the redirect to an object (anotherPage.html) in the same bucket:

x-amz-website-redirect-location: /anotherPage.html

In the following example, the request header sets the object redirect to another website:

x-amz-website-redirect-location: http://www.example.com/

For more information about website hosting in Amazon S3, see Hosting Websites on Amazon S3 and How to Configure Website Page Redirects.

" + "CopyObjectRequest$WebsiteRedirectLocation": "

If the destination bucket is configured as a website, redirects requests for this object copy to another object in the same bucket or to an external URL. Amazon S3 stores the value of this header in the object metadata. This value is unique to each object and is not copied when using the x-amz-metadata-directive header. Instead, you may opt to provide this header in combination with the x-amz-metadata-directive header.

This functionality is not supported for directory buckets.

", + "CreateMultipartUploadRequest$WebsiteRedirectLocation": "

If the bucket is configured as a website, redirects requests for this object to another object in the same bucket or to an external URL. Amazon S3 stores the value of this header in the object metadata.

This functionality is not supported for directory buckets.

", + "GetObjectOutput$WebsiteRedirectLocation": "

If the bucket is configured as a website, redirects requests for this object to another object in the same bucket or to an external URL. Amazon S3 stores the value of this header in the object metadata.

This functionality is not supported for directory buckets.

", + "HeadObjectOutput$WebsiteRedirectLocation": "

If the bucket is configured as a website, redirects requests for this object to another object in the same bucket or to an external URL. Amazon S3 stores the value of this header in the object metadata.

This functionality is not supported for directory buckets.

", + "PutObjectRequest$WebsiteRedirectLocation": "

If the bucket is configured as a website, redirects requests for this object to another object in the same bucket or to an external URL. Amazon S3 stores the value of this header in the object metadata. For information about object metadata, see Object Key and Metadata in the Amazon S3 User Guide.

In the following example, the request header sets the redirect to an object (anotherPage.html) in the same bucket:

x-amz-website-redirect-location: /anotherPage.html

In the following example, the request header sets the object redirect to another website:

x-amz-website-redirect-location: http://www.example.com/

For more information about website hosting in Amazon S3, see Hosting Websites on Amazon S3 and How to Configure Website Page Redirects in the Amazon S3 User Guide.

This functionality is not supported for directory buckets.

" } }, "WriteGetObjectResponseRequest": { diff --git a/models/apis/s3/2006-03-01/endpoint-rule-set-1.json b/models/apis/s3/2006-03-01/endpoint-rule-set-1.json index 0adf21daa1c..d1bf31a5981 100644 --- a/models/apis/s3/2006-03-01/endpoint-rule-set-1.json +++ b/models/apis/s3/2006-03-01/endpoint-rule-set-1.json @@ -85,6 +85,16 @@ "required": false, "documentation": "When an Access Point ARN is provided and this flag is enabled, the SDK MUST use the ARN's region when constructing the endpoint instead of the client's configured region.", "type": "Boolean" + }, + "UseS3ExpressControlEndpoint": { + "required": false, + "documentation": "Internal parameter to indicate whether S3Express operation should use control plane, (ex. CreateBucket)", + "type": "Boolean" + }, + "DisableS3ExpressSessionAuth": { + "required": false, + "documentation": "Parameter to indicate whether S3Express session auth should be disabled", + "type": "Boolean" } }, "rules": [ @@ -232,6 +242,944 @@ "error": "Partition does not support FIPS", "type": "error" }, + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Bucket" + } + ] + }, + { + "fn": "substring", + "argv": [ + { + "ref": "Bucket" + }, + 0, + 6, + true + ], + "assign": "bucketSuffix" + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "bucketSuffix" + }, + "--x-s3" + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "S3Express does not support Dual-stack.", + "type": "error" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "Accelerate" + }, + true + ] + } + ], + "error": "S3Express does not support S3 Accelerate.", + "type": "error" + }, + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "DisableS3ExpressSessionAuth" + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "DisableS3ExpressSessionAuth" + }, + true + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "url" + }, + "isIp" + ] + }, + true + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "uriEncode", + "argv": [ + { + "ref": "Bucket" + } + ], + "assign": "uri_encoded_bucket" + } + ], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "{url#scheme}://{url#authority}/{uri_encoded_bucket}{url#path}", + "properties": { + "backend": "S3Express", + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "aws.isVirtualHostableS3Bucket", + "argv": [ + { + "ref": "Bucket" + }, + false + ] + } + ], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "{url#scheme}://{Bucket}.{url#authority}{url#path}", + "properties": { + "backend": "S3Express", + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "S3Express bucket name is not a valid virtual hostable name.", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "url" + }, + "isIp" + ] + }, + true + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "uriEncode", + "argv": [ + { + "ref": "Bucket" + } + ], + "assign": "uri_encoded_bucket" + } + ], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "{url#scheme}://{url#authority}/{uri_encoded_bucket}{url#path}", + "properties": { + "backend": "S3Express", + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "aws.isVirtualHostableS3Bucket", + "argv": [ + { + "ref": "Bucket" + }, + false + ] + } + ], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "{url#scheme}://{Bucket}.{url#authority}{url#path}", + "properties": { + "backend": "S3Express", + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "S3Express bucket name is not a valid virtual hostable name.", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "UseS3ExpressControlEndpoint" + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseS3ExpressControlEndpoint" + }, + true + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "uriEncode", + "argv": [ + { + "ref": "Bucket" + } + ], + "assign": "uri_encoded_bucket" + }, + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "endpoint": { + "url": "https://s3express-control-fips.{Region}.amazonaws.com/{uri_encoded_bucket}", + "properties": { + "backend": "S3Express", + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://s3express-control.{Region}.amazonaws.com/{uri_encoded_bucket}", + "properties": { + "backend": "S3Express", + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "aws.isVirtualHostableS3Bucket", + "argv": [ + { + "ref": "Bucket" + }, + false + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "DisableS3ExpressSessionAuth" + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "DisableS3ExpressSessionAuth" + }, + true + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "substring", + "argv": [ + { + "ref": "Bucket" + }, + 6, + 14, + true + ], + "assign": "s3expressAvailabilityZoneId" + }, + { + "fn": "substring", + "argv": [ + { + "ref": "Bucket" + }, + 14, + 16, + true + ], + "assign": "s3expressAvailabilityZoneDelim" + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "s3expressAvailabilityZoneDelim" + }, + "--" + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "endpoint": { + "url": "https://{Bucket}.s3express-fips-{s3expressAvailabilityZoneId}.{Region}.amazonaws.com", + "properties": { + "backend": "S3Express", + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://{Bucket}.s3express-{s3expressAvailabilityZoneId}.{Region}.amazonaws.com", + "properties": { + "backend": "S3Express", + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "substring", + "argv": [ + { + "ref": "Bucket" + }, + 6, + 15, + true + ], + "assign": "s3expressAvailabilityZoneId" + }, + { + "fn": "substring", + "argv": [ + { + "ref": "Bucket" + }, + 15, + 17, + true + ], + "assign": "s3expressAvailabilityZoneDelim" + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "s3expressAvailabilityZoneDelim" + }, + "--" + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "endpoint": { + "url": "https://{Bucket}.s3express-fips-{s3expressAvailabilityZoneId}.{Region}.amazonaws.com", + "properties": { + "backend": "S3Express", + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://{Bucket}.s3express-{s3expressAvailabilityZoneId}.{Region}.amazonaws.com", + "properties": { + "backend": "S3Express", + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "Unrecognized S3Express bucket name format.", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "substring", + "argv": [ + { + "ref": "Bucket" + }, + 6, + 14, + true + ], + "assign": "s3expressAvailabilityZoneId" + }, + { + "fn": "substring", + "argv": [ + { + "ref": "Bucket" + }, + 14, + 16, + true + ], + "assign": "s3expressAvailabilityZoneDelim" + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "s3expressAvailabilityZoneDelim" + }, + "--" + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "endpoint": { + "url": "https://{Bucket}.s3express-fips-{s3expressAvailabilityZoneId}.{Region}.amazonaws.com", + "properties": { + "backend": "S3Express", + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://{Bucket}.s3express-{s3expressAvailabilityZoneId}.{Region}.amazonaws.com", + "properties": { + "backend": "S3Express", + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "substring", + "argv": [ + { + "ref": "Bucket" + }, + 6, + 15, + true + ], + "assign": "s3expressAvailabilityZoneId" + }, + { + "fn": "substring", + "argv": [ + { + "ref": "Bucket" + }, + 15, + 17, + true + ], + "assign": "s3expressAvailabilityZoneDelim" + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "s3expressAvailabilityZoneDelim" + }, + "--" + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "endpoint": { + "url": "https://{Bucket}.s3express-fips-{s3expressAvailabilityZoneId}.{Region}.amazonaws.com", + "properties": { + "backend": "S3Express", + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://{Bucket}.s3express-{s3expressAvailabilityZoneId}.{Region}.amazonaws.com", + "properties": { + "backend": "S3Express", + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "Unrecognized S3Express bucket name format.", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "S3Express bucket name is not a valid virtual hostable name.", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Bucket" + } + ] + } + ] + }, + { + "fn": "isSet", + "argv": [ + { + "ref": "UseS3ExpressControlEndpoint" + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseS3ExpressControlEndpoint" + }, + true + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "endpoint": { + "url": "{url#scheme}://{url#authority}{url#path}", + "properties": { + "backend": "S3Express", + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "endpoint": { + "url": "https://s3express-control-fips.{Region}.amazonaws.com", + "properties": { + "backend": "S3Express", + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://s3express-control.{Region}.amazonaws.com", + "properties": { + "backend": "S3Express", + "authSchemes": [ + { + "disableDoubleEncoding": true, + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + }, { "conditions": [ { diff --git a/models/apis/s3/2006-03-01/endpoint-tests-1.json b/models/apis/s3/2006-03-01/endpoint-tests-1.json index daa904ca39a..ab313b9d9c8 100644 --- a/models/apis/s3/2006-03-01/endpoint-tests-1.json +++ b/models/apis/s3/2006-03-01/endpoint-tests-1.json @@ -7719,6 +7719,765 @@ "UseDualStack": false, "Accelerate": false } + }, + { + "documentation": "Data Plane with short AZ", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ], + "backend": "S3Express" + }, + "url": "https://mybucket--use1-az1--x-s3.s3express-use1-az1.us-east-1.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "mybucket--use1-az1--x-s3", + "Key": "key" + } + } + ], + "params": { + "Region": "us-east-1", + "Bucket": "mybucket--use1-az1--x-s3", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false, + "UseS3ExpressControlEndpoint": false + } + }, + { + "documentation": "Data Plane with short AZ fips", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ], + "backend": "S3Express" + }, + "url": "https://mybucket--use1-az1--x-s3.s3express-fips-use1-az1.us-east-1.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1", + "AWS::UseFIPS": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "mybucket--use1-az1--x-s3", + "Key": "key" + } + } + ], + "params": { + "Region": "us-east-1", + "Bucket": "mybucket--use1-az1--x-s3", + "UseFIPS": true, + "UseDualStack": false, + "Accelerate": false, + "UseS3ExpressControlEndpoint": false + } + }, + { + "documentation": "Data Plane with long AZ", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "ap-northeast-1", + "disableDoubleEncoding": true + } + ], + "backend": "S3Express" + }, + "url": "https://mybucket--apne1-az1--x-s3.s3express-apne1-az1.ap-northeast-1.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "ap-northeast-1" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "mybucket--apne1-az1--x-s3", + "Key": "key" + } + } + ], + "params": { + "Region": "ap-northeast-1", + "Bucket": "mybucket--apne1-az1--x-s3", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false, + "UseS3ExpressControlEndpoint": false + } + }, + { + "documentation": "Data Plane with long AZ fips", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "ap-northeast-1", + "disableDoubleEncoding": true + } + ], + "backend": "S3Express" + }, + "url": "https://mybucket--apne1-az1--x-s3.s3express-fips-apne1-az1.ap-northeast-1.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "ap-northeast-1", + "AWS::UseFIPS": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "mybucket--apne1-az1--x-s3", + "Key": "key" + } + } + ], + "params": { + "Region": "ap-northeast-1", + "Bucket": "mybucket--apne1-az1--x-s3", + "UseFIPS": true, + "UseDualStack": false, + "Accelerate": false, + "UseS3ExpressControlEndpoint": false + } + }, + { + "documentation": "Control plane with short AZ bucket", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ], + "backend": "S3Express" + }, + "url": "https://s3express-control.us-east-1.amazonaws.com/mybucket--use1-az1--x-s3" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1" + }, + "operationName": "CreateBucket", + "operationParams": { + "Bucket": "mybucket--use1-az1--x-s3" + } + } + ], + "params": { + "Region": "us-east-1", + "Bucket": "mybucket--use1-az1--x-s3", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false, + "UseS3ExpressControlEndpoint": true, + "DisableS3ExpressSessionAuth": false + } + }, + { + "documentation": "Control plane with short AZ bucket and fips", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ], + "backend": "S3Express" + }, + "url": "https://s3express-control-fips.us-east-1.amazonaws.com/mybucket--use1-az1--x-s3" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1", + "AWS::UseFIPS": true + }, + "operationName": "CreateBucket", + "operationParams": { + "Bucket": "mybucket--use1-az1--x-s3" + } + } + ], + "params": { + "Region": "us-east-1", + "Bucket": "mybucket--use1-az1--x-s3", + "UseFIPS": true, + "UseDualStack": false, + "Accelerate": false, + "UseS3ExpressControlEndpoint": true, + "DisableS3ExpressSessionAuth": false + } + }, + { + "documentation": "Control plane without bucket", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ], + "backend": "S3Express" + }, + "url": "https://s3express-control.us-east-1.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1" + }, + "operationName": "ListDirectoryBuckets" + } + ], + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false, + "UseS3ExpressControlEndpoint": true, + "DisableS3ExpressSessionAuth": false + } + }, + { + "documentation": "Control plane without bucket and fips", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ], + "backend": "S3Express" + }, + "url": "https://s3express-control-fips.us-east-1.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1", + "AWS::UseFIPS": true + }, + "operationName": "ListDirectoryBuckets" + } + ], + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": false, + "Accelerate": false, + "UseS3ExpressControlEndpoint": true, + "DisableS3ExpressSessionAuth": false + } + }, + { + "documentation": "Data Plane sigv4 auth with short AZ", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ], + "backend": "S3Express" + }, + "url": "https://mybucket--usw2-az1--x-s3.s3express-usw2-az1.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "Bucket": "mybucket--usw2-az1--x-s3", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false, + "DisableS3ExpressSessionAuth": true + } + }, + { + "documentation": "Data Plane sigv4 auth with short AZ fips", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ], + "backend": "S3Express" + }, + "url": "https://mybucket--usw2-az1--x-s3.s3express-fips-usw2-az1.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "Bucket": "mybucket--usw2-az1--x-s3", + "UseFIPS": true, + "UseDualStack": false, + "Accelerate": false, + "DisableS3ExpressSessionAuth": true + } + }, + { + "documentation": "Data Plane sigv4 auth with long AZ", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "ap-northeast-1", + "disableDoubleEncoding": true + } + ], + "backend": "S3Express" + }, + "url": "https://mybucket--apne1-az1--x-s3.s3express-apne1-az1.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "Bucket": "mybucket--apne1-az1--x-s3", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false, + "UseS3ExpressControlEndpoint": false, + "DisableS3ExpressSessionAuth": true + } + }, + { + "documentation": "Data Plane sigv4 auth with long AZ fips", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "ap-northeast-1", + "disableDoubleEncoding": true + } + ], + "backend": "S3Express" + }, + "url": "https://mybucket--apne1-az1--x-s3.s3express-fips-apne1-az1.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "Bucket": "mybucket--apne1-az1--x-s3", + "UseFIPS": true, + "UseDualStack": false, + "Accelerate": false, + "UseS3ExpressControlEndpoint": false, + "DisableS3ExpressSessionAuth": true + } + }, + { + "documentation": "Control Plane host override", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ], + "backend": "S3Express" + }, + "url": "https://mybucket--usw2-az1--x-s3.custom.com" + } + }, + "params": { + "Region": "us-west-2", + "Bucket": "mybucket--usw2-az1--x-s3", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false, + "UseS3ExpressControlEndpoint": true, + "DisableS3ExpressSessionAuth": true, + "Endpoint": "https://custom.com" + } + }, + { + "documentation": "Control Plane host override no bucket", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ], + "backend": "S3Express" + }, + "url": "https://custom.com" + } + }, + "params": { + "Region": "us-west-2", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false, + "UseS3ExpressControlEndpoint": true, + "DisableS3ExpressSessionAuth": true, + "Endpoint": "https://custom.com" + } + }, + { + "documentation": "Data plane host override non virtual session auth", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ], + "backend": "S3Express" + }, + "url": "https://10.0.0.1/mybucket--usw2-az1--x-s3" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "SDK::Endpoint": "https://10.0.0.1" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "mybucket--usw2-az1--x-s3", + "Key": "key" + } + } + ], + "params": { + "Region": "us-west-2", + "Bucket": "mybucket--usw2-az1--x-s3", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false, + "Endpoint": "https://10.0.0.1" + } + }, + { + "documentation": "Control Plane host override ip", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ], + "backend": "S3Express" + }, + "url": "https://10.0.0.1/mybucket--usw2-az1--x-s3" + } + }, + "params": { + "Region": "us-west-2", + "Bucket": "mybucket--usw2-az1--x-s3", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false, + "UseS3ExpressControlEndpoint": true, + "DisableS3ExpressSessionAuth": true, + "Endpoint": "https://10.0.0.1" + } + }, + { + "documentation": "Data plane host override", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4-s3express", + "signingName": "s3express", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ], + "backend": "S3Express" + }, + "url": "https://mybucket--usw2-az1--x-s3.custom.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "SDK::Endpoint": "https://custom.com" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "mybucket--usw2-az1--x-s3", + "Key": "key" + } + } + ], + "params": { + "Region": "us-west-2", + "Bucket": "mybucket--usw2-az1--x-s3", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false, + "Endpoint": "https://custom.com" + } + }, + { + "documentation": "bad format error", + "expect": { + "error": "Unrecognized S3Express bucket name format." + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "mybucket--usaz1--x-s3", + "Key": "key" + } + } + ], + "params": { + "Region": "us-east-1", + "Bucket": "mybucket--usaz1--x-s3", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false, + "UseS3ExpressControlEndpoint": false + } + }, + { + "documentation": "bad format error no session auth", + "expect": { + "error": "Unrecognized S3Express bucket name format." + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "mybucket--usaz1--x-s3", + "Key": "key" + } + } + ], + "params": { + "Region": "us-east-1", + "Bucket": "mybucket--usaz1--x-s3", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false, + "UseS3ExpressControlEndpoint": false, + "DisableS3ExpressSessionAuth": true + } + }, + { + "documentation": "dual-stack error", + "expect": { + "error": "S3Express does not support Dual-stack." + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1", + "AWS::UseDualStack": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "mybucket--use1-az1--x-s3", + "Key": "key" + } + } + ], + "params": { + "Region": "us-east-1", + "Bucket": "mybucket--use1-az1--x-s3", + "UseFIPS": false, + "UseDualStack": true, + "Accelerate": false, + "UseS3ExpressControlEndpoint": false + } + }, + { + "documentation": "accelerate error", + "expect": { + "error": "S3Express does not support S3 Accelerate." + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1", + "AWS::S3::Accelerate": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "mybucket--use1-az1--x-s3", + "Key": "key" + } + } + ], + "params": { + "Region": "us-east-1", + "Bucket": "mybucket--use1-az1--x-s3", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": true, + "UseS3ExpressControlEndpoint": false + } + }, + { + "documentation": "Data plane bucket format error", + "expect": { + "error": "S3Express bucket name is not a valid virtual hostable name." + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "my.bucket--use1-az1--x-s3", + "Key": "key" + } + } + ], + "params": { + "Region": "us-east-1", + "Bucket": "my.bucket--use1-az1--x-s3", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false, + "UseS3ExpressControlEndpoint": false + } + }, + { + "documentation": "host override data plane bucket error session auth", + "expect": { + "error": "S3Express bucket name is not a valid virtual hostable name." + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "SDK::Endpoint": "https://custom.com" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "my.bucket--usw2-az1--x-s3", + "Key": "key" + } + } + ], + "params": { + "Region": "us-west-2", + "Bucket": "my.bucket--usw2-az1--x-s3", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false, + "Endpoint": "https://custom.com" + } + }, + { + "documentation": "host override data plane bucket error", + "expect": { + "error": "S3Express bucket name is not a valid virtual hostable name." + }, + "params": { + "Region": "us-west-2", + "Bucket": "my.bucket--usw2-az1--x-s3", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false, + "Endpoint": "https://custom.com", + "DisableS3ExpressSessionAuth": true + } } ], "version": "1.0" diff --git a/models/apis/s3/2006-03-01/examples-1.json b/models/apis/s3/2006-03-01/examples-1.json index d55c14a9451..691ad24a6c1 100644 --- a/models/apis/s3/2006-03-01/examples-1.json +++ b/models/apis/s3/2006-03-01/examples-1.json @@ -257,8 +257,10 @@ "DeleteObject": [ { "input": { - "Bucket": "ExampleBucket", - "Key": "HappyFace.jpg" + "Bucket": "examplebucket", + "Key": "objectkey.jpg" + }, + "output": { }, "comments": { "input": { @@ -266,16 +268,14 @@ "output": { } }, - "description": "The following example deletes an object from a non-versioned bucket.", - "id": "to-delete-an-object-from-a-non-versioned-bucket-1481588533089", - "title": "To delete an object (from a non-versioned bucket)" + "description": "The following example deletes an object from an S3 bucket.", + "id": "to-delete-an-object-1472850136595", + "title": "To delete an object" }, { "input": { - "Bucket": "examplebucket", - "Key": "objectkey.jpg" - }, - "output": { + "Bucket": "ExampleBucket", + "Key": "HappyFace.jpg" }, "comments": { "input": { @@ -283,19 +283,20 @@ "output": { } }, - "description": "The following example deletes an object from an S3 bucket.", - "id": "to-delete-an-object-1472850136595", - "title": "To delete an object" + "description": "The following example deletes an object from a non-versioned bucket.", + "id": "to-delete-an-object-from-a-non-versioned-bucket-1481588533089", + "title": "To delete an object (from a non-versioned bucket)" } ], "DeleteObjectTagging": [ { "input": { "Bucket": "examplebucket", - "Key": "HappyFace.jpg" + "Key": "HappyFace.jpg", + "VersionId": "ydlaNkwWm0SfKJR.T1b1fIdPRbldTYRI" }, "output": { - "VersionId": "null" + "VersionId": "ydlaNkwWm0SfKJR.T1b1fIdPRbldTYRI" }, "comments": { "input": { @@ -303,18 +304,17 @@ "output": { } }, - "description": "The following example removes tag set associated with the specified object. If the bucket is versioning enabled, the operation removes tag set from the latest object version.", - "id": "to-remove-tag-set-from-an-object-1483145342862", - "title": "To remove tag set from an object" + "description": "The following example removes tag set associated with the specified object version. The request specifies both the object key and object version.", + "id": "to-remove-tag-set-from-an-object-version-1483145285913", + "title": "To remove tag set from an object version" }, { "input": { "Bucket": "examplebucket", - "Key": "HappyFace.jpg", - "VersionId": "ydlaNkwWm0SfKJR.T1b1fIdPRbldTYRI" + "Key": "HappyFace.jpg" }, "output": { - "VersionId": "ydlaNkwWm0SfKJR.T1b1fIdPRbldTYRI" + "VersionId": "null" }, "comments": { "input": { @@ -322,9 +322,9 @@ "output": { } }, - "description": "The following example removes tag set associated with the specified object version. The request specifies both the object key and object version.", - "id": "to-remove-tag-set-from-an-object-version-1483145285913", - "title": "To remove tag set from an object version" + "description": "The following example removes tag set associated with the specified object. If the bucket is versioning enabled, the operation removes tag set from the latest object version.", + "id": "to-remove-tag-set-from-an-object-1483145342862", + "title": "To remove tag set from an object" } ], "DeleteObjects": [ @@ -840,17 +840,20 @@ { "input": { "Bucket": "examplebucket", - "Key": "exampleobject", - "VersionId": "ydlaNkwWm0SfKJR.T1b1fIdPRbldTYRI" + "Key": "HappyFace.jpg" }, "output": { "TagSet": [ { - "Key": "Key1", - "Value": "Value1" + "Key": "Key4", + "Value": "Value4" + }, + { + "Key": "Key3", + "Value": "Value3" } ], - "VersionId": "ydlaNkwWm0SfKJR.T1b1fIdPRbldTYRI" + "VersionId": "null" }, "comments": { "input": { @@ -858,27 +861,24 @@ "output": { } }, - "description": "The following example retrieves tag set of an object. The request specifies object version.", - "id": "to-retrieve-tag-set-of-a-specific-object-version-1483400283663", - "title": "To retrieve tag set of a specific object version" + "description": "The following example retrieves tag set of an object.", + "id": "to-retrieve-tag-set-of-an-object-1481833847896", + "title": "To retrieve tag set of an object" }, { "input": { "Bucket": "examplebucket", - "Key": "HappyFace.jpg" + "Key": "exampleobject", + "VersionId": "ydlaNkwWm0SfKJR.T1b1fIdPRbldTYRI" }, "output": { "TagSet": [ { - "Key": "Key4", - "Value": "Value4" - }, - { - "Key": "Key3", - "Value": "Value3" + "Key": "Key1", + "Value": "Value1" } ], - "VersionId": "null" + "VersionId": "ydlaNkwWm0SfKJR.T1b1fIdPRbldTYRI" }, "comments": { "input": { @@ -886,9 +886,9 @@ "output": { } }, - "description": "The following example retrieves tag set of an object.", - "id": "to-retrieve-tag-set-of-an-object-1481833847896", - "title": "To retrieve tag set of an object" + "description": "The following example retrieves tag set of an object. The request specifies object version.", + "id": "to-retrieve-tag-set-of-a-specific-object-version-1483400283663", + "title": "To retrieve tag set of a specific object version" } ], "GetObjectTorrent": [ @@ -989,37 +989,47 @@ "ListMultipartUploads": [ { "input": { - "Bucket": "examplebucket" + "Bucket": "examplebucket", + "KeyMarker": "nextkeyfrompreviousresponse", + "MaxUploads": "2", + "UploadIdMarker": "valuefrompreviousresponse" }, "output": { + "Bucket": "acl1", + "IsTruncated": true, + "KeyMarker": "", + "MaxUploads": "2", + "NextKeyMarker": "someobjectkey", + "NextUploadIdMarker": "examplelo91lv1iwvWpvCiJWugw2xXLPAD7Z8cJyX9.WiIRgNrdG6Ldsn.9FtS63TCl1Uf5faTB.1U5Ckcbmdw--", + "UploadIdMarker": "", "Uploads": [ { "Initiated": "2014-05-01T05:40:58.000Z", "Initiator": { - "DisplayName": "display-name", + "DisplayName": "ownder-display-name", "ID": "examplee7a2f25102679df27bb0ae12b3f85be6f290b936c4393484be31bebcc" }, "Key": "JavaFile", "Owner": { - "DisplayName": "display-name", - "ID": "examplee7a2f25102679df27bb0ae12b3f85be6f290b936c4393484be31bebcc" + "DisplayName": "mohanataws", + "ID": "852b113e7a2f25102679df27bb0ae12b3f85be6f290b936c4393484be31bebcc" }, "StorageClass": "STANDARD", - "UploadId": "examplelUa.CInXklLQtSMJITdUnoZ1Y5GACB5UckOtspm5zbDMCkPF_qkfZzMiFZ6dksmcnqxJyIBvQMG9X9Q--" + "UploadId": "gZ30jIqlUa.CInXklLQtSMJITdUnoZ1Y5GACB5UckOtspm5zbDMCkPF_qkfZzMiFZ6dksmcnqxJyIBvQMG9X9Q--" }, { "Initiated": "2014-05-01T05:41:27.000Z", "Initiator": { - "DisplayName": "display-name", + "DisplayName": "ownder-display-name", "ID": "examplee7a2f25102679df27bb0ae12b3f85be6f290b936c4393484be31bebcc" }, "Key": "JavaFile", "Owner": { - "DisplayName": "display-name", + "DisplayName": "ownder-display-name", "ID": "examplee7a2f25102679df27bb0ae12b3f85be6f290b936c4393484be31bebcc" }, "StorageClass": "STANDARD", - "UploadId": "examplelo91lv1iwvWpvCiJWugw2xXLPAD7Z8cJyX9.WiIRgNrdG6Ldsn.9FtS63TCl1Uf5faTB.1U5Ckcbmdw--" + "UploadId": "b7tZSqIlo91lv1iwvWpvCiJWugw2xXLPAD7Z8cJyX9.WiIRgNrdG6Ldsn.9FtS63TCl1Uf5faTB.1U5Ckcbmdw--" } ] }, @@ -1029,53 +1039,43 @@ "output": { } }, - "description": "The following example lists in-progress multipart uploads on a specific bucket.", - "id": "to-list-in-progress-multipart-uploads-on-a-bucket-1481852775260", - "title": "To list in-progress multipart uploads on a bucket" + "description": "The following example specifies the upload-id-marker and key-marker from previous truncated response to retrieve next setup of multipart uploads.", + "id": "list-next-set-of-multipart-uploads-when-previous-result-is-truncated-1482428106748", + "title": "List next set of multipart uploads when previous result is truncated" }, { "input": { - "Bucket": "examplebucket", - "KeyMarker": "nextkeyfrompreviousresponse", - "MaxUploads": "2", - "UploadIdMarker": "valuefrompreviousresponse" + "Bucket": "examplebucket" }, "output": { - "Bucket": "acl1", - "IsTruncated": true, - "KeyMarker": "", - "MaxUploads": "2", - "NextKeyMarker": "someobjectkey", - "NextUploadIdMarker": "examplelo91lv1iwvWpvCiJWugw2xXLPAD7Z8cJyX9.WiIRgNrdG6Ldsn.9FtS63TCl1Uf5faTB.1U5Ckcbmdw--", - "UploadIdMarker": "", "Uploads": [ { "Initiated": "2014-05-01T05:40:58.000Z", "Initiator": { - "DisplayName": "ownder-display-name", + "DisplayName": "display-name", "ID": "examplee7a2f25102679df27bb0ae12b3f85be6f290b936c4393484be31bebcc" }, "Key": "JavaFile", "Owner": { - "DisplayName": "mohanataws", - "ID": "852b113e7a2f25102679df27bb0ae12b3f85be6f290b936c4393484be31bebcc" + "DisplayName": "display-name", + "ID": "examplee7a2f25102679df27bb0ae12b3f85be6f290b936c4393484be31bebcc" }, "StorageClass": "STANDARD", - "UploadId": "gZ30jIqlUa.CInXklLQtSMJITdUnoZ1Y5GACB5UckOtspm5zbDMCkPF_qkfZzMiFZ6dksmcnqxJyIBvQMG9X9Q--" + "UploadId": "examplelUa.CInXklLQtSMJITdUnoZ1Y5GACB5UckOtspm5zbDMCkPF_qkfZzMiFZ6dksmcnqxJyIBvQMG9X9Q--" }, { "Initiated": "2014-05-01T05:41:27.000Z", "Initiator": { - "DisplayName": "ownder-display-name", + "DisplayName": "display-name", "ID": "examplee7a2f25102679df27bb0ae12b3f85be6f290b936c4393484be31bebcc" }, "Key": "JavaFile", "Owner": { - "DisplayName": "ownder-display-name", + "DisplayName": "display-name", "ID": "examplee7a2f25102679df27bb0ae12b3f85be6f290b936c4393484be31bebcc" }, "StorageClass": "STANDARD", - "UploadId": "b7tZSqIlo91lv1iwvWpvCiJWugw2xXLPAD7Z8cJyX9.WiIRgNrdG6Ldsn.9FtS63TCl1Uf5faTB.1U5Ckcbmdw--" + "UploadId": "examplelo91lv1iwvWpvCiJWugw2xXLPAD7Z8cJyX9.WiIRgNrdG6Ldsn.9FtS63TCl1Uf5faTB.1U5Ckcbmdw--" } ] }, @@ -1085,9 +1085,9 @@ "output": { } }, - "description": "The following example specifies the upload-id-marker and key-marker from previous truncated response to retrieve next setup of multipart uploads.", - "id": "list-next-set-of-multipart-uploads-when-previous-result-is-truncated-1482428106748", - "title": "List next set of multipart uploads when previous result is truncated" + "description": "The following example lists in-progress multipart uploads on a specific bucket.", + "id": "to-list-in-progress-multipart-uploads-on-a-bucket-1481852775260", + "title": "To list in-progress multipart uploads on a bucket" } ], "ListObjectVersions": [ @@ -1567,14 +1567,13 @@ "PutObject": [ { "input": { - "Body": "c:\\HappyFace.jpg", + "Body": "filetoupload", "Bucket": "examplebucket", - "Key": "HappyFace.jpg", - "Tagging": "key1=value1&key2=value2" + "Key": "objectkey" }, "output": { "ETag": "\"6805f2cfc46c0f04559748bb039d69ae\"", - "VersionId": "psM2sYY4.o1501dSx8wMvnkOzSBB.V4a" + "VersionId": "Bvq0EDKxOcXLJXNo_Lkz37eM3R4pfzyQ" }, "comments": { "input": { @@ -1582,19 +1581,19 @@ "output": { } }, - "description": "The following example uploads an object. The request specifies optional object tags. The bucket is versioned, therefore S3 returns version ID of the newly created object.", - "id": "to-upload-an-object-and-specify-optional-tags-1481762310955", - "title": "To upload an object and specify optional tags" + "description": "The following example creates an object. If the bucket is versioning enabled, S3 returns version ID in response.", + "id": "to-create-an-object-1483147613675", + "title": "To create an object." }, { "input": { - "Body": "filetoupload", + "Body": "HappyFace.jpg", "Bucket": "examplebucket", - "Key": "objectkey" + "Key": "HappyFace.jpg" }, "output": { "ETag": "\"6805f2cfc46c0f04559748bb039d69ae\"", - "VersionId": "Bvq0EDKxOcXLJXNo_Lkz37eM3R4pfzyQ" + "VersionId": "tpf3zF08nBplQK1XLOefGskR7mGDwcDk" }, "comments": { "input": { @@ -1602,9 +1601,9 @@ "output": { } }, - "description": "The following example creates an object. If the bucket is versioning enabled, S3 returns version ID in response.", - "id": "to-create-an-object-1483147613675", - "title": "To create an object." + "description": "The following example uploads an object to a versioning-enabled bucket. The source file is specified using Windows file syntax. S3 returns VersionId of the newly created object.", + "id": "to-upload-an-object-1481760101010", + "title": "To upload an object" }, { "input": { @@ -1632,13 +1631,14 @@ }, { "input": { - "Body": "HappyFace.jpg", + "Body": "c:\\HappyFace.jpg", "Bucket": "examplebucket", - "Key": "HappyFace.jpg" + "Key": "HappyFace.jpg", + "Tagging": "key1=value1&key2=value2" }, "output": { "ETag": "\"6805f2cfc46c0f04559748bb039d69ae\"", - "VersionId": "tpf3zF08nBplQK1XLOefGskR7mGDwcDk" + "VersionId": "psM2sYY4.o1501dSx8wMvnkOzSBB.V4a" }, "comments": { "input": { @@ -1646,22 +1646,22 @@ "output": { } }, - "description": "The following example uploads an object to a versioning-enabled bucket. The source file is specified using Windows file syntax. S3 returns VersionId of the newly created object.", - "id": "to-upload-an-object-1481760101010", - "title": "To upload an object" + "description": "The following example uploads an object. The request specifies optional object tags. The bucket is versioned, therefore S3 returns version ID of the newly created object.", + "id": "to-upload-an-object-and-specify-optional-tags-1481762310955", + "title": "To upload an object and specify optional tags" }, { "input": { - "Body": "filetoupload", + "Body": "HappyFace.jpg", "Bucket": "examplebucket", - "Key": "exampleobject", + "Key": "HappyFace.jpg", "ServerSideEncryption": "AES256", - "Tagging": "key1=value1&key2=value2" + "StorageClass": "STANDARD_IA" }, "output": { "ETag": "\"6805f2cfc46c0f04559748bb039d69ae\"", "ServerSideEncryption": "AES256", - "VersionId": "Ri.vC6qVlA4dEnjgRV4ZHsHoFIjqEMNt" + "VersionId": "CG612hodqujkf8FaaNfp8U..FIhLROcp" }, "comments": { "input": { @@ -1669,20 +1669,22 @@ "output": { } }, - "description": "The following example uploads an object. The request specifies the optional server-side encryption option. The request also specifies optional object tags. If the bucket is versioning enabled, S3 returns version ID in response.", - "id": "to-upload-an-object-and-specify-server-side-encryption-and-object-tags-1483398331831", - "title": "To upload an object and specify server-side encryption and object tags" + "description": "The following example uploads an object. The request specifies optional request headers to directs S3 to use specific storage class and use server-side encryption.", + "id": "to-upload-an-object-(specify-optional-headers)", + "title": "To upload an object (specify optional headers)" }, { "input": { - "ACL": "authenticated-read", "Body": "filetoupload", "Bucket": "examplebucket", - "Key": "exampleobject" + "Key": "exampleobject", + "ServerSideEncryption": "AES256", + "Tagging": "key1=value1&key2=value2" }, "output": { "ETag": "\"6805f2cfc46c0f04559748bb039d69ae\"", - "VersionId": "Kirh.unyZwjQ69YxcQLA8z4F5j3kJJKr" + "ServerSideEncryption": "AES256", + "VersionId": "Ri.vC6qVlA4dEnjgRV4ZHsHoFIjqEMNt" }, "comments": { "input": { @@ -1690,22 +1692,20 @@ "output": { } }, - "description": "The following example uploads and object. The request specifies optional canned ACL (access control list) to all READ access to authenticated users. If the bucket is versioning enabled, S3 returns version ID in response.", - "id": "to-upload-an-object-and-specify-canned-acl-1483397779571", - "title": "To upload an object and specify canned ACL." + "description": "The following example uploads an object. The request specifies the optional server-side encryption option. The request also specifies optional object tags. If the bucket is versioning enabled, S3 returns version ID in response.", + "id": "to-upload-an-object-and-specify-server-side-encryption-and-object-tags-1483398331831", + "title": "To upload an object and specify server-side encryption and object tags" }, { "input": { - "Body": "HappyFace.jpg", + "ACL": "authenticated-read", + "Body": "filetoupload", "Bucket": "examplebucket", - "Key": "HappyFace.jpg", - "ServerSideEncryption": "AES256", - "StorageClass": "STANDARD_IA" + "Key": "exampleobject" }, "output": { "ETag": "\"6805f2cfc46c0f04559748bb039d69ae\"", - "ServerSideEncryption": "AES256", - "VersionId": "CG612hodqujkf8FaaNfp8U..FIhLROcp" + "VersionId": "Kirh.unyZwjQ69YxcQLA8z4F5j3kJJKr" }, "comments": { "input": { @@ -1713,9 +1713,9 @@ "output": { } }, - "description": "The following example uploads an object. The request specifies optional request headers to directs S3 to use specific storage class and use server-side encryption.", - "id": "to-upload-an-object-(specify-optional-headers)", - "title": "To upload an object (specify optional headers)" + "description": "The following example uploads and object. The request specifies optional canned ACL (access control list) to all READ access to authenticated users. If the bucket is versioning enabled, S3 returns version ID in response.", + "id": "to-upload-an-object-and-specify-canned-acl-1483397779571", + "title": "To upload an object and specify canned ACL." } ], "PutObjectAcl": [ @@ -1826,15 +1826,14 @@ "input": { "Bucket": "examplebucket", "CopySource": "/bucketname/sourceobjectkey", - "CopySourceRange": "bytes=1-100000", "Key": "examplelargeobject", - "PartNumber": "2", + "PartNumber": "1", "UploadId": "exampleuoh_10OhKhT7YukE9bjzTPRiuaCotmZM_pFngJFir9OZNrSr5cWa3cq3LZSUsfjI4FI7PkP91We7Nrw--" }, "output": { "CopyPartResult": { - "ETag": "\"65d16d19e65a7508a51f043180edcc36\"", - "LastModified": "2016-12-29T21:44:28.000Z" + "ETag": "\"b0c6f0e7e054ab8fa2536a2677f8734d\"", + "LastModified": "2016-12-29T21:24:43.000Z" } }, "comments": { @@ -1843,22 +1842,23 @@ "output": { } }, - "description": "The following example uploads a part of a multipart upload by copying a specified byte range from an existing object as data source.", - "id": "to-upload-a-part-by-copying-byte-range-from-an-existing-object-as-data-source-1483048068594", - "title": "To upload a part by copying byte range from an existing object as data source" + "description": "The following example uploads a part of a multipart upload by copying data from an existing object as data source.", + "id": "to-upload-a-part-by-copying-data-from-an-existing-object-as-data-source-1483046746348", + "title": "To upload a part by copying data from an existing object as data source" }, { "input": { "Bucket": "examplebucket", "CopySource": "/bucketname/sourceobjectkey", + "CopySourceRange": "bytes=1-100000", "Key": "examplelargeobject", - "PartNumber": "1", + "PartNumber": "2", "UploadId": "exampleuoh_10OhKhT7YukE9bjzTPRiuaCotmZM_pFngJFir9OZNrSr5cWa3cq3LZSUsfjI4FI7PkP91We7Nrw--" }, "output": { "CopyPartResult": { - "ETag": "\"b0c6f0e7e054ab8fa2536a2677f8734d\"", - "LastModified": "2016-12-29T21:24:43.000Z" + "ETag": "\"65d16d19e65a7508a51f043180edcc36\"", + "LastModified": "2016-12-29T21:44:28.000Z" } }, "comments": { @@ -1867,9 +1867,9 @@ "output": { } }, - "description": "The following example uploads a part of a multipart upload by copying data from an existing object as data source.", - "id": "to-upload-a-part-by-copying-data-from-an-existing-object-as-data-source-1483046746348", - "title": "To upload a part by copying data from an existing object as data source" + "description": "The following example uploads a part of a multipart upload by copying a specified byte range from an existing object as data source.", + "id": "to-upload-a-part-by-copying-byte-range-from-an-existing-object-as-data-source-1483048068594", + "title": "To upload a part by copying byte range from an existing object as data source" } ] } diff --git a/models/apis/s3/2006-03-01/paginators-1.json b/models/apis/s3/2006-03-01/paginators-1.json index 6d24346fd5e..92f6c83fc6b 100644 --- a/models/apis/s3/2006-03-01/paginators-1.json +++ b/models/apis/s3/2006-03-01/paginators-1.json @@ -3,6 +3,12 @@ "ListBuckets": { "result_key": "Buckets" }, + "ListDirectoryBuckets": { + "input_token": "ContinuationToken", + "limit_key": "MaxDirectoryBuckets", + "output_token": "ContinuationToken", + "result_key": "Buckets" + }, "ListMultipartUploads": { "input_token": [ "KeyMarker", diff --git a/models/apis/s3control/2018-08-20/api-2.json b/models/apis/s3control/2018-08-20/api-2.json index cd3ae9524b5..7bfbdf70aef 100644 --- a/models/apis/s3control/2018-08-20/api-2.json +++ b/models/apis/s3control/2018-08-20/api-2.json @@ -4073,7 +4073,9 @@ "LambdaInvokeOperation":{ "type":"structure", "members":{ - "FunctionArn":{"shape":"FunctionArnString"} + "FunctionArn":{"shape":"FunctionArnString"}, + "InvocationSchemaVersion":{"shape":"NonEmptyMaxLength64String"}, + "UserArguments":{"shape":"UserArguments"} } }, "LifecycleConfiguration":{ @@ -5734,7 +5736,7 @@ "S3CopyObjectOperation":{ "type":"structure", "members":{ - "TargetResource":{"shape":"S3BucketArnString"}, + "TargetResource":{"shape":"S3RegionalOrS3ExpressBucketArnString"}, "CannedAccessControlList":{ "shape":"S3CannedAccessControlList", "box":true @@ -5948,6 +5950,12 @@ "max":128, "min":4 }, + "S3RegionalOrS3ExpressBucketArnString":{ + "type":"string", + "max":128, + "min":1, + "pattern":"arn:[^:]+:(s3|s3express):.*" + }, "S3ReplicateObjectOperation":{ "type":"structure", "members":{ @@ -6608,6 +6616,13 @@ "StorageLensGroup":{"shape":"StorageLensGroup"} } }, + "UserArguments":{ + "type":"map", + "key":{"shape":"NonEmptyMaxLength64String"}, + "value":{"shape":"MaxLength1024String"}, + "max":10, + "min":1 + }, "VersioningConfiguration":{ "type":"structure", "members":{ diff --git a/models/apis/s3control/2018-08-20/docs-2.json b/models/apis/s3control/2018-08-20/docs-2.json index 8871d436c7b..055c4a280d9 100644 --- a/models/apis/s3control/2018-08-20/docs-2.json +++ b/models/apis/s3control/2018-08-20/docs-2.json @@ -6,93 +6,93 @@ "CreateAccessGrant": "

Creates an access grant that gives a grantee access to your S3 data. The grantee can be an IAM user or role or a directory user, or group. Before you can create a grant, you must have an S3 Access Grants instance in the same Region as the S3 data. You can create an S3 Access Grants instance using the CreateAccessGrantsInstance. You must also have registered at least one S3 data location in your S3 Access Grants instance using CreateAccessGrantsLocation.

Permissions

You must have the s3:CreateAccessGrant permission to use this operation.

Additional Permissions

For any directory identity - sso:DescribeInstance and sso:DescribeApplication

For directory users - identitystore:DescribeUser

For directory groups - identitystore:DescribeGroup

", "CreateAccessGrantsInstance": "

Creates an S3 Access Grants instance, which serves as a logical grouping for access grants. You can create one S3 Access Grants instance per Region per account.

Permissions

You must have the s3:CreateAccessGrantsInstance permission to use this operation.

Additional Permissions

To associate an IAM Identity Center instance with your S3 Access Grants instance, you must also have the sso:DescribeInstance, sso:CreateApplication, sso:PutApplicationGrant, and sso:PutApplicationAuthenticationMethod permissions.

", "CreateAccessGrantsLocation": "

The S3 data location that you would like to register in your S3 Access Grants instance. Your S3 data must be in the same Region as your S3 Access Grants instance. The location can be one of the following:

When you register a location, you must include the IAM role that has permission to manage the S3 location that you are registering. Give S3 Access Grants permission to assume this role using a policy. S3 Access Grants assumes this role to manage access to the location and to vend temporary credentials to grantees or client applications.

Permissions

You must have the s3:CreateAccessGrantsLocation permission to use this operation.

Additional Permissions

You must also have the following permission for the specified IAM role: iam:PassRole

", - "CreateAccessPoint": "

Creates an access point and associates it with the specified bucket. For more information, see Managing Data Access with Amazon S3 Access Points in the Amazon S3 User Guide.

S3 on Outposts only supports VPC-style access points.

For more information, see Accessing Amazon S3 on Outposts using virtual private cloud (VPC) only access points in the Amazon S3 User Guide.

All Amazon S3 on Outposts REST API requests for this action require an additional parameter of x-amz-outpost-id to be passed with the request. In addition, you must use an S3 on Outposts endpoint hostname prefix instead of s3-control. For an example of the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname prefix and the x-amz-outpost-id derived by using the access point ARN, see the Examples section.

The following actions are related to CreateAccessPoint:

", - "CreateAccessPointForObjectLambda": "

Creates an Object Lambda Access Point. For more information, see Transforming objects with Object Lambda Access Points in the Amazon S3 User Guide.

The following actions are related to CreateAccessPointForObjectLambda:

", + "CreateAccessPoint": "

This operation is not supported by directory buckets.

Creates an access point and associates it with the specified bucket. For more information, see Managing Data Access with Amazon S3 Access Points in the Amazon S3 User Guide.

S3 on Outposts only supports VPC-style access points.

For more information, see Accessing Amazon S3 on Outposts using virtual private cloud (VPC) only access points in the Amazon S3 User Guide.

All Amazon S3 on Outposts REST API requests for this action require an additional parameter of x-amz-outpost-id to be passed with the request. In addition, you must use an S3 on Outposts endpoint hostname prefix instead of s3-control. For an example of the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname prefix and the x-amz-outpost-id derived by using the access point ARN, see the Examples section.

The following actions are related to CreateAccessPoint:

", + "CreateAccessPointForObjectLambda": "

This operation is not supported by directory buckets.

Creates an Object Lambda Access Point. For more information, see Transforming objects with Object Lambda Access Points in the Amazon S3 User Guide.

The following actions are related to CreateAccessPointForObjectLambda:

", "CreateBucket": "

This action creates an Amazon S3 on Outposts bucket. To create an S3 bucket, see Create Bucket in the Amazon S3 API Reference.

Creates a new Outposts bucket. By creating the bucket, you become the bucket owner. To create an Outposts bucket, you must have S3 on Outposts. For more information, see Using Amazon S3 on Outposts in Amazon S3 User Guide.

Not every string is an acceptable bucket name. For information on bucket naming restrictions, see Working with Amazon S3 Buckets.

S3 on Outposts buckets support:

For a complete list of restrictions and Amazon S3 feature limitations on S3 on Outposts, see Amazon S3 on Outposts Restrictions and Limitations.

For an example of the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname prefix and x-amz-outpost-id in your API request, see the Examples section.

The following actions are related to CreateBucket for Amazon S3 on Outposts:

", - "CreateJob": "

You can use S3 Batch Operations to perform large-scale batch actions on Amazon S3 objects. Batch Operations can run a single action on lists of Amazon S3 objects that you specify. For more information, see S3 Batch Operations in the Amazon S3 User Guide.

This action creates a S3 Batch Operations job.

Related actions include:

", - "CreateMultiRegionAccessPoint": "

Creates a Multi-Region Access Point and associates it with the specified buckets. For more information about creating Multi-Region Access Points, see Creating Multi-Region Access Points in the Amazon S3 User Guide.

This action will always be routed to the US West (Oregon) Region. For more information about the restrictions around managing Multi-Region Access Points, see Managing Multi-Region Access Points in the Amazon S3 User Guide.

This request is asynchronous, meaning that you might receive a response before the command has completed. When this request provides a response, it provides a token that you can use to monitor the status of the request with DescribeMultiRegionAccessPointOperation.

The following actions are related to CreateMultiRegionAccessPoint:

", + "CreateJob": "

This operation creates an S3 Batch Operations job.

You can use S3 Batch Operations to perform large-scale batch actions on Amazon S3 objects. Batch Operations can run a single action on lists of Amazon S3 objects that you specify. For more information, see S3 Batch Operations in the Amazon S3 User Guide.

Permissions

For information about permissions required to use the Batch Operations, see Granting permissions for S3 Batch Operations in the Amazon S3 User Guide.

Related actions include:

", + "CreateMultiRegionAccessPoint": "

This operation is not supported by directory buckets.

Creates a Multi-Region Access Point and associates it with the specified buckets. For more information about creating Multi-Region Access Points, see Creating Multi-Region Access Points in the Amazon S3 User Guide.

This action will always be routed to the US West (Oregon) Region. For more information about the restrictions around managing Multi-Region Access Points, see Managing Multi-Region Access Points in the Amazon S3 User Guide.

This request is asynchronous, meaning that you might receive a response before the command has completed. When this request provides a response, it provides a token that you can use to monitor the status of the request with DescribeMultiRegionAccessPointOperation.

The following actions are related to CreateMultiRegionAccessPoint:

", "CreateStorageLensGroup": "

Creates a new S3 Storage Lens group and associates it with the specified Amazon Web Services account ID. An S3 Storage Lens group is a custom grouping of objects based on prefix, suffix, object tags, object size, object age, or a combination of these filters. For each Storage Lens group that you’ve created, you can also optionally add Amazon Web Services resource tags. For more information about S3 Storage Lens groups, see Working with S3 Storage Lens groups.

To use this operation, you must have the permission to perform the s3:CreateStorageLensGroup action. If you’re trying to create a Storage Lens group with Amazon Web Services resource tags, you must also have permission to perform the s3:TagResource action. For more information about the required Storage Lens Groups permissions, see Setting account permissions to use S3 Storage Lens groups.

For information about Storage Lens groups errors, see List of Amazon S3 Storage Lens error codes.

", "DeleteAccessGrant": "

Deletes the access grant from the S3 Access Grants instance. You cannot undo an access grant deletion and the grantee will no longer have access to the S3 data.

Permissions

You must have the s3:DeleteAccessGrant permission to use this operation.

", "DeleteAccessGrantsInstance": "

Deletes your S3 Access Grants instance. You must first delete the access grants and locations before S3 Access Grants can delete the instance. See DeleteAccessGrant and DeleteAccessGrantsLocation. If you have associated an IAM Identity Center instance with your S3 Access Grants instance, you must first dissassociate the Identity Center instance from the S3 Access Grants instance before you can delete the S3 Access Grants instance. See AssociateAccessGrantsIdentityCenter and DissociateAccessGrantsIdentityCenter.

Permissions

You must have the s3:DeleteAccessGrantsInstance permission to use this operation.

", "DeleteAccessGrantsInstanceResourcePolicy": "

Deletes the resource policy of the S3 Access Grants instance. The resource policy is used to manage cross-account access to your S3 Access Grants instance. By deleting the resource policy, you delete any cross-account permissions to your S3 Access Grants instance.

Permissions

You must have the s3:DeleteAccessGrantsInstanceResourcePolicy permission to use this operation.

", "DeleteAccessGrantsLocation": "

Deregisters a location from your S3 Access Grants instance. You can only delete a location registration from an S3 Access Grants instance if there are no grants associated with this location. See Delete a grant for information on how to delete grants. You need to have at least one registered location in your S3 Access Grants instance in order to create access grants.

Permissions

You must have the s3:DeleteAccessGrantsLocation permission to use this operation.

", - "DeleteAccessPoint": "

Deletes the specified access point.

All Amazon S3 on Outposts REST API requests for this action require an additional parameter of x-amz-outpost-id to be passed with the request. In addition, you must use an S3 on Outposts endpoint hostname prefix instead of s3-control. For an example of the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname prefix and the x-amz-outpost-id derived by using the access point ARN, see the Examples section.

The following actions are related to DeleteAccessPoint:

", - "DeleteAccessPointForObjectLambda": "

Deletes the specified Object Lambda Access Point.

The following actions are related to DeleteAccessPointForObjectLambda:

", - "DeleteAccessPointPolicy": "

Deletes the access point policy for the specified access point.

All Amazon S3 on Outposts REST API requests for this action require an additional parameter of x-amz-outpost-id to be passed with the request. In addition, you must use an S3 on Outposts endpoint hostname prefix instead of s3-control. For an example of the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname prefix and the x-amz-outpost-id derived by using the access point ARN, see the Examples section.

The following actions are related to DeleteAccessPointPolicy:

", - "DeleteAccessPointPolicyForObjectLambda": "

Removes the resource policy for an Object Lambda Access Point.

The following actions are related to DeleteAccessPointPolicyForObjectLambda:

", + "DeleteAccessPoint": "

This operation is not supported by directory buckets.

Deletes the specified access point.

All Amazon S3 on Outposts REST API requests for this action require an additional parameter of x-amz-outpost-id to be passed with the request. In addition, you must use an S3 on Outposts endpoint hostname prefix instead of s3-control. For an example of the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname prefix and the x-amz-outpost-id derived by using the access point ARN, see the Examples section.

The following actions are related to DeleteAccessPoint:

", + "DeleteAccessPointForObjectLambda": "

This operation is not supported by directory buckets.

Deletes the specified Object Lambda Access Point.

The following actions are related to DeleteAccessPointForObjectLambda:

", + "DeleteAccessPointPolicy": "

This operation is not supported by directory buckets.

Deletes the access point policy for the specified access point.

All Amazon S3 on Outposts REST API requests for this action require an additional parameter of x-amz-outpost-id to be passed with the request. In addition, you must use an S3 on Outposts endpoint hostname prefix instead of s3-control. For an example of the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname prefix and the x-amz-outpost-id derived by using the access point ARN, see the Examples section.

The following actions are related to DeleteAccessPointPolicy:

", + "DeleteAccessPointPolicyForObjectLambda": "

This operation is not supported by directory buckets.

Removes the resource policy for an Object Lambda Access Point.

The following actions are related to DeleteAccessPointPolicyForObjectLambda:

", "DeleteBucket": "

This action deletes an Amazon S3 on Outposts bucket. To delete an S3 bucket, see DeleteBucket in the Amazon S3 API Reference.

Deletes the Amazon S3 on Outposts bucket. All objects (including all object versions and delete markers) in the bucket must be deleted before the bucket itself can be deleted. For more information, see Using Amazon S3 on Outposts in Amazon S3 User Guide.

All Amazon S3 on Outposts REST API requests for this action require an additional parameter of x-amz-outpost-id to be passed with the request. In addition, you must use an S3 on Outposts endpoint hostname prefix instead of s3-control. For an example of the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname prefix and the x-amz-outpost-id derived by using the access point ARN, see the Examples section.

Related Resources

", "DeleteBucketLifecycleConfiguration": "

This action deletes an Amazon S3 on Outposts bucket's lifecycle configuration. To delete an S3 bucket's lifecycle configuration, see DeleteBucketLifecycle in the Amazon S3 API Reference.

Deletes the lifecycle configuration from the specified Outposts bucket. Amazon S3 on Outposts removes all the lifecycle configuration rules in the lifecycle subresource associated with the bucket. Your objects never expire, and Amazon S3 on Outposts no longer automatically deletes any objects on the basis of rules contained in the deleted lifecycle configuration. For more information, see Using Amazon S3 on Outposts in Amazon S3 User Guide.

To use this operation, you must have permission to perform the s3-outposts:PutLifecycleConfiguration action. By default, the bucket owner has this permission and the Outposts bucket owner can grant this permission to others.

All Amazon S3 on Outposts REST API requests for this action require an additional parameter of x-amz-outpost-id to be passed with the request. In addition, you must use an S3 on Outposts endpoint hostname prefix instead of s3-control. For an example of the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname prefix and the x-amz-outpost-id derived by using the access point ARN, see the Examples section.

For more information about object expiration, see Elements to Describe Lifecycle Actions.

Related actions include:

", "DeleteBucketPolicy": "

This action deletes an Amazon S3 on Outposts bucket policy. To delete an S3 bucket policy, see DeleteBucketPolicy in the Amazon S3 API Reference.

This implementation of the DELETE action uses the policy subresource to delete the policy of a specified Amazon S3 on Outposts bucket. If you are using an identity other than the root user of the Amazon Web Services account that owns the bucket, the calling identity must have the s3-outposts:DeleteBucketPolicy permissions on the specified Outposts bucket and belong to the bucket owner's account to use this action. For more information, see Using Amazon S3 on Outposts in Amazon S3 User Guide.

If you don't have DeleteBucketPolicy permissions, Amazon S3 returns a 403 Access Denied error. If you have the correct permissions, but you're not using an identity that belongs to the bucket owner's account, Amazon S3 returns a 405 Method Not Allowed error.

As a security precaution, the root user of the Amazon Web Services account that owns a bucket can always use this action, even if the policy explicitly denies the root user the ability to perform this action.

For more information about bucket policies, see Using Bucket Policies and User Policies.

All Amazon S3 on Outposts REST API requests for this action require an additional parameter of x-amz-outpost-id to be passed with the request. In addition, you must use an S3 on Outposts endpoint hostname prefix instead of s3-control. For an example of the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname prefix and the x-amz-outpost-id derived by using the access point ARN, see the Examples section.

The following actions are related to DeleteBucketPolicy:

", "DeleteBucketReplication": "

This operation deletes an Amazon S3 on Outposts bucket's replication configuration. To delete an S3 bucket's replication configuration, see DeleteBucketReplication in the Amazon S3 API Reference.

Deletes the replication configuration from the specified S3 on Outposts bucket.

To use this operation, you must have permissions to perform the s3-outposts:PutReplicationConfiguration action. The Outposts bucket owner has this permission by default and can grant it to others. For more information about permissions, see Setting up IAM with S3 on Outposts and Managing access to S3 on Outposts buckets in the Amazon S3 User Guide.

It can take a while to propagate PUT or DELETE requests for a replication configuration to all S3 on Outposts systems. Therefore, the replication configuration that's returned by a GET request soon after a PUT or DELETE request might return a more recent result than what's on the Outpost. If an Outpost is offline, the delay in updating the replication configuration on that Outpost can be significant.

All Amazon S3 on Outposts REST API requests for this action require an additional parameter of x-amz-outpost-id to be passed with the request. In addition, you must use an S3 on Outposts endpoint hostname prefix instead of s3-control. For an example of the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname prefix and the x-amz-outpost-id derived by using the access point ARN, see the Examples section.

For information about S3 replication on Outposts configuration, see Replicating objects for S3 on Outposts in the Amazon S3 User Guide.

The following operations are related to DeleteBucketReplication:

", "DeleteBucketTagging": "

This action deletes an Amazon S3 on Outposts bucket's tags. To delete an S3 bucket tags, see DeleteBucketTagging in the Amazon S3 API Reference.

Deletes the tags from the Outposts bucket. For more information, see Using Amazon S3 on Outposts in Amazon S3 User Guide.

To use this action, you must have permission to perform the PutBucketTagging action. By default, the bucket owner has this permission and can grant this permission to others.

All Amazon S3 on Outposts REST API requests for this action require an additional parameter of x-amz-outpost-id to be passed with the request. In addition, you must use an S3 on Outposts endpoint hostname prefix instead of s3-control. For an example of the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname prefix and the x-amz-outpost-id derived by using the access point ARN, see the Examples section.

The following actions are related to DeleteBucketTagging:

", - "DeleteJobTagging": "

Removes the entire tag set from the specified S3 Batch Operations job. To use the DeleteJobTagging operation, you must have permission to perform the s3:DeleteJobTagging action. For more information, see Controlling access and labeling jobs using tags in the Amazon S3 User Guide.

Related actions include:

", - "DeleteMultiRegionAccessPoint": "

Deletes a Multi-Region Access Point. This action does not delete the buckets associated with the Multi-Region Access Point, only the Multi-Region Access Point itself.

This action will always be routed to the US West (Oregon) Region. For more information about the restrictions around managing Multi-Region Access Points, see Managing Multi-Region Access Points in the Amazon S3 User Guide.

This request is asynchronous, meaning that you might receive a response before the command has completed. When this request provides a response, it provides a token that you can use to monitor the status of the request with DescribeMultiRegionAccessPointOperation.

The following actions are related to DeleteMultiRegionAccessPoint:

", - "DeletePublicAccessBlock": "

Removes the PublicAccessBlock configuration for an Amazon Web Services account. For more information, see Using Amazon S3 block public access.

Related actions include:

", - "DeleteStorageLensConfiguration": "

Deletes the Amazon S3 Storage Lens configuration. For more information about S3 Storage Lens, see Assessing your storage activity and usage with Amazon S3 Storage Lens in the Amazon S3 User Guide.

To use this action, you must have permission to perform the s3:DeleteStorageLensConfiguration action. For more information, see Setting permissions to use Amazon S3 Storage Lens in the Amazon S3 User Guide.

", - "DeleteStorageLensConfigurationTagging": "

Deletes the Amazon S3 Storage Lens configuration tags. For more information about S3 Storage Lens, see Assessing your storage activity and usage with Amazon S3 Storage Lens in the Amazon S3 User Guide.

To use this action, you must have permission to perform the s3:DeleteStorageLensConfigurationTagging action. For more information, see Setting permissions to use Amazon S3 Storage Lens in the Amazon S3 User Guide.

", + "DeleteJobTagging": "

Removes the entire tag set from the specified S3 Batch Operations job.

Permissions

To use the DeleteJobTagging operation, you must have permission to perform the s3:DeleteJobTagging action. For more information, see Controlling access and labeling jobs using tags in the Amazon S3 User Guide.

Related actions include:

", + "DeleteMultiRegionAccessPoint": "

This operation is not supported by directory buckets.

Deletes a Multi-Region Access Point. This action does not delete the buckets associated with the Multi-Region Access Point, only the Multi-Region Access Point itself.

This action will always be routed to the US West (Oregon) Region. For more information about the restrictions around managing Multi-Region Access Points, see Managing Multi-Region Access Points in the Amazon S3 User Guide.

This request is asynchronous, meaning that you might receive a response before the command has completed. When this request provides a response, it provides a token that you can use to monitor the status of the request with DescribeMultiRegionAccessPointOperation.

The following actions are related to DeleteMultiRegionAccessPoint:

", + "DeletePublicAccessBlock": "

This operation is not supported by directory buckets.

Removes the PublicAccessBlock configuration for an Amazon Web Services account. For more information, see Using Amazon S3 block public access.

Related actions include:

", + "DeleteStorageLensConfiguration": "

This operation is not supported by directory buckets.

Deletes the Amazon S3 Storage Lens configuration. For more information about S3 Storage Lens, see Assessing your storage activity and usage with Amazon S3 Storage Lens in the Amazon S3 User Guide.

To use this action, you must have permission to perform the s3:DeleteStorageLensConfiguration action. For more information, see Setting permissions to use Amazon S3 Storage Lens in the Amazon S3 User Guide.

", + "DeleteStorageLensConfigurationTagging": "

This operation is not supported by directory buckets.

Deletes the Amazon S3 Storage Lens configuration tags. For more information about S3 Storage Lens, see Assessing your storage activity and usage with Amazon S3 Storage Lens in the Amazon S3 User Guide.

To use this action, you must have permission to perform the s3:DeleteStorageLensConfigurationTagging action. For more information, see Setting permissions to use Amazon S3 Storage Lens in the Amazon S3 User Guide.

", "DeleteStorageLensGroup": "

Deletes an existing S3 Storage Lens group.

To use this operation, you must have the permission to perform the s3:DeleteStorageLensGroup action. For more information about the required Storage Lens Groups permissions, see Setting account permissions to use S3 Storage Lens groups.

For information about Storage Lens groups errors, see List of Amazon S3 Storage Lens error codes.

", - "DescribeJob": "

Retrieves the configuration parameters and status for a Batch Operations job. For more information, see S3 Batch Operations in the Amazon S3 User Guide.

Related actions include:

", - "DescribeMultiRegionAccessPointOperation": "

Retrieves the status of an asynchronous request to manage a Multi-Region Access Point. For more information about managing Multi-Region Access Points and how asynchronous requests work, see Managing Multi-Region Access Points in the Amazon S3 User Guide.

The following actions are related to GetMultiRegionAccessPoint:

", + "DescribeJob": "

Retrieves the configuration parameters and status for a Batch Operations job. For more information, see S3 Batch Operations in the Amazon S3 User Guide.

Permissions

To use the DescribeJob operation, you must have permission to perform the s3:DescribeJob action.

Related actions include:

", + "DescribeMultiRegionAccessPointOperation": "

This operation is not supported by directory buckets.

Retrieves the status of an asynchronous request to manage a Multi-Region Access Point. For more information about managing Multi-Region Access Points and how asynchronous requests work, see Managing Multi-Region Access Points in the Amazon S3 User Guide.

The following actions are related to GetMultiRegionAccessPoint:

", "DissociateAccessGrantsIdentityCenter": "

Dissociates the Amazon Web Services IAM Identity Center instance from the S3 Access Grants instance.

Permissions

You must have the s3:DissociateAccessGrantsIdentityCenter permission to use this operation.

Additional Permissions

You must have the sso:DeleteApplication permission to use this operation.

", "GetAccessGrant": "

Get the details of an access grant from your S3 Access Grants instance.

Permissions

You must have the s3:GetAccessGrant permission to use this operation.

", "GetAccessGrantsInstance": "

Retrieves the S3 Access Grants instance for a Region in your account.

Permissions

You must have the s3:GetAccessGrantsInstance permission to use this operation.

", "GetAccessGrantsInstanceForPrefix": "

Retrieve the S3 Access Grants instance that contains a particular prefix.

Permissions

You must have the s3:GetAccessGrantsInstanceForPrefix permission for the caller account to use this operation.

Additional Permissions

The prefix owner account must grant you the following permissions to their S3 Access Grants instance: s3:GetAccessGrantsInstanceForPrefix.

", "GetAccessGrantsInstanceResourcePolicy": "

Returns the resource policy of the S3 Access Grants instance.

Permissions

You must have the s3:GetAccessGrantsInstanceResourcePolicy permission to use this operation.

", "GetAccessGrantsLocation": "

Retrieves the details of a particular location registered in your S3 Access Grants instance.

Permissions

You must have the s3:GetAccessGrantsLocation permission to use this operation.

", - "GetAccessPoint": "

Returns configuration information about the specified access point.

All Amazon S3 on Outposts REST API requests for this action require an additional parameter of x-amz-outpost-id to be passed with the request. In addition, you must use an S3 on Outposts endpoint hostname prefix instead of s3-control. For an example of the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname prefix and the x-amz-outpost-id derived by using the access point ARN, see the Examples section.

The following actions are related to GetAccessPoint:

", - "GetAccessPointConfigurationForObjectLambda": "

Returns configuration for an Object Lambda Access Point.

The following actions are related to GetAccessPointConfigurationForObjectLambda:

", - "GetAccessPointForObjectLambda": "

Returns configuration information about the specified Object Lambda Access Point

The following actions are related to GetAccessPointForObjectLambda:

", - "GetAccessPointPolicy": "

Returns the access point policy associated with the specified access point.

The following actions are related to GetAccessPointPolicy:

", - "GetAccessPointPolicyForObjectLambda": "

Returns the resource policy for an Object Lambda Access Point.

The following actions are related to GetAccessPointPolicyForObjectLambda:

", - "GetAccessPointPolicyStatus": "

Indicates whether the specified access point currently has a policy that allows public access. For more information about public access through access points, see Managing Data Access with Amazon S3 access points in the Amazon S3 User Guide.

", - "GetAccessPointPolicyStatusForObjectLambda": "

Returns the status of the resource policy associated with an Object Lambda Access Point.

", - "GetBucket": "

Gets an Amazon S3 on Outposts bucket. For more information, see Using Amazon S3 on Outposts in the Amazon S3 User Guide.

If you are using an identity other than the root user of the Amazon Web Services account that owns the Outposts bucket, the calling identity must have the s3-outposts:GetBucket permissions on the specified Outposts bucket and belong to the Outposts bucket owner's account in order to use this action. Only users from Outposts bucket owner account with the right permissions can perform actions on an Outposts bucket.

If you don't have s3-outposts:GetBucket permissions or you're not using an identity that belongs to the bucket owner's account, Amazon S3 returns a 403 Access Denied error.

The following actions are related to GetBucket for Amazon S3 on Outposts:

All Amazon S3 on Outposts REST API requests for this action require an additional parameter of x-amz-outpost-id to be passed with the request. In addition, you must use an S3 on Outposts endpoint hostname prefix instead of s3-control. For an example of the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname prefix and the x-amz-outpost-id derived by using the access point ARN, see the Examples section.

", + "GetAccessPoint": "

This operation is not supported by directory buckets.

Returns configuration information about the specified access point.

All Amazon S3 on Outposts REST API requests for this action require an additional parameter of x-amz-outpost-id to be passed with the request. In addition, you must use an S3 on Outposts endpoint hostname prefix instead of s3-control. For an example of the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname prefix and the x-amz-outpost-id derived by using the access point ARN, see the Examples section.

The following actions are related to GetAccessPoint:

", + "GetAccessPointConfigurationForObjectLambda": "

This operation is not supported by directory buckets.

Returns configuration for an Object Lambda Access Point.

The following actions are related to GetAccessPointConfigurationForObjectLambda:

", + "GetAccessPointForObjectLambda": "

This operation is not supported by directory buckets.

Returns configuration information about the specified Object Lambda Access Point

The following actions are related to GetAccessPointForObjectLambda:

", + "GetAccessPointPolicy": "

This operation is not supported by directory buckets.

Returns the access point policy associated with the specified access point.

The following actions are related to GetAccessPointPolicy:

", + "GetAccessPointPolicyForObjectLambda": "

This operation is not supported by directory buckets.

Returns the resource policy for an Object Lambda Access Point.

The following actions are related to GetAccessPointPolicyForObjectLambda:

", + "GetAccessPointPolicyStatus": "

This operation is not supported by directory buckets.

Indicates whether the specified access point currently has a policy that allows public access. For more information about public access through access points, see Managing Data Access with Amazon S3 access points in the Amazon S3 User Guide.

", + "GetAccessPointPolicyStatusForObjectLambda": "

This operation is not supported by directory buckets.

Returns the status of the resource policy associated with an Object Lambda Access Point.

", + "GetBucket": "

Gets an Amazon S3 on Outposts bucket. For more information, see Using Amazon S3 on Outposts in the Amazon S3 User Guide.

If you are using an identity other than the root user of the Amazon Web Services account that owns the Outposts bucket, the calling identity must have the s3-outposts:GetBucket permissions on the specified Outposts bucket and belong to the Outposts bucket owner's account in order to use this action. Only users from Outposts bucket owner account with the right permissions can perform actions on an Outposts bucket.

If you don't have s3-outposts:GetBucket permissions or you're not using an identity that belongs to the bucket owner's account, Amazon S3 returns a 403 Access Denied error.

The following actions are related to GetBucket for Amazon S3 on Outposts:

All Amazon S3 on Outposts REST API requests for this action require an additional parameter of x-amz-outpost-id to be passed with the request. In addition, you must use an S3 on Outposts endpoint hostname prefix instead of s3-control. For an example of the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname prefix and the x-amz-outpost-id derived by using the access point ARN, see the Examples section.

", "GetBucketLifecycleConfiguration": "

This action gets an Amazon S3 on Outposts bucket's lifecycle configuration. To get an S3 bucket's lifecycle configuration, see GetBucketLifecycleConfiguration in the Amazon S3 API Reference.

Returns the lifecycle configuration information set on the Outposts bucket. For more information, see Using Amazon S3 on Outposts and for information about lifecycle configuration, see Object Lifecycle Management in Amazon S3 User Guide.

To use this action, you must have permission to perform the s3-outposts:GetLifecycleConfiguration action. The Outposts bucket owner has this permission, by default. The bucket owner can grant this permission to others. For more information about permissions, see Permissions Related to Bucket Subresource Operations and Managing Access Permissions to Your Amazon S3 Resources.

All Amazon S3 on Outposts REST API requests for this action require an additional parameter of x-amz-outpost-id to be passed with the request. In addition, you must use an S3 on Outposts endpoint hostname prefix instead of s3-control. For an example of the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname prefix and the x-amz-outpost-id derived by using the access point ARN, see the Examples section.

GetBucketLifecycleConfiguration has the following special error:

The following actions are related to GetBucketLifecycleConfiguration:

", "GetBucketPolicy": "

This action gets a bucket policy for an Amazon S3 on Outposts bucket. To get a policy for an S3 bucket, see GetBucketPolicy in the Amazon S3 API Reference.

Returns the policy of a specified Outposts bucket. For more information, see Using Amazon S3 on Outposts in the Amazon S3 User Guide.

If you are using an identity other than the root user of the Amazon Web Services account that owns the bucket, the calling identity must have the GetBucketPolicy permissions on the specified bucket and belong to the bucket owner's account in order to use this action.

Only users from Outposts bucket owner account with the right permissions can perform actions on an Outposts bucket. If you don't have s3-outposts:GetBucketPolicy permissions or you're not using an identity that belongs to the bucket owner's account, Amazon S3 returns a 403 Access Denied error.

As a security precaution, the root user of the Amazon Web Services account that owns a bucket can always use this action, even if the policy explicitly denies the root user the ability to perform this action.

For more information about bucket policies, see Using Bucket Policies and User Policies.

All Amazon S3 on Outposts REST API requests for this action require an additional parameter of x-amz-outpost-id to be passed with the request. In addition, you must use an S3 on Outposts endpoint hostname prefix instead of s3-control. For an example of the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname prefix and the x-amz-outpost-id derived by using the access point ARN, see the Examples section.

The following actions are related to GetBucketPolicy:

", "GetBucketReplication": "

This operation gets an Amazon S3 on Outposts bucket's replication configuration. To get an S3 bucket's replication configuration, see GetBucketReplication in the Amazon S3 API Reference.

Returns the replication configuration of an S3 on Outposts bucket. For more information about S3 on Outposts, see Using Amazon S3 on Outposts in the Amazon S3 User Guide. For information about S3 replication on Outposts configuration, see Replicating objects for S3 on Outposts in the Amazon S3 User Guide.

It can take a while to propagate PUT or DELETE requests for a replication configuration to all S3 on Outposts systems. Therefore, the replication configuration that's returned by a GET request soon after a PUT or DELETE request might return a more recent result than what's on the Outpost. If an Outpost is offline, the delay in updating the replication configuration on that Outpost can be significant.

This action requires permissions for the s3-outposts:GetReplicationConfiguration action. The Outposts bucket owner has this permission by default and can grant it to others. For more information about permissions, see Setting up IAM with S3 on Outposts and Managing access to S3 on Outposts bucket in the Amazon S3 User Guide.

All Amazon S3 on Outposts REST API requests for this action require an additional parameter of x-amz-outpost-id to be passed with the request. In addition, you must use an S3 on Outposts endpoint hostname prefix instead of s3-control. For an example of the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname prefix and the x-amz-outpost-id derived by using the access point ARN, see the Examples section.

If you include the Filter element in a replication configuration, you must also include the DeleteMarkerReplication, Status, and Priority elements. The response also returns those elements.

For information about S3 on Outposts replication failure reasons, see Replication failure reasons in the Amazon S3 User Guide.

The following operations are related to GetBucketReplication:

", "GetBucketTagging": "

This action gets an Amazon S3 on Outposts bucket's tags. To get an S3 bucket tags, see GetBucketTagging in the Amazon S3 API Reference.

Returns the tag set associated with the Outposts bucket. For more information, see Using Amazon S3 on Outposts in the Amazon S3 User Guide.

To use this action, you must have permission to perform the GetBucketTagging action. By default, the bucket owner has this permission and can grant this permission to others.

GetBucketTagging has the following special error:

All Amazon S3 on Outposts REST API requests for this action require an additional parameter of x-amz-outpost-id to be passed with the request. In addition, you must use an S3 on Outposts endpoint hostname prefix instead of s3-control. For an example of the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname prefix and the x-amz-outpost-id derived by using the access point ARN, see the Examples section.

The following actions are related to GetBucketTagging:

", "GetBucketVersioning": "

This operation returns the versioning state for S3 on Outposts buckets only. To return the versioning state for an S3 bucket, see GetBucketVersioning in the Amazon S3 API Reference.

Returns the versioning state for an S3 on Outposts bucket. With S3 Versioning, you can save multiple distinct copies of your objects and recover from unintended user actions and application failures.

If you've never set versioning on your bucket, it has no versioning state. In that case, the GetBucketVersioning request does not return a versioning state value.

For more information about versioning, see Versioning in the Amazon S3 User Guide.

All Amazon S3 on Outposts REST API requests for this action require an additional parameter of x-amz-outpost-id to be passed with the request. In addition, you must use an S3 on Outposts endpoint hostname prefix instead of s3-control. For an example of the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname prefix and the x-amz-outpost-id derived by using the access point ARN, see the Examples section.

The following operations are related to GetBucketVersioning for S3 on Outposts.

", "GetDataAccess": "

Returns a temporary access credential from S3 Access Grants to the grantee or client application. The temporary credential is an Amazon Web Services STS token that grants them access to the S3 data.

Permissions

You must have the s3:GetDataAccess permission to use this operation.

Additional Permissions

The IAM role that S3 Access Grants assumes must have the following permissions specified in the trust policy when registering the location: sts:AssumeRole, for directory users or groups sts:SetContext, and for IAM users or roles sts:SourceIdentity.

", - "GetJobTagging": "

Returns the tags on an S3 Batch Operations job. To use the GetJobTagging operation, you must have permission to perform the s3:GetJobTagging action. For more information, see Controlling access and labeling jobs using tags in the Amazon S3 User Guide.

Related actions include:

", - "GetMultiRegionAccessPoint": "

Returns configuration information about the specified Multi-Region Access Point.

This action will always be routed to the US West (Oregon) Region. For more information about the restrictions around managing Multi-Region Access Points, see Managing Multi-Region Access Points in the Amazon S3 User Guide.

The following actions are related to GetMultiRegionAccessPoint:

", - "GetMultiRegionAccessPointPolicy": "

Returns the access control policy of the specified Multi-Region Access Point.

This action will always be routed to the US West (Oregon) Region. For more information about the restrictions around managing Multi-Region Access Points, see Managing Multi-Region Access Points in the Amazon S3 User Guide.

The following actions are related to GetMultiRegionAccessPointPolicy:

", - "GetMultiRegionAccessPointPolicyStatus": "

Indicates whether the specified Multi-Region Access Point has an access control policy that allows public access.

This action will always be routed to the US West (Oregon) Region. For more information about the restrictions around managing Multi-Region Access Points, see Managing Multi-Region Access Points in the Amazon S3 User Guide.

The following actions are related to GetMultiRegionAccessPointPolicyStatus:

", - "GetMultiRegionAccessPointRoutes": "

Returns the routing configuration for a Multi-Region Access Point, indicating which Regions are active or passive.

To obtain routing control changes and failover requests, use the Amazon S3 failover control infrastructure endpoints in these five Amazon Web Services Regions:

Your Amazon S3 bucket does not need to be in these five Regions.

", - "GetPublicAccessBlock": "

Retrieves the PublicAccessBlock configuration for an Amazon Web Services account. For more information, see Using Amazon S3 block public access.

Related actions include:

", - "GetStorageLensConfiguration": "

Gets the Amazon S3 Storage Lens configuration. For more information, see Assessing your storage activity and usage with Amazon S3 Storage Lens in the Amazon S3 User Guide. For a complete list of S3 Storage Lens metrics, see S3 Storage Lens metrics glossary in the Amazon S3 User Guide.

To use this action, you must have permission to perform the s3:GetStorageLensConfiguration action. For more information, see Setting permissions to use Amazon S3 Storage Lens in the Amazon S3 User Guide.

", - "GetStorageLensConfigurationTagging": "

Gets the tags of Amazon S3 Storage Lens configuration. For more information about S3 Storage Lens, see Assessing your storage activity and usage with Amazon S3 Storage Lens in the Amazon S3 User Guide.

To use this action, you must have permission to perform the s3:GetStorageLensConfigurationTagging action. For more information, see Setting permissions to use Amazon S3 Storage Lens in the Amazon S3 User Guide.

", + "GetJobTagging": "

Returns the tags on an S3 Batch Operations job.

Permissions

To use the GetJobTagging operation, you must have permission to perform the s3:GetJobTagging action. For more information, see Controlling access and labeling jobs using tags in the Amazon S3 User Guide.

Related actions include:

", + "GetMultiRegionAccessPoint": "

This operation is not supported by directory buckets.

Returns configuration information about the specified Multi-Region Access Point.

This action will always be routed to the US West (Oregon) Region. For more information about the restrictions around managing Multi-Region Access Points, see Managing Multi-Region Access Points in the Amazon S3 User Guide.

The following actions are related to GetMultiRegionAccessPoint:

", + "GetMultiRegionAccessPointPolicy": "

This operation is not supported by directory buckets.

Returns the access control policy of the specified Multi-Region Access Point.

This action will always be routed to the US West (Oregon) Region. For more information about the restrictions around managing Multi-Region Access Points, see Managing Multi-Region Access Points in the Amazon S3 User Guide.

The following actions are related to GetMultiRegionAccessPointPolicy:

", + "GetMultiRegionAccessPointPolicyStatus": "

This operation is not supported by directory buckets.

Indicates whether the specified Multi-Region Access Point has an access control policy that allows public access.

This action will always be routed to the US West (Oregon) Region. For more information about the restrictions around managing Multi-Region Access Points, see Managing Multi-Region Access Points in the Amazon S3 User Guide.

The following actions are related to GetMultiRegionAccessPointPolicyStatus:

", + "GetMultiRegionAccessPointRoutes": "

This operation is not supported by directory buckets.

Returns the routing configuration for a Multi-Region Access Point, indicating which Regions are active or passive.

To obtain routing control changes and failover requests, use the Amazon S3 failover control infrastructure endpoints in these five Amazon Web Services Regions:

Your Amazon S3 bucket does not need to be in these five Regions.

", + "GetPublicAccessBlock": "

This operation is not supported by directory buckets.

Retrieves the PublicAccessBlock configuration for an Amazon Web Services account. For more information, see Using Amazon S3 block public access.

Related actions include:

", + "GetStorageLensConfiguration": "

This operation is not supported by directory buckets.

Gets the Amazon S3 Storage Lens configuration. For more information, see Assessing your storage activity and usage with Amazon S3 Storage Lens in the Amazon S3 User Guide. For a complete list of S3 Storage Lens metrics, see S3 Storage Lens metrics glossary in the Amazon S3 User Guide.

To use this action, you must have permission to perform the s3:GetStorageLensConfiguration action. For more information, see Setting permissions to use Amazon S3 Storage Lens in the Amazon S3 User Guide.

", + "GetStorageLensConfigurationTagging": "

This operation is not supported by directory buckets.

Gets the tags of Amazon S3 Storage Lens configuration. For more information about S3 Storage Lens, see Assessing your storage activity and usage with Amazon S3 Storage Lens in the Amazon S3 User Guide.

To use this action, you must have permission to perform the s3:GetStorageLensConfigurationTagging action. For more information, see Setting permissions to use Amazon S3 Storage Lens in the Amazon S3 User Guide.

", "GetStorageLensGroup": "

Retrieves the Storage Lens group configuration details.

To use this operation, you must have the permission to perform the s3:GetStorageLensGroup action. For more information about the required Storage Lens Groups permissions, see Setting account permissions to use S3 Storage Lens groups.

For information about Storage Lens groups errors, see List of Amazon S3 Storage Lens error codes.

", "ListAccessGrants": "

Returns the list of access grants in your S3 Access Grants instance.

Permissions

You must have the s3:ListAccessGrants permission to use this operation.

", "ListAccessGrantsInstances": "

Returns a list of S3 Access Grants instances. An S3 Access Grants instance serves as a logical grouping for your individual access grants. You can only have one S3 Access Grants instance per Region per account.

Permissions

You must have the s3:ListAccessGrantsInstances permission to use this operation.

", "ListAccessGrantsLocations": "

Returns a list of the locations registered in your S3 Access Grants instance.

Permissions

You must have the s3:ListAccessGrantsLocations permission to use this operation.

", - "ListAccessPoints": "

Returns a list of the access points that are owned by the current account that's associated with the specified bucket. You can retrieve up to 1000 access points per call. If the specified bucket has more than 1,000 access points (or the number specified in maxResults, whichever is less), the response will include a continuation token that you can use to list the additional access points.

All Amazon S3 on Outposts REST API requests for this action require an additional parameter of x-amz-outpost-id to be passed with the request. In addition, you must use an S3 on Outposts endpoint hostname prefix instead of s3-control. For an example of the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname prefix and the x-amz-outpost-id derived by using the access point ARN, see the Examples section.

The following actions are related to ListAccessPoints:

", - "ListAccessPointsForObjectLambda": "

Returns some or all (up to 1,000) access points associated with the Object Lambda Access Point per call. If there are more access points than what can be returned in one call, the response will include a continuation token that you can use to list the additional access points.

The following actions are related to ListAccessPointsForObjectLambda:

", - "ListJobs": "

Lists current S3 Batch Operations jobs and jobs that have ended within the last 30 days for the Amazon Web Services account making the request. For more information, see S3 Batch Operations in the Amazon S3 User Guide.

Related actions include:

", - "ListMultiRegionAccessPoints": "

Returns a list of the Multi-Region Access Points currently associated with the specified Amazon Web Services account. Each call can return up to 100 Multi-Region Access Points, the maximum number of Multi-Region Access Points that can be associated with a single account.

This action will always be routed to the US West (Oregon) Region. For more information about the restrictions around managing Multi-Region Access Points, see Managing Multi-Region Access Points in the Amazon S3 User Guide.

The following actions are related to ListMultiRegionAccessPoint:

", - "ListRegionalBuckets": "

Returns a list of all Outposts buckets in an Outpost that are owned by the authenticated sender of the request. For more information, see Using Amazon S3 on Outposts in the Amazon S3 User Guide.

For an example of the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname prefix and x-amz-outpost-id in your request, see the Examples section.

", - "ListStorageLensConfigurations": "

Gets a list of Amazon S3 Storage Lens configurations. For more information about S3 Storage Lens, see Assessing your storage activity and usage with Amazon S3 Storage Lens in the Amazon S3 User Guide.

To use this action, you must have permission to perform the s3:ListStorageLensConfigurations action. For more information, see Setting permissions to use Amazon S3 Storage Lens in the Amazon S3 User Guide.

", + "ListAccessPoints": "

This operation is not supported by directory buckets.

Returns a list of the access points that are owned by the current account that's associated with the specified bucket. You can retrieve up to 1000 access points per call. If the specified bucket has more than 1,000 access points (or the number specified in maxResults, whichever is less), the response will include a continuation token that you can use to list the additional access points.

All Amazon S3 on Outposts REST API requests for this action require an additional parameter of x-amz-outpost-id to be passed with the request. In addition, you must use an S3 on Outposts endpoint hostname prefix instead of s3-control. For an example of the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname prefix and the x-amz-outpost-id derived by using the access point ARN, see the Examples section.

The following actions are related to ListAccessPoints:

", + "ListAccessPointsForObjectLambda": "

This operation is not supported by directory buckets.

Returns some or all (up to 1,000) access points associated with the Object Lambda Access Point per call. If there are more access points than what can be returned in one call, the response will include a continuation token that you can use to list the additional access points.

The following actions are related to ListAccessPointsForObjectLambda:

", + "ListJobs": "

Lists current S3 Batch Operations jobs as well as the jobs that have ended within the last 30 days for the Amazon Web Services account making the request. For more information, see S3 Batch Operations in the Amazon S3 User Guide.

Permissions

To use the ListJobs operation, you must have permission to perform the s3:ListJobs action.

Related actions include:

", + "ListMultiRegionAccessPoints": "

This operation is not supported by directory buckets.

Returns a list of the Multi-Region Access Points currently associated with the specified Amazon Web Services account. Each call can return up to 100 Multi-Region Access Points, the maximum number of Multi-Region Access Points that can be associated with a single account.

This action will always be routed to the US West (Oregon) Region. For more information about the restrictions around managing Multi-Region Access Points, see Managing Multi-Region Access Points in the Amazon S3 User Guide.

The following actions are related to ListMultiRegionAccessPoint:

", + "ListRegionalBuckets": "

This operation is not supported by directory buckets.

Returns a list of all Outposts buckets in an Outpost that are owned by the authenticated sender of the request. For more information, see Using Amazon S3 on Outposts in the Amazon S3 User Guide.

For an example of the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname prefix and x-amz-outpost-id in your request, see the Examples section.

", + "ListStorageLensConfigurations": "

This operation is not supported by directory buckets.

Gets a list of Amazon S3 Storage Lens configurations. For more information about S3 Storage Lens, see Assessing your storage activity and usage with Amazon S3 Storage Lens in the Amazon S3 User Guide.

To use this action, you must have permission to perform the s3:ListStorageLensConfigurations action. For more information, see Setting permissions to use Amazon S3 Storage Lens in the Amazon S3 User Guide.

", "ListStorageLensGroups": "

Lists all the Storage Lens groups in the specified home Region.

To use this operation, you must have the permission to perform the s3:ListStorageLensGroups action. For more information about the required Storage Lens Groups permissions, see Setting account permissions to use S3 Storage Lens groups.

For information about Storage Lens groups errors, see List of Amazon S3 Storage Lens error codes.

", "ListTagsForResource": "

This operation allows you to list all the Amazon Web Services resource tags for a specified resource. Each tag is a label consisting of a user-defined key and value. Tags can help you manage, identify, organize, search for, and filter resources.

Permissions

You must have the s3:ListTagsForResource permission to use this operation.

This operation is only supported for S3 Storage Lens groups and for S3 Access Grants. The tagged resource can be an S3 Storage Lens group or S3 Access Grants instance, registered location, or grant.

For more information about the required Storage Lens Groups permissions, see Setting account permissions to use S3 Storage Lens groups.

For information about S3 Tagging errors, see List of Amazon S3 Tagging error codes.

", "PutAccessGrantsInstanceResourcePolicy": "

Updates the resource policy of the S3 Access Grants instance.

Permissions

You must have the s3:PutAccessGrantsInstanceResourcePolicy permission to use this operation.

", - "PutAccessPointConfigurationForObjectLambda": "

Replaces configuration for an Object Lambda Access Point.

The following actions are related to PutAccessPointConfigurationForObjectLambda:

", - "PutAccessPointPolicy": "

Associates an access policy with the specified access point. Each access point can have only one policy, so a request made to this API replaces any existing policy associated with the specified access point.

All Amazon S3 on Outposts REST API requests for this action require an additional parameter of x-amz-outpost-id to be passed with the request. In addition, you must use an S3 on Outposts endpoint hostname prefix instead of s3-control. For an example of the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname prefix and the x-amz-outpost-id derived by using the access point ARN, see the Examples section.

The following actions are related to PutAccessPointPolicy:

", - "PutAccessPointPolicyForObjectLambda": "

Creates or replaces resource policy for an Object Lambda Access Point. For an example policy, see Creating Object Lambda Access Points in the Amazon S3 User Guide.

The following actions are related to PutAccessPointPolicyForObjectLambda:

", + "PutAccessPointConfigurationForObjectLambda": "

This operation is not supported by directory buckets.

Replaces configuration for an Object Lambda Access Point.

The following actions are related to PutAccessPointConfigurationForObjectLambda:

", + "PutAccessPointPolicy": "

This operation is not supported by directory buckets.

Associates an access policy with the specified access point. Each access point can have only one policy, so a request made to this API replaces any existing policy associated with the specified access point.

All Amazon S3 on Outposts REST API requests for this action require an additional parameter of x-amz-outpost-id to be passed with the request. In addition, you must use an S3 on Outposts endpoint hostname prefix instead of s3-control. For an example of the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname prefix and the x-amz-outpost-id derived by using the access point ARN, see the Examples section.

The following actions are related to PutAccessPointPolicy:

", + "PutAccessPointPolicyForObjectLambda": "

This operation is not supported by directory buckets.

Creates or replaces resource policy for an Object Lambda Access Point. For an example policy, see Creating Object Lambda Access Points in the Amazon S3 User Guide.

The following actions are related to PutAccessPointPolicyForObjectLambda:

", "PutBucketLifecycleConfiguration": "

This action puts a lifecycle configuration to an Amazon S3 on Outposts bucket. To put a lifecycle configuration to an S3 bucket, see PutBucketLifecycleConfiguration in the Amazon S3 API Reference.

Creates a new lifecycle configuration for the S3 on Outposts bucket or replaces an existing lifecycle configuration. Outposts buckets only support lifecycle configurations that delete/expire objects after a certain period of time and abort incomplete multipart uploads.

All Amazon S3 on Outposts REST API requests for this action require an additional parameter of x-amz-outpost-id to be passed with the request. In addition, you must use an S3 on Outposts endpoint hostname prefix instead of s3-control. For an example of the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname prefix and the x-amz-outpost-id derived by using the access point ARN, see the Examples section.

The following actions are related to PutBucketLifecycleConfiguration:

", "PutBucketPolicy": "

This action puts a bucket policy to an Amazon S3 on Outposts bucket. To put a policy on an S3 bucket, see PutBucketPolicy in the Amazon S3 API Reference.

Applies an Amazon S3 bucket policy to an Outposts bucket. For more information, see Using Amazon S3 on Outposts in the Amazon S3 User Guide.

If you are using an identity other than the root user of the Amazon Web Services account that owns the Outposts bucket, the calling identity must have the PutBucketPolicy permissions on the specified Outposts bucket and belong to the bucket owner's account in order to use this action.

If you don't have PutBucketPolicy permissions, Amazon S3 returns a 403 Access Denied error. If you have the correct permissions, but you're not using an identity that belongs to the bucket owner's account, Amazon S3 returns a 405 Method Not Allowed error.

As a security precaution, the root user of the Amazon Web Services account that owns a bucket can always use this action, even if the policy explicitly denies the root user the ability to perform this action.

For more information about bucket policies, see Using Bucket Policies and User Policies.

All Amazon S3 on Outposts REST API requests for this action require an additional parameter of x-amz-outpost-id to be passed with the request. In addition, you must use an S3 on Outposts endpoint hostname prefix instead of s3-control. For an example of the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname prefix and the x-amz-outpost-id derived by using the access point ARN, see the Examples section.

The following actions are related to PutBucketPolicy:

", "PutBucketReplication": "

This action creates an Amazon S3 on Outposts bucket's replication configuration. To create an S3 bucket's replication configuration, see PutBucketReplication in the Amazon S3 API Reference.

Creates a replication configuration or replaces an existing one. For information about S3 replication on Outposts configuration, see Replicating objects for S3 on Outposts in the Amazon S3 User Guide.

It can take a while to propagate PUT or DELETE requests for a replication configuration to all S3 on Outposts systems. Therefore, the replication configuration that's returned by a GET request soon after a PUT or DELETE request might return a more recent result than what's on the Outpost. If an Outpost is offline, the delay in updating the replication configuration on that Outpost can be significant.

Specify the replication configuration in the request body. In the replication configuration, you provide the following information:

A replication configuration must include at least one rule and can contain a maximum of 100. Each rule identifies a subset of objects to replicate by filtering the objects in the source Outposts bucket. To choose additional subsets of objects to replicate, add a rule for each subset.

To specify a subset of the objects in the source Outposts bucket to apply a replication rule to, add the Filter element as a child of the Rule element. You can filter objects based on an object key prefix, one or more object tags, or both. When you add the Filter element in the configuration, you must also add the following elements: DeleteMarkerReplication, Status, and Priority.

Using PutBucketReplication on Outposts requires that both the source and destination buckets must have versioning enabled. For information about enabling versioning on a bucket, see Managing S3 Versioning for your S3 on Outposts bucket.

For information about S3 on Outposts replication failure reasons, see Replication failure reasons in the Amazon S3 User Guide.

Handling Replication of Encrypted Objects

Outposts buckets are encrypted at all times. All the objects in the source Outposts bucket are encrypted and can be replicated. Also, all the replicas in the destination Outposts bucket are encrypted with the same encryption key as the objects in the source Outposts bucket.

Permissions

To create a PutBucketReplication request, you must have s3-outposts:PutReplicationConfiguration permissions for the bucket. The Outposts bucket owner has this permission by default and can grant it to others. For more information about permissions, see Setting up IAM with S3 on Outposts and Managing access to S3 on Outposts buckets.

To perform this operation, the user or role must also have the iam:CreateRole and iam:PassRole permissions. For more information, see Granting a user permissions to pass a role to an Amazon Web Services service.

All Amazon S3 on Outposts REST API requests for this action require an additional parameter of x-amz-outpost-id to be passed with the request. In addition, you must use an S3 on Outposts endpoint hostname prefix instead of s3-control. For an example of the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname prefix and the x-amz-outpost-id derived by using the access point ARN, see the Examples section.

The following operations are related to PutBucketReplication:

", "PutBucketTagging": "

This action puts tags on an Amazon S3 on Outposts bucket. To put tags on an S3 bucket, see PutBucketTagging in the Amazon S3 API Reference.

Sets the tags for an S3 on Outposts bucket. For more information, see Using Amazon S3 on Outposts in the Amazon S3 User Guide.

Use tags to organize your Amazon Web Services bill to reflect your own cost structure. To do this, sign up to get your Amazon Web Services account bill with tag key values included. Then, to see the cost of combined resources, organize your billing information according to resources with the same tag key values. For example, you can tag several resources with a specific application name, and then organize your billing information to see the total cost of that application across several services. For more information, see Cost allocation and tagging.

Within a bucket, if you add a tag that has the same key as an existing tag, the new value overwrites the old value. For more information, see Using cost allocation in Amazon S3 bucket tags.

To use this action, you must have permissions to perform the s3-outposts:PutBucketTagging action. The Outposts bucket owner has this permission by default and can grant this permission to others. For more information about permissions, see Permissions Related to Bucket Subresource Operations and Managing access permissions to your Amazon S3 resources.

PutBucketTagging has the following special errors:

All Amazon S3 on Outposts REST API requests for this action require an additional parameter of x-amz-outpost-id to be passed with the request. In addition, you must use an S3 on Outposts endpoint hostname prefix instead of s3-control. For an example of the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname prefix and the x-amz-outpost-id derived by using the access point ARN, see the Examples section.

The following actions are related to PutBucketTagging:

", "PutBucketVersioning": "

This operation sets the versioning state for S3 on Outposts buckets only. To set the versioning state for an S3 bucket, see PutBucketVersioning in the Amazon S3 API Reference.

Sets the versioning state for an S3 on Outposts bucket. With S3 Versioning, you can save multiple distinct copies of your objects and recover from unintended user actions and application failures.

You can set the versioning state to one of the following:

If you've never set versioning on your bucket, it has no versioning state. In that case, a GetBucketVersioning request does not return a versioning state value.

When you enable S3 Versioning, for each object in your bucket, you have a current version and zero or more noncurrent versions. You can configure your bucket S3 Lifecycle rules to expire noncurrent versions after a specified time period. For more information, see Creating and managing a lifecycle configuration for your S3 on Outposts bucket in the Amazon S3 User Guide.

If you have an object expiration lifecycle configuration in your non-versioned bucket and you want to maintain the same permanent delete behavior when you enable versioning, you must add a noncurrent expiration policy. The noncurrent expiration lifecycle configuration will manage the deletes of the noncurrent object versions in the version-enabled bucket. For more information, see Versioning in the Amazon S3 User Guide.

All Amazon S3 on Outposts REST API requests for this action require an additional parameter of x-amz-outpost-id to be passed with the request. In addition, you must use an S3 on Outposts endpoint hostname prefix instead of s3-control. For an example of the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname prefix and the x-amz-outpost-id derived by using the access point ARN, see the Examples section.

The following operations are related to PutBucketVersioning for S3 on Outposts.

", - "PutJobTagging": "

Sets the supplied tag-set on an S3 Batch Operations job.

A tag is a key-value pair. You can associate S3 Batch Operations tags with any job by sending a PUT request against the tagging subresource that is associated with the job. To modify the existing tag set, you can either replace the existing tag set entirely, or make changes within the existing tag set by retrieving the existing tag set using GetJobTagging, modify that tag set, and use this action to replace the tag set with the one you modified. For more information, see Controlling access and labeling jobs using tags in the Amazon S3 User Guide.

To use the PutJobTagging operation, you must have permission to perform the s3:PutJobTagging action.

Related actions include:

", - "PutMultiRegionAccessPointPolicy": "

Associates an access control policy with the specified Multi-Region Access Point. Each Multi-Region Access Point can have only one policy, so a request made to this action replaces any existing policy that is associated with the specified Multi-Region Access Point.

This action will always be routed to the US West (Oregon) Region. For more information about the restrictions around managing Multi-Region Access Points, see Managing Multi-Region Access Points in the Amazon S3 User Guide.

The following actions are related to PutMultiRegionAccessPointPolicy:

", - "PutPublicAccessBlock": "

Creates or modifies the PublicAccessBlock configuration for an Amazon Web Services account. For this operation, users must have the s3:PutAccountPublicAccessBlock permission. For more information, see Using Amazon S3 block public access.

Related actions include:

", - "PutStorageLensConfiguration": "

Puts an Amazon S3 Storage Lens configuration. For more information about S3 Storage Lens, see Working with Amazon S3 Storage Lens in the Amazon S3 User Guide. For a complete list of S3 Storage Lens metrics, see S3 Storage Lens metrics glossary in the Amazon S3 User Guide.

To use this action, you must have permission to perform the s3:PutStorageLensConfiguration action. For more information, see Setting permissions to use Amazon S3 Storage Lens in the Amazon S3 User Guide.

", - "PutStorageLensConfigurationTagging": "

Put or replace tags on an existing Amazon S3 Storage Lens configuration. For more information about S3 Storage Lens, see Assessing your storage activity and usage with Amazon S3 Storage Lens in the Amazon S3 User Guide.

To use this action, you must have permission to perform the s3:PutStorageLensConfigurationTagging action. For more information, see Setting permissions to use Amazon S3 Storage Lens in the Amazon S3 User Guide.

", - "SubmitMultiRegionAccessPointRoutes": "

Submits an updated route configuration for a Multi-Region Access Point. This API operation updates the routing status for the specified Regions from active to passive, or from passive to active. A value of 0 indicates a passive status, which means that traffic won't be routed to the specified Region. A value of 100 indicates an active status, which means that traffic will be routed to the specified Region. At least one Region must be active at all times.

When the routing configuration is changed, any in-progress operations (uploads, copies, deletes, and so on) to formerly active Regions will continue to run to their final completion state (success or failure). The routing configurations of any Regions that aren’t specified remain unchanged.

Updated routing configurations might not be immediately applied. It can take up to 2 minutes for your changes to take effect.

To submit routing control changes and failover requests, use the Amazon S3 failover control infrastructure endpoints in these five Amazon Web Services Regions:

Your Amazon S3 bucket does not need to be in these five Regions.

", + "PutJobTagging": "

Sets the supplied tag-set on an S3 Batch Operations job.

A tag is a key-value pair. You can associate S3 Batch Operations tags with any job by sending a PUT request against the tagging subresource that is associated with the job. To modify the existing tag set, you can either replace the existing tag set entirely, or make changes within the existing tag set by retrieving the existing tag set using GetJobTagging, modify that tag set, and use this operation to replace the tag set with the one you modified. For more information, see Controlling access and labeling jobs using tags in the Amazon S3 User Guide.

Permissions

To use the PutJobTagging operation, you must have permission to perform the s3:PutJobTagging action.

Related actions include:

", + "PutMultiRegionAccessPointPolicy": "

This operation is not supported by directory buckets.

Associates an access control policy with the specified Multi-Region Access Point. Each Multi-Region Access Point can have only one policy, so a request made to this action replaces any existing policy that is associated with the specified Multi-Region Access Point.

This action will always be routed to the US West (Oregon) Region. For more information about the restrictions around managing Multi-Region Access Points, see Managing Multi-Region Access Points in the Amazon S3 User Guide.

The following actions are related to PutMultiRegionAccessPointPolicy:

", + "PutPublicAccessBlock": "

This operation is not supported by directory buckets.

Creates or modifies the PublicAccessBlock configuration for an Amazon Web Services account. For this operation, users must have the s3:PutAccountPublicAccessBlock permission. For more information, see Using Amazon S3 block public access.

Related actions include:

", + "PutStorageLensConfiguration": "

This operation is not supported by directory buckets.

Puts an Amazon S3 Storage Lens configuration. For more information about S3 Storage Lens, see Working with Amazon S3 Storage Lens in the Amazon S3 User Guide. For a complete list of S3 Storage Lens metrics, see S3 Storage Lens metrics glossary in the Amazon S3 User Guide.

To use this action, you must have permission to perform the s3:PutStorageLensConfiguration action. For more information, see Setting permissions to use Amazon S3 Storage Lens in the Amazon S3 User Guide.

", + "PutStorageLensConfigurationTagging": "

This operation is not supported by directory buckets.

Put or replace tags on an existing Amazon S3 Storage Lens configuration. For more information about S3 Storage Lens, see Assessing your storage activity and usage with Amazon S3 Storage Lens in the Amazon S3 User Guide.

To use this action, you must have permission to perform the s3:PutStorageLensConfigurationTagging action. For more information, see Setting permissions to use Amazon S3 Storage Lens in the Amazon S3 User Guide.

", + "SubmitMultiRegionAccessPointRoutes": "

This operation is not supported by directory buckets.

Submits an updated route configuration for a Multi-Region Access Point. This API operation updates the routing status for the specified Regions from active to passive, or from passive to active. A value of 0 indicates a passive status, which means that traffic won't be routed to the specified Region. A value of 100 indicates an active status, which means that traffic will be routed to the specified Region. At least one Region must be active at all times.

When the routing configuration is changed, any in-progress operations (uploads, copies, deletes, and so on) to formerly active Regions will continue to run to their final completion state (success or failure). The routing configurations of any Regions that aren’t specified remain unchanged.

Updated routing configurations might not be immediately applied. It can take up to 2 minutes for your changes to take effect.

To submit routing control changes and failover requests, use the Amazon S3 failover control infrastructure endpoints in these five Amazon Web Services Regions:

Your Amazon S3 bucket does not need to be in these five Regions.

", "TagResource": "

Creates a new Amazon Web Services resource tag or updates an existing resource tag. Each tag is a label consisting of a user-defined key and value. Tags can help you manage, identify, organize, search for, and filter resources. You can add up to 50 Amazon Web Services resource tags for each S3 resource.

This operation is only supported for S3 Storage Lens groups and for S3 Access Grants. The tagged resource can be an S3 Storage Lens group or S3 Access Grants instance, registered location, or grant.

Permissions

You must have the s3:TagResource permission to use this operation.

For more information about the required Storage Lens Groups permissions, see Setting account permissions to use S3 Storage Lens groups.

For information about S3 Tagging errors, see List of Amazon S3 Tagging error codes.

", "UntagResource": "

This operation removes the specified Amazon Web Services resource tags from an S3 resource. Each tag is a label consisting of a user-defined key and value. Tags can help you manage, identify, organize, search for, and filter resources.

This operation is only supported for S3 Storage Lens groups and for S3 Access Grants. The tagged resource can be an S3 Storage Lens group or S3 Access Grants instance, registered location, or grant.

Permissions

You must have the s3:UntagResource permission to use this operation.

For more information about the required Storage Lens Groups permissions, see Setting account permissions to use S3 Storage Lens groups.

For information about S3 Tagging errors, see List of Amazon S3 Tagging error codes.

", "UpdateAccessGrantsLocation": "

Updates the IAM role of a registered location in your S3 Access Grants instance.

Permissions

You must have the s3:UpdateAccessGrantsLocation permission to use this operation.

Additional Permissions

You must also have the following permission: iam:PassRole

", - "UpdateJobPriority": "

Updates an existing S3 Batch Operations job's priority. For more information, see S3 Batch Operations in the Amazon S3 User Guide.

Related actions include:

", - "UpdateJobStatus": "

Updates the status for the specified job. Use this action to confirm that you want to run a job or to cancel an existing job. For more information, see S3 Batch Operations in the Amazon S3 User Guide.

Related actions include:

", + "UpdateJobPriority": "

Updates an existing S3 Batch Operations job's priority. For more information, see S3 Batch Operations in the Amazon S3 User Guide.

Permissions

To use the UpdateJobPriority operation, you must have permission to perform the s3:UpdateJobPriority action.

Related actions include:

", + "UpdateJobStatus": "

Updates the status for the specified job. Use this operation to confirm that you want to run a job or to cancel an existing job. For more information, see S3 Batch Operations in the Amazon S3 User Guide.

Permissions

To use the UpdateJobStatus operation, you must have permission to perform the s3:UpdateJobStatus action.

Related actions include:

", "UpdateStorageLensGroup": "

Updates the existing Storage Lens group.

To use this operation, you must have the permission to perform the s3:UpdateStorageLensGroup action. For more information about the required Storage Lens Groups permissions, see Setting account permissions to use S3 Storage Lens groups.

For information about Storage Lens groups errors, see List of Amazon S3 Storage Lens error codes.

" }, "shapes": { @@ -455,10 +455,10 @@ "JobManifestGeneratorFilter$EligibleForReplication": "

Include objects in the generated manifest only if they are eligible for replication according to the Replication configuration on the source bucket.

", "JobReport$Enabled": "

Indicates whether the specified job will generate a job-completion report.

", "ObjectLambdaConfiguration$CloudWatchMetricsEnabled": "

A container for whether the CloudWatch metrics configuration is enabled.

", - "S3CopyObjectOperation$RequesterPays": "

", - "S3CopyObjectOperation$BucketKeyEnabled": "

Specifies whether Amazon S3 should use an S3 Bucket Key for object encryption with server-side encryption using Amazon Web Services KMS (SSE-KMS). Setting this header to true causes Amazon S3 to use an S3 Bucket Key for object encryption with SSE-KMS.

Specifying this header with an object action doesn’t affect bucket-level settings for S3 Bucket Key.

", + "S3CopyObjectOperation$RequesterPays": "

This functionality is not supported by directory buckets.

", + "S3CopyObjectOperation$BucketKeyEnabled": "

Specifies whether Amazon S3 should use an S3 Bucket Key for object encryption with server-side encryption using Amazon Web Services KMS (SSE-KMS). Setting this header to true causes Amazon S3 to use an S3 Bucket Key for object encryption with SSE-KMS.

Specifying this header with an object action doesn’t affect bucket-level settings for S3 Bucket Key.

This functionality is not supported by directory buckets.

", "S3JobManifestGenerator$EnableManifestOutput": "

Determines whether or not to write the job's generated manifest to a bucket.

", - "S3ObjectMetadata$RequesterCharged": "

", + "S3ObjectMetadata$RequesterCharged": "

This member has been deprecated.

", "S3SetObjectRetentionOperation$BypassGovernanceRetention": "

Indicates if the action should be applied to objects in the Batch Operations job even if they have Object Lock GOVERNANCE type in place.

" } }, @@ -1533,13 +1533,13 @@ "JobManifestGeneratorFilter": { "base": "

The filter used to describe a set of objects for the job's manifest.

", "refs": { - "S3JobManifestGenerator$Filter": "

Specifies rules the S3JobManifestGenerator should use to use to decide whether an object in the source bucket should or should not be included in the generated job manifest.

" + "S3JobManifestGenerator$Filter": "

Specifies rules the S3JobManifestGenerator should use to decide whether an object in the source bucket should or should not be included in the generated job manifest.

" } }, "JobManifestLocation": { - "base": "

Contains the information required to locate a manifest object.

", + "base": "

Contains the information required to locate a manifest object. Manifests can't be imported from directory buckets. For more information, see Directory buckets.

", "refs": { - "JobManifest$Location": "

Contains the information required to locate the specified job's manifest.

", + "JobManifest$Location": "

Contains the information required to locate the specified job's manifest. Manifests can't be imported from directory buckets. For more information, see Directory buckets.

", "S3GeneratedManifestDescriptor$Location": null } }, @@ -1666,7 +1666,7 @@ "KmsKeyArnString": { "base": null, "refs": { - "S3CopyObjectOperation$SSEAwsKmsKeyId": "

", + "S3CopyObjectOperation$SSEAwsKmsKeyId": "

This functionality is not supported by directory buckets.

", "SSEKMSEncryption$KeyId": "

Specifies the ID of the Amazon Web Services Key Management Service (Amazon Web Services KMS) symmetric encryption customer managed key to use for encrypting generated manifest objects.

" } }, @@ -1930,7 +1930,8 @@ "AsyncErrorDetails$Message": "

A generic description of the error condition in English.

", "AsyncErrorDetails$Resource": "

The identifier of the resource associated with the error.

", "AsyncErrorDetails$RequestId": "

The ID of the request associated with the error.

", - "S3UserMetadata$value": null + "S3UserMetadata$value": null, + "UserArguments$value": null } }, "MaxResults": { @@ -2092,7 +2093,7 @@ "S3ObjectMetadata$ContentDisposition": "

", "S3ObjectMetadata$ContentEncoding": "

", "S3ObjectMetadata$ContentLanguage": "

", - "S3ObjectMetadata$ContentMD5": "

", + "S3ObjectMetadata$ContentMD5": "

This member has been deprecated.

", "S3ObjectMetadata$ContentType": "

", "S3ObjectOwner$ID": "

", "S3ObjectOwner$DisplayName": "

", @@ -2110,7 +2111,7 @@ "NonEmptyMaxLength2048String": { "base": null, "refs": { - "S3CopyObjectOperation$RedirectLocation": "

Specifies an optional metadata property for website redirects, x-amz-website-redirect-location. Allows webpage redirects if the object is accessed through a website endpoint.

" + "S3CopyObjectOperation$RedirectLocation": "

If the destination bucket is configured as a website, specifies an optional metadata property for website redirects, x-amz-website-redirect-location. Allows webpage redirects if the object copy is accessed through a website endpoint.

This functionality is not supported by directory buckets.

" } }, "NonEmptyMaxLength256String": { @@ -2127,8 +2128,10 @@ "CreateBucketRequest$OutpostId": "

The ID of the Outposts where the bucket is being created.

This ID is required by Amazon S3 on Outposts buckets.

", "CreateJobRequest$ClientRequestToken": "

An idempotency token to ensure that you don't accidentally submit the same request twice. You can use any string up to the maximum length.

", "Endpoints$key": null, + "LambdaInvokeOperation$InvocationSchemaVersion": "

Specifies the schema version for the payload that Batch Operations sends when invoking an Lambda function. Version 1.0 is the default. Version 2.0 is required when you use Batch Operations to invoke Lambda functions that act on directory buckets, or if you need to specify UserArguments. For more information, see Using Lambda with Amazon S3 Batch Operations and Amazon S3 Express One Zone in the Amazon Web Services Storage Blog.

Ensure that your Lambda function code expects InvocationSchemaVersion 2.0 and uses bucket name rather than bucket ARN. If the InvocationSchemaVersion does not match what your Lambda function expects, your function might not work as expected.

Directory buckets - To initiate Amazon Web Services Lambda function to perform custom actions on objects in directory buckets, you must specify 2.0.

", "ListRegionalBucketsRequest$OutpostId": "

The ID of the Outposts resource.

This ID is required by Amazon S3 on Outposts buckets.

", - "RegionalBucket$OutpostId": "

The Outposts ID of the regional bucket.

" + "RegionalBucket$OutpostId": "

The Outposts ID of the regional bucket.

", + "UserArguments$key": null } }, "NoncurrentVersionCount": { @@ -2665,7 +2668,7 @@ "ReplicationStorageClass": { "base": null, "refs": { - "Destination$StorageClass": "

The storage class to use when replicating objects. All objects stored on S3 on Outposts are stored in the OUTPOSTS storage class. S3 on Outposts uses the OUTPOSTS storage class to create the object replicas.

Values other than OUTPOSTS are not supported by Amazon S3 on Outposts.

" + "Destination$StorageClass": "

The storage class to use when replicating objects. All objects stored on S3 on Outposts are stored in the OUTPOSTS storage class. S3 on Outposts uses the OUTPOSTS storage class to create the object replicas.

Values other than OUTPOSTS aren't supported by Amazon S3 on Outposts.

" } }, "ReplicationTime": { @@ -2744,11 +2747,10 @@ "base": null, "refs": { "Buckets$member": null, - "JobReport$Bucket": "

The Amazon Resource Name (ARN) for the bucket where specified job-completion report will be stored.

", + "JobReport$Bucket": "

The Amazon Resource Name (ARN) for the bucket where specified job-completion report will be stored.

Directory buckets - Directory buckets aren't supported as a location for Batch Operations to store job completion reports.

", "S3BucketDestination$Arn": "

The Amazon Resource Name (ARN) of the bucket. This property is read-only and follows the following format: arn:aws:s3:us-east-1:example-account-id:bucket/your-destination-bucket-name

", - "S3CopyObjectOperation$TargetResource": "

Specifies the destination bucket Amazon Resource Name (ARN) for the batch copy operation. For example, to copy objects to a bucket named destinationBucket, set the TargetResource property to arn:aws:s3:::destinationBucket.

", - "S3JobManifestGenerator$SourceBucket": "

The source bucket used by the ManifestGenerator.

", - "S3ManifestOutputLocation$Bucket": "

The bucket ARN the generated manifest should be written to.

" + "S3JobManifestGenerator$SourceBucket": "

The source bucket used by the ManifestGenerator.

Directory buckets - Directory buckets aren't supported as the source buckets used by S3JobManifestGenerator to generate the job manifest.

", + "S3ManifestOutputLocation$Bucket": "

The bucket ARN the generated manifest should be written to.

Directory buckets - Directory buckets aren't supported as the buckets to store the generated manifest.

" } }, "S3BucketDestination": { @@ -2761,7 +2763,7 @@ "base": null, "refs": { "S3AccessControlPolicy$CannedAccessControlList": "

", - "S3CopyObjectOperation$CannedAccessControlList": "

" + "S3CopyObjectOperation$CannedAccessControlList": "

This functionality is not supported by directory buckets.

" } }, "S3ChecksumAlgorithm": { @@ -2773,7 +2775,7 @@ "S3ContentLength": { "base": null, "refs": { - "S3ObjectMetadata$ContentLength": "

" + "S3ObjectMetadata$ContentLength": "

This member has been deprecated.

" } }, "S3CopyObjectOperation": { @@ -2785,7 +2787,7 @@ "S3DeleteObjectTaggingOperation": { "base": "

Contains no configuration parameters because the DELETE Object tagging (DeleteObjectTagging) API operation accepts only the bucket name and key name as parameters, which are defined in the job's manifest.

", "refs": { - "JobOperation$S3DeleteObjectTagging": "

Directs the specified job to execute a DELETE Object tagging call on every object in the manifest.

" + "JobOperation$S3DeleteObjectTagging": "

Directs the specified job to execute a DELETE Object tagging call on every object in the manifest.

This functionality is not supported by directory buckets.

" } }, "S3ExpirationInDays": { @@ -2816,7 +2818,7 @@ "base": null, "refs": { "S3AccessControlList$Grants": "

", - "S3CopyObjectOperation$AccessControlGrants": "

" + "S3CopyObjectOperation$AccessControlGrants": "

This functionality is not supported by directory buckets.

" } }, "S3Grantee": { @@ -2834,7 +2836,7 @@ "S3InitiateRestoreObjectOperation": { "base": "

Contains the configuration parameters for a POST Object restore job. S3 Batch Operations passes every object to the underlying RestoreObject API operation. For more information about the parameters for this operation, see RestoreObject.

", "refs": { - "JobOperation$S3InitiateRestoreObject": "

Directs the specified job to initiate restore requests for every archived object in the manifest.

" + "JobOperation$S3InitiateRestoreObject": "

Directs the specified job to initiate restore requests for every archived object in the manifest.

This functionality is not supported by directory buckets.

" } }, "S3JobManifestGenerator": { @@ -2852,7 +2854,7 @@ "S3ManifestOutputLocation": { "base": "

Location details for where the generated manifest should be written.

", "refs": { - "S3JobManifestGenerator$ManifestOutputLocation": "

Specifies the location the generated manifest will be written to.

" + "S3JobManifestGenerator$ManifestOutputLocation": "

Specifies the location the generated manifest will be written to. Manifests can't be written to directory buckets. For more information, see Directory buckets.

" } }, "S3MetadataDirective": { @@ -2870,14 +2872,14 @@ "S3ObjectLockLegalHoldStatus": { "base": null, "refs": { - "S3CopyObjectOperation$ObjectLockLegalHoldStatus": "

The legal hold status to be applied to all objects in the Batch Operations job.

", + "S3CopyObjectOperation$ObjectLockLegalHoldStatus": "

The legal hold status to be applied to all objects in the Batch Operations job.

This functionality is not supported by directory buckets.

", "S3ObjectLockLegalHold$Status": "

The Object Lock legal hold status to be applied to all objects in the Batch Operations job.

" } }, "S3ObjectLockMode": { "base": null, "refs": { - "S3CopyObjectOperation$ObjectLockMode": "

The retention mode to be applied to all objects in the Batch Operations job.

" + "S3CopyObjectOperation$ObjectLockMode": "

The retention mode to be applied to all objects in the Batch Operations job.

This functionality is not supported by directory buckets.

" } }, "S3ObjectLockRetentionMode": { @@ -2943,10 +2945,16 @@ "RegionalBucket$BucketArn": "

The Amazon Resource Name (ARN) for the regional bucket.

" } }, + "S3RegionalOrS3ExpressBucketArnString": { + "base": null, + "refs": { + "S3CopyObjectOperation$TargetResource": "

Specifies the destination bucket Amazon Resource Name (ARN) for the batch copy operation.

" + } + }, "S3ReplicateObjectOperation": { "base": "

Directs the specified job to invoke ReplicateObject on every object in the job's manifest.

", "refs": { - "JobOperation$S3ReplicateObject": "

Directs the specified job to invoke ReplicateObject on every object in the job's manifest.

" + "JobOperation$S3ReplicateObject": "

Directs the specified job to invoke ReplicateObject on every object in the job's manifest.

This functionality is not supported by directory buckets.

" } }, "S3ResourceArn": { @@ -2966,23 +2974,23 @@ "S3SSEAlgorithm": { "base": null, "refs": { - "S3ObjectMetadata$SSEAlgorithm": "

" + "S3ObjectMetadata$SSEAlgorithm": "

For directory buckets, only the server-side encryption with Amazon S3 managed keys (SSE-S3) (AES256) is supported.

" } }, "S3SetObjectAclOperation": { "base": "

Contains the configuration parameters for a PUT Object ACL operation. S3 Batch Operations passes every object to the underlying PutObjectAcl API operation. For more information about the parameters for this operation, see PutObjectAcl.

", "refs": { - "JobOperation$S3PutObjectAcl": "

Directs the specified job to run a PutObjectAcl call on every object in the manifest.

" + "JobOperation$S3PutObjectAcl": "

Directs the specified job to run a PutObjectAcl call on every object in the manifest.

This functionality is not supported by directory buckets.

" } }, "S3SetObjectLegalHoldOperation": { - "base": "

Contains the configuration for an S3 Object Lock legal hold operation that an S3 Batch Operations job passes to every object to the underlying PutObjectLegalHold API operation. For more information, see Using S3 Object Lock legal hold with S3 Batch Operations in the Amazon S3 User Guide.

", + "base": "

Contains the configuration for an S3 Object Lock legal hold operation that an S3 Batch Operations job passes to every object to the underlying PutObjectLegalHold API operation. For more information, see Using S3 Object Lock legal hold with S3 Batch Operations in the Amazon S3 User Guide.

This functionality is not supported by directory buckets.

", "refs": { "JobOperation$S3PutObjectLegalHold": null } }, "S3SetObjectRetentionOperation": { - "base": "

Contains the configuration parameters for the Object Lock retention action for an S3 Batch Operations job. Batch Operations passes every object to the underlying PutObjectRetention API operation. For more information, see Using S3 Object Lock retention with S3 Batch Operations in the Amazon S3 User Guide.

", + "base": "

Contains the configuration parameters for the Object Lock retention action for an S3 Batch Operations job. Batch Operations passes every object to the underlying PutObjectRetention API operation. For more information, see Using S3 Object Lock retention with S3 Batch Operations in the Amazon S3 User Guide.

This functionality is not supported by directory buckets.

", "refs": { "JobOperation$S3PutObjectRetention": null } @@ -2990,13 +2998,13 @@ "S3SetObjectTaggingOperation": { "base": "

Contains the configuration parameters for a PUT Object Tagging operation. S3 Batch Operations passes every object to the underlying PutObjectTagging API operation. For more information about the parameters for this operation, see PutObjectTagging.

", "refs": { - "JobOperation$S3PutObjectTagging": "

Directs the specified job to run a PUT Object tagging call on every object in the manifest.

" + "JobOperation$S3PutObjectTagging": "

Directs the specified job to run a PUT Object tagging call on every object in the manifest.

This functionality is not supported by directory buckets.

" } }, "S3StorageClass": { "base": null, "refs": { - "S3CopyObjectOperation$StorageClass": "

", + "S3CopyObjectOperation$StorageClass": "

Specify the storage class for the destination objects in a Copy operation.

Directory buckets - This functionality is not supported by directory buckets.

", "StorageClassList$member": null } }, @@ -3018,7 +3026,7 @@ "LifecycleRuleAndOperator$Tags": "

All of these tags must exist in the object's tag set in order for the rule to apply.

", "PutJobTaggingRequest$Tags": "

The set of tags to associate with the S3 Batch Operations job.

", "ReplicationRuleAndOperator$Tags": "

An array of tags that contain key and value pairs.

", - "S3CopyObjectOperation$NewObjectTagging": "

", + "S3CopyObjectOperation$NewObjectTagging": "

Specifies a list of tags to add to the destination objects after they are copied. If NewObjectTagging is not specified, the tags of the source objects are copied to destination objects by default.

Directory buckets - Tags aren't supported by directory buckets. If your source objects have tags and your destination bucket is a directory bucket, specify an empty tag set in the NewObjectTagging field to prevent copying the source object tags to the directory bucket.

", "S3SetObjectTaggingOperation$TagSet": "

", "Tagging$TagSet": "

A collection for a set of tags.

" } @@ -3345,7 +3353,7 @@ "refs": { "S3CopyObjectOperation$ModifiedSinceConstraint": "

", "S3CopyObjectOperation$UnModifiedSinceConstraint": "

", - "S3CopyObjectOperation$ObjectLockRetainUntilDate": "

The date when the applied object retention configuration expires on all objects in the Batch Operations job.

", + "S3CopyObjectOperation$ObjectLockRetainUntilDate": "

The date when the applied object retention configuration expires on all objects in the Batch Operations job.

This functionality is not supported by directory buckets.

", "S3ObjectMetadata$HttpExpiresDate": "

", "S3Retention$RetainUntilDate": "

The date when the applied Object Lock retention will expire on all objects set by the Batch Operations job.

" } @@ -3430,6 +3438,12 @@ "refs": { } }, + "UserArguments": { + "base": null, + "refs": { + "LambdaInvokeOperation$UserArguments": "

Key-value pairs that are passed in the payload that Batch Operations sends when invoking an Lambda function. You must specify InvocationSchemaVersion 2.0 for LambdaInvoke operations that include UserArguments. For more information, see Using Lambda with Amazon S3 Batch Operations and Amazon S3 Express One Zone in the Amazon Web Services Storage Blog.

" + } + }, "VersioningConfiguration": { "base": "

Describes the versioning state of an Amazon S3 on Outposts bucket. For more information, see PutBucketVersioning.

", "refs": { diff --git a/models/endpoints/endpoints.json b/models/endpoints/endpoints.json index 7cf232810cc..5607d660137 100644 --- a/models/endpoints/endpoints.json +++ b/models/endpoints/endpoints.json @@ -12988,6 +12988,102 @@ "us-west-2" : { } } }, + "qbusiness" : { + "defaults" : { + "dnsSuffix" : "api.aws", + "variants" : [ { + "dnsSuffix" : "api.aws", + "hostname" : "{service}-fips.{region}.{dnsSuffix}", + "tags" : [ "fips" ] + } ] + }, + "endpoints" : { + "af-south-1" : { + "hostname" : "qbusiness.af-south-1.api.aws" + }, + "ap-east-1" : { + "hostname" : "qbusiness.ap-east-1.api.aws" + }, + "ap-northeast-1" : { + "hostname" : "qbusiness.ap-northeast-1.api.aws" + }, + "ap-northeast-2" : { + "hostname" : "qbusiness.ap-northeast-2.api.aws" + }, + "ap-northeast-3" : { + "hostname" : "qbusiness.ap-northeast-3.api.aws" + }, + "ap-south-1" : { + "hostname" : "qbusiness.ap-south-1.api.aws" + }, + "ap-south-2" : { + "hostname" : "qbusiness.ap-south-2.api.aws" + }, + "ap-southeast-1" : { + "hostname" : "qbusiness.ap-southeast-1.api.aws" + }, + "ap-southeast-2" : { + "hostname" : "qbusiness.ap-southeast-2.api.aws" + }, + "ap-southeast-3" : { + "hostname" : "qbusiness.ap-southeast-3.api.aws" + }, + "ap-southeast-4" : { + "hostname" : "qbusiness.ap-southeast-4.api.aws" + }, + "ca-central-1" : { + "hostname" : "qbusiness.ca-central-1.api.aws" + }, + "eu-central-1" : { + "hostname" : "qbusiness.eu-central-1.api.aws" + }, + "eu-central-2" : { + "hostname" : "qbusiness.eu-central-2.api.aws" + }, + "eu-north-1" : { + "hostname" : "qbusiness.eu-north-1.api.aws" + }, + "eu-south-1" : { + "hostname" : "qbusiness.eu-south-1.api.aws" + }, + "eu-south-2" : { + "hostname" : "qbusiness.eu-south-2.api.aws" + }, + "eu-west-1" : { + "hostname" : "qbusiness.eu-west-1.api.aws" + }, + "eu-west-2" : { + "hostname" : "qbusiness.eu-west-2.api.aws" + }, + "eu-west-3" : { + "hostname" : "qbusiness.eu-west-3.api.aws" + }, + "il-central-1" : { + "hostname" : "qbusiness.il-central-1.api.aws" + }, + "me-central-1" : { + "hostname" : "qbusiness.me-central-1.api.aws" + }, + "me-south-1" : { + "hostname" : "qbusiness.me-south-1.api.aws" + }, + "sa-east-1" : { + "hostname" : "qbusiness.sa-east-1.api.aws" + }, + "us-east-1" : { + "hostname" : "qbusiness.us-east-1.api.aws" + }, + "us-east-2" : { + "hostname" : "qbusiness.us-east-2.api.aws" + }, + "us-west-1" : { + "hostname" : "qbusiness.us-west-1.api.aws" + }, + "us-west-2" : { + "hostname" : "qbusiness.us-west-2.api.aws" + } + } + }, "qldb" : { "endpoints" : { "ap-northeast-1" : { }, @@ -19881,6 +19977,24 @@ } } }, + "qbusiness" : { + "defaults" : { + "dnsSuffix" : "api.amazonwebservices.com.cn", + "variants" : [ { + "dnsSuffix" : "api.amazonwebservices.com.cn", + "hostname" : "{service}-fips.{region}.{dnsSuffix}", + "tags" : [ "fips" ] + } ] + }, + "endpoints" : { + "cn-north-1" : { + "hostname" : "qbusiness.cn-north-1.api.amazonwebservices.com.cn" + }, + "cn-northwest-1" : { + "hostname" : "qbusiness.cn-northwest-1.api.amazonwebservices.com.cn" + } + } + }, "ram" : { "endpoints" : { "cn-north-1" : { }, @@ -21696,6 +21810,36 @@ } } }, + "drs" : { + "endpoints" : { + "fips-us-gov-east-1" : { + "credentialScope" : { + "region" : "us-gov-east-1" + }, + "deprecated" : true, + "hostname" : "drs-fips.us-gov-east-1.amazonaws.com" + }, + "fips-us-gov-west-1" : { + "credentialScope" : { + "region" : "us-gov-west-1" + }, + "deprecated" : true, + "hostname" : "drs-fips.us-gov-west-1.amazonaws.com" + }, + "us-gov-east-1" : { + "variants" : [ { + "hostname" : "drs-fips.us-gov-east-1.amazonaws.com", + "tags" : [ "fips" ] + } ] + }, + "us-gov-west-1" : { + "variants" : [ { + "hostname" : "drs-fips.us-gov-west-1.amazonaws.com", + "tags" : [ "fips" ] + } ] + } + } + }, "ds" : { "endpoints" : { "fips-us-gov-east-1" : { @@ -23518,6 +23662,24 @@ } } }, + "qbusiness" : { + "defaults" : { + "dnsSuffix" : "api.aws", + "variants" : [ { + "dnsSuffix" : "api.aws", + "hostname" : "{service}-fips.{region}.{dnsSuffix}", + "tags" : [ "fips" ] + } ] + }, + "endpoints" : { + "us-gov-east-1" : { + "hostname" : "qbusiness.us-gov-east-1.api.aws" + }, + "us-gov-west-1" : { + "hostname" : "qbusiness.us-gov-west-1.api.aws" + } + } + }, "quicksight" : { "endpoints" : { "api" : { }, @@ -25116,6 +25278,23 @@ "us-iso-east-1" : { } } }, + "datasync" : { + "endpoints" : { + "fips-us-iso-west-1" : { + "credentialScope" : { + "region" : "us-iso-west-1" + }, + "deprecated" : true, + "hostname" : "datasync-fips.us-iso-west-1.c2s.ic.gov" + }, + "us-iso-west-1" : { + "variants" : [ { + "hostname" : "datasync-fips.us-iso-west-1.c2s.ic.gov", + "tags" : [ "fips" ] + } ] + } + } + }, "directconnect" : { "endpoints" : { "us-iso-east-1" : { }, diff --git a/service/accessanalyzer/api.go b/service/accessanalyzer/api.go index 3f4e13b2689..adb1303245d 100644 --- a/service/accessanalyzer/api.go +++ b/service/accessanalyzer/api.go @@ -5195,9 +5195,12 @@ type Configuration struct { // The access control configuration is for an Amazon RDS DB snapshot. RdsDbSnapshot *RdsDbSnapshotConfiguration `locationName:"rdsDbSnapshot" type:"structure"` - // The access control configuration is for an Amazon S3 Bucket. + // The access control configuration is for an Amazon S3 bucket. S3Bucket *S3BucketConfiguration `locationName:"s3Bucket" type:"structure"` + // The access control configuration is for an Amazon S3 directory bucket. + S3ExpressDirectoryBucket *S3ExpressDirectoryBucketConfiguration `locationName:"s3ExpressDirectoryBucket" type:"structure"` + // The access control configuration is for a Secrets Manager secret. SecretsManagerSecret *SecretsManagerSecretConfiguration `locationName:"secretsManagerSecret" type:"structure"` @@ -5294,6 +5297,12 @@ func (s *Configuration) SetS3Bucket(v *S3BucketConfiguration) *Configuration { return s } +// SetS3ExpressDirectoryBucket sets the S3ExpressDirectoryBucket field's value. +func (s *Configuration) SetS3ExpressDirectoryBucket(v *S3ExpressDirectoryBucketConfiguration) *Configuration { + s.S3ExpressDirectoryBucket = v + return s +} + // SetSecretsManagerSecret sets the SecretsManagerSecret field's value. func (s *Configuration) SetSecretsManagerSecret(v *SecretsManagerSecretConfiguration) *Configuration { s.SecretsManagerSecret = v @@ -10470,6 +10479,48 @@ func (s *S3BucketConfiguration) SetBucketPublicAccessBlock(v *S3PublicAccessBloc return s } +// Proposed access control configuration for an Amazon S3 directory bucket. +// You can propose a configuration for a new Amazon S3 directory bucket or an +// existing Amazon S3 directory bucket that you own by specifying the Amazon +// S3 bucket policy. If the configuration is for an existing Amazon S3 directory +// bucket and you do not specify the Amazon S3 bucket policy, the access preview +// uses the existing policy attached to the directory bucket. If the access +// preview is for a new resource and you do not specify the Amazon S3 bucket +// policy, the access preview assumes an directory bucket without a policy. +// To propose deletion of an existing bucket policy, you can specify an empty +// string. For more information about bucket policy limits, see Example bucket +// policies (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam-example-bucket-policies.html). +type S3ExpressDirectoryBucketConfiguration struct { + _ struct{} `type:"structure"` + + // The proposed bucket policy for the Amazon S3 directory bucket. + BucketPolicy *string `locationName:"bucketPolicy" 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 S3ExpressDirectoryBucketConfiguration) 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 S3ExpressDirectoryBucketConfiguration) GoString() string { + return s.String() +} + +// SetBucketPolicy sets the BucketPolicy field's value. +func (s *S3ExpressDirectoryBucketConfiguration) SetBucketPolicy(v string) *S3ExpressDirectoryBucketConfiguration { + s.BucketPolicy = &v + return s +} + // The PublicAccessBlock configuration to apply to this Amazon S3 bucket. If // the proposed configuration is for an existing Amazon S3 bucket and the configuration // is not specified, the access preview uses the existing setting. If the proposed @@ -12972,6 +13023,9 @@ const ( // ResourceTypeAwsSnsTopic is a ResourceType enum value ResourceTypeAwsSnsTopic = "AWS::SNS::Topic" + + // ResourceTypeAwsS3expressDirectoryBucket is a ResourceType enum value + ResourceTypeAwsS3expressDirectoryBucket = "AWS::S3Express::DirectoryBucket" ) // ResourceType_Values returns all elements of the ResourceType enum @@ -12990,6 +13044,7 @@ func ResourceType_Values() []string { ResourceTypeAwsRdsDbsnapshot, ResourceTypeAwsRdsDbclusterSnapshot, ResourceTypeAwsSnsTopic, + ResourceTypeAwsS3expressDirectoryBucket, } } diff --git a/service/bedrock/api.go b/service/bedrock/api.go index a427d47b835..c5aa9bd9099 100644 --- a/service/bedrock/api.go +++ b/service/bedrock/api.go @@ -62,7 +62,7 @@ func (c *Bedrock) CreateModelCustomizationJobRequest(input *CreateModelCustomiza // After the model-customization job completes successfully, your custom model // resource will be ready to use. Training data contains input and output text // for each record in a JSONL format. Optionally, you can specify validation -// data in the same format as the training data. Bedrock returns validation +// data in the same format as the training data. Amazon Bedrock returns validation // loss metrics and output generations after the job completes. // // Model-customization jobs are asynchronous and the completion time depends @@ -559,8 +559,8 @@ func (c *Bedrock) GetCustomModelRequest(input *GetCustomModelInput) (req *reques // GetCustomModel API operation for Amazon Bedrock. // -// Get the properties associated with a Bedrock custom model that you have created.For -// more information, see Custom models (https://docs.aws.amazon.com/bedrock/latest/userguide/custom-models.html) +// Get the properties associated with a Amazon Bedrock custom model that you +// have created.For more information, see Custom models (https://docs.aws.amazon.com/bedrock/latest/userguide/custom-models.html) // in the Bedrock User Guide. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions @@ -653,7 +653,7 @@ func (c *Bedrock) GetFoundationModelRequest(input *GetFoundationModelInput) (req // GetFoundationModel API operation for Amazon Bedrock. // -// Get details about a Bedrock foundation model. +// Get details about a Amazon Bedrock foundation model. // // 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 @@ -1167,7 +1167,7 @@ func (c *Bedrock) ListFoundationModelsRequest(input *ListFoundationModelsInput) // ListFoundationModels API operation for Amazon Bedrock. // -// List of Bedrock foundation models that you can use. For more information, +// List of Amazon Bedrock foundation models that you can use. For more information, // see Foundation models (https://docs.aws.amazon.com/bedrock/latest/userguide/foundation-models.html) // in the Bedrock User Guide. // @@ -2311,6 +2311,9 @@ type CreateModelCustomizationJobInput struct { // Assign tags to the custom model. CustomModelTags []*Tag `locationName:"customModelTags" type:"list"` + // The customization type. + CustomizationType *string `locationName:"customizationType" type:"string" enum:"CustomizationType"` + // Parameters related to tuning the model. // // HyperParameters is a required field @@ -2329,11 +2332,11 @@ type CreateModelCustomizationJobInput struct { // OutputDataConfig is a required field OutputDataConfig *OutputDataConfig `locationName:"outputDataConfig" type:"structure" required:"true"` - // The Amazon Resource Name (ARN) of an IAM role that Bedrock can assume to - // perform tasks on your behalf. For example, during model training, Bedrock - // needs your permission to read input data from an S3 bucket, write model artifacts - // to an S3 bucket. To pass this role to Bedrock, the caller of this API must - // have the iam:PassRole permission. + // The Amazon Resource Name (ARN) of an IAM role that Amazon Bedrock can assume + // to perform tasks on your behalf. For example, during model training, Amazon + // Bedrock needs your permission to read input data from an S3 bucket, write + // model artifacts to an S3 bucket. To pass this role to Amazon Bedrock, the + // caller of this API must have the iam:PassRole permission. // // RoleArn is a required field RoleArn *string `locationName:"roleArn" type:"string" required:"true"` @@ -2485,6 +2488,12 @@ func (s *CreateModelCustomizationJobInput) SetCustomModelTags(v []*Tag) *CreateM return s } +// SetCustomizationType sets the CustomizationType field's value. +func (s *CreateModelCustomizationJobInput) SetCustomizationType(v string) *CreateModelCustomizationJobInput { + s.CustomizationType = &v + return s +} + // SetHyperParameters sets the HyperParameters field's value. func (s *CreateModelCustomizationJobInput) SetHyperParameters(v map[string]*string) *CreateModelCustomizationJobInput { s.HyperParameters = v @@ -2570,7 +2579,7 @@ type CreateProvisionedModelThroughputInput struct { _ struct{} `type:"structure"` // Unique token value that you can provide. If this token matches a previous - // request, Bedrock ignores the request, but does not return an error. + // request, Amazon Bedrock ignores the request, but does not return an error. ClientRequestToken *string `locationName:"clientRequestToken" min:"1" type:"string" idempotencyToken:"true"` // Commitment duration requested for the provisioned throughput. @@ -2742,6 +2751,10 @@ type CustomModelSummary struct { // CreationTime is a required field CreationTime *time.Time `locationName:"creationTime" type:"timestamp" timestampFormat:"iso8601" required:"true"` + // Specifies whether to carry out continued pre-training of a model or whether + // to fine-tune it. For more information, see Custom models (https://docs.aws.amazon.com/bedrock/latest/userguide/custom-models.html). + CustomizationType *string `locationName:"customizationType" type:"string" enum:"CustomizationType"` + // The ARN of the custom model. // // ModelArn is a required field @@ -2789,6 +2802,12 @@ func (s *CustomModelSummary) SetCreationTime(v time.Time) *CustomModelSummary { return s } +// SetCustomizationType sets the CustomizationType field's value. +func (s *CustomModelSummary) SetCustomizationType(v string) *CustomModelSummary { + s.CustomizationType = &v + return s +} + // SetModelArn sets the ModelArn field's value. func (s *CustomModelSummary) SetModelArn(v string) *CustomModelSummary { s.ModelArn = &v @@ -3010,6 +3029,9 @@ type FoundationModelDetails struct { // ModelId is a required field ModelId *string `locationName:"modelId" type:"string" required:"true"` + // Contains details about whether a model version is available or deprecated + ModelLifecycle *FoundationModelLifecycle `locationName:"modelLifecycle" type:"structure"` + // The model name. ModelName *string `locationName:"modelName" min:"1" type:"string"` @@ -3071,6 +3093,12 @@ func (s *FoundationModelDetails) SetModelId(v string) *FoundationModelDetails { return s } +// SetModelLifecycle sets the ModelLifecycle field's value. +func (s *FoundationModelDetails) SetModelLifecycle(v *FoundationModelLifecycle) *FoundationModelDetails { + s.ModelLifecycle = v + return s +} + // SetModelName sets the ModelName field's value. func (s *FoundationModelDetails) SetModelName(v string) *FoundationModelDetails { s.ModelName = &v @@ -3095,6 +3123,40 @@ func (s *FoundationModelDetails) SetResponseStreamingSupported(v bool) *Foundati return s } +// Details about whether a model version is available or deprecated. +type FoundationModelLifecycle struct { + _ struct{} `type:"structure"` + + // Specifies whether a model version is available (ACTIVE) or deprecated (LEGACY. + // + // Status is a required field + Status *string `locationName:"status" type:"string" required:"true" enum:"FoundationModelLifecycleStatus"` +} + +// 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 FoundationModelLifecycle) 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 FoundationModelLifecycle) GoString() string { + return s.String() +} + +// SetStatus sets the Status field's value. +func (s *FoundationModelLifecycle) SetStatus(v string) *FoundationModelLifecycle { + s.Status = &v + return s +} + // Summary information for a foundation model. type FoundationModelSummary struct { _ struct{} `type:"structure"` @@ -3118,6 +3180,9 @@ type FoundationModelSummary struct { // ModelId is a required field ModelId *string `locationName:"modelId" type:"string" required:"true"` + // Contains details about whether a model version is available or deprecated. + ModelLifecycle *FoundationModelLifecycle `locationName:"modelLifecycle" type:"structure"` + // The name of the model. ModelName *string `locationName:"modelName" min:"1" type:"string"` @@ -3179,6 +3244,12 @@ func (s *FoundationModelSummary) SetModelId(v string) *FoundationModelSummary { return s } +// SetModelLifecycle sets the ModelLifecycle field's value. +func (s *FoundationModelSummary) SetModelLifecycle(v *FoundationModelLifecycle) *FoundationModelSummary { + s.ModelLifecycle = v + return s +} + // SetModelName sets the ModelName field's value. func (s *FoundationModelSummary) SetModelName(v string) *FoundationModelSummary { s.ModelName = &v @@ -3265,6 +3336,9 @@ type GetCustomModelOutput struct { // CreationTime is a required field CreationTime *time.Time `locationName:"creationTime" type:"timestamp" timestampFormat:"iso8601" required:"true"` + // The type of model customization. + CustomizationType *string `locationName:"customizationType" type:"string" enum:"CustomizationType"` + // Hyperparameter values associated with this model. HyperParameters map[string]*string `locationName:"hyperParameters" type:"map"` @@ -3339,6 +3413,12 @@ func (s *GetCustomModelOutput) SetCreationTime(v time.Time) *GetCustomModelOutpu return s } +// SetCustomizationType sets the CustomizationType field's value. +func (s *GetCustomModelOutput) SetCustomizationType(v string) *GetCustomModelOutput { + s.CustomizationType = &v + return s +} + // SetHyperParameters sets the HyperParameters field's value. func (s *GetCustomModelOutput) SetHyperParameters(v map[string]*string) *GetCustomModelOutput { s.HyperParameters = v @@ -3550,13 +3630,17 @@ type GetModelCustomizationJobOutput struct { // CreationTime is a required field CreationTime *time.Time `locationName:"creationTime" type:"timestamp" timestampFormat:"iso8601" required:"true"` + // The type of model customization. + CustomizationType *string `locationName:"customizationType" type:"string" enum:"CustomizationType"` + // Time that the resource transitioned to terminal state. EndTime *time.Time `locationName:"endTime" type:"timestamp" timestampFormat:"iso8601"` // Information about why the job failed. FailureMessage *string `locationName:"failureMessage" type:"string"` - // The hyperparameter values for the job. + // The hyperparameter values for the job. For information about hyperparameters + // for specific models, see Guidelines for model customization (https://docs.aws.amazon.com/bedrock/latest/userguide/model-customization-guidelines.html). // // HyperParameters is a required field HyperParameters map[string]*string `locationName:"hyperParameters" type:"map" required:"true"` @@ -3656,6 +3740,12 @@ func (s *GetModelCustomizationJobOutput) SetCreationTime(v time.Time) *GetModelC return s } +// SetCustomizationType sets the CustomizationType field's value. +func (s *GetModelCustomizationJobOutput) SetCustomizationType(v string) *GetModelCustomizationJobOutput { + s.CustomizationType = &v + return s +} + // SetEndTime sets the EndTime field's value. func (s *GetModelCustomizationJobOutput) SetEndTime(v time.Time) *GetModelCustomizationJobOutput { s.EndTime = &v @@ -4106,8 +4196,8 @@ type ListCustomModelsInput struct { // Return custom models only if the job name contains these characters. NameContains *string `location:"querystring" locationName:"nameContains" min:"1" type:"string"` - // Continuation token from the previous response, for Bedrock to list the next - // set of results. + // Continuation token from the previous response, for Amazon Bedrock to list + // the next set of results. NextToken *string `location:"querystring" locationName:"nextToken" min:"1" type:"string"` // The field to sort by in the returned list of models. @@ -4263,7 +4353,7 @@ type ListFoundationModelsInput struct { // List by output modality type. ByOutputModality *string `location:"querystring" locationName:"byOutputModality" type:"string" enum:"ModelModality"` - // A Bedrock model provider. + // A Amazon Bedrock model provider. ByProvider *string `location:"querystring" locationName:"byProvider" type:"string"` } @@ -4312,7 +4402,7 @@ func (s *ListFoundationModelsInput) SetByProvider(v string) *ListFoundationModel type ListFoundationModelsOutput struct { _ struct{} `type:"structure"` - // A list of bedrock foundation models. + // A list of Amazon Bedrock foundation models. ModelSummaries []*FoundationModelSummary `locationName:"modelSummaries" type:"list"` } @@ -4355,8 +4445,8 @@ type ListModelCustomizationJobsInput struct { // Return customization jobs only if the job name contains these characters. NameContains *string `location:"querystring" locationName:"nameContains" min:"1" type:"string"` - // Continuation token from the previous response, for Bedrock to list the next - // set of results. + // Continuation token from the previous response, for Amazon Bedrock to list + // the next set of results. NextToken *string `location:"querystring" locationName:"nextToken" min:"1" type:"string"` // The field to sort by in the returned list of jobs. @@ -4513,8 +4603,8 @@ type ListProvisionedModelThroughputsInput struct { // Return the list of provisioned capacities if their name contains these characters. NameContains *string `location:"querystring" locationName:"nameContains" min:"1" type:"string"` - // Continuation token from the previous response, for Bedrock to list the next - // set of results. + // Continuation token from the previous response, for Amazon Bedrock to list + // the next set of results. NextToken *string `location:"querystring" locationName:"nextToken" min:"1" type:"string"` // The field to sort by in the returned list of provisioned capacities. @@ -4849,6 +4939,10 @@ type ModelCustomizationJobSummary struct { // Name of the custom model. CustomModelName *string `locationName:"customModelName" min:"1" type:"string"` + // Specifies whether to carry out continued pre-training of a model or whether + // to fine-tune it. For more information, see Custom models (https://docs.aws.amazon.com/bedrock/latest/userguide/custom-models.html). + CustomizationType *string `locationName:"customizationType" type:"string" enum:"CustomizationType"` + // Time that the customization job ended. EndTime *time.Time `locationName:"endTime" type:"timestamp" timestampFormat:"iso8601"` @@ -4913,6 +5007,12 @@ func (s *ModelCustomizationJobSummary) SetCustomModelName(v string) *ModelCustom return s } +// SetCustomizationType sets the CustomizationType field's value. +func (s *ModelCustomizationJobSummary) SetCustomizationType(v string) *ModelCustomizationJobSummary { + s.CustomizationType = &v + return s +} + // SetEndTime sets the EndTime field's value. func (s *ModelCustomizationJobSummary) SetEndTime(v time.Time) *ModelCustomizationJobSummary { s.EndTime = &v @@ -6316,6 +6416,22 @@ func CommitmentDuration_Values() []string { } } +const ( + // CustomizationTypeFineTuning is a CustomizationType enum value + CustomizationTypeFineTuning = "FINE_TUNING" + + // CustomizationTypeContinuedPreTraining is a CustomizationType enum value + CustomizationTypeContinuedPreTraining = "CONTINUED_PRE_TRAINING" +) + +// CustomizationType_Values returns all elements of the CustomizationType enum +func CustomizationType_Values() []string { + return []string{ + CustomizationTypeFineTuning, + CustomizationTypeContinuedPreTraining, + } +} + const ( // FineTuningJobStatusInProgress is a FineTuningJobStatus enum value FineTuningJobStatusInProgress = "InProgress" @@ -6344,6 +6460,22 @@ func FineTuningJobStatus_Values() []string { } } +const ( + // FoundationModelLifecycleStatusActive is a FoundationModelLifecycleStatus enum value + FoundationModelLifecycleStatusActive = "ACTIVE" + + // FoundationModelLifecycleStatusLegacy is a FoundationModelLifecycleStatus enum value + FoundationModelLifecycleStatusLegacy = "LEGACY" +) + +// FoundationModelLifecycleStatus_Values returns all elements of the FoundationModelLifecycleStatus enum +func FoundationModelLifecycleStatus_Values() []string { + return []string{ + FoundationModelLifecycleStatusActive, + FoundationModelLifecycleStatusLegacy, + } +} + const ( // InferenceTypeOnDemand is a InferenceType enum value InferenceTypeOnDemand = "ON_DEMAND" @@ -6363,12 +6495,16 @@ func InferenceType_Values() []string { const ( // ModelCustomizationFineTuning is a ModelCustomization enum value ModelCustomizationFineTuning = "FINE_TUNING" + + // ModelCustomizationContinuedPreTraining is a ModelCustomization enum value + ModelCustomizationContinuedPreTraining = "CONTINUED_PRE_TRAINING" ) // ModelCustomization_Values returns all elements of the ModelCustomization enum func ModelCustomization_Values() []string { return []string{ ModelCustomizationFineTuning, + ModelCustomizationContinuedPreTraining, } } diff --git a/service/bedrock/doc.go b/service/bedrock/doc.go index 42fba55c4d7..af238a77d94 100644 --- a/service/bedrock/doc.go +++ b/service/bedrock/doc.go @@ -3,7 +3,7 @@ // Package bedrock provides the client and types for making API // requests to Amazon Bedrock. // -// Describes the API operations for creating and managing Bedrock models. +// Describes the API operations for creating and managing Amazon Bedrock models. // // See https://docs.aws.amazon.com/goto/WebAPI/bedrock-2023-04-20 for more information on this service. // diff --git a/service/bedrockagent/api.go b/service/bedrockagent/api.go new file mode 100644 index 00000000000..6c3c31d4a8a --- /dev/null +++ b/service/bedrockagent/api.go @@ -0,0 +1,13786 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package bedrockagent + +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 opAssociateAgentKnowledgeBase = "AssociateAgentKnowledgeBase" + +// AssociateAgentKnowledgeBaseRequest generates a "aws/request.Request" representing the +// client's request for the AssociateAgentKnowledgeBase 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 AssociateAgentKnowledgeBase for more information on using the AssociateAgentKnowledgeBase +// 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 AssociateAgentKnowledgeBaseRequest method. +// req, resp := client.AssociateAgentKnowledgeBaseRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/bedrock-agent-2023-06-05/AssociateAgentKnowledgeBase +func (c *BedrockAgent) AssociateAgentKnowledgeBaseRequest(input *AssociateAgentKnowledgeBaseInput) (req *request.Request, output *AssociateAgentKnowledgeBaseOutput) { + op := &request.Operation{ + Name: opAssociateAgentKnowledgeBase, + HTTPMethod: "PUT", + HTTPPath: "/agents/{agentId}/agentversions/{agentVersion}/knowledgebases/", + } + + if input == nil { + input = &AssociateAgentKnowledgeBaseInput{} + } + + output = &AssociateAgentKnowledgeBaseOutput{} + req = c.newRequest(op, input, output) + return +} + +// AssociateAgentKnowledgeBase API operation for Agents for Amazon Bedrock. +// +// # Associate a Knowledge Base to an existing Amazon Bedrock Agent +// +// 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 Agents for Amazon Bedrock's +// API operation AssociateAgentKnowledgeBase for usage and error information. +// +// Returned Error Types: +// +// - ThrottlingException +// This exception is thrown when the number of requests exceeds the limit +// +// - AccessDeniedException +// This exception is thrown when a request is denied per access permissions +// +// - ValidationException +// This exception is thrown when the request's input validation fails +// +// - InternalServerException +// This exception is thrown if there was an unexpected error during processing +// of request +// +// - ResourceNotFoundException +// This exception is thrown when a resource referenced by the operation does +// not exist +// +// - ConflictException +// This exception is thrown when there is a conflict performing an operation +// +// - ServiceQuotaExceededException +// This exception is thrown when a request is made beyond the service quota +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/bedrock-agent-2023-06-05/AssociateAgentKnowledgeBase +func (c *BedrockAgent) AssociateAgentKnowledgeBase(input *AssociateAgentKnowledgeBaseInput) (*AssociateAgentKnowledgeBaseOutput, error) { + req, out := c.AssociateAgentKnowledgeBaseRequest(input) + return out, req.Send() +} + +// AssociateAgentKnowledgeBaseWithContext is the same as AssociateAgentKnowledgeBase with the addition of +// the ability to pass a context and additional request options. +// +// See AssociateAgentKnowledgeBase 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 *BedrockAgent) AssociateAgentKnowledgeBaseWithContext(ctx aws.Context, input *AssociateAgentKnowledgeBaseInput, opts ...request.Option) (*AssociateAgentKnowledgeBaseOutput, error) { + req, out := c.AssociateAgentKnowledgeBaseRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opCreateAgent = "CreateAgent" + +// CreateAgentRequest generates a "aws/request.Request" representing the +// client's request for the CreateAgent 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 CreateAgent for more information on using the CreateAgent +// 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 CreateAgentRequest method. +// req, resp := client.CreateAgentRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/bedrock-agent-2023-06-05/CreateAgent +func (c *BedrockAgent) CreateAgentRequest(input *CreateAgentInput) (req *request.Request, output *CreateAgentOutput) { + op := &request.Operation{ + Name: opCreateAgent, + HTTPMethod: "PUT", + HTTPPath: "/agents/", + } + + if input == nil { + input = &CreateAgentInput{} + } + + output = &CreateAgentOutput{} + req = c.newRequest(op, input, output) + return +} + +// CreateAgent API operation for Agents for Amazon Bedrock. +// +// # Creates an Amazon Bedrock Agent +// +// 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 Agents for Amazon Bedrock's +// API operation CreateAgent for usage and error information. +// +// Returned Error Types: +// +// - ThrottlingException +// This exception is thrown when the number of requests exceeds the limit +// +// - AccessDeniedException +// This exception is thrown when a request is denied per access permissions +// +// - ValidationException +// This exception is thrown when the request's input validation fails +// +// - InternalServerException +// This exception is thrown if there was an unexpected error during processing +// of request +// +// - ConflictException +// This exception is thrown when there is a conflict performing an operation +// +// - ServiceQuotaExceededException +// This exception is thrown when a request is made beyond the service quota +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/bedrock-agent-2023-06-05/CreateAgent +func (c *BedrockAgent) CreateAgent(input *CreateAgentInput) (*CreateAgentOutput, error) { + req, out := c.CreateAgentRequest(input) + return out, req.Send() +} + +// CreateAgentWithContext is the same as CreateAgent with the addition of +// the ability to pass a context and additional request options. +// +// See CreateAgent 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 *BedrockAgent) CreateAgentWithContext(ctx aws.Context, input *CreateAgentInput, opts ...request.Option) (*CreateAgentOutput, error) { + req, out := c.CreateAgentRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opCreateAgentActionGroup = "CreateAgentActionGroup" + +// CreateAgentActionGroupRequest generates a "aws/request.Request" representing the +// client's request for the CreateAgentActionGroup 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 CreateAgentActionGroup for more information on using the CreateAgentActionGroup +// 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 CreateAgentActionGroupRequest method. +// req, resp := client.CreateAgentActionGroupRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/bedrock-agent-2023-06-05/CreateAgentActionGroup +func (c *BedrockAgent) CreateAgentActionGroupRequest(input *CreateAgentActionGroupInput) (req *request.Request, output *CreateAgentActionGroupOutput) { + op := &request.Operation{ + Name: opCreateAgentActionGroup, + HTTPMethod: "PUT", + HTTPPath: "/agents/{agentId}/agentversions/{agentVersion}/actiongroups/", + } + + if input == nil { + input = &CreateAgentActionGroupInput{} + } + + output = &CreateAgentActionGroupOutput{} + req = c.newRequest(op, input, output) + return +} + +// CreateAgentActionGroup API operation for Agents for Amazon Bedrock. +// +// # Creates an Action Group for existing Amazon Bedrock Agent +// +// 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 Agents for Amazon Bedrock's +// API operation CreateAgentActionGroup for usage and error information. +// +// Returned Error Types: +// +// - ThrottlingException +// This exception is thrown when the number of requests exceeds the limit +// +// - AccessDeniedException +// This exception is thrown when a request is denied per access permissions +// +// - ValidationException +// This exception is thrown when the request's input validation fails +// +// - InternalServerException +// This exception is thrown if there was an unexpected error during processing +// of request +// +// - ResourceNotFoundException +// This exception is thrown when a resource referenced by the operation does +// not exist +// +// - ConflictException +// This exception is thrown when there is a conflict performing an operation +// +// - ServiceQuotaExceededException +// This exception is thrown when a request is made beyond the service quota +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/bedrock-agent-2023-06-05/CreateAgentActionGroup +func (c *BedrockAgent) CreateAgentActionGroup(input *CreateAgentActionGroupInput) (*CreateAgentActionGroupOutput, error) { + req, out := c.CreateAgentActionGroupRequest(input) + return out, req.Send() +} + +// CreateAgentActionGroupWithContext is the same as CreateAgentActionGroup with the addition of +// the ability to pass a context and additional request options. +// +// See CreateAgentActionGroup 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 *BedrockAgent) CreateAgentActionGroupWithContext(ctx aws.Context, input *CreateAgentActionGroupInput, opts ...request.Option) (*CreateAgentActionGroupOutput, error) { + req, out := c.CreateAgentActionGroupRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opCreateAgentAlias = "CreateAgentAlias" + +// CreateAgentAliasRequest generates a "aws/request.Request" representing the +// client's request for the CreateAgentAlias 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 CreateAgentAlias for more information on using the CreateAgentAlias +// 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 CreateAgentAliasRequest method. +// req, resp := client.CreateAgentAliasRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/bedrock-agent-2023-06-05/CreateAgentAlias +func (c *BedrockAgent) CreateAgentAliasRequest(input *CreateAgentAliasInput) (req *request.Request, output *CreateAgentAliasOutput) { + op := &request.Operation{ + Name: opCreateAgentAlias, + HTTPMethod: "PUT", + HTTPPath: "/agents/{agentId}/agentaliases/", + } + + if input == nil { + input = &CreateAgentAliasInput{} + } + + output = &CreateAgentAliasOutput{} + req = c.newRequest(op, input, output) + return +} + +// CreateAgentAlias API operation for Agents for Amazon Bedrock. +// +// # Creates an Alias for an existing Amazon Bedrock Agent +// +// 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 Agents for Amazon Bedrock's +// API operation CreateAgentAlias for usage and error information. +// +// Returned Error Types: +// +// - ThrottlingException +// This exception is thrown when the number of requests exceeds the limit +// +// - AccessDeniedException +// This exception is thrown when a request is denied per access permissions +// +// - ValidationException +// This exception is thrown when the request's input validation fails +// +// - InternalServerException +// This exception is thrown if there was an unexpected error during processing +// of request +// +// - ResourceNotFoundException +// This exception is thrown when a resource referenced by the operation does +// not exist +// +// - ConflictException +// This exception is thrown when there is a conflict performing an operation +// +// - ServiceQuotaExceededException +// This exception is thrown when a request is made beyond the service quota +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/bedrock-agent-2023-06-05/CreateAgentAlias +func (c *BedrockAgent) CreateAgentAlias(input *CreateAgentAliasInput) (*CreateAgentAliasOutput, error) { + req, out := c.CreateAgentAliasRequest(input) + return out, req.Send() +} + +// CreateAgentAliasWithContext is the same as CreateAgentAlias with the addition of +// the ability to pass a context and additional request options. +// +// See CreateAgentAlias 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 *BedrockAgent) CreateAgentAliasWithContext(ctx aws.Context, input *CreateAgentAliasInput, opts ...request.Option) (*CreateAgentAliasOutput, error) { + req, out := c.CreateAgentAliasRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opCreateDataSource = "CreateDataSource" + +// CreateDataSourceRequest generates a "aws/request.Request" representing the +// client's request for the CreateDataSource 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 CreateDataSource for more information on using the CreateDataSource +// 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 CreateDataSourceRequest method. +// req, resp := client.CreateDataSourceRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/bedrock-agent-2023-06-05/CreateDataSource +func (c *BedrockAgent) CreateDataSourceRequest(input *CreateDataSourceInput) (req *request.Request, output *CreateDataSourceOutput) { + op := &request.Operation{ + Name: opCreateDataSource, + HTTPMethod: "PUT", + HTTPPath: "/knowledgebases/{knowledgeBaseId}/datasources/", + } + + if input == nil { + input = &CreateDataSourceInput{} + } + + output = &CreateDataSourceOutput{} + req = c.newRequest(op, input, output) + return +} + +// CreateDataSource API operation for Agents for Amazon Bedrock. +// +// # Create a new data source +// +// 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 Agents for Amazon Bedrock's +// API operation CreateDataSource for usage and error information. +// +// Returned Error Types: +// +// - ThrottlingException +// This exception is thrown when the number of requests exceeds the limit +// +// - AccessDeniedException +// This exception is thrown when a request is denied per access permissions +// +// - ValidationException +// This exception is thrown when the request's input validation fails +// +// - InternalServerException +// This exception is thrown if there was an unexpected error during processing +// of request +// +// - ResourceNotFoundException +// This exception is thrown when a resource referenced by the operation does +// not exist +// +// - ConflictException +// This exception is thrown when there is a conflict performing an operation +// +// - ServiceQuotaExceededException +// This exception is thrown when a request is made beyond the service quota +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/bedrock-agent-2023-06-05/CreateDataSource +func (c *BedrockAgent) CreateDataSource(input *CreateDataSourceInput) (*CreateDataSourceOutput, error) { + req, out := c.CreateDataSourceRequest(input) + return out, req.Send() +} + +// CreateDataSourceWithContext is the same as CreateDataSource with the addition of +// the ability to pass a context and additional request options. +// +// See CreateDataSource 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 *BedrockAgent) CreateDataSourceWithContext(ctx aws.Context, input *CreateDataSourceInput, opts ...request.Option) (*CreateDataSourceOutput, error) { + req, out := c.CreateDataSourceRequest(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/bedrock-agent-2023-06-05/CreateKnowledgeBase +func (c *BedrockAgent) CreateKnowledgeBaseRequest(input *CreateKnowledgeBaseInput) (req *request.Request, output *CreateKnowledgeBaseOutput) { + op := &request.Operation{ + Name: opCreateKnowledgeBase, + HTTPMethod: "PUT", + HTTPPath: "/knowledgebases/", + } + + if input == nil { + input = &CreateKnowledgeBaseInput{} + } + + output = &CreateKnowledgeBaseOutput{} + req = c.newRequest(op, input, output) + return +} + +// CreateKnowledgeBase API operation for Agents for Amazon Bedrock. +// +// # Create a new 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 Agents for Amazon Bedrock's +// API operation CreateKnowledgeBase for usage and error information. +// +// Returned Error Types: +// +// - ThrottlingException +// This exception is thrown when the number of requests exceeds the limit +// +// - AccessDeniedException +// This exception is thrown when a request is denied per access permissions +// +// - ValidationException +// This exception is thrown when the request's input validation fails +// +// - InternalServerException +// This exception is thrown if there was an unexpected error during processing +// of request +// +// - ConflictException +// This exception is thrown when there is a conflict performing an operation +// +// - ServiceQuotaExceededException +// This exception is thrown when a request is made beyond the service quota +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/bedrock-agent-2023-06-05/CreateKnowledgeBase +func (c *BedrockAgent) 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 *BedrockAgent) 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 opDeleteAgent = "DeleteAgent" + +// DeleteAgentRequest generates a "aws/request.Request" representing the +// client's request for the DeleteAgent 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 DeleteAgent for more information on using the DeleteAgent +// 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 DeleteAgentRequest method. +// req, resp := client.DeleteAgentRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/bedrock-agent-2023-06-05/DeleteAgent +func (c *BedrockAgent) DeleteAgentRequest(input *DeleteAgentInput) (req *request.Request, output *DeleteAgentOutput) { + op := &request.Operation{ + Name: opDeleteAgent, + HTTPMethod: "DELETE", + HTTPPath: "/agents/{agentId}/", + } + + if input == nil { + input = &DeleteAgentInput{} + } + + output = &DeleteAgentOutput{} + req = c.newRequest(op, input, output) + return +} + +// DeleteAgent API operation for Agents for Amazon Bedrock. +// +// # Deletes an Agent for existing Amazon Bedrock Agent +// +// 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 Agents for Amazon Bedrock's +// API operation DeleteAgent for usage and error information. +// +// Returned Error Types: +// +// - ThrottlingException +// This exception is thrown when the number of requests exceeds the limit +// +// - AccessDeniedException +// This exception is thrown when a request is denied per access permissions +// +// - ValidationException +// This exception is thrown when the request's input validation fails +// +// - InternalServerException +// This exception is thrown if there was an unexpected error during processing +// of request +// +// - ResourceNotFoundException +// This exception is thrown when a resource referenced by the operation does +// not exist +// +// - ConflictException +// This exception is thrown when there is a conflict performing an operation +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/bedrock-agent-2023-06-05/DeleteAgent +func (c *BedrockAgent) DeleteAgent(input *DeleteAgentInput) (*DeleteAgentOutput, error) { + req, out := c.DeleteAgentRequest(input) + return out, req.Send() +} + +// DeleteAgentWithContext is the same as DeleteAgent with the addition of +// the ability to pass a context and additional request options. +// +// See DeleteAgent 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 *BedrockAgent) DeleteAgentWithContext(ctx aws.Context, input *DeleteAgentInput, opts ...request.Option) (*DeleteAgentOutput, error) { + req, out := c.DeleteAgentRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opDeleteAgentActionGroup = "DeleteAgentActionGroup" + +// DeleteAgentActionGroupRequest generates a "aws/request.Request" representing the +// client's request for the DeleteAgentActionGroup 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 DeleteAgentActionGroup for more information on using the DeleteAgentActionGroup +// 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 DeleteAgentActionGroupRequest method. +// req, resp := client.DeleteAgentActionGroupRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/bedrock-agent-2023-06-05/DeleteAgentActionGroup +func (c *BedrockAgent) DeleteAgentActionGroupRequest(input *DeleteAgentActionGroupInput) (req *request.Request, output *DeleteAgentActionGroupOutput) { + op := &request.Operation{ + Name: opDeleteAgentActionGroup, + HTTPMethod: "DELETE", + HTTPPath: "/agents/{agentId}/agentversions/{agentVersion}/actiongroups/{actionGroupId}/", + } + + if input == nil { + input = &DeleteAgentActionGroupInput{} + } + + output = &DeleteAgentActionGroupOutput{} + req = c.newRequest(op, input, output) + req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) + return +} + +// DeleteAgentActionGroup API operation for Agents for Amazon Bedrock. +// +// Deletes an Action Group for existing Amazon Bedrock Agent. +// +// 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 Agents for Amazon Bedrock's +// API operation DeleteAgentActionGroup for usage and error information. +// +// Returned Error Types: +// +// - ThrottlingException +// This exception is thrown when the number of requests exceeds the limit +// +// - AccessDeniedException +// This exception is thrown when a request is denied per access permissions +// +// - ValidationException +// This exception is thrown when the request's input validation fails +// +// - InternalServerException +// This exception is thrown if there was an unexpected error during processing +// of request +// +// - ResourceNotFoundException +// This exception is thrown when a resource referenced by the operation does +// not exist +// +// - ConflictException +// This exception is thrown when there is a conflict performing an operation +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/bedrock-agent-2023-06-05/DeleteAgentActionGroup +func (c *BedrockAgent) DeleteAgentActionGroup(input *DeleteAgentActionGroupInput) (*DeleteAgentActionGroupOutput, error) { + req, out := c.DeleteAgentActionGroupRequest(input) + return out, req.Send() +} + +// DeleteAgentActionGroupWithContext is the same as DeleteAgentActionGroup with the addition of +// the ability to pass a context and additional request options. +// +// See DeleteAgentActionGroup 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 *BedrockAgent) DeleteAgentActionGroupWithContext(ctx aws.Context, input *DeleteAgentActionGroupInput, opts ...request.Option) (*DeleteAgentActionGroupOutput, error) { + req, out := c.DeleteAgentActionGroupRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opDeleteAgentAlias = "DeleteAgentAlias" + +// DeleteAgentAliasRequest generates a "aws/request.Request" representing the +// client's request for the DeleteAgentAlias 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 DeleteAgentAlias for more information on using the DeleteAgentAlias +// 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 DeleteAgentAliasRequest method. +// req, resp := client.DeleteAgentAliasRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/bedrock-agent-2023-06-05/DeleteAgentAlias +func (c *BedrockAgent) DeleteAgentAliasRequest(input *DeleteAgentAliasInput) (req *request.Request, output *DeleteAgentAliasOutput) { + op := &request.Operation{ + Name: opDeleteAgentAlias, + HTTPMethod: "DELETE", + HTTPPath: "/agents/{agentId}/agentaliases/{agentAliasId}/", + } + + if input == nil { + input = &DeleteAgentAliasInput{} + } + + output = &DeleteAgentAliasOutput{} + req = c.newRequest(op, input, output) + return +} + +// DeleteAgentAlias API operation for Agents for Amazon Bedrock. +// +// # Deletes an Alias for a Amazon Bedrock Agent +// +// 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 Agents for Amazon Bedrock's +// API operation DeleteAgentAlias for usage and error information. +// +// Returned Error Types: +// +// - ThrottlingException +// This exception is thrown when the number of requests exceeds the limit +// +// - AccessDeniedException +// This exception is thrown when a request is denied per access permissions +// +// - ValidationException +// This exception is thrown when the request's input validation fails +// +// - InternalServerException +// This exception is thrown if there was an unexpected error during processing +// of request +// +// - ResourceNotFoundException +// This exception is thrown when a resource referenced by the operation does +// not exist +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/bedrock-agent-2023-06-05/DeleteAgentAlias +func (c *BedrockAgent) DeleteAgentAlias(input *DeleteAgentAliasInput) (*DeleteAgentAliasOutput, error) { + req, out := c.DeleteAgentAliasRequest(input) + return out, req.Send() +} + +// DeleteAgentAliasWithContext is the same as DeleteAgentAlias with the addition of +// the ability to pass a context and additional request options. +// +// See DeleteAgentAlias 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 *BedrockAgent) DeleteAgentAliasWithContext(ctx aws.Context, input *DeleteAgentAliasInput, opts ...request.Option) (*DeleteAgentAliasOutput, error) { + req, out := c.DeleteAgentAliasRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opDeleteAgentVersion = "DeleteAgentVersion" + +// DeleteAgentVersionRequest generates a "aws/request.Request" representing the +// client's request for the DeleteAgentVersion 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 DeleteAgentVersion for more information on using the DeleteAgentVersion +// 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 DeleteAgentVersionRequest method. +// req, resp := client.DeleteAgentVersionRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/bedrock-agent-2023-06-05/DeleteAgentVersion +func (c *BedrockAgent) DeleteAgentVersionRequest(input *DeleteAgentVersionInput) (req *request.Request, output *DeleteAgentVersionOutput) { + op := &request.Operation{ + Name: opDeleteAgentVersion, + HTTPMethod: "DELETE", + HTTPPath: "/agents/{agentId}/agentversions/{agentVersion}/", + } + + if input == nil { + input = &DeleteAgentVersionInput{} + } + + output = &DeleteAgentVersionOutput{} + req = c.newRequest(op, input, output) + return +} + +// DeleteAgentVersion API operation for Agents for Amazon Bedrock. +// +// # Deletes an Agent version for existing Amazon Bedrock Agent +// +// 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 Agents for Amazon Bedrock's +// API operation DeleteAgentVersion for usage and error information. +// +// Returned Error Types: +// +// - ThrottlingException +// This exception is thrown when the number of requests exceeds the limit +// +// - AccessDeniedException +// This exception is thrown when a request is denied per access permissions +// +// - ValidationException +// This exception is thrown when the request's input validation fails +// +// - InternalServerException +// This exception is thrown if there was an unexpected error during processing +// of request +// +// - ResourceNotFoundException +// This exception is thrown when a resource referenced by the operation does +// not exist +// +// - ConflictException +// This exception is thrown when there is a conflict performing an operation +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/bedrock-agent-2023-06-05/DeleteAgentVersion +func (c *BedrockAgent) DeleteAgentVersion(input *DeleteAgentVersionInput) (*DeleteAgentVersionOutput, error) { + req, out := c.DeleteAgentVersionRequest(input) + return out, req.Send() +} + +// DeleteAgentVersionWithContext is the same as DeleteAgentVersion with the addition of +// the ability to pass a context and additional request options. +// +// See DeleteAgentVersion 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 *BedrockAgent) DeleteAgentVersionWithContext(ctx aws.Context, input *DeleteAgentVersionInput, opts ...request.Option) (*DeleteAgentVersionOutput, error) { + req, out := c.DeleteAgentVersionRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opDeleteDataSource = "DeleteDataSource" + +// DeleteDataSourceRequest generates a "aws/request.Request" representing the +// client's request for the DeleteDataSource 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 DeleteDataSource for more information on using the DeleteDataSource +// 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 DeleteDataSourceRequest method. +// req, resp := client.DeleteDataSourceRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/bedrock-agent-2023-06-05/DeleteDataSource +func (c *BedrockAgent) DeleteDataSourceRequest(input *DeleteDataSourceInput) (req *request.Request, output *DeleteDataSourceOutput) { + op := &request.Operation{ + Name: opDeleteDataSource, + HTTPMethod: "DELETE", + HTTPPath: "/knowledgebases/{knowledgeBaseId}/datasources/{dataSourceId}", + } + + if input == nil { + input = &DeleteDataSourceInput{} + } + + output = &DeleteDataSourceOutput{} + req = c.newRequest(op, input, output) + return +} + +// DeleteDataSource API operation for Agents for Amazon Bedrock. +// +// # Delete an existing data source +// +// 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 Agents for Amazon Bedrock's +// API operation DeleteDataSource for usage and error information. +// +// Returned Error Types: +// +// - ThrottlingException +// This exception is thrown when the number of requests exceeds the limit +// +// - AccessDeniedException +// This exception is thrown when a request is denied per access permissions +// +// - ValidationException +// This exception is thrown when the request's input validation fails +// +// - InternalServerException +// This exception is thrown if there was an unexpected error during processing +// of request +// +// - ResourceNotFoundException +// This exception is thrown when a resource referenced by the operation does +// not exist +// +// - ConflictException +// This exception is thrown when there is a conflict performing an operation +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/bedrock-agent-2023-06-05/DeleteDataSource +func (c *BedrockAgent) DeleteDataSource(input *DeleteDataSourceInput) (*DeleteDataSourceOutput, error) { + req, out := c.DeleteDataSourceRequest(input) + return out, req.Send() +} + +// DeleteDataSourceWithContext is the same as DeleteDataSource with the addition of +// the ability to pass a context and additional request options. +// +// See DeleteDataSource 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 *BedrockAgent) DeleteDataSourceWithContext(ctx aws.Context, input *DeleteDataSourceInput, opts ...request.Option) (*DeleteDataSourceOutput, error) { + req, out := c.DeleteDataSourceRequest(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/bedrock-agent-2023-06-05/DeleteKnowledgeBase +func (c *BedrockAgent) 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) + return +} + +// DeleteKnowledgeBase API operation for Agents for Amazon Bedrock. +// +// # Delete an existing 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 Agents for Amazon Bedrock's +// API operation DeleteKnowledgeBase for usage and error information. +// +// Returned Error Types: +// +// - ThrottlingException +// This exception is thrown when the number of requests exceeds the limit +// +// - AccessDeniedException +// This exception is thrown when a request is denied per access permissions +// +// - ValidationException +// This exception is thrown when the request's input validation fails +// +// - InternalServerException +// This exception is thrown if there was an unexpected error during processing +// of request +// +// - ResourceNotFoundException +// This exception is thrown when a resource referenced by the operation does +// not exist +// +// - ConflictException +// This exception is thrown when there is a conflict performing an operation +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/bedrock-agent-2023-06-05/DeleteKnowledgeBase +func (c *BedrockAgent) 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 *BedrockAgent) 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 opDisassociateAgentKnowledgeBase = "DisassociateAgentKnowledgeBase" + +// DisassociateAgentKnowledgeBaseRequest generates a "aws/request.Request" representing the +// client's request for the DisassociateAgentKnowledgeBase 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 DisassociateAgentKnowledgeBase for more information on using the DisassociateAgentKnowledgeBase +// 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 DisassociateAgentKnowledgeBaseRequest method. +// req, resp := client.DisassociateAgentKnowledgeBaseRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/bedrock-agent-2023-06-05/DisassociateAgentKnowledgeBase +func (c *BedrockAgent) DisassociateAgentKnowledgeBaseRequest(input *DisassociateAgentKnowledgeBaseInput) (req *request.Request, output *DisassociateAgentKnowledgeBaseOutput) { + op := &request.Operation{ + Name: opDisassociateAgentKnowledgeBase, + HTTPMethod: "DELETE", + HTTPPath: "/agents/{agentId}/agentversions/{agentVersion}/knowledgebases/{knowledgeBaseId}/", + } + + if input == nil { + input = &DisassociateAgentKnowledgeBaseInput{} + } + + output = &DisassociateAgentKnowledgeBaseOutput{} + req = c.newRequest(op, input, output) + req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) + return +} + +// DisassociateAgentKnowledgeBase API operation for Agents for Amazon Bedrock. +// +// # Disassociate an existing Knowledge Base from an Amazon Bedrock Agent +// +// 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 Agents for Amazon Bedrock's +// API operation DisassociateAgentKnowledgeBase for usage and error information. +// +// Returned Error Types: +// +// - ThrottlingException +// This exception is thrown when the number of requests exceeds the limit +// +// - AccessDeniedException +// This exception is thrown when a request is denied per access permissions +// +// - ValidationException +// This exception is thrown when the request's input validation fails +// +// - InternalServerException +// This exception is thrown if there was an unexpected error during processing +// of request +// +// - ResourceNotFoundException +// This exception is thrown when a resource referenced by the operation does +// not exist +// +// - ConflictException +// This exception is thrown when there is a conflict performing an operation +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/bedrock-agent-2023-06-05/DisassociateAgentKnowledgeBase +func (c *BedrockAgent) DisassociateAgentKnowledgeBase(input *DisassociateAgentKnowledgeBaseInput) (*DisassociateAgentKnowledgeBaseOutput, error) { + req, out := c.DisassociateAgentKnowledgeBaseRequest(input) + return out, req.Send() +} + +// DisassociateAgentKnowledgeBaseWithContext is the same as DisassociateAgentKnowledgeBase with the addition of +// the ability to pass a context and additional request options. +// +// See DisassociateAgentKnowledgeBase 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 *BedrockAgent) DisassociateAgentKnowledgeBaseWithContext(ctx aws.Context, input *DisassociateAgentKnowledgeBaseInput, opts ...request.Option) (*DisassociateAgentKnowledgeBaseOutput, error) { + req, out := c.DisassociateAgentKnowledgeBaseRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opGetAgent = "GetAgent" + +// GetAgentRequest generates a "aws/request.Request" representing the +// client's request for the GetAgent 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 GetAgent for more information on using the GetAgent +// 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 GetAgentRequest method. +// req, resp := client.GetAgentRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/bedrock-agent-2023-06-05/GetAgent +func (c *BedrockAgent) GetAgentRequest(input *GetAgentInput) (req *request.Request, output *GetAgentOutput) { + op := &request.Operation{ + Name: opGetAgent, + HTTPMethod: "GET", + HTTPPath: "/agents/{agentId}/", + } + + if input == nil { + input = &GetAgentInput{} + } + + output = &GetAgentOutput{} + req = c.newRequest(op, input, output) + return +} + +// GetAgent API operation for Agents for Amazon Bedrock. +// +// # Gets an Agent for existing Amazon Bedrock Agent +// +// 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 Agents for Amazon Bedrock's +// API operation GetAgent for usage and error information. +// +// Returned Error Types: +// +// - ThrottlingException +// This exception is thrown when the number of requests exceeds the limit +// +// - AccessDeniedException +// This exception is thrown when a request is denied per access permissions +// +// - ValidationException +// This exception is thrown when the request's input validation fails +// +// - InternalServerException +// This exception is thrown if there was an unexpected error during processing +// of request +// +// - ResourceNotFoundException +// This exception is thrown when a resource referenced by the operation does +// not exist +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/bedrock-agent-2023-06-05/GetAgent +func (c *BedrockAgent) GetAgent(input *GetAgentInput) (*GetAgentOutput, error) { + req, out := c.GetAgentRequest(input) + return out, req.Send() +} + +// GetAgentWithContext is the same as GetAgent with the addition of +// the ability to pass a context and additional request options. +// +// See GetAgent 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 *BedrockAgent) GetAgentWithContext(ctx aws.Context, input *GetAgentInput, opts ...request.Option) (*GetAgentOutput, error) { + req, out := c.GetAgentRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opGetAgentActionGroup = "GetAgentActionGroup" + +// GetAgentActionGroupRequest generates a "aws/request.Request" representing the +// client's request for the GetAgentActionGroup 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 GetAgentActionGroup for more information on using the GetAgentActionGroup +// 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 GetAgentActionGroupRequest method. +// req, resp := client.GetAgentActionGroupRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/bedrock-agent-2023-06-05/GetAgentActionGroup +func (c *BedrockAgent) GetAgentActionGroupRequest(input *GetAgentActionGroupInput) (req *request.Request, output *GetAgentActionGroupOutput) { + op := &request.Operation{ + Name: opGetAgentActionGroup, + HTTPMethod: "GET", + HTTPPath: "/agents/{agentId}/agentversions/{agentVersion}/actiongroups/{actionGroupId}/", + } + + if input == nil { + input = &GetAgentActionGroupInput{} + } + + output = &GetAgentActionGroupOutput{} + req = c.newRequest(op, input, output) + return +} + +// GetAgentActionGroup API operation for Agents for Amazon Bedrock. +// +// # Gets an Action Group for existing Amazon Bedrock Agent Version +// +// 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 Agents for Amazon Bedrock's +// API operation GetAgentActionGroup for usage and error information. +// +// Returned Error Types: +// +// - ThrottlingException +// This exception is thrown when the number of requests exceeds the limit +// +// - AccessDeniedException +// This exception is thrown when a request is denied per access permissions +// +// - ValidationException +// This exception is thrown when the request's input validation fails +// +// - InternalServerException +// This exception is thrown if there was an unexpected error during processing +// of request +// +// - ResourceNotFoundException +// This exception is thrown when a resource referenced by the operation does +// not exist +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/bedrock-agent-2023-06-05/GetAgentActionGroup +func (c *BedrockAgent) GetAgentActionGroup(input *GetAgentActionGroupInput) (*GetAgentActionGroupOutput, error) { + req, out := c.GetAgentActionGroupRequest(input) + return out, req.Send() +} + +// GetAgentActionGroupWithContext is the same as GetAgentActionGroup with the addition of +// the ability to pass a context and additional request options. +// +// See GetAgentActionGroup 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 *BedrockAgent) GetAgentActionGroupWithContext(ctx aws.Context, input *GetAgentActionGroupInput, opts ...request.Option) (*GetAgentActionGroupOutput, error) { + req, out := c.GetAgentActionGroupRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opGetAgentAlias = "GetAgentAlias" + +// GetAgentAliasRequest generates a "aws/request.Request" representing the +// client's request for the GetAgentAlias 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 GetAgentAlias for more information on using the GetAgentAlias +// 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 GetAgentAliasRequest method. +// req, resp := client.GetAgentAliasRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/bedrock-agent-2023-06-05/GetAgentAlias +func (c *BedrockAgent) GetAgentAliasRequest(input *GetAgentAliasInput) (req *request.Request, output *GetAgentAliasOutput) { + op := &request.Operation{ + Name: opGetAgentAlias, + HTTPMethod: "GET", + HTTPPath: "/agents/{agentId}/agentaliases/{agentAliasId}/", + } + + if input == nil { + input = &GetAgentAliasInput{} + } + + output = &GetAgentAliasOutput{} + req = c.newRequest(op, input, output) + return +} + +// GetAgentAlias API operation for Agents for Amazon Bedrock. +// +// # Describes an Alias for a Amazon Bedrock Agent +// +// 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 Agents for Amazon Bedrock's +// API operation GetAgentAlias for usage and error information. +// +// Returned Error Types: +// +// - ThrottlingException +// This exception is thrown when the number of requests exceeds the limit +// +// - AccessDeniedException +// This exception is thrown when a request is denied per access permissions +// +// - ValidationException +// This exception is thrown when the request's input validation fails +// +// - InternalServerException +// This exception is thrown if there was an unexpected error during processing +// of request +// +// - ResourceNotFoundException +// This exception is thrown when a resource referenced by the operation does +// not exist +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/bedrock-agent-2023-06-05/GetAgentAlias +func (c *BedrockAgent) GetAgentAlias(input *GetAgentAliasInput) (*GetAgentAliasOutput, error) { + req, out := c.GetAgentAliasRequest(input) + return out, req.Send() +} + +// GetAgentAliasWithContext is the same as GetAgentAlias with the addition of +// the ability to pass a context and additional request options. +// +// See GetAgentAlias 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 *BedrockAgent) GetAgentAliasWithContext(ctx aws.Context, input *GetAgentAliasInput, opts ...request.Option) (*GetAgentAliasOutput, error) { + req, out := c.GetAgentAliasRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opGetAgentKnowledgeBase = "GetAgentKnowledgeBase" + +// GetAgentKnowledgeBaseRequest generates a "aws/request.Request" representing the +// client's request for the GetAgentKnowledgeBase 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 GetAgentKnowledgeBase for more information on using the GetAgentKnowledgeBase +// 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 GetAgentKnowledgeBaseRequest method. +// req, resp := client.GetAgentKnowledgeBaseRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/bedrock-agent-2023-06-05/GetAgentKnowledgeBase +func (c *BedrockAgent) GetAgentKnowledgeBaseRequest(input *GetAgentKnowledgeBaseInput) (req *request.Request, output *GetAgentKnowledgeBaseOutput) { + op := &request.Operation{ + Name: opGetAgentKnowledgeBase, + HTTPMethod: "GET", + HTTPPath: "/agents/{agentId}/agentversions/{agentVersion}/knowledgebases/{knowledgeBaseId}/", + } + + if input == nil { + input = &GetAgentKnowledgeBaseInput{} + } + + output = &GetAgentKnowledgeBaseOutput{} + req = c.newRequest(op, input, output) + return +} + +// GetAgentKnowledgeBase API operation for Agents for Amazon Bedrock. +// +// # Gets a knowledge base associated to an existing Amazon Bedrock Agent Version +// +// 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 Agents for Amazon Bedrock's +// API operation GetAgentKnowledgeBase for usage and error information. +// +// Returned Error Types: +// +// - ThrottlingException +// This exception is thrown when the number of requests exceeds the limit +// +// - AccessDeniedException +// This exception is thrown when a request is denied per access permissions +// +// - ValidationException +// This exception is thrown when the request's input validation fails +// +// - InternalServerException +// This exception is thrown if there was an unexpected error during processing +// of request +// +// - ResourceNotFoundException +// This exception is thrown when a resource referenced by the operation does +// not exist +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/bedrock-agent-2023-06-05/GetAgentKnowledgeBase +func (c *BedrockAgent) GetAgentKnowledgeBase(input *GetAgentKnowledgeBaseInput) (*GetAgentKnowledgeBaseOutput, error) { + req, out := c.GetAgentKnowledgeBaseRequest(input) + return out, req.Send() +} + +// GetAgentKnowledgeBaseWithContext is the same as GetAgentKnowledgeBase with the addition of +// the ability to pass a context and additional request options. +// +// See GetAgentKnowledgeBase 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 *BedrockAgent) GetAgentKnowledgeBaseWithContext(ctx aws.Context, input *GetAgentKnowledgeBaseInput, opts ...request.Option) (*GetAgentKnowledgeBaseOutput, error) { + req, out := c.GetAgentKnowledgeBaseRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opGetAgentVersion = "GetAgentVersion" + +// GetAgentVersionRequest generates a "aws/request.Request" representing the +// client's request for the GetAgentVersion 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 GetAgentVersion for more information on using the GetAgentVersion +// 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 GetAgentVersionRequest method. +// req, resp := client.GetAgentVersionRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/bedrock-agent-2023-06-05/GetAgentVersion +func (c *BedrockAgent) GetAgentVersionRequest(input *GetAgentVersionInput) (req *request.Request, output *GetAgentVersionOutput) { + op := &request.Operation{ + Name: opGetAgentVersion, + HTTPMethod: "GET", + HTTPPath: "/agents/{agentId}/agentversions/{agentVersion}/", + } + + if input == nil { + input = &GetAgentVersionInput{} + } + + output = &GetAgentVersionOutput{} + req = c.newRequest(op, input, output) + return +} + +// GetAgentVersion API operation for Agents for Amazon Bedrock. +// +// # Gets an Agent version for existing Amazon Bedrock Agent +// +// 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 Agents for Amazon Bedrock's +// API operation GetAgentVersion for usage and error information. +// +// Returned Error Types: +// +// - ThrottlingException +// This exception is thrown when the number of requests exceeds the limit +// +// - AccessDeniedException +// This exception is thrown when a request is denied per access permissions +// +// - ValidationException +// This exception is thrown when the request's input validation fails +// +// - InternalServerException +// This exception is thrown if there was an unexpected error during processing +// of request +// +// - ResourceNotFoundException +// This exception is thrown when a resource referenced by the operation does +// not exist +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/bedrock-agent-2023-06-05/GetAgentVersion +func (c *BedrockAgent) GetAgentVersion(input *GetAgentVersionInput) (*GetAgentVersionOutput, error) { + req, out := c.GetAgentVersionRequest(input) + return out, req.Send() +} + +// GetAgentVersionWithContext is the same as GetAgentVersion with the addition of +// the ability to pass a context and additional request options. +// +// See GetAgentVersion 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 *BedrockAgent) GetAgentVersionWithContext(ctx aws.Context, input *GetAgentVersionInput, opts ...request.Option) (*GetAgentVersionOutput, error) { + req, out := c.GetAgentVersionRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opGetDataSource = "GetDataSource" + +// GetDataSourceRequest generates a "aws/request.Request" representing the +// client's request for the GetDataSource 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 GetDataSource for more information on using the GetDataSource +// 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 GetDataSourceRequest method. +// req, resp := client.GetDataSourceRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/bedrock-agent-2023-06-05/GetDataSource +func (c *BedrockAgent) GetDataSourceRequest(input *GetDataSourceInput) (req *request.Request, output *GetDataSourceOutput) { + op := &request.Operation{ + Name: opGetDataSource, + HTTPMethod: "GET", + HTTPPath: "/knowledgebases/{knowledgeBaseId}/datasources/{dataSourceId}", + } + + if input == nil { + input = &GetDataSourceInput{} + } + + output = &GetDataSourceOutput{} + req = c.newRequest(op, input, output) + return +} + +// GetDataSource API operation for Agents for Amazon Bedrock. +// +// # Get an existing data source +// +// 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 Agents for Amazon Bedrock's +// API operation GetDataSource for usage and error information. +// +// Returned Error Types: +// +// - ThrottlingException +// This exception is thrown when the number of requests exceeds the limit +// +// - AccessDeniedException +// This exception is thrown when a request is denied per access permissions +// +// - ValidationException +// This exception is thrown when the request's input validation fails +// +// - InternalServerException +// This exception is thrown if there was an unexpected error during processing +// of request +// +// - ResourceNotFoundException +// This exception is thrown when a resource referenced by the operation does +// not exist +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/bedrock-agent-2023-06-05/GetDataSource +func (c *BedrockAgent) GetDataSource(input *GetDataSourceInput) (*GetDataSourceOutput, error) { + req, out := c.GetDataSourceRequest(input) + return out, req.Send() +} + +// GetDataSourceWithContext is the same as GetDataSource with the addition of +// the ability to pass a context and additional request options. +// +// See GetDataSource 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 *BedrockAgent) GetDataSourceWithContext(ctx aws.Context, input *GetDataSourceInput, opts ...request.Option) (*GetDataSourceOutput, error) { + req, out := c.GetDataSourceRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opGetIngestionJob = "GetIngestionJob" + +// GetIngestionJobRequest generates a "aws/request.Request" representing the +// client's request for the GetIngestionJob 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 GetIngestionJob for more information on using the GetIngestionJob +// 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 GetIngestionJobRequest method. +// req, resp := client.GetIngestionJobRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/bedrock-agent-2023-06-05/GetIngestionJob +func (c *BedrockAgent) GetIngestionJobRequest(input *GetIngestionJobInput) (req *request.Request, output *GetIngestionJobOutput) { + op := &request.Operation{ + Name: opGetIngestionJob, + HTTPMethod: "GET", + HTTPPath: "/knowledgebases/{knowledgeBaseId}/datasources/{dataSourceId}/ingestionjobs/{ingestionJobId}", + } + + if input == nil { + input = &GetIngestionJobInput{} + } + + output = &GetIngestionJobOutput{} + req = c.newRequest(op, input, output) + return +} + +// GetIngestionJob API operation for Agents for Amazon Bedrock. +// +// # Get an ingestion 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 Agents for Amazon Bedrock's +// API operation GetIngestionJob for usage and error information. +// +// Returned Error Types: +// +// - ThrottlingException +// This exception is thrown when the number of requests exceeds the limit +// +// - AccessDeniedException +// This exception is thrown when a request is denied per access permissions +// +// - ValidationException +// This exception is thrown when the request's input validation fails +// +// - InternalServerException +// This exception is thrown if there was an unexpected error during processing +// of request +// +// - ResourceNotFoundException +// This exception is thrown when a resource referenced by the operation does +// not exist +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/bedrock-agent-2023-06-05/GetIngestionJob +func (c *BedrockAgent) GetIngestionJob(input *GetIngestionJobInput) (*GetIngestionJobOutput, error) { + req, out := c.GetIngestionJobRequest(input) + return out, req.Send() +} + +// GetIngestionJobWithContext is the same as GetIngestionJob with the addition of +// the ability to pass a context and additional request options. +// +// See GetIngestionJob 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 *BedrockAgent) GetIngestionJobWithContext(ctx aws.Context, input *GetIngestionJobInput, opts ...request.Option) (*GetIngestionJobOutput, error) { + req, out := c.GetIngestionJobRequest(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/bedrock-agent-2023-06-05/GetKnowledgeBase +func (c *BedrockAgent) 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 Agents for Amazon Bedrock. +// +// # Get an existing 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 Agents for Amazon Bedrock's +// API operation GetKnowledgeBase for usage and error information. +// +// Returned Error Types: +// +// - ThrottlingException +// This exception is thrown when the number of requests exceeds the limit +// +// - AccessDeniedException +// This exception is thrown when a request is denied per access permissions +// +// - ValidationException +// This exception is thrown when the request's input validation fails +// +// - InternalServerException +// This exception is thrown if there was an unexpected error during processing +// of request +// +// - ResourceNotFoundException +// This exception is thrown when a resource referenced by the operation does +// not exist +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/bedrock-agent-2023-06-05/GetKnowledgeBase +func (c *BedrockAgent) 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 *BedrockAgent) 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 opListAgentActionGroups = "ListAgentActionGroups" + +// ListAgentActionGroupsRequest generates a "aws/request.Request" representing the +// client's request for the ListAgentActionGroups 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 ListAgentActionGroups for more information on using the ListAgentActionGroups +// 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 ListAgentActionGroupsRequest method. +// req, resp := client.ListAgentActionGroupsRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/bedrock-agent-2023-06-05/ListAgentActionGroups +func (c *BedrockAgent) ListAgentActionGroupsRequest(input *ListAgentActionGroupsInput) (req *request.Request, output *ListAgentActionGroupsOutput) { + op := &request.Operation{ + Name: opListAgentActionGroups, + HTTPMethod: "POST", + HTTPPath: "/agents/{agentId}/agentversions/{agentVersion}/actiongroups/", + Paginator: &request.Paginator{ + InputTokens: []string{"nextToken"}, + OutputTokens: []string{"nextToken"}, + LimitToken: "maxResults", + TruncationToken: "", + }, + } + + if input == nil { + input = &ListAgentActionGroupsInput{} + } + + output = &ListAgentActionGroupsOutput{} + req = c.newRequest(op, input, output) + return +} + +// ListAgentActionGroups API operation for Agents for Amazon Bedrock. +// +// # Lists an Action Group for existing Amazon Bedrock Agent Version +// +// 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 Agents for Amazon Bedrock's +// API operation ListAgentActionGroups for usage and error information. +// +// Returned Error Types: +// +// - ThrottlingException +// This exception is thrown when the number of requests exceeds the limit +// +// - AccessDeniedException +// This exception is thrown when a request is denied per access permissions +// +// - ValidationException +// This exception is thrown when the request's input validation fails +// +// - InternalServerException +// This exception is thrown if there was an unexpected error during processing +// of request +// +// - ResourceNotFoundException +// This exception is thrown when a resource referenced by the operation does +// not exist +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/bedrock-agent-2023-06-05/ListAgentActionGroups +func (c *BedrockAgent) ListAgentActionGroups(input *ListAgentActionGroupsInput) (*ListAgentActionGroupsOutput, error) { + req, out := c.ListAgentActionGroupsRequest(input) + return out, req.Send() +} + +// ListAgentActionGroupsWithContext is the same as ListAgentActionGroups with the addition of +// the ability to pass a context and additional request options. +// +// See ListAgentActionGroups 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 *BedrockAgent) ListAgentActionGroupsWithContext(ctx aws.Context, input *ListAgentActionGroupsInput, opts ...request.Option) (*ListAgentActionGroupsOutput, error) { + req, out := c.ListAgentActionGroupsRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +// ListAgentActionGroupsPages iterates over the pages of a ListAgentActionGroups operation, +// calling the "fn" function with the response data for each page. To stop +// iterating, return false from the fn function. +// +// See ListAgentActionGroups 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 ListAgentActionGroups operation. +// pageNum := 0 +// err := client.ListAgentActionGroupsPages(params, +// func(page *bedrockagent.ListAgentActionGroupsOutput, lastPage bool) bool { +// pageNum++ +// fmt.Println(page) +// return pageNum <= 3 +// }) +func (c *BedrockAgent) ListAgentActionGroupsPages(input *ListAgentActionGroupsInput, fn func(*ListAgentActionGroupsOutput, bool) bool) error { + return c.ListAgentActionGroupsPagesWithContext(aws.BackgroundContext(), input, fn) +} + +// ListAgentActionGroupsPagesWithContext same as ListAgentActionGroupsPages 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 *BedrockAgent) ListAgentActionGroupsPagesWithContext(ctx aws.Context, input *ListAgentActionGroupsInput, fn func(*ListAgentActionGroupsOutput, bool) bool, opts ...request.Option) error { + p := request.Pagination{ + NewRequest: func() (*request.Request, error) { + var inCpy *ListAgentActionGroupsInput + if input != nil { + tmp := *input + inCpy = &tmp + } + req, _ := c.ListAgentActionGroupsRequest(inCpy) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return req, nil + }, + } + + for p.Next() { + if !fn(p.Page().(*ListAgentActionGroupsOutput), !p.HasNextPage()) { + break + } + } + + return p.Err() +} + +const opListAgentAliases = "ListAgentAliases" + +// ListAgentAliasesRequest generates a "aws/request.Request" representing the +// client's request for the ListAgentAliases 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 ListAgentAliases for more information on using the ListAgentAliases +// 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 ListAgentAliasesRequest method. +// req, resp := client.ListAgentAliasesRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/bedrock-agent-2023-06-05/ListAgentAliases +func (c *BedrockAgent) ListAgentAliasesRequest(input *ListAgentAliasesInput) (req *request.Request, output *ListAgentAliasesOutput) { + op := &request.Operation{ + Name: opListAgentAliases, + HTTPMethod: "POST", + HTTPPath: "/agents/{agentId}/agentaliases/", + Paginator: &request.Paginator{ + InputTokens: []string{"nextToken"}, + OutputTokens: []string{"nextToken"}, + LimitToken: "maxResults", + TruncationToken: "", + }, + } + + if input == nil { + input = &ListAgentAliasesInput{} + } + + output = &ListAgentAliasesOutput{} + req = c.newRequest(op, input, output) + return +} + +// ListAgentAliases API operation for Agents for Amazon Bedrock. +// +// # Lists all the Aliases for an Amazon Bedrock Agent +// +// 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 Agents for Amazon Bedrock's +// API operation ListAgentAliases for usage and error information. +// +// Returned Error Types: +// +// - ThrottlingException +// This exception is thrown when the number of requests exceeds the limit +// +// - AccessDeniedException +// This exception is thrown when a request is denied per access permissions +// +// - ValidationException +// This exception is thrown when the request's input validation fails +// +// - InternalServerException +// This exception is thrown if there was an unexpected error during processing +// of request +// +// - ResourceNotFoundException +// This exception is thrown when a resource referenced by the operation does +// not exist +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/bedrock-agent-2023-06-05/ListAgentAliases +func (c *BedrockAgent) ListAgentAliases(input *ListAgentAliasesInput) (*ListAgentAliasesOutput, error) { + req, out := c.ListAgentAliasesRequest(input) + return out, req.Send() +} + +// ListAgentAliasesWithContext is the same as ListAgentAliases with the addition of +// the ability to pass a context and additional request options. +// +// See ListAgentAliases 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 *BedrockAgent) ListAgentAliasesWithContext(ctx aws.Context, input *ListAgentAliasesInput, opts ...request.Option) (*ListAgentAliasesOutput, error) { + req, out := c.ListAgentAliasesRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +// ListAgentAliasesPages iterates over the pages of a ListAgentAliases operation, +// calling the "fn" function with the response data for each page. To stop +// iterating, return false from the fn function. +// +// See ListAgentAliases 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 ListAgentAliases operation. +// pageNum := 0 +// err := client.ListAgentAliasesPages(params, +// func(page *bedrockagent.ListAgentAliasesOutput, lastPage bool) bool { +// pageNum++ +// fmt.Println(page) +// return pageNum <= 3 +// }) +func (c *BedrockAgent) ListAgentAliasesPages(input *ListAgentAliasesInput, fn func(*ListAgentAliasesOutput, bool) bool) error { + return c.ListAgentAliasesPagesWithContext(aws.BackgroundContext(), input, fn) +} + +// ListAgentAliasesPagesWithContext same as ListAgentAliasesPages 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 *BedrockAgent) ListAgentAliasesPagesWithContext(ctx aws.Context, input *ListAgentAliasesInput, fn func(*ListAgentAliasesOutput, bool) bool, opts ...request.Option) error { + p := request.Pagination{ + NewRequest: func() (*request.Request, error) { + var inCpy *ListAgentAliasesInput + if input != nil { + tmp := *input + inCpy = &tmp + } + req, _ := c.ListAgentAliasesRequest(inCpy) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return req, nil + }, + } + + for p.Next() { + if !fn(p.Page().(*ListAgentAliasesOutput), !p.HasNextPage()) { + break + } + } + + return p.Err() +} + +const opListAgentKnowledgeBases = "ListAgentKnowledgeBases" + +// ListAgentKnowledgeBasesRequest generates a "aws/request.Request" representing the +// client's request for the ListAgentKnowledgeBases 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 ListAgentKnowledgeBases for more information on using the ListAgentKnowledgeBases +// 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 ListAgentKnowledgeBasesRequest method. +// req, resp := client.ListAgentKnowledgeBasesRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/bedrock-agent-2023-06-05/ListAgentKnowledgeBases +func (c *BedrockAgent) ListAgentKnowledgeBasesRequest(input *ListAgentKnowledgeBasesInput) (req *request.Request, output *ListAgentKnowledgeBasesOutput) { + op := &request.Operation{ + Name: opListAgentKnowledgeBases, + HTTPMethod: "POST", + HTTPPath: "/agents/{agentId}/agentversions/{agentVersion}/knowledgebases/", + Paginator: &request.Paginator{ + InputTokens: []string{"nextToken"}, + OutputTokens: []string{"nextToken"}, + LimitToken: "maxResults", + TruncationToken: "", + }, + } + + if input == nil { + input = &ListAgentKnowledgeBasesInput{} + } + + output = &ListAgentKnowledgeBasesOutput{} + req = c.newRequest(op, input, output) + return +} + +// ListAgentKnowledgeBases API operation for Agents for Amazon Bedrock. +// +// # List of Knowledge Bases associated to an existing Amazon Bedrock Agent Version +// +// 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 Agents for Amazon Bedrock's +// API operation ListAgentKnowledgeBases for usage and error information. +// +// Returned Error Types: +// +// - ThrottlingException +// This exception is thrown when the number of requests exceeds the limit +// +// - AccessDeniedException +// This exception is thrown when a request is denied per access permissions +// +// - ValidationException +// This exception is thrown when the request's input validation fails +// +// - InternalServerException +// This exception is thrown if there was an unexpected error during processing +// of request +// +// - ResourceNotFoundException +// This exception is thrown when a resource referenced by the operation does +// not exist +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/bedrock-agent-2023-06-05/ListAgentKnowledgeBases +func (c *BedrockAgent) ListAgentKnowledgeBases(input *ListAgentKnowledgeBasesInput) (*ListAgentKnowledgeBasesOutput, error) { + req, out := c.ListAgentKnowledgeBasesRequest(input) + return out, req.Send() +} + +// ListAgentKnowledgeBasesWithContext is the same as ListAgentKnowledgeBases with the addition of +// the ability to pass a context and additional request options. +// +// See ListAgentKnowledgeBases 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 *BedrockAgent) ListAgentKnowledgeBasesWithContext(ctx aws.Context, input *ListAgentKnowledgeBasesInput, opts ...request.Option) (*ListAgentKnowledgeBasesOutput, error) { + req, out := c.ListAgentKnowledgeBasesRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +// ListAgentKnowledgeBasesPages iterates over the pages of a ListAgentKnowledgeBases operation, +// calling the "fn" function with the response data for each page. To stop +// iterating, return false from the fn function. +// +// See ListAgentKnowledgeBases 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 ListAgentKnowledgeBases operation. +// pageNum := 0 +// err := client.ListAgentKnowledgeBasesPages(params, +// func(page *bedrockagent.ListAgentKnowledgeBasesOutput, lastPage bool) bool { +// pageNum++ +// fmt.Println(page) +// return pageNum <= 3 +// }) +func (c *BedrockAgent) ListAgentKnowledgeBasesPages(input *ListAgentKnowledgeBasesInput, fn func(*ListAgentKnowledgeBasesOutput, bool) bool) error { + return c.ListAgentKnowledgeBasesPagesWithContext(aws.BackgroundContext(), input, fn) +} + +// ListAgentKnowledgeBasesPagesWithContext same as ListAgentKnowledgeBasesPages 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 *BedrockAgent) ListAgentKnowledgeBasesPagesWithContext(ctx aws.Context, input *ListAgentKnowledgeBasesInput, fn func(*ListAgentKnowledgeBasesOutput, bool) bool, opts ...request.Option) error { + p := request.Pagination{ + NewRequest: func() (*request.Request, error) { + var inCpy *ListAgentKnowledgeBasesInput + if input != nil { + tmp := *input + inCpy = &tmp + } + req, _ := c.ListAgentKnowledgeBasesRequest(inCpy) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return req, nil + }, + } + + for p.Next() { + if !fn(p.Page().(*ListAgentKnowledgeBasesOutput), !p.HasNextPage()) { + break + } + } + + return p.Err() +} + +const opListAgentVersions = "ListAgentVersions" + +// ListAgentVersionsRequest generates a "aws/request.Request" representing the +// client's request for the ListAgentVersions 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 ListAgentVersions for more information on using the ListAgentVersions +// 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 ListAgentVersionsRequest method. +// req, resp := client.ListAgentVersionsRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/bedrock-agent-2023-06-05/ListAgentVersions +func (c *BedrockAgent) ListAgentVersionsRequest(input *ListAgentVersionsInput) (req *request.Request, output *ListAgentVersionsOutput) { + op := &request.Operation{ + Name: opListAgentVersions, + HTTPMethod: "POST", + HTTPPath: "/agents/{agentId}/agentversions/", + Paginator: &request.Paginator{ + InputTokens: []string{"nextToken"}, + OutputTokens: []string{"nextToken"}, + LimitToken: "maxResults", + TruncationToken: "", + }, + } + + if input == nil { + input = &ListAgentVersionsInput{} + } + + output = &ListAgentVersionsOutput{} + req = c.newRequest(op, input, output) + return +} + +// ListAgentVersions API operation for Agents for Amazon Bedrock. +// +// # Lists Agent Versions +// +// 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 Agents for Amazon Bedrock's +// API operation ListAgentVersions for usage and error information. +// +// Returned Error Types: +// +// - ThrottlingException +// This exception is thrown when the number of requests exceeds the limit +// +// - AccessDeniedException +// This exception is thrown when a request is denied per access permissions +// +// - ValidationException +// This exception is thrown when the request's input validation fails +// +// - InternalServerException +// This exception is thrown if there was an unexpected error during processing +// of request +// +// - ResourceNotFoundException +// This exception is thrown when a resource referenced by the operation does +// not exist +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/bedrock-agent-2023-06-05/ListAgentVersions +func (c *BedrockAgent) ListAgentVersions(input *ListAgentVersionsInput) (*ListAgentVersionsOutput, error) { + req, out := c.ListAgentVersionsRequest(input) + return out, req.Send() +} + +// ListAgentVersionsWithContext is the same as ListAgentVersions with the addition of +// the ability to pass a context and additional request options. +// +// See ListAgentVersions 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 *BedrockAgent) ListAgentVersionsWithContext(ctx aws.Context, input *ListAgentVersionsInput, opts ...request.Option) (*ListAgentVersionsOutput, error) { + req, out := c.ListAgentVersionsRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +// ListAgentVersionsPages iterates over the pages of a ListAgentVersions operation, +// calling the "fn" function with the response data for each page. To stop +// iterating, return false from the fn function. +// +// See ListAgentVersions 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 ListAgentVersions operation. +// pageNum := 0 +// err := client.ListAgentVersionsPages(params, +// func(page *bedrockagent.ListAgentVersionsOutput, lastPage bool) bool { +// pageNum++ +// fmt.Println(page) +// return pageNum <= 3 +// }) +func (c *BedrockAgent) ListAgentVersionsPages(input *ListAgentVersionsInput, fn func(*ListAgentVersionsOutput, bool) bool) error { + return c.ListAgentVersionsPagesWithContext(aws.BackgroundContext(), input, fn) +} + +// ListAgentVersionsPagesWithContext same as ListAgentVersionsPages 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 *BedrockAgent) ListAgentVersionsPagesWithContext(ctx aws.Context, input *ListAgentVersionsInput, fn func(*ListAgentVersionsOutput, bool) bool, opts ...request.Option) error { + p := request.Pagination{ + NewRequest: func() (*request.Request, error) { + var inCpy *ListAgentVersionsInput + if input != nil { + tmp := *input + inCpy = &tmp + } + req, _ := c.ListAgentVersionsRequest(inCpy) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return req, nil + }, + } + + for p.Next() { + if !fn(p.Page().(*ListAgentVersionsOutput), !p.HasNextPage()) { + break + } + } + + return p.Err() +} + +const opListAgents = "ListAgents" + +// ListAgentsRequest generates a "aws/request.Request" representing the +// client's request for the ListAgents 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 ListAgents for more information on using the ListAgents +// 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 ListAgentsRequest method. +// req, resp := client.ListAgentsRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/bedrock-agent-2023-06-05/ListAgents +func (c *BedrockAgent) ListAgentsRequest(input *ListAgentsInput) (req *request.Request, output *ListAgentsOutput) { + op := &request.Operation{ + Name: opListAgents, + HTTPMethod: "POST", + HTTPPath: "/agents/", + Paginator: &request.Paginator{ + InputTokens: []string{"nextToken"}, + OutputTokens: []string{"nextToken"}, + LimitToken: "maxResults", + TruncationToken: "", + }, + } + + if input == nil { + input = &ListAgentsInput{} + } + + output = &ListAgentsOutput{} + req = c.newRequest(op, input, output) + return +} + +// ListAgents API operation for Agents for Amazon Bedrock. +// +// # Lists Agents +// +// 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 Agents for Amazon Bedrock's +// API operation ListAgents for usage and error information. +// +// Returned Error Types: +// +// - ThrottlingException +// This exception is thrown when the number of requests exceeds the limit +// +// - AccessDeniedException +// This exception is thrown when a request is denied per access permissions +// +// - ValidationException +// This exception is thrown when the request's input validation fails +// +// - InternalServerException +// This exception is thrown if there was an unexpected error during processing +// of request +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/bedrock-agent-2023-06-05/ListAgents +func (c *BedrockAgent) ListAgents(input *ListAgentsInput) (*ListAgentsOutput, error) { + req, out := c.ListAgentsRequest(input) + return out, req.Send() +} + +// ListAgentsWithContext is the same as ListAgents with the addition of +// the ability to pass a context and additional request options. +// +// See ListAgents 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 *BedrockAgent) ListAgentsWithContext(ctx aws.Context, input *ListAgentsInput, opts ...request.Option) (*ListAgentsOutput, error) { + req, out := c.ListAgentsRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +// ListAgentsPages iterates over the pages of a ListAgents operation, +// calling the "fn" function with the response data for each page. To stop +// iterating, return false from the fn function. +// +// See ListAgents 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 ListAgents operation. +// pageNum := 0 +// err := client.ListAgentsPages(params, +// func(page *bedrockagent.ListAgentsOutput, lastPage bool) bool { +// pageNum++ +// fmt.Println(page) +// return pageNum <= 3 +// }) +func (c *BedrockAgent) ListAgentsPages(input *ListAgentsInput, fn func(*ListAgentsOutput, bool) bool) error { + return c.ListAgentsPagesWithContext(aws.BackgroundContext(), input, fn) +} + +// ListAgentsPagesWithContext same as ListAgentsPages 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 *BedrockAgent) ListAgentsPagesWithContext(ctx aws.Context, input *ListAgentsInput, fn func(*ListAgentsOutput, bool) bool, opts ...request.Option) error { + p := request.Pagination{ + NewRequest: func() (*request.Request, error) { + var inCpy *ListAgentsInput + if input != nil { + tmp := *input + inCpy = &tmp + } + req, _ := c.ListAgentsRequest(inCpy) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return req, nil + }, + } + + for p.Next() { + if !fn(p.Page().(*ListAgentsOutput), !p.HasNextPage()) { + break + } + } + + return p.Err() +} + +const opListDataSources = "ListDataSources" + +// ListDataSourcesRequest generates a "aws/request.Request" representing the +// client's request for the ListDataSources 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 ListDataSources for more information on using the ListDataSources +// 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 ListDataSourcesRequest method. +// req, resp := client.ListDataSourcesRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/bedrock-agent-2023-06-05/ListDataSources +func (c *BedrockAgent) ListDataSourcesRequest(input *ListDataSourcesInput) (req *request.Request, output *ListDataSourcesOutput) { + op := &request.Operation{ + Name: opListDataSources, + HTTPMethod: "POST", + HTTPPath: "/knowledgebases/{knowledgeBaseId}/datasources/", + Paginator: &request.Paginator{ + InputTokens: []string{"nextToken"}, + OutputTokens: []string{"nextToken"}, + LimitToken: "maxResults", + TruncationToken: "", + }, + } + + if input == nil { + input = &ListDataSourcesInput{} + } + + output = &ListDataSourcesOutput{} + req = c.newRequest(op, input, output) + return +} + +// ListDataSources API operation for Agents for Amazon Bedrock. +// +// # List data sources +// +// 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 Agents for Amazon Bedrock's +// API operation ListDataSources for usage and error information. +// +// Returned Error Types: +// +// - ThrottlingException +// This exception is thrown when the number of requests exceeds the limit +// +// - AccessDeniedException +// This exception is thrown when a request is denied per access permissions +// +// - ValidationException +// This exception is thrown when the request's input validation fails +// +// - InternalServerException +// This exception is thrown if there was an unexpected error during processing +// of request +// +// - ResourceNotFoundException +// This exception is thrown when a resource referenced by the operation does +// not exist +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/bedrock-agent-2023-06-05/ListDataSources +func (c *BedrockAgent) ListDataSources(input *ListDataSourcesInput) (*ListDataSourcesOutput, error) { + req, out := c.ListDataSourcesRequest(input) + return out, req.Send() +} + +// ListDataSourcesWithContext is the same as ListDataSources with the addition of +// the ability to pass a context and additional request options. +// +// See ListDataSources 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 *BedrockAgent) ListDataSourcesWithContext(ctx aws.Context, input *ListDataSourcesInput, opts ...request.Option) (*ListDataSourcesOutput, error) { + req, out := c.ListDataSourcesRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +// ListDataSourcesPages iterates over the pages of a ListDataSources operation, +// calling the "fn" function with the response data for each page. To stop +// iterating, return false from the fn function. +// +// See ListDataSources 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 ListDataSources operation. +// pageNum := 0 +// err := client.ListDataSourcesPages(params, +// func(page *bedrockagent.ListDataSourcesOutput, lastPage bool) bool { +// pageNum++ +// fmt.Println(page) +// return pageNum <= 3 +// }) +func (c *BedrockAgent) ListDataSourcesPages(input *ListDataSourcesInput, fn func(*ListDataSourcesOutput, bool) bool) error { + return c.ListDataSourcesPagesWithContext(aws.BackgroundContext(), input, fn) +} + +// ListDataSourcesPagesWithContext same as ListDataSourcesPages 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 *BedrockAgent) ListDataSourcesPagesWithContext(ctx aws.Context, input *ListDataSourcesInput, fn func(*ListDataSourcesOutput, bool) bool, opts ...request.Option) error { + p := request.Pagination{ + NewRequest: func() (*request.Request, error) { + var inCpy *ListDataSourcesInput + if input != nil { + tmp := *input + inCpy = &tmp + } + req, _ := c.ListDataSourcesRequest(inCpy) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return req, nil + }, + } + + for p.Next() { + if !fn(p.Page().(*ListDataSourcesOutput), !p.HasNextPage()) { + break + } + } + + return p.Err() +} + +const opListIngestionJobs = "ListIngestionJobs" + +// ListIngestionJobsRequest generates a "aws/request.Request" representing the +// client's request for the ListIngestionJobs 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 ListIngestionJobs for more information on using the ListIngestionJobs +// 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 ListIngestionJobsRequest method. +// req, resp := client.ListIngestionJobsRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/bedrock-agent-2023-06-05/ListIngestionJobs +func (c *BedrockAgent) ListIngestionJobsRequest(input *ListIngestionJobsInput) (req *request.Request, output *ListIngestionJobsOutput) { + op := &request.Operation{ + Name: opListIngestionJobs, + HTTPMethod: "POST", + HTTPPath: "/knowledgebases/{knowledgeBaseId}/datasources/{dataSourceId}/ingestionjobs/", + Paginator: &request.Paginator{ + InputTokens: []string{"nextToken"}, + OutputTokens: []string{"nextToken"}, + LimitToken: "maxResults", + TruncationToken: "", + }, + } + + if input == nil { + input = &ListIngestionJobsInput{} + } + + output = &ListIngestionJobsOutput{} + req = c.newRequest(op, input, output) + return +} + +// ListIngestionJobs API operation for Agents for Amazon Bedrock. +// +// # List ingestion 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 Agents for Amazon Bedrock's +// API operation ListIngestionJobs for usage and error information. +// +// Returned Error Types: +// +// - ThrottlingException +// This exception is thrown when the number of requests exceeds the limit +// +// - AccessDeniedException +// This exception is thrown when a request is denied per access permissions +// +// - ValidationException +// This exception is thrown when the request's input validation fails +// +// - InternalServerException +// This exception is thrown if there was an unexpected error during processing +// of request +// +// - ResourceNotFoundException +// This exception is thrown when a resource referenced by the operation does +// not exist +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/bedrock-agent-2023-06-05/ListIngestionJobs +func (c *BedrockAgent) ListIngestionJobs(input *ListIngestionJobsInput) (*ListIngestionJobsOutput, error) { + req, out := c.ListIngestionJobsRequest(input) + return out, req.Send() +} + +// ListIngestionJobsWithContext is the same as ListIngestionJobs with the addition of +// the ability to pass a context and additional request options. +// +// See ListIngestionJobs 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 *BedrockAgent) ListIngestionJobsWithContext(ctx aws.Context, input *ListIngestionJobsInput, opts ...request.Option) (*ListIngestionJobsOutput, error) { + req, out := c.ListIngestionJobsRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +// ListIngestionJobsPages iterates over the pages of a ListIngestionJobs operation, +// calling the "fn" function with the response data for each page. To stop +// iterating, return false from the fn function. +// +// See ListIngestionJobs 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 ListIngestionJobs operation. +// pageNum := 0 +// err := client.ListIngestionJobsPages(params, +// func(page *bedrockagent.ListIngestionJobsOutput, lastPage bool) bool { +// pageNum++ +// fmt.Println(page) +// return pageNum <= 3 +// }) +func (c *BedrockAgent) ListIngestionJobsPages(input *ListIngestionJobsInput, fn func(*ListIngestionJobsOutput, bool) bool) error { + return c.ListIngestionJobsPagesWithContext(aws.BackgroundContext(), input, fn) +} + +// ListIngestionJobsPagesWithContext same as ListIngestionJobsPages 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 *BedrockAgent) ListIngestionJobsPagesWithContext(ctx aws.Context, input *ListIngestionJobsInput, fn func(*ListIngestionJobsOutput, bool) bool, opts ...request.Option) error { + p := request.Pagination{ + NewRequest: func() (*request.Request, error) { + var inCpy *ListIngestionJobsInput + if input != nil { + tmp := *input + inCpy = &tmp + } + req, _ := c.ListIngestionJobsRequest(inCpy) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return req, nil + }, + } + + for p.Next() { + if !fn(p.Page().(*ListIngestionJobsOutput), !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/bedrock-agent-2023-06-05/ListKnowledgeBases +func (c *BedrockAgent) ListKnowledgeBasesRequest(input *ListKnowledgeBasesInput) (req *request.Request, output *ListKnowledgeBasesOutput) { + op := &request.Operation{ + Name: opListKnowledgeBases, + HTTPMethod: "POST", + 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 Agents for Amazon Bedrock. +// +// # List 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 Agents for Amazon Bedrock's +// API operation ListKnowledgeBases for usage and error information. +// +// Returned Error Types: +// +// - ThrottlingException +// This exception is thrown when the number of requests exceeds the limit +// +// - AccessDeniedException +// This exception is thrown when a request is denied per access permissions +// +// - ValidationException +// This exception is thrown when the request's input validation fails +// +// - InternalServerException +// This exception is thrown if there was an unexpected error during processing +// of request +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/bedrock-agent-2023-06-05/ListKnowledgeBases +func (c *BedrockAgent) 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 *BedrockAgent) 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 *bedrockagent.ListKnowledgeBasesOutput, lastPage bool) bool { +// pageNum++ +// fmt.Println(page) +// return pageNum <= 3 +// }) +func (c *BedrockAgent) 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 *BedrockAgent) 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 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/bedrock-agent-2023-06-05/ListTagsForResource +func (c *BedrockAgent) 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 Agents for Amazon Bedrock. +// +// # List tags for a 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 Agents for Amazon Bedrock's +// API operation ListTagsForResource for usage and error information. +// +// Returned Error Types: +// +// - ThrottlingException +// This exception is thrown when the number of requests exceeds the limit +// +// - AccessDeniedException +// This exception is thrown when a request is denied per access permissions +// +// - ValidationException +// This exception is thrown when the request's input validation fails +// +// - InternalServerException +// This exception is thrown if there was an unexpected error during processing +// of request +// +// - ResourceNotFoundException +// This exception is thrown when a resource referenced by the operation does +// not exist +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/bedrock-agent-2023-06-05/ListTagsForResource +func (c *BedrockAgent) 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 *BedrockAgent) 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 opPrepareAgent = "PrepareAgent" + +// PrepareAgentRequest generates a "aws/request.Request" representing the +// client's request for the PrepareAgent 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 PrepareAgent for more information on using the PrepareAgent +// 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 PrepareAgentRequest method. +// req, resp := client.PrepareAgentRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/bedrock-agent-2023-06-05/PrepareAgent +func (c *BedrockAgent) PrepareAgentRequest(input *PrepareAgentInput) (req *request.Request, output *PrepareAgentOutput) { + op := &request.Operation{ + Name: opPrepareAgent, + HTTPMethod: "POST", + HTTPPath: "/agents/{agentId}/", + } + + if input == nil { + input = &PrepareAgentInput{} + } + + output = &PrepareAgentOutput{} + req = c.newRequest(op, input, output) + return +} + +// PrepareAgent API operation for Agents for Amazon Bedrock. +// +// # Prepares an existing Amazon Bedrock Agent to receive runtime requests +// +// 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 Agents for Amazon Bedrock's +// API operation PrepareAgent for usage and error information. +// +// Returned Error Types: +// +// - ThrottlingException +// This exception is thrown when the number of requests exceeds the limit +// +// - AccessDeniedException +// This exception is thrown when a request is denied per access permissions +// +// - ValidationException +// This exception is thrown when the request's input validation fails +// +// - InternalServerException +// This exception is thrown if there was an unexpected error during processing +// of request +// +// - ResourceNotFoundException +// This exception is thrown when a resource referenced by the operation does +// not exist +// +// - ConflictException +// This exception is thrown when there is a conflict performing an operation +// +// - ServiceQuotaExceededException +// This exception is thrown when a request is made beyond the service quota +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/bedrock-agent-2023-06-05/PrepareAgent +func (c *BedrockAgent) PrepareAgent(input *PrepareAgentInput) (*PrepareAgentOutput, error) { + req, out := c.PrepareAgentRequest(input) + return out, req.Send() +} + +// PrepareAgentWithContext is the same as PrepareAgent with the addition of +// the ability to pass a context and additional request options. +// +// See PrepareAgent 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 *BedrockAgent) PrepareAgentWithContext(ctx aws.Context, input *PrepareAgentInput, opts ...request.Option) (*PrepareAgentOutput, error) { + req, out := c.PrepareAgentRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opStartIngestionJob = "StartIngestionJob" + +// StartIngestionJobRequest generates a "aws/request.Request" representing the +// client's request for the StartIngestionJob 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 StartIngestionJob for more information on using the StartIngestionJob +// 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 StartIngestionJobRequest method. +// req, resp := client.StartIngestionJobRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/bedrock-agent-2023-06-05/StartIngestionJob +func (c *BedrockAgent) StartIngestionJobRequest(input *StartIngestionJobInput) (req *request.Request, output *StartIngestionJobOutput) { + op := &request.Operation{ + Name: opStartIngestionJob, + HTTPMethod: "PUT", + HTTPPath: "/knowledgebases/{knowledgeBaseId}/datasources/{dataSourceId}/ingestionjobs/", + } + + if input == nil { + input = &StartIngestionJobInput{} + } + + output = &StartIngestionJobOutput{} + req = c.newRequest(op, input, output) + return +} + +// StartIngestionJob API operation for Agents for Amazon Bedrock. +// +// # Start a new ingestion 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 Agents for Amazon Bedrock's +// API operation StartIngestionJob for usage and error information. +// +// Returned Error Types: +// +// - ThrottlingException +// This exception is thrown when the number of requests exceeds the limit +// +// - AccessDeniedException +// This exception is thrown when a request is denied per access permissions +// +// - ValidationException +// This exception is thrown when the request's input validation fails +// +// - InternalServerException +// This exception is thrown if there was an unexpected error during processing +// of request +// +// - ResourceNotFoundException +// This exception is thrown when a resource referenced by the operation does +// not exist +// +// - ConflictException +// This exception is thrown when there is a conflict performing an operation +// +// - ServiceQuotaExceededException +// This exception is thrown when a request is made beyond the service quota +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/bedrock-agent-2023-06-05/StartIngestionJob +func (c *BedrockAgent) StartIngestionJob(input *StartIngestionJobInput) (*StartIngestionJobOutput, error) { + req, out := c.StartIngestionJobRequest(input) + return out, req.Send() +} + +// StartIngestionJobWithContext is the same as StartIngestionJob with the addition of +// the ability to pass a context and additional request options. +// +// See StartIngestionJob 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 *BedrockAgent) StartIngestionJobWithContext(ctx aws.Context, input *StartIngestionJobInput, opts ...request.Option) (*StartIngestionJobOutput, error) { + req, out := c.StartIngestionJobRequest(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/bedrock-agent-2023-06-05/TagResource +func (c *BedrockAgent) 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 Agents for Amazon Bedrock. +// +// # Tag a 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 Agents for Amazon Bedrock's +// API operation TagResource for usage and error information. +// +// Returned Error Types: +// +// - ThrottlingException +// This exception is thrown when the number of requests exceeds the limit +// +// - AccessDeniedException +// This exception is thrown when a request is denied per access permissions +// +// - ValidationException +// This exception is thrown when the request's input validation fails +// +// - InternalServerException +// This exception is thrown if there was an unexpected error during processing +// of request +// +// - ResourceNotFoundException +// This exception is thrown when a resource referenced by the operation does +// not exist +// +// - ServiceQuotaExceededException +// This exception is thrown when a request is made beyond the service quota +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/bedrock-agent-2023-06-05/TagResource +func (c *BedrockAgent) 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 *BedrockAgent) 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/bedrock-agent-2023-06-05/UntagResource +func (c *BedrockAgent) 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 Agents for Amazon Bedrock. +// +// # Untag a 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 Agents for Amazon Bedrock's +// API operation UntagResource for usage and error information. +// +// Returned Error Types: +// +// - ThrottlingException +// This exception is thrown when the number of requests exceeds the limit +// +// - AccessDeniedException +// This exception is thrown when a request is denied per access permissions +// +// - ValidationException +// This exception is thrown when the request's input validation fails +// +// - InternalServerException +// This exception is thrown if there was an unexpected error during processing +// of request +// +// - ResourceNotFoundException +// This exception is thrown when a resource referenced by the operation does +// not exist +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/bedrock-agent-2023-06-05/UntagResource +func (c *BedrockAgent) 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 *BedrockAgent) 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 opUpdateAgent = "UpdateAgent" + +// UpdateAgentRequest generates a "aws/request.Request" representing the +// client's request for the UpdateAgent 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 UpdateAgent for more information on using the UpdateAgent +// 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 UpdateAgentRequest method. +// req, resp := client.UpdateAgentRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/bedrock-agent-2023-06-05/UpdateAgent +func (c *BedrockAgent) UpdateAgentRequest(input *UpdateAgentInput) (req *request.Request, output *UpdateAgentOutput) { + op := &request.Operation{ + Name: opUpdateAgent, + HTTPMethod: "PUT", + HTTPPath: "/agents/{agentId}/", + } + + if input == nil { + input = &UpdateAgentInput{} + } + + output = &UpdateAgentOutput{} + req = c.newRequest(op, input, output) + return +} + +// UpdateAgent API operation for Agents for Amazon Bedrock. +// +// # Updates an existing Amazon Bedrock Agent +// +// 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 Agents for Amazon Bedrock's +// API operation UpdateAgent for usage and error information. +// +// Returned Error Types: +// +// - ThrottlingException +// This exception is thrown when the number of requests exceeds the limit +// +// - AccessDeniedException +// This exception is thrown when a request is denied per access permissions +// +// - ValidationException +// This exception is thrown when the request's input validation fails +// +// - InternalServerException +// This exception is thrown if there was an unexpected error during processing +// of request +// +// - ResourceNotFoundException +// This exception is thrown when a resource referenced by the operation does +// not exist +// +// - ConflictException +// This exception is thrown when there is a conflict performing an operation +// +// - ServiceQuotaExceededException +// This exception is thrown when a request is made beyond the service quota +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/bedrock-agent-2023-06-05/UpdateAgent +func (c *BedrockAgent) UpdateAgent(input *UpdateAgentInput) (*UpdateAgentOutput, error) { + req, out := c.UpdateAgentRequest(input) + return out, req.Send() +} + +// UpdateAgentWithContext is the same as UpdateAgent with the addition of +// the ability to pass a context and additional request options. +// +// See UpdateAgent 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 *BedrockAgent) UpdateAgentWithContext(ctx aws.Context, input *UpdateAgentInput, opts ...request.Option) (*UpdateAgentOutput, error) { + req, out := c.UpdateAgentRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opUpdateAgentActionGroup = "UpdateAgentActionGroup" + +// UpdateAgentActionGroupRequest generates a "aws/request.Request" representing the +// client's request for the UpdateAgentActionGroup 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 UpdateAgentActionGroup for more information on using the UpdateAgentActionGroup +// 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 UpdateAgentActionGroupRequest method. +// req, resp := client.UpdateAgentActionGroupRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/bedrock-agent-2023-06-05/UpdateAgentActionGroup +func (c *BedrockAgent) UpdateAgentActionGroupRequest(input *UpdateAgentActionGroupInput) (req *request.Request, output *UpdateAgentActionGroupOutput) { + op := &request.Operation{ + Name: opUpdateAgentActionGroup, + HTTPMethod: "PUT", + HTTPPath: "/agents/{agentId}/agentversions/{agentVersion}/actiongroups/{actionGroupId}/", + } + + if input == nil { + input = &UpdateAgentActionGroupInput{} + } + + output = &UpdateAgentActionGroupOutput{} + req = c.newRequest(op, input, output) + return +} + +// UpdateAgentActionGroup API operation for Agents for Amazon Bedrock. +// +// # Updates an existing Action Group for Amazon Bedrock Agent +// +// 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 Agents for Amazon Bedrock's +// API operation UpdateAgentActionGroup for usage and error information. +// +// Returned Error Types: +// +// - ThrottlingException +// This exception is thrown when the number of requests exceeds the limit +// +// - AccessDeniedException +// This exception is thrown when a request is denied per access permissions +// +// - ValidationException +// This exception is thrown when the request's input validation fails +// +// - InternalServerException +// This exception is thrown if there was an unexpected error during processing +// of request +// +// - ResourceNotFoundException +// This exception is thrown when a resource referenced by the operation does +// not exist +// +// - ConflictException +// This exception is thrown when there is a conflict performing an operation +// +// - ServiceQuotaExceededException +// This exception is thrown when a request is made beyond the service quota +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/bedrock-agent-2023-06-05/UpdateAgentActionGroup +func (c *BedrockAgent) UpdateAgentActionGroup(input *UpdateAgentActionGroupInput) (*UpdateAgentActionGroupOutput, error) { + req, out := c.UpdateAgentActionGroupRequest(input) + return out, req.Send() +} + +// UpdateAgentActionGroupWithContext is the same as UpdateAgentActionGroup with the addition of +// the ability to pass a context and additional request options. +// +// See UpdateAgentActionGroup 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 *BedrockAgent) UpdateAgentActionGroupWithContext(ctx aws.Context, input *UpdateAgentActionGroupInput, opts ...request.Option) (*UpdateAgentActionGroupOutput, error) { + req, out := c.UpdateAgentActionGroupRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opUpdateAgentAlias = "UpdateAgentAlias" + +// UpdateAgentAliasRequest generates a "aws/request.Request" representing the +// client's request for the UpdateAgentAlias 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 UpdateAgentAlias for more information on using the UpdateAgentAlias +// 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 UpdateAgentAliasRequest method. +// req, resp := client.UpdateAgentAliasRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/bedrock-agent-2023-06-05/UpdateAgentAlias +func (c *BedrockAgent) UpdateAgentAliasRequest(input *UpdateAgentAliasInput) (req *request.Request, output *UpdateAgentAliasOutput) { + op := &request.Operation{ + Name: opUpdateAgentAlias, + HTTPMethod: "PUT", + HTTPPath: "/agents/{agentId}/agentaliases/{agentAliasId}/", + } + + if input == nil { + input = &UpdateAgentAliasInput{} + } + + output = &UpdateAgentAliasOutput{} + req = c.newRequest(op, input, output) + return +} + +// UpdateAgentAlias API operation for Agents for Amazon Bedrock. +// +// # Updates an existing Alias for an Amazon Bedrock Agent +// +// 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 Agents for Amazon Bedrock's +// API operation UpdateAgentAlias for usage and error information. +// +// Returned Error Types: +// +// - ThrottlingException +// This exception is thrown when the number of requests exceeds the limit +// +// - AccessDeniedException +// This exception is thrown when a request is denied per access permissions +// +// - ValidationException +// This exception is thrown when the request's input validation fails +// +// - InternalServerException +// This exception is thrown if there was an unexpected error during processing +// of request +// +// - ResourceNotFoundException +// This exception is thrown when a resource referenced by the operation does +// not exist +// +// - ConflictException +// This exception is thrown when there is a conflict performing an operation +// +// - ServiceQuotaExceededException +// This exception is thrown when a request is made beyond the service quota +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/bedrock-agent-2023-06-05/UpdateAgentAlias +func (c *BedrockAgent) UpdateAgentAlias(input *UpdateAgentAliasInput) (*UpdateAgentAliasOutput, error) { + req, out := c.UpdateAgentAliasRequest(input) + return out, req.Send() +} + +// UpdateAgentAliasWithContext is the same as UpdateAgentAlias with the addition of +// the ability to pass a context and additional request options. +// +// See UpdateAgentAlias 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 *BedrockAgent) UpdateAgentAliasWithContext(ctx aws.Context, input *UpdateAgentAliasInput, opts ...request.Option) (*UpdateAgentAliasOutput, error) { + req, out := c.UpdateAgentAliasRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opUpdateAgentKnowledgeBase = "UpdateAgentKnowledgeBase" + +// UpdateAgentKnowledgeBaseRequest generates a "aws/request.Request" representing the +// client's request for the UpdateAgentKnowledgeBase 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 UpdateAgentKnowledgeBase for more information on using the UpdateAgentKnowledgeBase +// 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 UpdateAgentKnowledgeBaseRequest method. +// req, resp := client.UpdateAgentKnowledgeBaseRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/bedrock-agent-2023-06-05/UpdateAgentKnowledgeBase +func (c *BedrockAgent) UpdateAgentKnowledgeBaseRequest(input *UpdateAgentKnowledgeBaseInput) (req *request.Request, output *UpdateAgentKnowledgeBaseOutput) { + op := &request.Operation{ + Name: opUpdateAgentKnowledgeBase, + HTTPMethod: "PUT", + HTTPPath: "/agents/{agentId}/agentversions/{agentVersion}/knowledgebases/{knowledgeBaseId}/", + } + + if input == nil { + input = &UpdateAgentKnowledgeBaseInput{} + } + + output = &UpdateAgentKnowledgeBaseOutput{} + req = c.newRequest(op, input, output) + return +} + +// UpdateAgentKnowledgeBase API operation for Agents for Amazon Bedrock. +// +// # Updates an existing Knowledge Base associated to an Amazon Bedrock Agent +// +// 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 Agents for Amazon Bedrock's +// API operation UpdateAgentKnowledgeBase for usage and error information. +// +// Returned Error Types: +// +// - ThrottlingException +// This exception is thrown when the number of requests exceeds the limit +// +// - AccessDeniedException +// This exception is thrown when a request is denied per access permissions +// +// - ValidationException +// This exception is thrown when the request's input validation fails +// +// - InternalServerException +// This exception is thrown if there was an unexpected error during processing +// of request +// +// - ResourceNotFoundException +// This exception is thrown when a resource referenced by the operation does +// not exist +// +// - ConflictException +// This exception is thrown when there is a conflict performing an operation +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/bedrock-agent-2023-06-05/UpdateAgentKnowledgeBase +func (c *BedrockAgent) UpdateAgentKnowledgeBase(input *UpdateAgentKnowledgeBaseInput) (*UpdateAgentKnowledgeBaseOutput, error) { + req, out := c.UpdateAgentKnowledgeBaseRequest(input) + return out, req.Send() +} + +// UpdateAgentKnowledgeBaseWithContext is the same as UpdateAgentKnowledgeBase with the addition of +// the ability to pass a context and additional request options. +// +// See UpdateAgentKnowledgeBase 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 *BedrockAgent) UpdateAgentKnowledgeBaseWithContext(ctx aws.Context, input *UpdateAgentKnowledgeBaseInput, opts ...request.Option) (*UpdateAgentKnowledgeBaseOutput, error) { + req, out := c.UpdateAgentKnowledgeBaseRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opUpdateDataSource = "UpdateDataSource" + +// UpdateDataSourceRequest generates a "aws/request.Request" representing the +// client's request for the UpdateDataSource 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 UpdateDataSource for more information on using the UpdateDataSource +// 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 UpdateDataSourceRequest method. +// req, resp := client.UpdateDataSourceRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/bedrock-agent-2023-06-05/UpdateDataSource +func (c *BedrockAgent) UpdateDataSourceRequest(input *UpdateDataSourceInput) (req *request.Request, output *UpdateDataSourceOutput) { + op := &request.Operation{ + Name: opUpdateDataSource, + HTTPMethod: "PUT", + HTTPPath: "/knowledgebases/{knowledgeBaseId}/datasources/{dataSourceId}", + } + + if input == nil { + input = &UpdateDataSourceInput{} + } + + output = &UpdateDataSourceOutput{} + req = c.newRequest(op, input, output) + return +} + +// UpdateDataSource API operation for Agents for Amazon Bedrock. +// +// # Update an existing data source +// +// 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 Agents for Amazon Bedrock's +// API operation UpdateDataSource for usage and error information. +// +// Returned Error Types: +// +// - ThrottlingException +// This exception is thrown when the number of requests exceeds the limit +// +// - AccessDeniedException +// This exception is thrown when a request is denied per access permissions +// +// - ValidationException +// This exception is thrown when the request's input validation fails +// +// - InternalServerException +// This exception is thrown if there was an unexpected error during processing +// of request +// +// - ResourceNotFoundException +// This exception is thrown when a resource referenced by the operation does +// not exist +// +// - ConflictException +// This exception is thrown when there is a conflict performing an operation +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/bedrock-agent-2023-06-05/UpdateDataSource +func (c *BedrockAgent) UpdateDataSource(input *UpdateDataSourceInput) (*UpdateDataSourceOutput, error) { + req, out := c.UpdateDataSourceRequest(input) + return out, req.Send() +} + +// UpdateDataSourceWithContext is the same as UpdateDataSource with the addition of +// the ability to pass a context and additional request options. +// +// See UpdateDataSource 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 *BedrockAgent) UpdateDataSourceWithContext(ctx aws.Context, input *UpdateDataSourceInput, opts ...request.Option) (*UpdateDataSourceOutput, error) { + req, out := c.UpdateDataSourceRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opUpdateKnowledgeBase = "UpdateKnowledgeBase" + +// UpdateKnowledgeBaseRequest generates a "aws/request.Request" representing the +// client's request for the UpdateKnowledgeBase 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 UpdateKnowledgeBase for more information on using the UpdateKnowledgeBase +// 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 UpdateKnowledgeBaseRequest method. +// req, resp := client.UpdateKnowledgeBaseRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/bedrock-agent-2023-06-05/UpdateKnowledgeBase +func (c *BedrockAgent) UpdateKnowledgeBaseRequest(input *UpdateKnowledgeBaseInput) (req *request.Request, output *UpdateKnowledgeBaseOutput) { + op := &request.Operation{ + Name: opUpdateKnowledgeBase, + HTTPMethod: "PUT", + HTTPPath: "/knowledgebases/{knowledgeBaseId}", + } + + if input == nil { + input = &UpdateKnowledgeBaseInput{} + } + + output = &UpdateKnowledgeBaseOutput{} + req = c.newRequest(op, input, output) + return +} + +// UpdateKnowledgeBase API operation for Agents for Amazon Bedrock. +// +// # Update an existing 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 Agents for Amazon Bedrock's +// API operation UpdateKnowledgeBase for usage and error information. +// +// Returned Error Types: +// +// - ThrottlingException +// This exception is thrown when the number of requests exceeds the limit +// +// - AccessDeniedException +// This exception is thrown when a request is denied per access permissions +// +// - ValidationException +// This exception is thrown when the request's input validation fails +// +// - InternalServerException +// This exception is thrown if there was an unexpected error during processing +// of request +// +// - ResourceNotFoundException +// This exception is thrown when a resource referenced by the operation does +// not exist +// +// - ConflictException +// This exception is thrown when there is a conflict performing an operation +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/bedrock-agent-2023-06-05/UpdateKnowledgeBase +func (c *BedrockAgent) UpdateKnowledgeBase(input *UpdateKnowledgeBaseInput) (*UpdateKnowledgeBaseOutput, error) { + req, out := c.UpdateKnowledgeBaseRequest(input) + return out, req.Send() +} + +// UpdateKnowledgeBaseWithContext is the same as UpdateKnowledgeBase with the addition of +// the ability to pass a context and additional request options. +// +// See UpdateKnowledgeBase 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 *BedrockAgent) UpdateKnowledgeBaseWithContext(ctx aws.Context, input *UpdateKnowledgeBaseInput, opts ...request.Option) (*UpdateKnowledgeBaseOutput, error) { + req, out := c.UpdateKnowledgeBaseRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +// Contains information about the API Schema for the Action Group +type APISchema struct { + _ struct{} `type:"structure"` + + // String OpenAPI Payload + // + // Payload is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by APISchema's + // String and GoString methods. + Payload *string `locationName:"payload" type:"string" sensitive:"true"` + + // The identifier for the S3 resource. + S3 *S3Identifier `locationName:"s3" 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 APISchema) 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 APISchema) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *APISchema) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "APISchema"} + if s.S3 != nil { + if err := s.S3.Validate(); err != nil { + invalidParams.AddNested("S3", err.(request.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetPayload sets the Payload field's value. +func (s *APISchema) SetPayload(v string) *APISchema { + s.Payload = &v + return s +} + +// SetS3 sets the S3 field's value. +func (s *APISchema) SetS3(v *S3Identifier) *APISchema { + s.S3 = v + return s +} + +// This exception is thrown when a request is denied per access permissions +type AccessDeniedException struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + + // Non Blank String + 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 +} + +// Type of Executors for an Action Group +type ActionGroupExecutor struct { + _ struct{} `type:"structure"` + + // ARN of a Lambda. + Lambda *string `locationName:"lambda" 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 ActionGroupExecutor) 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 ActionGroupExecutor) GoString() string { + return s.String() +} + +// SetLambda sets the Lambda field's value. +func (s *ActionGroupExecutor) SetLambda(v string) *ActionGroupExecutor { + s.Lambda = &v + return s +} + +// ActionGroup Summary +type ActionGroupSummary struct { + _ struct{} `type:"structure"` + + // Identifier for a resource. + // + // ActionGroupId is a required field + ActionGroupId *string `locationName:"actionGroupId" type:"string" required:"true"` + + // Name for a resource. + // + // ActionGroupName is a required field + ActionGroupName *string `locationName:"actionGroupName" type:"string" required:"true"` + + // State of the action group + // + // ActionGroupState is a required field + ActionGroupState *string `locationName:"actionGroupState" type:"string" required:"true" enum:"ActionGroupState"` + + // Description of the Resource. + Description *string `locationName:"description" min:"1" type:"string"` + + // Time Stamp. + // + // UpdatedAt is a required field + UpdatedAt *time.Time `locationName:"updatedAt" type:"timestamp" timestampFormat:"iso8601" 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 ActionGroupSummary) 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 ActionGroupSummary) GoString() string { + return s.String() +} + +// SetActionGroupId sets the ActionGroupId field's value. +func (s *ActionGroupSummary) SetActionGroupId(v string) *ActionGroupSummary { + s.ActionGroupId = &v + return s +} + +// SetActionGroupName sets the ActionGroupName field's value. +func (s *ActionGroupSummary) SetActionGroupName(v string) *ActionGroupSummary { + s.ActionGroupName = &v + return s +} + +// SetActionGroupState sets the ActionGroupState field's value. +func (s *ActionGroupSummary) SetActionGroupState(v string) *ActionGroupSummary { + s.ActionGroupState = &v + return s +} + +// SetDescription sets the Description field's value. +func (s *ActionGroupSummary) SetDescription(v string) *ActionGroupSummary { + s.Description = &v + return s +} + +// SetUpdatedAt sets the UpdatedAt field's value. +func (s *ActionGroupSummary) SetUpdatedAt(v time.Time) *ActionGroupSummary { + s.UpdatedAt = &v + return s +} + +// Contains the information of an agent +type Agent struct { + _ struct{} `type:"structure"` + + // Arn representation of the Agent. + // + // AgentArn is a required field + AgentArn *string `locationName:"agentArn" type:"string" required:"true"` + + // Identifier for a resource. + // + // AgentId is a required field + AgentId *string `locationName:"agentId" type:"string" required:"true"` + + // Name for a resource. + // + // AgentName is a required field + AgentName *string `locationName:"agentName" type:"string" required:"true"` + + // ARN of a IAM role. + // + // AgentResourceRoleArn is a required field + AgentResourceRoleArn *string `locationName:"agentResourceRoleArn" type:"string" required:"true"` + + // Schema Type for Action APIs. + // + // AgentStatus is a required field + AgentStatus *string `locationName:"agentStatus" type:"string" required:"true" enum:"AgentStatus"` + + // Draft Agent Version. + // + // AgentVersion is a required field + AgentVersion *string `locationName:"agentVersion" min:"5" type:"string" required:"true"` + + // Client specified token used for idempotency checks + ClientToken *string `locationName:"clientToken" min:"33" type:"string"` + + // Time Stamp. + // + // CreatedAt is a required field + CreatedAt *time.Time `locationName:"createdAt" type:"timestamp" timestampFormat:"iso8601" required:"true"` + + // A KMS key ARN + CustomerEncryptionKeyArn *string `locationName:"customerEncryptionKeyArn" min:"1" type:"string"` + + // Description of the Resource. + Description *string `locationName:"description" min:"1" type:"string"` + + // Failure Reasons for Error. + FailureReasons []*string `locationName:"failureReasons" type:"list"` + + // ARN or name of a Bedrock model. + FoundationModel *string `locationName:"foundationModel" min:"1" type:"string"` + + // Max Session Time. + // + // IdleSessionTTLInSeconds is a required field + IdleSessionTTLInSeconds *int64 `locationName:"idleSessionTTLInSeconds" min:"60" type:"integer" required:"true"` + + // Instruction for the agent. + // + // Instruction is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by Agent's + // String and GoString methods. + Instruction *string `locationName:"instruction" min:"40" type:"string" sensitive:"true"` + + // Time Stamp. + PreparedAt *time.Time `locationName:"preparedAt" type:"timestamp" timestampFormat:"iso8601"` + + // Configuration for prompt override. + // + // PromptOverrideConfiguration is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by Agent's + // String and GoString methods. + PromptOverrideConfiguration *PromptOverrideConfiguration `locationName:"promptOverrideConfiguration" type:"structure" sensitive:"true"` + + // The recommended actions users can take to resolve an error in failureReasons. + RecommendedActions []*string `locationName:"recommendedActions" type:"list"` + + // Time Stamp. + // + // UpdatedAt is a required field + UpdatedAt *time.Time `locationName:"updatedAt" type:"timestamp" timestampFormat:"iso8601" 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 Agent) 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 Agent) GoString() string { + return s.String() +} + +// SetAgentArn sets the AgentArn field's value. +func (s *Agent) SetAgentArn(v string) *Agent { + s.AgentArn = &v + return s +} + +// SetAgentId sets the AgentId field's value. +func (s *Agent) SetAgentId(v string) *Agent { + s.AgentId = &v + return s +} + +// SetAgentName sets the AgentName field's value. +func (s *Agent) SetAgentName(v string) *Agent { + s.AgentName = &v + return s +} + +// SetAgentResourceRoleArn sets the AgentResourceRoleArn field's value. +func (s *Agent) SetAgentResourceRoleArn(v string) *Agent { + s.AgentResourceRoleArn = &v + return s +} + +// SetAgentStatus sets the AgentStatus field's value. +func (s *Agent) SetAgentStatus(v string) *Agent { + s.AgentStatus = &v + return s +} + +// SetAgentVersion sets the AgentVersion field's value. +func (s *Agent) SetAgentVersion(v string) *Agent { + s.AgentVersion = &v + return s +} + +// SetClientToken sets the ClientToken field's value. +func (s *Agent) SetClientToken(v string) *Agent { + s.ClientToken = &v + return s +} + +// SetCreatedAt sets the CreatedAt field's value. +func (s *Agent) SetCreatedAt(v time.Time) *Agent { + s.CreatedAt = &v + return s +} + +// SetCustomerEncryptionKeyArn sets the CustomerEncryptionKeyArn field's value. +func (s *Agent) SetCustomerEncryptionKeyArn(v string) *Agent { + s.CustomerEncryptionKeyArn = &v + return s +} + +// SetDescription sets the Description field's value. +func (s *Agent) SetDescription(v string) *Agent { + s.Description = &v + return s +} + +// SetFailureReasons sets the FailureReasons field's value. +func (s *Agent) SetFailureReasons(v []*string) *Agent { + s.FailureReasons = v + return s +} + +// SetFoundationModel sets the FoundationModel field's value. +func (s *Agent) SetFoundationModel(v string) *Agent { + s.FoundationModel = &v + return s +} + +// SetIdleSessionTTLInSeconds sets the IdleSessionTTLInSeconds field's value. +func (s *Agent) SetIdleSessionTTLInSeconds(v int64) *Agent { + s.IdleSessionTTLInSeconds = &v + return s +} + +// SetInstruction sets the Instruction field's value. +func (s *Agent) SetInstruction(v string) *Agent { + s.Instruction = &v + return s +} + +// SetPreparedAt sets the PreparedAt field's value. +func (s *Agent) SetPreparedAt(v time.Time) *Agent { + s.PreparedAt = &v + return s +} + +// SetPromptOverrideConfiguration sets the PromptOverrideConfiguration field's value. +func (s *Agent) SetPromptOverrideConfiguration(v *PromptOverrideConfiguration) *Agent { + s.PromptOverrideConfiguration = v + return s +} + +// SetRecommendedActions sets the RecommendedActions field's value. +func (s *Agent) SetRecommendedActions(v []*string) *Agent { + s.RecommendedActions = v + return s +} + +// SetUpdatedAt sets the UpdatedAt field's value. +func (s *Agent) SetUpdatedAt(v time.Time) *Agent { + s.UpdatedAt = &v + return s +} + +// Contains the information of an Agent Action Group +type AgentActionGroup struct { + _ struct{} `type:"structure"` + + // Type of Executors for an Action Group + ActionGroupExecutor *ActionGroupExecutor `locationName:"actionGroupExecutor" type:"structure"` + + // Identifier for a resource. + // + // ActionGroupId is a required field + ActionGroupId *string `locationName:"actionGroupId" type:"string" required:"true"` + + // Name for a resource. + // + // ActionGroupName is a required field + ActionGroupName *string `locationName:"actionGroupName" type:"string" required:"true"` + + // State of the action group + // + // ActionGroupState is a required field + ActionGroupState *string `locationName:"actionGroupState" type:"string" required:"true" enum:"ActionGroupState"` + + // Identifier for a resource. + // + // AgentId is a required field + AgentId *string `locationName:"agentId" type:"string" required:"true"` + + // Agent Version. + // + // AgentVersion is a required field + AgentVersion *string `locationName:"agentVersion" min:"1" type:"string" required:"true"` + + // Contains information about the API Schema for the Action Group + ApiSchema *APISchema `locationName:"apiSchema" type:"structure"` + + // Client specified token used for idempotency checks + ClientToken *string `locationName:"clientToken" min:"33" type:"string"` + + // Time Stamp. + // + // CreatedAt is a required field + CreatedAt *time.Time `locationName:"createdAt" type:"timestamp" timestampFormat:"iso8601" required:"true"` + + // Description of the Resource. + Description *string `locationName:"description" min:"1" type:"string"` + + // Action Group Signature for a BuiltIn Action + ParentActionSignature *string `locationName:"parentActionSignature" type:"string" enum:"ActionGroupSignature"` + + // Time Stamp. + // + // UpdatedAt is a required field + UpdatedAt *time.Time `locationName:"updatedAt" type:"timestamp" timestampFormat:"iso8601" 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 AgentActionGroup) 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 AgentActionGroup) GoString() string { + return s.String() +} + +// SetActionGroupExecutor sets the ActionGroupExecutor field's value. +func (s *AgentActionGroup) SetActionGroupExecutor(v *ActionGroupExecutor) *AgentActionGroup { + s.ActionGroupExecutor = v + return s +} + +// SetActionGroupId sets the ActionGroupId field's value. +func (s *AgentActionGroup) SetActionGroupId(v string) *AgentActionGroup { + s.ActionGroupId = &v + return s +} + +// SetActionGroupName sets the ActionGroupName field's value. +func (s *AgentActionGroup) SetActionGroupName(v string) *AgentActionGroup { + s.ActionGroupName = &v + return s +} + +// SetActionGroupState sets the ActionGroupState field's value. +func (s *AgentActionGroup) SetActionGroupState(v string) *AgentActionGroup { + s.ActionGroupState = &v + return s +} + +// SetAgentId sets the AgentId field's value. +func (s *AgentActionGroup) SetAgentId(v string) *AgentActionGroup { + s.AgentId = &v + return s +} + +// SetAgentVersion sets the AgentVersion field's value. +func (s *AgentActionGroup) SetAgentVersion(v string) *AgentActionGroup { + s.AgentVersion = &v + return s +} + +// SetApiSchema sets the ApiSchema field's value. +func (s *AgentActionGroup) SetApiSchema(v *APISchema) *AgentActionGroup { + s.ApiSchema = v + return s +} + +// SetClientToken sets the ClientToken field's value. +func (s *AgentActionGroup) SetClientToken(v string) *AgentActionGroup { + s.ClientToken = &v + return s +} + +// SetCreatedAt sets the CreatedAt field's value. +func (s *AgentActionGroup) SetCreatedAt(v time.Time) *AgentActionGroup { + s.CreatedAt = &v + return s +} + +// SetDescription sets the Description field's value. +func (s *AgentActionGroup) SetDescription(v string) *AgentActionGroup { + s.Description = &v + return s +} + +// SetParentActionSignature sets the ParentActionSignature field's value. +func (s *AgentActionGroup) SetParentActionSignature(v string) *AgentActionGroup { + s.ParentActionSignature = &v + return s +} + +// SetUpdatedAt sets the UpdatedAt field's value. +func (s *AgentActionGroup) SetUpdatedAt(v time.Time) *AgentActionGroup { + s.UpdatedAt = &v + return s +} + +// Contains the information of an agent alias +type AgentAlias struct { + _ struct{} `type:"structure"` + + // Arn representation of the Agent Alias. + // + // AgentAliasArn is a required field + AgentAliasArn *string `locationName:"agentAliasArn" type:"string" required:"true"` + + // The list of history events for an alias for an Agent. + AgentAliasHistoryEvents []*AgentAliasHistoryEvent `locationName:"agentAliasHistoryEvents" type:"list"` + + // Id for an Agent Alias generated at the server side. + // + // AgentAliasId is a required field + AgentAliasId *string `locationName:"agentAliasId" min:"10" type:"string" required:"true"` + + // Name for a resource. + // + // AgentAliasName is a required field + AgentAliasName *string `locationName:"agentAliasName" type:"string" required:"true"` + + // The statuses an Agent Alias can be in. + // + // AgentAliasStatus is a required field + AgentAliasStatus *string `locationName:"agentAliasStatus" type:"string" required:"true" enum:"AgentAliasStatus"` + + // Identifier for a resource. + // + // AgentId is a required field + AgentId *string `locationName:"agentId" type:"string" required:"true"` + + // Client specified token used for idempotency checks + ClientToken *string `locationName:"clientToken" min:"33" type:"string"` + + // Time Stamp. + // + // CreatedAt is a required field + CreatedAt *time.Time `locationName:"createdAt" type:"timestamp" timestampFormat:"iso8601" required:"true"` + + // Description of the Resource. + Description *string `locationName:"description" min:"1" type:"string"` + + // Routing configuration for an Agent alias. + // + // RoutingConfiguration is a required field + RoutingConfiguration []*AgentAliasRoutingConfigurationListItem `locationName:"routingConfiguration" type:"list" required:"true"` + + // Time Stamp. + // + // UpdatedAt is a required field + UpdatedAt *time.Time `locationName:"updatedAt" type:"timestamp" timestampFormat:"iso8601" 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 AgentAlias) 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 AgentAlias) GoString() string { + return s.String() +} + +// SetAgentAliasArn sets the AgentAliasArn field's value. +func (s *AgentAlias) SetAgentAliasArn(v string) *AgentAlias { + s.AgentAliasArn = &v + return s +} + +// SetAgentAliasHistoryEvents sets the AgentAliasHistoryEvents field's value. +func (s *AgentAlias) SetAgentAliasHistoryEvents(v []*AgentAliasHistoryEvent) *AgentAlias { + s.AgentAliasHistoryEvents = v + return s +} + +// SetAgentAliasId sets the AgentAliasId field's value. +func (s *AgentAlias) SetAgentAliasId(v string) *AgentAlias { + s.AgentAliasId = &v + return s +} + +// SetAgentAliasName sets the AgentAliasName field's value. +func (s *AgentAlias) SetAgentAliasName(v string) *AgentAlias { + s.AgentAliasName = &v + return s +} + +// SetAgentAliasStatus sets the AgentAliasStatus field's value. +func (s *AgentAlias) SetAgentAliasStatus(v string) *AgentAlias { + s.AgentAliasStatus = &v + return s +} + +// SetAgentId sets the AgentId field's value. +func (s *AgentAlias) SetAgentId(v string) *AgentAlias { + s.AgentId = &v + return s +} + +// SetClientToken sets the ClientToken field's value. +func (s *AgentAlias) SetClientToken(v string) *AgentAlias { + s.ClientToken = &v + return s +} + +// SetCreatedAt sets the CreatedAt field's value. +func (s *AgentAlias) SetCreatedAt(v time.Time) *AgentAlias { + s.CreatedAt = &v + return s +} + +// SetDescription sets the Description field's value. +func (s *AgentAlias) SetDescription(v string) *AgentAlias { + s.Description = &v + return s +} + +// SetRoutingConfiguration sets the RoutingConfiguration field's value. +func (s *AgentAlias) SetRoutingConfiguration(v []*AgentAliasRoutingConfigurationListItem) *AgentAlias { + s.RoutingConfiguration = v + return s +} + +// SetUpdatedAt sets the UpdatedAt field's value. +func (s *AgentAlias) SetUpdatedAt(v time.Time) *AgentAlias { + s.UpdatedAt = &v + return s +} + +// History event for an alias for an Agent. +type AgentAliasHistoryEvent struct { + _ struct{} `type:"structure"` + + // Time Stamp. + EndDate *time.Time `locationName:"endDate" type:"timestamp" timestampFormat:"iso8601"` + + // Routing configuration for an Agent alias. + RoutingConfiguration []*AgentAliasRoutingConfigurationListItem `locationName:"routingConfiguration" type:"list"` + + // Time Stamp. + StartDate *time.Time `locationName:"startDate" type:"timestamp" timestampFormat:"iso8601"` +} + +// 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 AgentAliasHistoryEvent) 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 AgentAliasHistoryEvent) GoString() string { + return s.String() +} + +// SetEndDate sets the EndDate field's value. +func (s *AgentAliasHistoryEvent) SetEndDate(v time.Time) *AgentAliasHistoryEvent { + s.EndDate = &v + return s +} + +// SetRoutingConfiguration sets the RoutingConfiguration field's value. +func (s *AgentAliasHistoryEvent) SetRoutingConfiguration(v []*AgentAliasRoutingConfigurationListItem) *AgentAliasHistoryEvent { + s.RoutingConfiguration = v + return s +} + +// SetStartDate sets the StartDate field's value. +func (s *AgentAliasHistoryEvent) SetStartDate(v time.Time) *AgentAliasHistoryEvent { + s.StartDate = &v + return s +} + +// Details about the routing configuration for an Agent alias. +type AgentAliasRoutingConfigurationListItem struct { + _ struct{} `type:"structure"` + + // Agent Version. + // + // AgentVersion is a required field + AgentVersion *string `locationName:"agentVersion" 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 AgentAliasRoutingConfigurationListItem) 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 AgentAliasRoutingConfigurationListItem) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *AgentAliasRoutingConfigurationListItem) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "AgentAliasRoutingConfigurationListItem"} + if s.AgentVersion == nil { + invalidParams.Add(request.NewErrParamRequired("AgentVersion")) + } + if s.AgentVersion != nil && len(*s.AgentVersion) < 1 { + invalidParams.Add(request.NewErrParamMinLen("AgentVersion", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAgentVersion sets the AgentVersion field's value. +func (s *AgentAliasRoutingConfigurationListItem) SetAgentVersion(v string) *AgentAliasRoutingConfigurationListItem { + s.AgentVersion = &v + return s +} + +// Summary of an alias for an Agent. +type AgentAliasSummary struct { + _ struct{} `type:"structure"` + + // Id for an Agent Alias generated at the server side. + // + // AgentAliasId is a required field + AgentAliasId *string `locationName:"agentAliasId" min:"10" type:"string" required:"true"` + + // Name for a resource. + // + // AgentAliasName is a required field + AgentAliasName *string `locationName:"agentAliasName" type:"string" required:"true"` + + // The statuses an Agent Alias can be in. + // + // AgentAliasStatus is a required field + AgentAliasStatus *string `locationName:"agentAliasStatus" type:"string" required:"true" enum:"AgentAliasStatus"` + + // Time Stamp. + // + // CreatedAt is a required field + CreatedAt *time.Time `locationName:"createdAt" type:"timestamp" timestampFormat:"iso8601" required:"true"` + + // Description of the Resource. + Description *string `locationName:"description" min:"1" type:"string"` + + // Routing configuration for an Agent alias. + RoutingConfiguration []*AgentAliasRoutingConfigurationListItem `locationName:"routingConfiguration" type:"list"` + + // Time Stamp. + // + // UpdatedAt is a required field + UpdatedAt *time.Time `locationName:"updatedAt" type:"timestamp" timestampFormat:"iso8601" 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 AgentAliasSummary) 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 AgentAliasSummary) GoString() string { + return s.String() +} + +// SetAgentAliasId sets the AgentAliasId field's value. +func (s *AgentAliasSummary) SetAgentAliasId(v string) *AgentAliasSummary { + s.AgentAliasId = &v + return s +} + +// SetAgentAliasName sets the AgentAliasName field's value. +func (s *AgentAliasSummary) SetAgentAliasName(v string) *AgentAliasSummary { + s.AgentAliasName = &v + return s +} + +// SetAgentAliasStatus sets the AgentAliasStatus field's value. +func (s *AgentAliasSummary) SetAgentAliasStatus(v string) *AgentAliasSummary { + s.AgentAliasStatus = &v + return s +} + +// SetCreatedAt sets the CreatedAt field's value. +func (s *AgentAliasSummary) SetCreatedAt(v time.Time) *AgentAliasSummary { + s.CreatedAt = &v + return s +} + +// SetDescription sets the Description field's value. +func (s *AgentAliasSummary) SetDescription(v string) *AgentAliasSummary { + s.Description = &v + return s +} + +// SetRoutingConfiguration sets the RoutingConfiguration field's value. +func (s *AgentAliasSummary) SetRoutingConfiguration(v []*AgentAliasRoutingConfigurationListItem) *AgentAliasSummary { + s.RoutingConfiguration = v + return s +} + +// SetUpdatedAt sets the UpdatedAt field's value. +func (s *AgentAliasSummary) SetUpdatedAt(v time.Time) *AgentAliasSummary { + s.UpdatedAt = &v + return s +} + +// Contains the information of an Agent Knowledge Base. +type AgentKnowledgeBase struct { + _ struct{} `type:"structure"` + + // Identifier for a resource. + // + // AgentId is a required field + AgentId *string `locationName:"agentId" type:"string" required:"true"` + + // Agent Version. + // + // AgentVersion is a required field + AgentVersion *string `locationName:"agentVersion" min:"1" type:"string" required:"true"` + + // Time Stamp. + // + // CreatedAt is a required field + CreatedAt *time.Time `locationName:"createdAt" type:"timestamp" timestampFormat:"iso8601" required:"true"` + + // Description of the Resource. + // + // Description is a required field + Description *string `locationName:"description" min:"1" type:"string" required:"true"` + + // Identifier for a resource. + // + // KnowledgeBaseId is a required field + KnowledgeBaseId *string `locationName:"knowledgeBaseId" type:"string" required:"true"` + + // State of the knowledge base; whether it is enabled or disabled + // + // KnowledgeBaseState is a required field + KnowledgeBaseState *string `locationName:"knowledgeBaseState" type:"string" required:"true" enum:"KnowledgeBaseState"` + + // Time Stamp. + // + // UpdatedAt is a required field + UpdatedAt *time.Time `locationName:"updatedAt" type:"timestamp" timestampFormat:"iso8601" 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 AgentKnowledgeBase) 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 AgentKnowledgeBase) GoString() string { + return s.String() +} + +// SetAgentId sets the AgentId field's value. +func (s *AgentKnowledgeBase) SetAgentId(v string) *AgentKnowledgeBase { + s.AgentId = &v + return s +} + +// SetAgentVersion sets the AgentVersion field's value. +func (s *AgentKnowledgeBase) SetAgentVersion(v string) *AgentKnowledgeBase { + s.AgentVersion = &v + return s +} + +// SetCreatedAt sets the CreatedAt field's value. +func (s *AgentKnowledgeBase) SetCreatedAt(v time.Time) *AgentKnowledgeBase { + s.CreatedAt = &v + return s +} + +// SetDescription sets the Description field's value. +func (s *AgentKnowledgeBase) SetDescription(v string) *AgentKnowledgeBase { + s.Description = &v + return s +} + +// SetKnowledgeBaseId sets the KnowledgeBaseId field's value. +func (s *AgentKnowledgeBase) SetKnowledgeBaseId(v string) *AgentKnowledgeBase { + s.KnowledgeBaseId = &v + return s +} + +// SetKnowledgeBaseState sets the KnowledgeBaseState field's value. +func (s *AgentKnowledgeBase) SetKnowledgeBaseState(v string) *AgentKnowledgeBase { + s.KnowledgeBaseState = &v + return s +} + +// SetUpdatedAt sets the UpdatedAt field's value. +func (s *AgentKnowledgeBase) SetUpdatedAt(v time.Time) *AgentKnowledgeBase { + s.UpdatedAt = &v + return s +} + +// Agent Knowledge Base Summary +type AgentKnowledgeBaseSummary struct { + _ struct{} `type:"structure"` + + // Description of the Resource. + Description *string `locationName:"description" min:"1" type:"string"` + + // Identifier for a resource. + // + // KnowledgeBaseId is a required field + KnowledgeBaseId *string `locationName:"knowledgeBaseId" type:"string" required:"true"` + + // State of the knowledge base; whether it is enabled or disabled + // + // KnowledgeBaseState is a required field + KnowledgeBaseState *string `locationName:"knowledgeBaseState" type:"string" required:"true" enum:"KnowledgeBaseState"` + + // Time Stamp. + // + // UpdatedAt is a required field + UpdatedAt *time.Time `locationName:"updatedAt" type:"timestamp" timestampFormat:"iso8601" 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 AgentKnowledgeBaseSummary) 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 AgentKnowledgeBaseSummary) GoString() string { + return s.String() +} + +// SetDescription sets the Description field's value. +func (s *AgentKnowledgeBaseSummary) SetDescription(v string) *AgentKnowledgeBaseSummary { + s.Description = &v + return s +} + +// SetKnowledgeBaseId sets the KnowledgeBaseId field's value. +func (s *AgentKnowledgeBaseSummary) SetKnowledgeBaseId(v string) *AgentKnowledgeBaseSummary { + s.KnowledgeBaseId = &v + return s +} + +// SetKnowledgeBaseState sets the KnowledgeBaseState field's value. +func (s *AgentKnowledgeBaseSummary) SetKnowledgeBaseState(v string) *AgentKnowledgeBaseSummary { + s.KnowledgeBaseState = &v + return s +} + +// SetUpdatedAt sets the UpdatedAt field's value. +func (s *AgentKnowledgeBaseSummary) SetUpdatedAt(v time.Time) *AgentKnowledgeBaseSummary { + s.UpdatedAt = &v + return s +} + +// Summary of Agent. +type AgentSummary struct { + _ struct{} `type:"structure"` + + // Identifier for a resource. + // + // AgentId is a required field + AgentId *string `locationName:"agentId" type:"string" required:"true"` + + // Name for a resource. + // + // AgentName is a required field + AgentName *string `locationName:"agentName" type:"string" required:"true"` + + // Schema Type for Action APIs. + // + // AgentStatus is a required field + AgentStatus *string `locationName:"agentStatus" type:"string" required:"true" enum:"AgentStatus"` + + // Description of the Resource. + Description *string `locationName:"description" min:"1" type:"string"` + + // Agent Version. + LatestAgentVersion *string `locationName:"latestAgentVersion" min:"1" type:"string"` + + // Time Stamp. + // + // UpdatedAt is a required field + UpdatedAt *time.Time `locationName:"updatedAt" type:"timestamp" timestampFormat:"iso8601" 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 AgentSummary) 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 AgentSummary) GoString() string { + return s.String() +} + +// SetAgentId sets the AgentId field's value. +func (s *AgentSummary) SetAgentId(v string) *AgentSummary { + s.AgentId = &v + return s +} + +// SetAgentName sets the AgentName field's value. +func (s *AgentSummary) SetAgentName(v string) *AgentSummary { + s.AgentName = &v + return s +} + +// SetAgentStatus sets the AgentStatus field's value. +func (s *AgentSummary) SetAgentStatus(v string) *AgentSummary { + s.AgentStatus = &v + return s +} + +// SetDescription sets the Description field's value. +func (s *AgentSummary) SetDescription(v string) *AgentSummary { + s.Description = &v + return s +} + +// SetLatestAgentVersion sets the LatestAgentVersion field's value. +func (s *AgentSummary) SetLatestAgentVersion(v string) *AgentSummary { + s.LatestAgentVersion = &v + return s +} + +// SetUpdatedAt sets the UpdatedAt field's value. +func (s *AgentSummary) SetUpdatedAt(v time.Time) *AgentSummary { + s.UpdatedAt = &v + return s +} + +// Contains the information of an agent version. +type AgentVersion struct { + _ struct{} `type:"structure"` + + // Arn representation of the Agent. + // + // AgentArn is a required field + AgentArn *string `locationName:"agentArn" type:"string" required:"true"` + + // Identifier for a resource. + // + // AgentId is a required field + AgentId *string `locationName:"agentId" type:"string" required:"true"` + + // Name for a resource. + // + // AgentName is a required field + AgentName *string `locationName:"agentName" type:"string" required:"true"` + + // ARN of a IAM role. + // + // AgentResourceRoleArn is a required field + AgentResourceRoleArn *string `locationName:"agentResourceRoleArn" type:"string" required:"true"` + + // Schema Type for Action APIs. + // + // AgentStatus is a required field + AgentStatus *string `locationName:"agentStatus" type:"string" required:"true" enum:"AgentStatus"` + + // Time Stamp. + // + // CreatedAt is a required field + CreatedAt *time.Time `locationName:"createdAt" type:"timestamp" timestampFormat:"iso8601" required:"true"` + + // A KMS key ARN + CustomerEncryptionKeyArn *string `locationName:"customerEncryptionKeyArn" min:"1" type:"string"` + + // Description of the Resource. + Description *string `locationName:"description" min:"1" type:"string"` + + // Failure Reasons for Error. + FailureReasons []*string `locationName:"failureReasons" type:"list"` + + // ARN or name of a Bedrock model. + FoundationModel *string `locationName:"foundationModel" min:"1" type:"string"` + + // Max Session Time. + // + // IdleSessionTTLInSeconds is a required field + IdleSessionTTLInSeconds *int64 `locationName:"idleSessionTTLInSeconds" min:"60" type:"integer" required:"true"` + + // Instruction for the agent. + // + // Instruction is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by AgentVersion's + // String and GoString methods. + Instruction *string `locationName:"instruction" min:"40" type:"string" sensitive:"true"` + + // Configuration for prompt override. + // + // PromptOverrideConfiguration is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by AgentVersion's + // String and GoString methods. + PromptOverrideConfiguration *PromptOverrideConfiguration `locationName:"promptOverrideConfiguration" type:"structure" sensitive:"true"` + + // The recommended actions users can take to resolve an error in failureReasons. + RecommendedActions []*string `locationName:"recommendedActions" type:"list"` + + // Time Stamp. + // + // UpdatedAt is a required field + UpdatedAt *time.Time `locationName:"updatedAt" type:"timestamp" timestampFormat:"iso8601" required:"true"` + + // Numerical Agent Version. + // + // Version is a required field + Version *string `locationName:"version" 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 AgentVersion) 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 AgentVersion) GoString() string { + return s.String() +} + +// SetAgentArn sets the AgentArn field's value. +func (s *AgentVersion) SetAgentArn(v string) *AgentVersion { + s.AgentArn = &v + return s +} + +// SetAgentId sets the AgentId field's value. +func (s *AgentVersion) SetAgentId(v string) *AgentVersion { + s.AgentId = &v + return s +} + +// SetAgentName sets the AgentName field's value. +func (s *AgentVersion) SetAgentName(v string) *AgentVersion { + s.AgentName = &v + return s +} + +// SetAgentResourceRoleArn sets the AgentResourceRoleArn field's value. +func (s *AgentVersion) SetAgentResourceRoleArn(v string) *AgentVersion { + s.AgentResourceRoleArn = &v + return s +} + +// SetAgentStatus sets the AgentStatus field's value. +func (s *AgentVersion) SetAgentStatus(v string) *AgentVersion { + s.AgentStatus = &v + return s +} + +// SetCreatedAt sets the CreatedAt field's value. +func (s *AgentVersion) SetCreatedAt(v time.Time) *AgentVersion { + s.CreatedAt = &v + return s +} + +// SetCustomerEncryptionKeyArn sets the CustomerEncryptionKeyArn field's value. +func (s *AgentVersion) SetCustomerEncryptionKeyArn(v string) *AgentVersion { + s.CustomerEncryptionKeyArn = &v + return s +} + +// SetDescription sets the Description field's value. +func (s *AgentVersion) SetDescription(v string) *AgentVersion { + s.Description = &v + return s +} + +// SetFailureReasons sets the FailureReasons field's value. +func (s *AgentVersion) SetFailureReasons(v []*string) *AgentVersion { + s.FailureReasons = v + return s +} + +// SetFoundationModel sets the FoundationModel field's value. +func (s *AgentVersion) SetFoundationModel(v string) *AgentVersion { + s.FoundationModel = &v + return s +} + +// SetIdleSessionTTLInSeconds sets the IdleSessionTTLInSeconds field's value. +func (s *AgentVersion) SetIdleSessionTTLInSeconds(v int64) *AgentVersion { + s.IdleSessionTTLInSeconds = &v + return s +} + +// SetInstruction sets the Instruction field's value. +func (s *AgentVersion) SetInstruction(v string) *AgentVersion { + s.Instruction = &v + return s +} + +// SetPromptOverrideConfiguration sets the PromptOverrideConfiguration field's value. +func (s *AgentVersion) SetPromptOverrideConfiguration(v *PromptOverrideConfiguration) *AgentVersion { + s.PromptOverrideConfiguration = v + return s +} + +// SetRecommendedActions sets the RecommendedActions field's value. +func (s *AgentVersion) SetRecommendedActions(v []*string) *AgentVersion { + s.RecommendedActions = v + return s +} + +// SetUpdatedAt sets the UpdatedAt field's value. +func (s *AgentVersion) SetUpdatedAt(v time.Time) *AgentVersion { + s.UpdatedAt = &v + return s +} + +// SetVersion sets the Version field's value. +func (s *AgentVersion) SetVersion(v string) *AgentVersion { + s.Version = &v + return s +} + +// Summary of agent version. +type AgentVersionSummary struct { + _ struct{} `type:"structure"` + + // Name for a resource. + // + // AgentName is a required field + AgentName *string `locationName:"agentName" type:"string" required:"true"` + + // Schema Type for Action APIs. + // + // AgentStatus is a required field + AgentStatus *string `locationName:"agentStatus" type:"string" required:"true" enum:"AgentStatus"` + + // Agent Version. + // + // AgentVersion is a required field + AgentVersion *string `locationName:"agentVersion" min:"1" type:"string" required:"true"` + + // Time Stamp. + // + // CreatedAt is a required field + CreatedAt *time.Time `locationName:"createdAt" type:"timestamp" timestampFormat:"iso8601" required:"true"` + + // Description of the Resource. + Description *string `locationName:"description" min:"1" type:"string"` + + // Time Stamp. + // + // UpdatedAt is a required field + UpdatedAt *time.Time `locationName:"updatedAt" type:"timestamp" timestampFormat:"iso8601" 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 AgentVersionSummary) 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 AgentVersionSummary) GoString() string { + return s.String() +} + +// SetAgentName sets the AgentName field's value. +func (s *AgentVersionSummary) SetAgentName(v string) *AgentVersionSummary { + s.AgentName = &v + return s +} + +// SetAgentStatus sets the AgentStatus field's value. +func (s *AgentVersionSummary) SetAgentStatus(v string) *AgentVersionSummary { + s.AgentStatus = &v + return s +} + +// SetAgentVersion sets the AgentVersion field's value. +func (s *AgentVersionSummary) SetAgentVersion(v string) *AgentVersionSummary { + s.AgentVersion = &v + return s +} + +// SetCreatedAt sets the CreatedAt field's value. +func (s *AgentVersionSummary) SetCreatedAt(v time.Time) *AgentVersionSummary { + s.CreatedAt = &v + return s +} + +// SetDescription sets the Description field's value. +func (s *AgentVersionSummary) SetDescription(v string) *AgentVersionSummary { + s.Description = &v + return s +} + +// SetUpdatedAt sets the UpdatedAt field's value. +func (s *AgentVersionSummary) SetUpdatedAt(v time.Time) *AgentVersionSummary { + s.UpdatedAt = &v + return s +} + +// Associate Agent Knowledge Base Request +type AssociateAgentKnowledgeBaseInput struct { + _ struct{} `type:"structure"` + + // Id generated at the server side when an Agent is created + // + // AgentId is a required field + AgentId *string `location:"uri" locationName:"agentId" type:"string" required:"true"` + + // Draft Version of the Agent. + // + // AgentVersion is a required field + AgentVersion *string `location:"uri" locationName:"agentVersion" min:"5" type:"string" required:"true"` + + // Description of the Resource. + // + // Description is a required field + Description *string `locationName:"description" min:"1" type:"string" required:"true"` + + // Identifier for a resource. + // + // KnowledgeBaseId is a required field + KnowledgeBaseId *string `locationName:"knowledgeBaseId" type:"string" required:"true"` + + // State of the knowledge base; whether it is enabled or disabled + KnowledgeBaseState *string `locationName:"knowledgeBaseState" type:"string" enum:"KnowledgeBaseState"` +} + +// 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 AssociateAgentKnowledgeBaseInput) 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 AssociateAgentKnowledgeBaseInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *AssociateAgentKnowledgeBaseInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "AssociateAgentKnowledgeBaseInput"} + if s.AgentId == nil { + invalidParams.Add(request.NewErrParamRequired("AgentId")) + } + if s.AgentId != nil && len(*s.AgentId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("AgentId", 1)) + } + if s.AgentVersion == nil { + invalidParams.Add(request.NewErrParamRequired("AgentVersion")) + } + if s.AgentVersion != nil && len(*s.AgentVersion) < 5 { + invalidParams.Add(request.NewErrParamMinLen("AgentVersion", 5)) + } + if s.Description == nil { + invalidParams.Add(request.NewErrParamRequired("Description")) + } + if s.Description != nil && len(*s.Description) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Description", 1)) + } + if s.KnowledgeBaseId == nil { + invalidParams.Add(request.NewErrParamRequired("KnowledgeBaseId")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAgentId sets the AgentId field's value. +func (s *AssociateAgentKnowledgeBaseInput) SetAgentId(v string) *AssociateAgentKnowledgeBaseInput { + s.AgentId = &v + return s +} + +// SetAgentVersion sets the AgentVersion field's value. +func (s *AssociateAgentKnowledgeBaseInput) SetAgentVersion(v string) *AssociateAgentKnowledgeBaseInput { + s.AgentVersion = &v + return s +} + +// SetDescription sets the Description field's value. +func (s *AssociateAgentKnowledgeBaseInput) SetDescription(v string) *AssociateAgentKnowledgeBaseInput { + s.Description = &v + return s +} + +// SetKnowledgeBaseId sets the KnowledgeBaseId field's value. +func (s *AssociateAgentKnowledgeBaseInput) SetKnowledgeBaseId(v string) *AssociateAgentKnowledgeBaseInput { + s.KnowledgeBaseId = &v + return s +} + +// SetKnowledgeBaseState sets the KnowledgeBaseState field's value. +func (s *AssociateAgentKnowledgeBaseInput) SetKnowledgeBaseState(v string) *AssociateAgentKnowledgeBaseInput { + s.KnowledgeBaseState = &v + return s +} + +// Associate Agent Knowledge Base Response +type AssociateAgentKnowledgeBaseOutput struct { + _ struct{} `type:"structure"` + + // Contains the information of an Agent Knowledge Base. + // + // AgentKnowledgeBase is a required field + AgentKnowledgeBase *AgentKnowledgeBase `locationName:"agentKnowledgeBase" 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 AssociateAgentKnowledgeBaseOutput) 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 AssociateAgentKnowledgeBaseOutput) GoString() string { + return s.String() +} + +// SetAgentKnowledgeBase sets the AgentKnowledgeBase field's value. +func (s *AssociateAgentKnowledgeBaseOutput) SetAgentKnowledgeBase(v *AgentKnowledgeBase) *AssociateAgentKnowledgeBaseOutput { + s.AgentKnowledgeBase = v + return s +} + +// Configures chunking strategy +type ChunkingConfiguration struct { + _ struct{} `type:"structure"` + + // The type of chunking strategy + // + // ChunkingStrategy is a required field + ChunkingStrategy *string `locationName:"chunkingStrategy" type:"string" required:"true" enum:"ChunkingStrategy"` + + // Configures fixed size chunking strategy + FixedSizeChunkingConfiguration *FixedSizeChunkingConfiguration `locationName:"fixedSizeChunkingConfiguration" 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 ChunkingConfiguration) 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 ChunkingConfiguration) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ChunkingConfiguration) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ChunkingConfiguration"} + if s.ChunkingStrategy == nil { + invalidParams.Add(request.NewErrParamRequired("ChunkingStrategy")) + } + if s.FixedSizeChunkingConfiguration != nil { + if err := s.FixedSizeChunkingConfiguration.Validate(); err != nil { + invalidParams.AddNested("FixedSizeChunkingConfiguration", err.(request.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetChunkingStrategy sets the ChunkingStrategy field's value. +func (s *ChunkingConfiguration) SetChunkingStrategy(v string) *ChunkingConfiguration { + s.ChunkingStrategy = &v + return s +} + +// SetFixedSizeChunkingConfiguration sets the FixedSizeChunkingConfiguration field's value. +func (s *ChunkingConfiguration) SetFixedSizeChunkingConfiguration(v *FixedSizeChunkingConfiguration) *ChunkingConfiguration { + s.FixedSizeChunkingConfiguration = v + return s +} + +// This exception is thrown when there is a conflict performing an operation +type ConflictException struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + + // Non Blank String + 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 +} + +// Create Action Group Request +type CreateAgentActionGroupInput struct { + _ struct{} `type:"structure"` + + // Type of Executors for an Action Group + ActionGroupExecutor *ActionGroupExecutor `locationName:"actionGroupExecutor" type:"structure"` + + // Name for a resource. + // + // ActionGroupName is a required field + ActionGroupName *string `locationName:"actionGroupName" type:"string" required:"true"` + + // State of the action group + ActionGroupState *string `locationName:"actionGroupState" type:"string" enum:"ActionGroupState"` + + // Id generated at the server side when an Agent is created + // + // AgentId is a required field + AgentId *string `location:"uri" locationName:"agentId" type:"string" required:"true"` + + // Draft Version of the Agent. + // + // AgentVersion is a required field + AgentVersion *string `location:"uri" locationName:"agentVersion" min:"5" type:"string" required:"true"` + + // Contains information about the API Schema for the Action Group + ApiSchema *APISchema `locationName:"apiSchema" type:"structure"` + + // Client specified token used for idempotency checks + ClientToken *string `locationName:"clientToken" min:"33" type:"string" idempotencyToken:"true"` + + // Description of the Resource. + Description *string `locationName:"description" min:"1" type:"string"` + + // Action Group Signature for a BuiltIn Action + ParentActionGroupSignature *string `locationName:"parentActionGroupSignature" type:"string" enum:"ActionGroupSignature"` +} + +// 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 CreateAgentActionGroupInput) 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 CreateAgentActionGroupInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CreateAgentActionGroupInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "CreateAgentActionGroupInput"} + if s.ActionGroupName == nil { + invalidParams.Add(request.NewErrParamRequired("ActionGroupName")) + } + if s.AgentId == nil { + invalidParams.Add(request.NewErrParamRequired("AgentId")) + } + if s.AgentId != nil && len(*s.AgentId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("AgentId", 1)) + } + if s.AgentVersion == nil { + invalidParams.Add(request.NewErrParamRequired("AgentVersion")) + } + if s.AgentVersion != nil && len(*s.AgentVersion) < 5 { + invalidParams.Add(request.NewErrParamMinLen("AgentVersion", 5)) + } + if s.ClientToken != nil && len(*s.ClientToken) < 33 { + invalidParams.Add(request.NewErrParamMinLen("ClientToken", 33)) + } + if s.Description != nil && len(*s.Description) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Description", 1)) + } + if s.ApiSchema != nil { + if err := s.ApiSchema.Validate(); err != nil { + invalidParams.AddNested("ApiSchema", err.(request.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetActionGroupExecutor sets the ActionGroupExecutor field's value. +func (s *CreateAgentActionGroupInput) SetActionGroupExecutor(v *ActionGroupExecutor) *CreateAgentActionGroupInput { + s.ActionGroupExecutor = v + return s +} + +// SetActionGroupName sets the ActionGroupName field's value. +func (s *CreateAgentActionGroupInput) SetActionGroupName(v string) *CreateAgentActionGroupInput { + s.ActionGroupName = &v + return s +} + +// SetActionGroupState sets the ActionGroupState field's value. +func (s *CreateAgentActionGroupInput) SetActionGroupState(v string) *CreateAgentActionGroupInput { + s.ActionGroupState = &v + return s +} + +// SetAgentId sets the AgentId field's value. +func (s *CreateAgentActionGroupInput) SetAgentId(v string) *CreateAgentActionGroupInput { + s.AgentId = &v + return s +} + +// SetAgentVersion sets the AgentVersion field's value. +func (s *CreateAgentActionGroupInput) SetAgentVersion(v string) *CreateAgentActionGroupInput { + s.AgentVersion = &v + return s +} + +// SetApiSchema sets the ApiSchema field's value. +func (s *CreateAgentActionGroupInput) SetApiSchema(v *APISchema) *CreateAgentActionGroupInput { + s.ApiSchema = v + return s +} + +// SetClientToken sets the ClientToken field's value. +func (s *CreateAgentActionGroupInput) SetClientToken(v string) *CreateAgentActionGroupInput { + s.ClientToken = &v + return s +} + +// SetDescription sets the Description field's value. +func (s *CreateAgentActionGroupInput) SetDescription(v string) *CreateAgentActionGroupInput { + s.Description = &v + return s +} + +// SetParentActionGroupSignature sets the ParentActionGroupSignature field's value. +func (s *CreateAgentActionGroupInput) SetParentActionGroupSignature(v string) *CreateAgentActionGroupInput { + s.ParentActionGroupSignature = &v + return s +} + +// Create Action Group Response +type CreateAgentActionGroupOutput struct { + _ struct{} `type:"structure"` + + // Contains the information of an Agent Action Group + // + // AgentActionGroup is a required field + AgentActionGroup *AgentActionGroup `locationName:"agentActionGroup" 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 CreateAgentActionGroupOutput) 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 CreateAgentActionGroupOutput) GoString() string { + return s.String() +} + +// SetAgentActionGroup sets the AgentActionGroup field's value. +func (s *CreateAgentActionGroupOutput) SetAgentActionGroup(v *AgentActionGroup) *CreateAgentActionGroupOutput { + s.AgentActionGroup = v + return s +} + +// Create Agent Alias Request +type CreateAgentAliasInput struct { + _ struct{} `type:"structure"` + + // Name for a resource. + // + // AgentAliasName is a required field + AgentAliasName *string `locationName:"agentAliasName" type:"string" required:"true"` + + // Id generated at the server side when an Agent is created + // + // AgentId is a required field + AgentId *string `location:"uri" locationName:"agentId" type:"string" required:"true"` + + // Client specified token used for idempotency checks + ClientToken *string `locationName:"clientToken" min:"33" type:"string" idempotencyToken:"true"` + + // Description of the Resource. + Description *string `locationName:"description" min:"1" type:"string"` + + // Routing configuration for an Agent alias. + RoutingConfiguration []*AgentAliasRoutingConfigurationListItem `locationName:"routingConfiguration" type:"list"` + + // A map of tag keys and values + 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 CreateAgentAliasInput) 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 CreateAgentAliasInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CreateAgentAliasInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "CreateAgentAliasInput"} + if s.AgentAliasName == nil { + invalidParams.Add(request.NewErrParamRequired("AgentAliasName")) + } + if s.AgentId == nil { + invalidParams.Add(request.NewErrParamRequired("AgentId")) + } + if s.AgentId != nil && len(*s.AgentId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("AgentId", 1)) + } + if s.ClientToken != nil && len(*s.ClientToken) < 33 { + invalidParams.Add(request.NewErrParamMinLen("ClientToken", 33)) + } + if s.Description != nil && len(*s.Description) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Description", 1)) + } + if s.RoutingConfiguration != nil { + for i, v := range s.RoutingConfiguration { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "RoutingConfiguration", i), err.(request.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAgentAliasName sets the AgentAliasName field's value. +func (s *CreateAgentAliasInput) SetAgentAliasName(v string) *CreateAgentAliasInput { + s.AgentAliasName = &v + return s +} + +// SetAgentId sets the AgentId field's value. +func (s *CreateAgentAliasInput) SetAgentId(v string) *CreateAgentAliasInput { + s.AgentId = &v + return s +} + +// SetClientToken sets the ClientToken field's value. +func (s *CreateAgentAliasInput) SetClientToken(v string) *CreateAgentAliasInput { + s.ClientToken = &v + return s +} + +// SetDescription sets the Description field's value. +func (s *CreateAgentAliasInput) SetDescription(v string) *CreateAgentAliasInput { + s.Description = &v + return s +} + +// SetRoutingConfiguration sets the RoutingConfiguration field's value. +func (s *CreateAgentAliasInput) SetRoutingConfiguration(v []*AgentAliasRoutingConfigurationListItem) *CreateAgentAliasInput { + s.RoutingConfiguration = v + return s +} + +// SetTags sets the Tags field's value. +func (s *CreateAgentAliasInput) SetTags(v map[string]*string) *CreateAgentAliasInput { + s.Tags = v + return s +} + +// Create Agent Alias Response +type CreateAgentAliasOutput struct { + _ struct{} `type:"structure"` + + // Contains the information of an agent alias + // + // AgentAlias is a required field + AgentAlias *AgentAlias `locationName:"agentAlias" 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 CreateAgentAliasOutput) 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 CreateAgentAliasOutput) GoString() string { + return s.String() +} + +// SetAgentAlias sets the AgentAlias field's value. +func (s *CreateAgentAliasOutput) SetAgentAlias(v *AgentAlias) *CreateAgentAliasOutput { + s.AgentAlias = v + return s +} + +// Create Agent Request +type CreateAgentInput struct { + _ struct{} `type:"structure"` + + // Name for a resource. + // + // AgentName is a required field + AgentName *string `locationName:"agentName" type:"string" required:"true"` + + // ARN of a IAM role. + // + // AgentResourceRoleArn is a required field + AgentResourceRoleArn *string `locationName:"agentResourceRoleArn" type:"string" required:"true"` + + // Client specified token used for idempotency checks + ClientToken *string `locationName:"clientToken" min:"33" type:"string" idempotencyToken:"true"` + + // A KMS key ARN + CustomerEncryptionKeyArn *string `locationName:"customerEncryptionKeyArn" min:"1" type:"string"` + + // Description of the Resource. + Description *string `locationName:"description" min:"1" type:"string"` + + // ARN or name of a Bedrock model. + FoundationModel *string `locationName:"foundationModel" min:"1" type:"string"` + + // Max Session Time. + IdleSessionTTLInSeconds *int64 `locationName:"idleSessionTTLInSeconds" min:"60" type:"integer"` + + // Instruction for the agent. + // + // Instruction is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by CreateAgentInput's + // String and GoString methods. + Instruction *string `locationName:"instruction" min:"40" type:"string" sensitive:"true"` + + // Configuration for prompt override. + // + // PromptOverrideConfiguration is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by CreateAgentInput's + // String and GoString methods. + PromptOverrideConfiguration *PromptOverrideConfiguration `locationName:"promptOverrideConfiguration" type:"structure" sensitive:"true"` + + // A map of tag keys and values + 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 CreateAgentInput) 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 CreateAgentInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CreateAgentInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "CreateAgentInput"} + if s.AgentName == nil { + invalidParams.Add(request.NewErrParamRequired("AgentName")) + } + if s.AgentResourceRoleArn == nil { + invalidParams.Add(request.NewErrParamRequired("AgentResourceRoleArn")) + } + if s.ClientToken != nil && len(*s.ClientToken) < 33 { + invalidParams.Add(request.NewErrParamMinLen("ClientToken", 33)) + } + if s.CustomerEncryptionKeyArn != nil && len(*s.CustomerEncryptionKeyArn) < 1 { + invalidParams.Add(request.NewErrParamMinLen("CustomerEncryptionKeyArn", 1)) + } + if s.Description != nil && len(*s.Description) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Description", 1)) + } + if s.FoundationModel != nil && len(*s.FoundationModel) < 1 { + invalidParams.Add(request.NewErrParamMinLen("FoundationModel", 1)) + } + if s.IdleSessionTTLInSeconds != nil && *s.IdleSessionTTLInSeconds < 60 { + invalidParams.Add(request.NewErrParamMinValue("IdleSessionTTLInSeconds", 60)) + } + if s.Instruction != nil && len(*s.Instruction) < 40 { + invalidParams.Add(request.NewErrParamMinLen("Instruction", 40)) + } + if s.PromptOverrideConfiguration != nil { + if err := s.PromptOverrideConfiguration.Validate(); err != nil { + invalidParams.AddNested("PromptOverrideConfiguration", err.(request.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAgentName sets the AgentName field's value. +func (s *CreateAgentInput) SetAgentName(v string) *CreateAgentInput { + s.AgentName = &v + return s +} + +// SetAgentResourceRoleArn sets the AgentResourceRoleArn field's value. +func (s *CreateAgentInput) SetAgentResourceRoleArn(v string) *CreateAgentInput { + s.AgentResourceRoleArn = &v + return s +} + +// SetClientToken sets the ClientToken field's value. +func (s *CreateAgentInput) SetClientToken(v string) *CreateAgentInput { + s.ClientToken = &v + return s +} + +// SetCustomerEncryptionKeyArn sets the CustomerEncryptionKeyArn field's value. +func (s *CreateAgentInput) SetCustomerEncryptionKeyArn(v string) *CreateAgentInput { + s.CustomerEncryptionKeyArn = &v + return s +} + +// SetDescription sets the Description field's value. +func (s *CreateAgentInput) SetDescription(v string) *CreateAgentInput { + s.Description = &v + return s +} + +// SetFoundationModel sets the FoundationModel field's value. +func (s *CreateAgentInput) SetFoundationModel(v string) *CreateAgentInput { + s.FoundationModel = &v + return s +} + +// SetIdleSessionTTLInSeconds sets the IdleSessionTTLInSeconds field's value. +func (s *CreateAgentInput) SetIdleSessionTTLInSeconds(v int64) *CreateAgentInput { + s.IdleSessionTTLInSeconds = &v + return s +} + +// SetInstruction sets the Instruction field's value. +func (s *CreateAgentInput) SetInstruction(v string) *CreateAgentInput { + s.Instruction = &v + return s +} + +// SetPromptOverrideConfiguration sets the PromptOverrideConfiguration field's value. +func (s *CreateAgentInput) SetPromptOverrideConfiguration(v *PromptOverrideConfiguration) *CreateAgentInput { + s.PromptOverrideConfiguration = v + return s +} + +// SetTags sets the Tags field's value. +func (s *CreateAgentInput) SetTags(v map[string]*string) *CreateAgentInput { + s.Tags = v + return s +} + +// Create Agent Response +type CreateAgentOutput struct { + _ struct{} `type:"structure"` + + // Contains the information of an agent + // + // Agent is a required field + Agent *Agent `locationName:"agent" 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 CreateAgentOutput) 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 CreateAgentOutput) GoString() string { + return s.String() +} + +// SetAgent sets the Agent field's value. +func (s *CreateAgentOutput) SetAgent(v *Agent) *CreateAgentOutput { + s.Agent = v + return s +} + +type CreateDataSourceInput struct { + _ struct{} `type:"structure"` + + // Client specified token used for idempotency checks + ClientToken *string `locationName:"clientToken" min:"33" type:"string" idempotencyToken:"true"` + + // Specifies a raw data source location to ingest. + // + // DataSourceConfiguration is a required field + DataSourceConfiguration *DataSourceConfiguration `locationName:"dataSourceConfiguration" type:"structure" required:"true"` + + // Description of the Resource. + Description *string `locationName:"description" min:"1" type:"string"` + + // Identifier for a resource. + // + // KnowledgeBaseId is a required field + KnowledgeBaseId *string `location:"uri" locationName:"knowledgeBaseId" type:"string" required:"true"` + + // Name for a resource. + // + // Name is a required field + Name *string `locationName:"name" type:"string" required:"true"` + + // Server-side encryption configuration. + ServerSideEncryptionConfiguration *ServerSideEncryptionConfiguration `locationName:"serverSideEncryptionConfiguration" type:"structure"` + + // Configures ingestion for a vector knowledge base + VectorIngestionConfiguration *VectorIngestionConfiguration `locationName:"vectorIngestionConfiguration" 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 CreateDataSourceInput) 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 CreateDataSourceInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CreateDataSourceInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "CreateDataSourceInput"} + if s.ClientToken != nil && len(*s.ClientToken) < 33 { + invalidParams.Add(request.NewErrParamMinLen("ClientToken", 33)) + } + if s.DataSourceConfiguration == nil { + invalidParams.Add(request.NewErrParamRequired("DataSourceConfiguration")) + } + 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.Name == nil { + invalidParams.Add(request.NewErrParamRequired("Name")) + } + if s.DataSourceConfiguration != nil { + if err := s.DataSourceConfiguration.Validate(); err != nil { + invalidParams.AddNested("DataSourceConfiguration", err.(request.ErrInvalidParams)) + } + } + if s.ServerSideEncryptionConfiguration != nil { + if err := s.ServerSideEncryptionConfiguration.Validate(); err != nil { + invalidParams.AddNested("ServerSideEncryptionConfiguration", err.(request.ErrInvalidParams)) + } + } + if s.VectorIngestionConfiguration != nil { + if err := s.VectorIngestionConfiguration.Validate(); err != nil { + invalidParams.AddNested("VectorIngestionConfiguration", err.(request.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetClientToken sets the ClientToken field's value. +func (s *CreateDataSourceInput) SetClientToken(v string) *CreateDataSourceInput { + s.ClientToken = &v + return s +} + +// SetDataSourceConfiguration sets the DataSourceConfiguration field's value. +func (s *CreateDataSourceInput) SetDataSourceConfiguration(v *DataSourceConfiguration) *CreateDataSourceInput { + s.DataSourceConfiguration = v + return s +} + +// SetDescription sets the Description field's value. +func (s *CreateDataSourceInput) SetDescription(v string) *CreateDataSourceInput { + s.Description = &v + return s +} + +// SetKnowledgeBaseId sets the KnowledgeBaseId field's value. +func (s *CreateDataSourceInput) SetKnowledgeBaseId(v string) *CreateDataSourceInput { + s.KnowledgeBaseId = &v + return s +} + +// SetName sets the Name field's value. +func (s *CreateDataSourceInput) SetName(v string) *CreateDataSourceInput { + s.Name = &v + return s +} + +// SetServerSideEncryptionConfiguration sets the ServerSideEncryptionConfiguration field's value. +func (s *CreateDataSourceInput) SetServerSideEncryptionConfiguration(v *ServerSideEncryptionConfiguration) *CreateDataSourceInput { + s.ServerSideEncryptionConfiguration = v + return s +} + +// SetVectorIngestionConfiguration sets the VectorIngestionConfiguration field's value. +func (s *CreateDataSourceInput) SetVectorIngestionConfiguration(v *VectorIngestionConfiguration) *CreateDataSourceInput { + s.VectorIngestionConfiguration = v + return s +} + +type CreateDataSourceOutput struct { + _ struct{} `type:"structure"` + + // Contains the information of a data source. + // + // DataSource is a required field + DataSource *DataSource `locationName:"dataSource" 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 CreateDataSourceOutput) 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 CreateDataSourceOutput) GoString() string { + return s.String() +} + +// SetDataSource sets the DataSource field's value. +func (s *CreateDataSourceOutput) SetDataSource(v *DataSource) *CreateDataSourceOutput { + s.DataSource = v + return s +} + +type CreateKnowledgeBaseInput struct { + _ struct{} `type:"structure"` + + // Client specified token used for idempotency checks + ClientToken *string `locationName:"clientToken" min:"33" type:"string" idempotencyToken:"true"` + + // Description of the Resource. + Description *string `locationName:"description" min:"1" type:"string"` + + // Configures a bedrock knowledge base. + // + // KnowledgeBaseConfiguration is a required field + KnowledgeBaseConfiguration *KnowledgeBaseConfiguration `locationName:"knowledgeBaseConfiguration" type:"structure" required:"true"` + + // Name for a resource. + // + // Name is a required field + Name *string `locationName:"name" type:"string" required:"true"` + + // ARN of a IAM role. + // + // RoleArn is a required field + RoleArn *string `locationName:"roleArn" type:"string" required:"true"` + + // Configures the physical storage of ingested data in a knowledge base. + // + // StorageConfiguration is a required field + StorageConfiguration *StorageConfiguration `locationName:"storageConfiguration" type:"structure" required:"true"` + + // A map of tag keys and values + 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) < 33 { + invalidParams.Add(request.NewErrParamMinLen("ClientToken", 33)) + } + if s.Description != nil && len(*s.Description) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Description", 1)) + } + if s.KnowledgeBaseConfiguration == nil { + invalidParams.Add(request.NewErrParamRequired("KnowledgeBaseConfiguration")) + } + if s.Name == nil { + invalidParams.Add(request.NewErrParamRequired("Name")) + } + if s.RoleArn == nil { + invalidParams.Add(request.NewErrParamRequired("RoleArn")) + } + if s.StorageConfiguration == nil { + invalidParams.Add(request.NewErrParamRequired("StorageConfiguration")) + } + if s.KnowledgeBaseConfiguration != nil { + if err := s.KnowledgeBaseConfiguration.Validate(); err != nil { + invalidParams.AddNested("KnowledgeBaseConfiguration", err.(request.ErrInvalidParams)) + } + } + if s.StorageConfiguration != nil { + if err := s.StorageConfiguration.Validate(); err != nil { + invalidParams.AddNested("StorageConfiguration", 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 +} + +// SetKnowledgeBaseConfiguration sets the KnowledgeBaseConfiguration field's value. +func (s *CreateKnowledgeBaseInput) SetKnowledgeBaseConfiguration(v *KnowledgeBaseConfiguration) *CreateKnowledgeBaseInput { + s.KnowledgeBaseConfiguration = v + return s +} + +// SetName sets the Name field's value. +func (s *CreateKnowledgeBaseInput) SetName(v string) *CreateKnowledgeBaseInput { + s.Name = &v + return s +} + +// SetRoleArn sets the RoleArn field's value. +func (s *CreateKnowledgeBaseInput) SetRoleArn(v string) *CreateKnowledgeBaseInput { + s.RoleArn = &v + return s +} + +// SetStorageConfiguration sets the StorageConfiguration field's value. +func (s *CreateKnowledgeBaseInput) SetStorageConfiguration(v *StorageConfiguration) *CreateKnowledgeBaseInput { + s.StorageConfiguration = 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"` + + // Contains the information of a knowledge base. + // + // KnowledgeBase is a required field + KnowledgeBase *KnowledgeBase `locationName:"knowledgeBase" 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 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 *KnowledgeBase) *CreateKnowledgeBaseOutput { + s.KnowledgeBase = v + return s +} + +// Contains the information of a data source. +type DataSource struct { + _ struct{} `type:"structure"` + + // Time Stamp. + // + // CreatedAt is a required field + CreatedAt *time.Time `locationName:"createdAt" type:"timestamp" timestampFormat:"iso8601" required:"true"` + + // Specifies a raw data source location to ingest. + // + // DataSourceConfiguration is a required field + DataSourceConfiguration *DataSourceConfiguration `locationName:"dataSourceConfiguration" type:"structure" required:"true"` + + // Identifier for a resource. + // + // DataSourceId is a required field + DataSourceId *string `locationName:"dataSourceId" type:"string" required:"true"` + + // Description of the Resource. + Description *string `locationName:"description" min:"1" type:"string"` + + // Identifier for a resource. + // + // KnowledgeBaseId is a required field + KnowledgeBaseId *string `locationName:"knowledgeBaseId" type:"string" required:"true"` + + // Name for a resource. + // + // Name is a required field + Name *string `locationName:"name" type:"string" required:"true"` + + // Server-side encryption configuration. + ServerSideEncryptionConfiguration *ServerSideEncryptionConfiguration `locationName:"serverSideEncryptionConfiguration" type:"structure"` + + // The status of a data source. + // + // Status is a required field + Status *string `locationName:"status" type:"string" required:"true" enum:"DataSourceStatus"` + + // Time Stamp. + // + // UpdatedAt is a required field + UpdatedAt *time.Time `locationName:"updatedAt" type:"timestamp" timestampFormat:"iso8601" required:"true"` + + // Configures ingestion for a vector knowledge base + VectorIngestionConfiguration *VectorIngestionConfiguration `locationName:"vectorIngestionConfiguration" 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 DataSource) 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 DataSource) GoString() string { + return s.String() +} + +// SetCreatedAt sets the CreatedAt field's value. +func (s *DataSource) SetCreatedAt(v time.Time) *DataSource { + s.CreatedAt = &v + return s +} + +// SetDataSourceConfiguration sets the DataSourceConfiguration field's value. +func (s *DataSource) SetDataSourceConfiguration(v *DataSourceConfiguration) *DataSource { + s.DataSourceConfiguration = v + return s +} + +// SetDataSourceId sets the DataSourceId field's value. +func (s *DataSource) SetDataSourceId(v string) *DataSource { + s.DataSourceId = &v + return s +} + +// SetDescription sets the Description field's value. +func (s *DataSource) SetDescription(v string) *DataSource { + s.Description = &v + return s +} + +// SetKnowledgeBaseId sets the KnowledgeBaseId field's value. +func (s *DataSource) SetKnowledgeBaseId(v string) *DataSource { + s.KnowledgeBaseId = &v + return s +} + +// SetName sets the Name field's value. +func (s *DataSource) SetName(v string) *DataSource { + s.Name = &v + return s +} + +// SetServerSideEncryptionConfiguration sets the ServerSideEncryptionConfiguration field's value. +func (s *DataSource) SetServerSideEncryptionConfiguration(v *ServerSideEncryptionConfiguration) *DataSource { + s.ServerSideEncryptionConfiguration = v + return s +} + +// SetStatus sets the Status field's value. +func (s *DataSource) SetStatus(v string) *DataSource { + s.Status = &v + return s +} + +// SetUpdatedAt sets the UpdatedAt field's value. +func (s *DataSource) SetUpdatedAt(v time.Time) *DataSource { + s.UpdatedAt = &v + return s +} + +// SetVectorIngestionConfiguration sets the VectorIngestionConfiguration field's value. +func (s *DataSource) SetVectorIngestionConfiguration(v *VectorIngestionConfiguration) *DataSource { + s.VectorIngestionConfiguration = v + return s +} + +// Specifies a raw data source location to ingest. +type DataSourceConfiguration struct { + _ struct{} `type:"structure"` + + // Configures an S3 data source location. + S3Configuration *S3DataSourceConfiguration `locationName:"s3Configuration" type:"structure"` + + // The type of the data source location. + // + // Type is a required field + Type *string `locationName:"type" type:"string" required:"true" enum:"DataSourceType"` +} + +// 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 DataSourceConfiguration) 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 DataSourceConfiguration) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DataSourceConfiguration) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DataSourceConfiguration"} + if s.Type == nil { + invalidParams.Add(request.NewErrParamRequired("Type")) + } + if s.S3Configuration != nil { + if err := s.S3Configuration.Validate(); err != nil { + invalidParams.AddNested("S3Configuration", err.(request.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetS3Configuration sets the S3Configuration field's value. +func (s *DataSourceConfiguration) SetS3Configuration(v *S3DataSourceConfiguration) *DataSourceConfiguration { + s.S3Configuration = v + return s +} + +// SetType sets the Type field's value. +func (s *DataSourceConfiguration) SetType(v string) *DataSourceConfiguration { + s.Type = &v + return s +} + +// Summary information of a data source. +type DataSourceSummary struct { + _ struct{} `type:"structure"` + + // Identifier for a resource. + // + // DataSourceId is a required field + DataSourceId *string `locationName:"dataSourceId" type:"string" required:"true"` + + // Description of the Resource. + Description *string `locationName:"description" min:"1" type:"string"` + + // Identifier for a resource. + // + // KnowledgeBaseId is a required field + KnowledgeBaseId *string `locationName:"knowledgeBaseId" type:"string" required:"true"` + + // Name for a resource. + // + // Name is a required field + Name *string `locationName:"name" type:"string" required:"true"` + + // The status of a data source. + // + // Status is a required field + Status *string `locationName:"status" type:"string" required:"true" enum:"DataSourceStatus"` + + // Time Stamp. + // + // UpdatedAt is a required field + UpdatedAt *time.Time `locationName:"updatedAt" type:"timestamp" timestampFormat:"iso8601" 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 DataSourceSummary) 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 DataSourceSummary) GoString() string { + return s.String() +} + +// SetDataSourceId sets the DataSourceId field's value. +func (s *DataSourceSummary) SetDataSourceId(v string) *DataSourceSummary { + s.DataSourceId = &v + return s +} + +// SetDescription sets the Description field's value. +func (s *DataSourceSummary) SetDescription(v string) *DataSourceSummary { + s.Description = &v + return s +} + +// SetKnowledgeBaseId sets the KnowledgeBaseId field's value. +func (s *DataSourceSummary) SetKnowledgeBaseId(v string) *DataSourceSummary { + s.KnowledgeBaseId = &v + return s +} + +// SetName sets the Name field's value. +func (s *DataSourceSummary) SetName(v string) *DataSourceSummary { + s.Name = &v + return s +} + +// SetStatus sets the Status field's value. +func (s *DataSourceSummary) SetStatus(v string) *DataSourceSummary { + s.Status = &v + return s +} + +// SetUpdatedAt sets the UpdatedAt field's value. +func (s *DataSourceSummary) SetUpdatedAt(v time.Time) *DataSourceSummary { + s.UpdatedAt = &v + return s +} + +// Delete Action Group Request +type DeleteAgentActionGroupInput struct { + _ struct{} `type:"structure" nopayload:"true"` + + // Id generated at the server side when an Agent ActionGroup is created + // + // ActionGroupId is a required field + ActionGroupId *string `location:"uri" locationName:"actionGroupId" type:"string" required:"true"` + + // Id generated at the server side when an Agent is created + // + // AgentId is a required field + AgentId *string `location:"uri" locationName:"agentId" type:"string" required:"true"` + + // Draft Version of the Agent. + // + // AgentVersion is a required field + AgentVersion *string `location:"uri" locationName:"agentVersion" min:"5" type:"string" required:"true"` + + // Skips checking if resource is in use when set to true. Defaults to false + SkipResourceInUseCheck *bool `location:"querystring" locationName:"skipResourceInUseCheck" type:"boolean"` +} + +// 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 DeleteAgentActionGroupInput) 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 DeleteAgentActionGroupInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteAgentActionGroupInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DeleteAgentActionGroupInput"} + if s.ActionGroupId == nil { + invalidParams.Add(request.NewErrParamRequired("ActionGroupId")) + } + if s.ActionGroupId != nil && len(*s.ActionGroupId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ActionGroupId", 1)) + } + if s.AgentId == nil { + invalidParams.Add(request.NewErrParamRequired("AgentId")) + } + if s.AgentId != nil && len(*s.AgentId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("AgentId", 1)) + } + if s.AgentVersion == nil { + invalidParams.Add(request.NewErrParamRequired("AgentVersion")) + } + if s.AgentVersion != nil && len(*s.AgentVersion) < 5 { + invalidParams.Add(request.NewErrParamMinLen("AgentVersion", 5)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetActionGroupId sets the ActionGroupId field's value. +func (s *DeleteAgentActionGroupInput) SetActionGroupId(v string) *DeleteAgentActionGroupInput { + s.ActionGroupId = &v + return s +} + +// SetAgentId sets the AgentId field's value. +func (s *DeleteAgentActionGroupInput) SetAgentId(v string) *DeleteAgentActionGroupInput { + s.AgentId = &v + return s +} + +// SetAgentVersion sets the AgentVersion field's value. +func (s *DeleteAgentActionGroupInput) SetAgentVersion(v string) *DeleteAgentActionGroupInput { + s.AgentVersion = &v + return s +} + +// SetSkipResourceInUseCheck sets the SkipResourceInUseCheck field's value. +func (s *DeleteAgentActionGroupInput) SetSkipResourceInUseCheck(v bool) *DeleteAgentActionGroupInput { + s.SkipResourceInUseCheck = &v + return s +} + +// Delete Action Group Response +type DeleteAgentActionGroupOutput 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 DeleteAgentActionGroupOutput) 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 DeleteAgentActionGroupOutput) GoString() string { + return s.String() +} + +// Delete Agent Alias Request +type DeleteAgentAliasInput struct { + _ struct{} `type:"structure" nopayload:"true"` + + // Id generated at the server side when an Agent Alias is created + // + // AgentAliasId is a required field + AgentAliasId *string `location:"uri" locationName:"agentAliasId" min:"10" type:"string" required:"true"` + + // Id generated at the server side when an Agent is created + // + // AgentId is a required field + AgentId *string `location:"uri" locationName:"agentId" 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 DeleteAgentAliasInput) 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 DeleteAgentAliasInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteAgentAliasInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DeleteAgentAliasInput"} + if s.AgentAliasId == nil { + invalidParams.Add(request.NewErrParamRequired("AgentAliasId")) + } + if s.AgentAliasId != nil && len(*s.AgentAliasId) < 10 { + invalidParams.Add(request.NewErrParamMinLen("AgentAliasId", 10)) + } + if s.AgentId == nil { + invalidParams.Add(request.NewErrParamRequired("AgentId")) + } + if s.AgentId != nil && len(*s.AgentId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("AgentId", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAgentAliasId sets the AgentAliasId field's value. +func (s *DeleteAgentAliasInput) SetAgentAliasId(v string) *DeleteAgentAliasInput { + s.AgentAliasId = &v + return s +} + +// SetAgentId sets the AgentId field's value. +func (s *DeleteAgentAliasInput) SetAgentId(v string) *DeleteAgentAliasInput { + s.AgentId = &v + return s +} + +// Delete Agent Alias Response +type DeleteAgentAliasOutput struct { + _ struct{} `type:"structure"` + + // Id for an Agent Alias generated at the server side. + // + // AgentAliasId is a required field + AgentAliasId *string `locationName:"agentAliasId" min:"10" type:"string" required:"true"` + + // The statuses an Agent Alias can be in. + // + // AgentAliasStatus is a required field + AgentAliasStatus *string `locationName:"agentAliasStatus" type:"string" required:"true" enum:"AgentAliasStatus"` + + // Identifier for a resource. + // + // AgentId is a required field + AgentId *string `locationName:"agentId" 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 DeleteAgentAliasOutput) 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 DeleteAgentAliasOutput) GoString() string { + return s.String() +} + +// SetAgentAliasId sets the AgentAliasId field's value. +func (s *DeleteAgentAliasOutput) SetAgentAliasId(v string) *DeleteAgentAliasOutput { + s.AgentAliasId = &v + return s +} + +// SetAgentAliasStatus sets the AgentAliasStatus field's value. +func (s *DeleteAgentAliasOutput) SetAgentAliasStatus(v string) *DeleteAgentAliasOutput { + s.AgentAliasStatus = &v + return s +} + +// SetAgentId sets the AgentId field's value. +func (s *DeleteAgentAliasOutput) SetAgentId(v string) *DeleteAgentAliasOutput { + s.AgentId = &v + return s +} + +// Delete Agent Request +type DeleteAgentInput struct { + _ struct{} `type:"structure" nopayload:"true"` + + // Id generated at the server side when an Agent is created + // + // AgentId is a required field + AgentId *string `location:"uri" locationName:"agentId" type:"string" required:"true"` + + // Skips checking if resource is in use when set to true. Defaults to false + SkipResourceInUseCheck *bool `location:"querystring" locationName:"skipResourceInUseCheck" type:"boolean"` +} + +// 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 DeleteAgentInput) 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 DeleteAgentInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteAgentInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DeleteAgentInput"} + if s.AgentId == nil { + invalidParams.Add(request.NewErrParamRequired("AgentId")) + } + if s.AgentId != nil && len(*s.AgentId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("AgentId", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAgentId sets the AgentId field's value. +func (s *DeleteAgentInput) SetAgentId(v string) *DeleteAgentInput { + s.AgentId = &v + return s +} + +// SetSkipResourceInUseCheck sets the SkipResourceInUseCheck field's value. +func (s *DeleteAgentInput) SetSkipResourceInUseCheck(v bool) *DeleteAgentInput { + s.SkipResourceInUseCheck = &v + return s +} + +// Delete Agent Response +type DeleteAgentOutput struct { + _ struct{} `type:"structure"` + + // Identifier for a resource. + // + // AgentId is a required field + AgentId *string `locationName:"agentId" type:"string" required:"true"` + + // Schema Type for Action APIs. + // + // AgentStatus is a required field + AgentStatus *string `locationName:"agentStatus" type:"string" required:"true" enum:"AgentStatus"` +} + +// 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 DeleteAgentOutput) 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 DeleteAgentOutput) GoString() string { + return s.String() +} + +// SetAgentId sets the AgentId field's value. +func (s *DeleteAgentOutput) SetAgentId(v string) *DeleteAgentOutput { + s.AgentId = &v + return s +} + +// SetAgentStatus sets the AgentStatus field's value. +func (s *DeleteAgentOutput) SetAgentStatus(v string) *DeleteAgentOutput { + s.AgentStatus = &v + return s +} + +// Delete Agent Version Request +type DeleteAgentVersionInput struct { + _ struct{} `type:"structure" nopayload:"true"` + + // Id generated at the server side when an Agent is created + // + // AgentId is a required field + AgentId *string `location:"uri" locationName:"agentId" type:"string" required:"true"` + + // Numerical Agent Version. + // + // AgentVersion is a required field + AgentVersion *string `location:"uri" locationName:"agentVersion" type:"string" required:"true"` + + // Skips checking if resource is in use when set to true. Defaults to false + SkipResourceInUseCheck *bool `location:"querystring" locationName:"skipResourceInUseCheck" type:"boolean"` +} + +// 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 DeleteAgentVersionInput) 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 DeleteAgentVersionInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteAgentVersionInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DeleteAgentVersionInput"} + if s.AgentId == nil { + invalidParams.Add(request.NewErrParamRequired("AgentId")) + } + if s.AgentId != nil && len(*s.AgentId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("AgentId", 1)) + } + if s.AgentVersion == nil { + invalidParams.Add(request.NewErrParamRequired("AgentVersion")) + } + if s.AgentVersion != nil && len(*s.AgentVersion) < 1 { + invalidParams.Add(request.NewErrParamMinLen("AgentVersion", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAgentId sets the AgentId field's value. +func (s *DeleteAgentVersionInput) SetAgentId(v string) *DeleteAgentVersionInput { + s.AgentId = &v + return s +} + +// SetAgentVersion sets the AgentVersion field's value. +func (s *DeleteAgentVersionInput) SetAgentVersion(v string) *DeleteAgentVersionInput { + s.AgentVersion = &v + return s +} + +// SetSkipResourceInUseCheck sets the SkipResourceInUseCheck field's value. +func (s *DeleteAgentVersionInput) SetSkipResourceInUseCheck(v bool) *DeleteAgentVersionInput { + s.SkipResourceInUseCheck = &v + return s +} + +// Delete Agent Version Response +type DeleteAgentVersionOutput struct { + _ struct{} `type:"structure"` + + // Identifier for a resource. + // + // AgentId is a required field + AgentId *string `locationName:"agentId" type:"string" required:"true"` + + // Schema Type for Action APIs. + // + // AgentStatus is a required field + AgentStatus *string `locationName:"agentStatus" type:"string" required:"true" enum:"AgentStatus"` + + // Numerical Agent Version. + // + // AgentVersion is a required field + AgentVersion *string `locationName:"agentVersion" 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 DeleteAgentVersionOutput) 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 DeleteAgentVersionOutput) GoString() string { + return s.String() +} + +// SetAgentId sets the AgentId field's value. +func (s *DeleteAgentVersionOutput) SetAgentId(v string) *DeleteAgentVersionOutput { + s.AgentId = &v + return s +} + +// SetAgentStatus sets the AgentStatus field's value. +func (s *DeleteAgentVersionOutput) SetAgentStatus(v string) *DeleteAgentVersionOutput { + s.AgentStatus = &v + return s +} + +// SetAgentVersion sets the AgentVersion field's value. +func (s *DeleteAgentVersionOutput) SetAgentVersion(v string) *DeleteAgentVersionOutput { + s.AgentVersion = &v + return s +} + +type DeleteDataSourceInput struct { + _ struct{} `type:"structure" nopayload:"true"` + + // Identifier for a resource. + // + // DataSourceId is a required field + DataSourceId *string `location:"uri" locationName:"dataSourceId" type:"string" required:"true"` + + // Identifier for a resource. + // + // 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 DeleteDataSourceInput) 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 DeleteDataSourceInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteDataSourceInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DeleteDataSourceInput"} + if s.DataSourceId == nil { + invalidParams.Add(request.NewErrParamRequired("DataSourceId")) + } + if s.DataSourceId != nil && len(*s.DataSourceId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("DataSourceId", 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 +} + +// SetDataSourceId sets the DataSourceId field's value. +func (s *DeleteDataSourceInput) SetDataSourceId(v string) *DeleteDataSourceInput { + s.DataSourceId = &v + return s +} + +// SetKnowledgeBaseId sets the KnowledgeBaseId field's value. +func (s *DeleteDataSourceInput) SetKnowledgeBaseId(v string) *DeleteDataSourceInput { + s.KnowledgeBaseId = &v + return s +} + +type DeleteDataSourceOutput struct { + _ struct{} `type:"structure"` + + // Identifier for a resource. + // + // DataSourceId is a required field + DataSourceId *string `locationName:"dataSourceId" type:"string" required:"true"` + + // Identifier for a resource. + // + // KnowledgeBaseId is a required field + KnowledgeBaseId *string `locationName:"knowledgeBaseId" type:"string" required:"true"` + + // The status of a data source. + // + // Status is a required field + Status *string `locationName:"status" type:"string" required:"true" enum:"DataSourceStatus"` +} + +// 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 DeleteDataSourceOutput) 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 DeleteDataSourceOutput) GoString() string { + return s.String() +} + +// SetDataSourceId sets the DataSourceId field's value. +func (s *DeleteDataSourceOutput) SetDataSourceId(v string) *DeleteDataSourceOutput { + s.DataSourceId = &v + return s +} + +// SetKnowledgeBaseId sets the KnowledgeBaseId field's value. +func (s *DeleteDataSourceOutput) SetKnowledgeBaseId(v string) *DeleteDataSourceOutput { + s.KnowledgeBaseId = &v + return s +} + +// SetStatus sets the Status field's value. +func (s *DeleteDataSourceOutput) SetStatus(v string) *DeleteDataSourceOutput { + s.Status = &v + return s +} + +type DeleteKnowledgeBaseInput struct { + _ struct{} `type:"structure" nopayload:"true"` + + // Identifier for a resource. + // + // 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"` + + // Identifier for a resource. + // + // KnowledgeBaseId is a required field + KnowledgeBaseId *string `locationName:"knowledgeBaseId" type:"string" required:"true"` + + // The status of a knowledge base. + // + // Status is a required field + Status *string `locationName:"status" type:"string" required:"true" enum:"KnowledgeBaseStatus"` +} + +// 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() +} + +// SetKnowledgeBaseId sets the KnowledgeBaseId field's value. +func (s *DeleteKnowledgeBaseOutput) SetKnowledgeBaseId(v string) *DeleteKnowledgeBaseOutput { + s.KnowledgeBaseId = &v + return s +} + +// SetStatus sets the Status field's value. +func (s *DeleteKnowledgeBaseOutput) SetStatus(v string) *DeleteKnowledgeBaseOutput { + s.Status = &v + return s +} + +// Disassociate Agent Knowledge Base Request +type DisassociateAgentKnowledgeBaseInput struct { + _ struct{} `type:"structure" nopayload:"true"` + + // Id generated at the server side when an Agent is created + // + // AgentId is a required field + AgentId *string `location:"uri" locationName:"agentId" type:"string" required:"true"` + + // Draft Version of the Agent. + // + // AgentVersion is a required field + AgentVersion *string `location:"uri" locationName:"agentVersion" min:"5" type:"string" required:"true"` + + // Id generated at the server side when a Knowledge Base is associated to an + // Agent + // + // 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 DisassociateAgentKnowledgeBaseInput) 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 DisassociateAgentKnowledgeBaseInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DisassociateAgentKnowledgeBaseInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DisassociateAgentKnowledgeBaseInput"} + if s.AgentId == nil { + invalidParams.Add(request.NewErrParamRequired("AgentId")) + } + if s.AgentId != nil && len(*s.AgentId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("AgentId", 1)) + } + if s.AgentVersion == nil { + invalidParams.Add(request.NewErrParamRequired("AgentVersion")) + } + if s.AgentVersion != nil && len(*s.AgentVersion) < 5 { + invalidParams.Add(request.NewErrParamMinLen("AgentVersion", 5)) + } + 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 +} + +// SetAgentId sets the AgentId field's value. +func (s *DisassociateAgentKnowledgeBaseInput) SetAgentId(v string) *DisassociateAgentKnowledgeBaseInput { + s.AgentId = &v + return s +} + +// SetAgentVersion sets the AgentVersion field's value. +func (s *DisassociateAgentKnowledgeBaseInput) SetAgentVersion(v string) *DisassociateAgentKnowledgeBaseInput { + s.AgentVersion = &v + return s +} + +// SetKnowledgeBaseId sets the KnowledgeBaseId field's value. +func (s *DisassociateAgentKnowledgeBaseInput) SetKnowledgeBaseId(v string) *DisassociateAgentKnowledgeBaseInput { + s.KnowledgeBaseId = &v + return s +} + +// Disassociate Agent Knowledge Base Response +type DisassociateAgentKnowledgeBaseOutput 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 DisassociateAgentKnowledgeBaseOutput) 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 DisassociateAgentKnowledgeBaseOutput) GoString() string { + return s.String() +} + +// Configures fixed size chunking strategy +type FixedSizeChunkingConfiguration struct { + _ struct{} `type:"structure"` + + // The maximum number of tokens per chunk. + // + // MaxTokens is a required field + MaxTokens *int64 `locationName:"maxTokens" min:"1" type:"integer" required:"true"` + + // The overlap percentage between adjacent chunks. + // + // OverlapPercentage is a required field + OverlapPercentage *int64 `locationName:"overlapPercentage" min:"1" type:"integer" 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 FixedSizeChunkingConfiguration) 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 FixedSizeChunkingConfiguration) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *FixedSizeChunkingConfiguration) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "FixedSizeChunkingConfiguration"} + if s.MaxTokens == nil { + invalidParams.Add(request.NewErrParamRequired("MaxTokens")) + } + if s.MaxTokens != nil && *s.MaxTokens < 1 { + invalidParams.Add(request.NewErrParamMinValue("MaxTokens", 1)) + } + if s.OverlapPercentage == nil { + invalidParams.Add(request.NewErrParamRequired("OverlapPercentage")) + } + if s.OverlapPercentage != nil && *s.OverlapPercentage < 1 { + invalidParams.Add(request.NewErrParamMinValue("OverlapPercentage", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetMaxTokens sets the MaxTokens field's value. +func (s *FixedSizeChunkingConfiguration) SetMaxTokens(v int64) *FixedSizeChunkingConfiguration { + s.MaxTokens = &v + return s +} + +// SetOverlapPercentage sets the OverlapPercentage field's value. +func (s *FixedSizeChunkingConfiguration) SetOverlapPercentage(v int64) *FixedSizeChunkingConfiguration { + s.OverlapPercentage = &v + return s +} + +// Get Action Group Request +type GetAgentActionGroupInput struct { + _ struct{} `type:"structure" nopayload:"true"` + + // Id generated at the server side when an Agent Action Group is created + // + // ActionGroupId is a required field + ActionGroupId *string `location:"uri" locationName:"actionGroupId" type:"string" required:"true"` + + // Id generated at the server side when an Agent is created + // + // AgentId is a required field + AgentId *string `location:"uri" locationName:"agentId" type:"string" required:"true"` + + // Version number generated when a version is created + // + // AgentVersion is a required field + AgentVersion *string `location:"uri" locationName:"agentVersion" 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 GetAgentActionGroupInput) 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 GetAgentActionGroupInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GetAgentActionGroupInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "GetAgentActionGroupInput"} + if s.ActionGroupId == nil { + invalidParams.Add(request.NewErrParamRequired("ActionGroupId")) + } + if s.ActionGroupId != nil && len(*s.ActionGroupId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ActionGroupId", 1)) + } + if s.AgentId == nil { + invalidParams.Add(request.NewErrParamRequired("AgentId")) + } + if s.AgentId != nil && len(*s.AgentId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("AgentId", 1)) + } + if s.AgentVersion == nil { + invalidParams.Add(request.NewErrParamRequired("AgentVersion")) + } + if s.AgentVersion != nil && len(*s.AgentVersion) < 1 { + invalidParams.Add(request.NewErrParamMinLen("AgentVersion", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetActionGroupId sets the ActionGroupId field's value. +func (s *GetAgentActionGroupInput) SetActionGroupId(v string) *GetAgentActionGroupInput { + s.ActionGroupId = &v + return s +} + +// SetAgentId sets the AgentId field's value. +func (s *GetAgentActionGroupInput) SetAgentId(v string) *GetAgentActionGroupInput { + s.AgentId = &v + return s +} + +// SetAgentVersion sets the AgentVersion field's value. +func (s *GetAgentActionGroupInput) SetAgentVersion(v string) *GetAgentActionGroupInput { + s.AgentVersion = &v + return s +} + +// Get Action Group Response +type GetAgentActionGroupOutput struct { + _ struct{} `type:"structure"` + + // Contains the information of an Agent Action Group + // + // AgentActionGroup is a required field + AgentActionGroup *AgentActionGroup `locationName:"agentActionGroup" 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 GetAgentActionGroupOutput) 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 GetAgentActionGroupOutput) GoString() string { + return s.String() +} + +// SetAgentActionGroup sets the AgentActionGroup field's value. +func (s *GetAgentActionGroupOutput) SetAgentActionGroup(v *AgentActionGroup) *GetAgentActionGroupOutput { + s.AgentActionGroup = v + return s +} + +// Get Agent Alias Request +type GetAgentAliasInput struct { + _ struct{} `type:"structure" nopayload:"true"` + + // Id generated at the server side when an Agent Alias is created + // + // AgentAliasId is a required field + AgentAliasId *string `location:"uri" locationName:"agentAliasId" min:"10" type:"string" required:"true"` + + // Id generated at the server side when an Agent is created + // + // AgentId is a required field + AgentId *string `location:"uri" locationName:"agentId" 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 GetAgentAliasInput) 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 GetAgentAliasInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GetAgentAliasInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "GetAgentAliasInput"} + if s.AgentAliasId == nil { + invalidParams.Add(request.NewErrParamRequired("AgentAliasId")) + } + if s.AgentAliasId != nil && len(*s.AgentAliasId) < 10 { + invalidParams.Add(request.NewErrParamMinLen("AgentAliasId", 10)) + } + if s.AgentId == nil { + invalidParams.Add(request.NewErrParamRequired("AgentId")) + } + if s.AgentId != nil && len(*s.AgentId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("AgentId", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAgentAliasId sets the AgentAliasId field's value. +func (s *GetAgentAliasInput) SetAgentAliasId(v string) *GetAgentAliasInput { + s.AgentAliasId = &v + return s +} + +// SetAgentId sets the AgentId field's value. +func (s *GetAgentAliasInput) SetAgentId(v string) *GetAgentAliasInput { + s.AgentId = &v + return s +} + +// Get Agent Alias Response +type GetAgentAliasOutput struct { + _ struct{} `type:"structure"` + + // Contains the information of an agent alias + // + // AgentAlias is a required field + AgentAlias *AgentAlias `locationName:"agentAlias" 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 GetAgentAliasOutput) 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 GetAgentAliasOutput) GoString() string { + return s.String() +} + +// SetAgentAlias sets the AgentAlias field's value. +func (s *GetAgentAliasOutput) SetAgentAlias(v *AgentAlias) *GetAgentAliasOutput { + s.AgentAlias = v + return s +} + +// Get Agent Request +type GetAgentInput struct { + _ struct{} `type:"structure" nopayload:"true"` + + // Id generated at the server side when an Agent is created + // + // AgentId is a required field + AgentId *string `location:"uri" locationName:"agentId" 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 GetAgentInput) 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 GetAgentInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GetAgentInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "GetAgentInput"} + if s.AgentId == nil { + invalidParams.Add(request.NewErrParamRequired("AgentId")) + } + if s.AgentId != nil && len(*s.AgentId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("AgentId", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAgentId sets the AgentId field's value. +func (s *GetAgentInput) SetAgentId(v string) *GetAgentInput { + s.AgentId = &v + return s +} + +// Get Agent Knowledge Base Request +type GetAgentKnowledgeBaseInput struct { + _ struct{} `type:"structure" nopayload:"true"` + + // Id generated at the server side when an Agent is created + // + // AgentId is a required field + AgentId *string `location:"uri" locationName:"agentId" type:"string" required:"true"` + + // Version number generated when a version is created + // + // AgentVersion is a required field + AgentVersion *string `location:"uri" locationName:"agentVersion" min:"1" type:"string" required:"true"` + + // Id generated at the server side when a Knowledge Base is associated + // + // 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 GetAgentKnowledgeBaseInput) 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 GetAgentKnowledgeBaseInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GetAgentKnowledgeBaseInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "GetAgentKnowledgeBaseInput"} + if s.AgentId == nil { + invalidParams.Add(request.NewErrParamRequired("AgentId")) + } + if s.AgentId != nil && len(*s.AgentId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("AgentId", 1)) + } + if s.AgentVersion == nil { + invalidParams.Add(request.NewErrParamRequired("AgentVersion")) + } + if s.AgentVersion != nil && len(*s.AgentVersion) < 1 { + invalidParams.Add(request.NewErrParamMinLen("AgentVersion", 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 +} + +// SetAgentId sets the AgentId field's value. +func (s *GetAgentKnowledgeBaseInput) SetAgentId(v string) *GetAgentKnowledgeBaseInput { + s.AgentId = &v + return s +} + +// SetAgentVersion sets the AgentVersion field's value. +func (s *GetAgentKnowledgeBaseInput) SetAgentVersion(v string) *GetAgentKnowledgeBaseInput { + s.AgentVersion = &v + return s +} + +// SetKnowledgeBaseId sets the KnowledgeBaseId field's value. +func (s *GetAgentKnowledgeBaseInput) SetKnowledgeBaseId(v string) *GetAgentKnowledgeBaseInput { + s.KnowledgeBaseId = &v + return s +} + +// Get Agent Knowledge Base Response +type GetAgentKnowledgeBaseOutput struct { + _ struct{} `type:"structure"` + + // Contains the information of an Agent Knowledge Base. + // + // AgentKnowledgeBase is a required field + AgentKnowledgeBase *AgentKnowledgeBase `locationName:"agentKnowledgeBase" 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 GetAgentKnowledgeBaseOutput) 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 GetAgentKnowledgeBaseOutput) GoString() string { + return s.String() +} + +// SetAgentKnowledgeBase sets the AgentKnowledgeBase field's value. +func (s *GetAgentKnowledgeBaseOutput) SetAgentKnowledgeBase(v *AgentKnowledgeBase) *GetAgentKnowledgeBaseOutput { + s.AgentKnowledgeBase = v + return s +} + +// Get Agent Response +type GetAgentOutput struct { + _ struct{} `type:"structure"` + + // Contains the information of an agent + // + // Agent is a required field + Agent *Agent `locationName:"agent" 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 GetAgentOutput) 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 GetAgentOutput) GoString() string { + return s.String() +} + +// SetAgent sets the Agent field's value. +func (s *GetAgentOutput) SetAgent(v *Agent) *GetAgentOutput { + s.Agent = v + return s +} + +// Get Agent Version Request +type GetAgentVersionInput struct { + _ struct{} `type:"structure" nopayload:"true"` + + // Id generated at the server side when an Agent is created + // + // AgentId is a required field + AgentId *string `location:"uri" locationName:"agentId" type:"string" required:"true"` + + // Numerical Agent Version. + // + // AgentVersion is a required field + AgentVersion *string `location:"uri" locationName:"agentVersion" 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 GetAgentVersionInput) 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 GetAgentVersionInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GetAgentVersionInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "GetAgentVersionInput"} + if s.AgentId == nil { + invalidParams.Add(request.NewErrParamRequired("AgentId")) + } + if s.AgentId != nil && len(*s.AgentId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("AgentId", 1)) + } + if s.AgentVersion == nil { + invalidParams.Add(request.NewErrParamRequired("AgentVersion")) + } + if s.AgentVersion != nil && len(*s.AgentVersion) < 1 { + invalidParams.Add(request.NewErrParamMinLen("AgentVersion", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAgentId sets the AgentId field's value. +func (s *GetAgentVersionInput) SetAgentId(v string) *GetAgentVersionInput { + s.AgentId = &v + return s +} + +// SetAgentVersion sets the AgentVersion field's value. +func (s *GetAgentVersionInput) SetAgentVersion(v string) *GetAgentVersionInput { + s.AgentVersion = &v + return s +} + +// Get Agent Version Response +type GetAgentVersionOutput struct { + _ struct{} `type:"structure"` + + // Contains the information of an agent version. + // + // AgentVersion is a required field + AgentVersion *AgentVersion `locationName:"agentVersion" 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 GetAgentVersionOutput) 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 GetAgentVersionOutput) GoString() string { + return s.String() +} + +// SetAgentVersion sets the AgentVersion field's value. +func (s *GetAgentVersionOutput) SetAgentVersion(v *AgentVersion) *GetAgentVersionOutput { + s.AgentVersion = v + return s +} + +type GetDataSourceInput struct { + _ struct{} `type:"structure" nopayload:"true"` + + // Identifier for a resource. + // + // DataSourceId is a required field + DataSourceId *string `location:"uri" locationName:"dataSourceId" type:"string" required:"true"` + + // Identifier for a resource. + // + // 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 GetDataSourceInput) 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 GetDataSourceInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GetDataSourceInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "GetDataSourceInput"} + if s.DataSourceId == nil { + invalidParams.Add(request.NewErrParamRequired("DataSourceId")) + } + if s.DataSourceId != nil && len(*s.DataSourceId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("DataSourceId", 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 +} + +// SetDataSourceId sets the DataSourceId field's value. +func (s *GetDataSourceInput) SetDataSourceId(v string) *GetDataSourceInput { + s.DataSourceId = &v + return s +} + +// SetKnowledgeBaseId sets the KnowledgeBaseId field's value. +func (s *GetDataSourceInput) SetKnowledgeBaseId(v string) *GetDataSourceInput { + s.KnowledgeBaseId = &v + return s +} + +type GetDataSourceOutput struct { + _ struct{} `type:"structure"` + + // Contains the information of a data source. + // + // DataSource is a required field + DataSource *DataSource `locationName:"dataSource" 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 GetDataSourceOutput) 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 GetDataSourceOutput) GoString() string { + return s.String() +} + +// SetDataSource sets the DataSource field's value. +func (s *GetDataSourceOutput) SetDataSource(v *DataSource) *GetDataSourceOutput { + s.DataSource = v + return s +} + +type GetIngestionJobInput struct { + _ struct{} `type:"structure" nopayload:"true"` + + // Identifier for a resource. + // + // DataSourceId is a required field + DataSourceId *string `location:"uri" locationName:"dataSourceId" type:"string" required:"true"` + + // Identifier for a resource. + // + // IngestionJobId is a required field + IngestionJobId *string `location:"uri" locationName:"ingestionJobId" type:"string" required:"true"` + + // Identifier for a resource. + // + // 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 GetIngestionJobInput) 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 GetIngestionJobInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GetIngestionJobInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "GetIngestionJobInput"} + if s.DataSourceId == nil { + invalidParams.Add(request.NewErrParamRequired("DataSourceId")) + } + if s.DataSourceId != nil && len(*s.DataSourceId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("DataSourceId", 1)) + } + if s.IngestionJobId == nil { + invalidParams.Add(request.NewErrParamRequired("IngestionJobId")) + } + if s.IngestionJobId != nil && len(*s.IngestionJobId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("IngestionJobId", 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 +} + +// SetDataSourceId sets the DataSourceId field's value. +func (s *GetIngestionJobInput) SetDataSourceId(v string) *GetIngestionJobInput { + s.DataSourceId = &v + return s +} + +// SetIngestionJobId sets the IngestionJobId field's value. +func (s *GetIngestionJobInput) SetIngestionJobId(v string) *GetIngestionJobInput { + s.IngestionJobId = &v + return s +} + +// SetKnowledgeBaseId sets the KnowledgeBaseId field's value. +func (s *GetIngestionJobInput) SetKnowledgeBaseId(v string) *GetIngestionJobInput { + s.KnowledgeBaseId = &v + return s +} + +type GetIngestionJobOutput struct { + _ struct{} `type:"structure"` + + // Contains the information of an ingestion job. + // + // IngestionJob is a required field + IngestionJob *IngestionJob `locationName:"ingestionJob" 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 GetIngestionJobOutput) 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 GetIngestionJobOutput) GoString() string { + return s.String() +} + +// SetIngestionJob sets the IngestionJob field's value. +func (s *GetIngestionJobOutput) SetIngestionJob(v *IngestionJob) *GetIngestionJobOutput { + s.IngestionJob = v + return s +} + +type GetKnowledgeBaseInput struct { + _ struct{} `type:"structure" nopayload:"true"` + + // Identifier for a resource. + // + // 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"` + + // Contains the information of a knowledge base. + // + // KnowledgeBase is a required field + KnowledgeBase *KnowledgeBase `locationName:"knowledgeBase" 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 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 *KnowledgeBase) *GetKnowledgeBaseOutput { + s.KnowledgeBase = v + return s +} + +// Configuration for inference in prompt configuration +type InferenceConfiguration struct { + _ struct{} `type:"structure"` + + // Maximum length of output + MaximumLength *int64 `locationName:"maximumLength" type:"integer"` + + // List of stop sequences + StopSequences []*string `locationName:"stopSequences" type:"list"` + + // Controls randomness, higher values increase diversity + Temperature *float64 `locationName:"temperature" type:"float"` + + // Sample from the k most likely next tokens + TopK *int64 `locationName:"topK" type:"integer"` + + // Cumulative probability cutoff for token selection + TopP *float64 `locationName:"topP" type:"float"` +} + +// 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 InferenceConfiguration) 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 InferenceConfiguration) GoString() string { + return s.String() +} + +// SetMaximumLength sets the MaximumLength field's value. +func (s *InferenceConfiguration) SetMaximumLength(v int64) *InferenceConfiguration { + s.MaximumLength = &v + return s +} + +// SetStopSequences sets the StopSequences field's value. +func (s *InferenceConfiguration) SetStopSequences(v []*string) *InferenceConfiguration { + s.StopSequences = v + return s +} + +// SetTemperature sets the Temperature field's value. +func (s *InferenceConfiguration) SetTemperature(v float64) *InferenceConfiguration { + s.Temperature = &v + return s +} + +// SetTopK sets the TopK field's value. +func (s *InferenceConfiguration) SetTopK(v int64) *InferenceConfiguration { + s.TopK = &v + return s +} + +// SetTopP sets the TopP field's value. +func (s *InferenceConfiguration) SetTopP(v float64) *InferenceConfiguration { + s.TopP = &v + return s +} + +// Contains the information of an ingestion job. +type IngestionJob struct { + _ struct{} `type:"structure"` + + // Identifier for a resource. + // + // DataSourceId is a required field + DataSourceId *string `locationName:"dataSourceId" type:"string" required:"true"` + + // Description of the Resource. + Description *string `locationName:"description" min:"1" type:"string"` + + // Failure Reasons for Error. + FailureReasons []*string `locationName:"failureReasons" type:"list"` + + // Identifier for a resource. + // + // IngestionJobId is a required field + IngestionJobId *string `locationName:"ingestionJobId" type:"string" required:"true"` + + // Identifier for a resource. + // + // KnowledgeBaseId is a required field + KnowledgeBaseId *string `locationName:"knowledgeBaseId" type:"string" required:"true"` + + // Time Stamp. + // + // StartedAt is a required field + StartedAt *time.Time `locationName:"startedAt" type:"timestamp" timestampFormat:"iso8601" required:"true"` + + // The document level statistics of an ingestion job + Statistics *IngestionJobStatistics `locationName:"statistics" type:"structure"` + + // The status of an ingestion job. + // + // Status is a required field + Status *string `locationName:"status" type:"string" required:"true" enum:"IngestionJobStatus"` + + // Time Stamp. + // + // UpdatedAt is a required field + UpdatedAt *time.Time `locationName:"updatedAt" type:"timestamp" timestampFormat:"iso8601" 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 IngestionJob) 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 IngestionJob) GoString() string { + return s.String() +} + +// SetDataSourceId sets the DataSourceId field's value. +func (s *IngestionJob) SetDataSourceId(v string) *IngestionJob { + s.DataSourceId = &v + return s +} + +// SetDescription sets the Description field's value. +func (s *IngestionJob) SetDescription(v string) *IngestionJob { + s.Description = &v + return s +} + +// SetFailureReasons sets the FailureReasons field's value. +func (s *IngestionJob) SetFailureReasons(v []*string) *IngestionJob { + s.FailureReasons = v + return s +} + +// SetIngestionJobId sets the IngestionJobId field's value. +func (s *IngestionJob) SetIngestionJobId(v string) *IngestionJob { + s.IngestionJobId = &v + return s +} + +// SetKnowledgeBaseId sets the KnowledgeBaseId field's value. +func (s *IngestionJob) SetKnowledgeBaseId(v string) *IngestionJob { + s.KnowledgeBaseId = &v + return s +} + +// SetStartedAt sets the StartedAt field's value. +func (s *IngestionJob) SetStartedAt(v time.Time) *IngestionJob { + s.StartedAt = &v + return s +} + +// SetStatistics sets the Statistics field's value. +func (s *IngestionJob) SetStatistics(v *IngestionJobStatistics) *IngestionJob { + s.Statistics = v + return s +} + +// SetStatus sets the Status field's value. +func (s *IngestionJob) SetStatus(v string) *IngestionJob { + s.Status = &v + return s +} + +// SetUpdatedAt sets the UpdatedAt field's value. +func (s *IngestionJob) SetUpdatedAt(v time.Time) *IngestionJob { + s.UpdatedAt = &v + return s +} + +// Filters the response returned by ListIngestionJobs operation. +type IngestionJobFilter struct { + _ struct{} `type:"structure"` + + // The name of the field to filter ingestion jobs. + // + // Attribute is a required field + Attribute *string `locationName:"attribute" type:"string" required:"true" enum:"IngestionJobFilterAttribute"` + + // The operator used to filter ingestion jobs. + // + // Operator is a required field + Operator *string `locationName:"operator" type:"string" required:"true" enum:"IngestionJobFilterOperator"` + + // The list of values used to filter ingestion jobs. + // + // Values is a required field + Values []*string `locationName:"values" 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 IngestionJobFilter) 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 IngestionJobFilter) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *IngestionJobFilter) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "IngestionJobFilter"} + if s.Attribute == nil { + invalidParams.Add(request.NewErrParamRequired("Attribute")) + } + if s.Operator == nil { + invalidParams.Add(request.NewErrParamRequired("Operator")) + } + if s.Values == nil { + invalidParams.Add(request.NewErrParamRequired("Values")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAttribute sets the Attribute field's value. +func (s *IngestionJobFilter) SetAttribute(v string) *IngestionJobFilter { + s.Attribute = &v + return s +} + +// SetOperator sets the Operator field's value. +func (s *IngestionJobFilter) SetOperator(v string) *IngestionJobFilter { + s.Operator = &v + return s +} + +// SetValues sets the Values field's value. +func (s *IngestionJobFilter) SetValues(v []*string) *IngestionJobFilter { + s.Values = v + return s +} + +// Sorts the response returned by ListIngestionJobs operation. +type IngestionJobSortBy struct { + _ struct{} `type:"structure"` + + // The name of the field to sort ingestion jobs. + // + // Attribute is a required field + Attribute *string `locationName:"attribute" type:"string" required:"true" enum:"IngestionJobSortByAttribute"` + + // Order to sort results by. + // + // Order is a required field + Order *string `locationName:"order" type:"string" required:"true" enum:"SortOrder"` +} + +// 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 IngestionJobSortBy) 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 IngestionJobSortBy) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *IngestionJobSortBy) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "IngestionJobSortBy"} + if s.Attribute == nil { + invalidParams.Add(request.NewErrParamRequired("Attribute")) + } + if s.Order == nil { + invalidParams.Add(request.NewErrParamRequired("Order")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAttribute sets the Attribute field's value. +func (s *IngestionJobSortBy) SetAttribute(v string) *IngestionJobSortBy { + s.Attribute = &v + return s +} + +// SetOrder sets the Order field's value. +func (s *IngestionJobSortBy) SetOrder(v string) *IngestionJobSortBy { + s.Order = &v + return s +} + +// The document level statistics of an ingestion job +type IngestionJobStatistics struct { + _ struct{} `type:"structure"` + + // Number of deleted documents + NumberOfDocumentsDeleted *int64 `locationName:"numberOfDocumentsDeleted" type:"long"` + + // Number of failed documents + NumberOfDocumentsFailed *int64 `locationName:"numberOfDocumentsFailed" type:"long"` + + // Number of scanned documents + NumberOfDocumentsScanned *int64 `locationName:"numberOfDocumentsScanned" type:"long"` + + // Number of modified documents indexed + NumberOfModifiedDocumentsIndexed *int64 `locationName:"numberOfModifiedDocumentsIndexed" type:"long"` + + // Number of indexed documents + NumberOfNewDocumentsIndexed *int64 `locationName:"numberOfNewDocumentsIndexed" type:"long"` +} + +// 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 IngestionJobStatistics) 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 IngestionJobStatistics) GoString() string { + return s.String() +} + +// SetNumberOfDocumentsDeleted sets the NumberOfDocumentsDeleted field's value. +func (s *IngestionJobStatistics) SetNumberOfDocumentsDeleted(v int64) *IngestionJobStatistics { + s.NumberOfDocumentsDeleted = &v + return s +} + +// SetNumberOfDocumentsFailed sets the NumberOfDocumentsFailed field's value. +func (s *IngestionJobStatistics) SetNumberOfDocumentsFailed(v int64) *IngestionJobStatistics { + s.NumberOfDocumentsFailed = &v + return s +} + +// SetNumberOfDocumentsScanned sets the NumberOfDocumentsScanned field's value. +func (s *IngestionJobStatistics) SetNumberOfDocumentsScanned(v int64) *IngestionJobStatistics { + s.NumberOfDocumentsScanned = &v + return s +} + +// SetNumberOfModifiedDocumentsIndexed sets the NumberOfModifiedDocumentsIndexed field's value. +func (s *IngestionJobStatistics) SetNumberOfModifiedDocumentsIndexed(v int64) *IngestionJobStatistics { + s.NumberOfModifiedDocumentsIndexed = &v + return s +} + +// SetNumberOfNewDocumentsIndexed sets the NumberOfNewDocumentsIndexed field's value. +func (s *IngestionJobStatistics) SetNumberOfNewDocumentsIndexed(v int64) *IngestionJobStatistics { + s.NumberOfNewDocumentsIndexed = &v + return s +} + +// Summary information of an ingestion job. +type IngestionJobSummary struct { + _ struct{} `type:"structure"` + + // Identifier for a resource. + // + // DataSourceId is a required field + DataSourceId *string `locationName:"dataSourceId" type:"string" required:"true"` + + // Description of the Resource. + Description *string `locationName:"description" min:"1" type:"string"` + + // Identifier for a resource. + // + // IngestionJobId is a required field + IngestionJobId *string `locationName:"ingestionJobId" type:"string" required:"true"` + + // Identifier for a resource. + // + // KnowledgeBaseId is a required field + KnowledgeBaseId *string `locationName:"knowledgeBaseId" type:"string" required:"true"` + + // Time Stamp. + // + // StartedAt is a required field + StartedAt *time.Time `locationName:"startedAt" type:"timestamp" timestampFormat:"iso8601" required:"true"` + + // The document level statistics of an ingestion job + Statistics *IngestionJobStatistics `locationName:"statistics" type:"structure"` + + // The status of an ingestion job. + // + // Status is a required field + Status *string `locationName:"status" type:"string" required:"true" enum:"IngestionJobStatus"` + + // Time Stamp. + // + // UpdatedAt is a required field + UpdatedAt *time.Time `locationName:"updatedAt" type:"timestamp" timestampFormat:"iso8601" 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 IngestionJobSummary) 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 IngestionJobSummary) GoString() string { + return s.String() +} + +// SetDataSourceId sets the DataSourceId field's value. +func (s *IngestionJobSummary) SetDataSourceId(v string) *IngestionJobSummary { + s.DataSourceId = &v + return s +} + +// SetDescription sets the Description field's value. +func (s *IngestionJobSummary) SetDescription(v string) *IngestionJobSummary { + s.Description = &v + return s +} + +// SetIngestionJobId sets the IngestionJobId field's value. +func (s *IngestionJobSummary) SetIngestionJobId(v string) *IngestionJobSummary { + s.IngestionJobId = &v + return s +} + +// SetKnowledgeBaseId sets the KnowledgeBaseId field's value. +func (s *IngestionJobSummary) SetKnowledgeBaseId(v string) *IngestionJobSummary { + s.KnowledgeBaseId = &v + return s +} + +// SetStartedAt sets the StartedAt field's value. +func (s *IngestionJobSummary) SetStartedAt(v time.Time) *IngestionJobSummary { + s.StartedAt = &v + return s +} + +// SetStatistics sets the Statistics field's value. +func (s *IngestionJobSummary) SetStatistics(v *IngestionJobStatistics) *IngestionJobSummary { + s.Statistics = v + return s +} + +// SetStatus sets the Status field's value. +func (s *IngestionJobSummary) SetStatus(v string) *IngestionJobSummary { + s.Status = &v + return s +} + +// SetUpdatedAt sets the UpdatedAt field's value. +func (s *IngestionJobSummary) SetUpdatedAt(v time.Time) *IngestionJobSummary { + s.UpdatedAt = &v + return s +} + +// This exception is thrown if there was an unexpected error during processing +// of request +type InternalServerException struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + + // Non Blank String + 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 InternalServerException) 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 InternalServerException) GoString() string { + return s.String() +} + +func newErrorInternalServerException(v protocol.ResponseMetadata) error { + return &InternalServerException{ + RespMetadata: v, + } +} + +// Code returns the exception type name. +func (s *InternalServerException) Code() string { + return "InternalServerException" +} + +// Message returns the exception's message. +func (s *InternalServerException) Message() string { + if s.Message_ != nil { + return *s.Message_ + } + return "" +} + +// OrigErr always returns nil, satisfies awserr.Error interface. +func (s *InternalServerException) OrigErr() error { + return nil +} + +func (s *InternalServerException) 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 *InternalServerException) StatusCode() int { + return s.RespMetadata.StatusCode +} + +// RequestID returns the service's response RequestID for request. +func (s *InternalServerException) RequestID() string { + return s.RespMetadata.RequestID +} + +// Contains the information of a knowledge base. +type KnowledgeBase struct { + _ struct{} `type:"structure"` + + // Time Stamp. + // + // CreatedAt is a required field + CreatedAt *time.Time `locationName:"createdAt" type:"timestamp" timestampFormat:"iso8601" required:"true"` + + // Description of the Resource. + Description *string `locationName:"description" min:"1" type:"string"` + + // Failure Reasons for Error. + FailureReasons []*string `locationName:"failureReasons" type:"list"` + + // ARN of a KnowledgeBase + // + // KnowledgeBaseArn is a required field + KnowledgeBaseArn *string `locationName:"knowledgeBaseArn" type:"string" required:"true"` + + // Configures a bedrock knowledge base. + // + // KnowledgeBaseConfiguration is a required field + KnowledgeBaseConfiguration *KnowledgeBaseConfiguration `locationName:"knowledgeBaseConfiguration" type:"structure" required:"true"` + + // Identifier for a resource. + // + // KnowledgeBaseId is a required field + KnowledgeBaseId *string `locationName:"knowledgeBaseId" type:"string" required:"true"` + + // Name for a resource. + // + // Name is a required field + Name *string `locationName:"name" type:"string" required:"true"` + + // ARN of a IAM role. + // + // RoleArn is a required field + RoleArn *string `locationName:"roleArn" type:"string" required:"true"` + + // The status of a knowledge base. + // + // Status is a required field + Status *string `locationName:"status" type:"string" required:"true" enum:"KnowledgeBaseStatus"` + + // Configures the physical storage of ingested data in a knowledge base. + // + // StorageConfiguration is a required field + StorageConfiguration *StorageConfiguration `locationName:"storageConfiguration" type:"structure" required:"true"` + + // Time Stamp. + // + // UpdatedAt is a required field + UpdatedAt *time.Time `locationName:"updatedAt" type:"timestamp" timestampFormat:"iso8601" 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 KnowledgeBase) 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 KnowledgeBase) GoString() string { + return s.String() +} + +// SetCreatedAt sets the CreatedAt field's value. +func (s *KnowledgeBase) SetCreatedAt(v time.Time) *KnowledgeBase { + s.CreatedAt = &v + return s +} + +// SetDescription sets the Description field's value. +func (s *KnowledgeBase) SetDescription(v string) *KnowledgeBase { + s.Description = &v + return s +} + +// SetFailureReasons sets the FailureReasons field's value. +func (s *KnowledgeBase) SetFailureReasons(v []*string) *KnowledgeBase { + s.FailureReasons = v + return s +} + +// SetKnowledgeBaseArn sets the KnowledgeBaseArn field's value. +func (s *KnowledgeBase) SetKnowledgeBaseArn(v string) *KnowledgeBase { + s.KnowledgeBaseArn = &v + return s +} + +// SetKnowledgeBaseConfiguration sets the KnowledgeBaseConfiguration field's value. +func (s *KnowledgeBase) SetKnowledgeBaseConfiguration(v *KnowledgeBaseConfiguration) *KnowledgeBase { + s.KnowledgeBaseConfiguration = v + return s +} + +// SetKnowledgeBaseId sets the KnowledgeBaseId field's value. +func (s *KnowledgeBase) SetKnowledgeBaseId(v string) *KnowledgeBase { + s.KnowledgeBaseId = &v + return s +} + +// SetName sets the Name field's value. +func (s *KnowledgeBase) SetName(v string) *KnowledgeBase { + s.Name = &v + return s +} + +// SetRoleArn sets the RoleArn field's value. +func (s *KnowledgeBase) SetRoleArn(v string) *KnowledgeBase { + s.RoleArn = &v + return s +} + +// SetStatus sets the Status field's value. +func (s *KnowledgeBase) SetStatus(v string) *KnowledgeBase { + s.Status = &v + return s +} + +// SetStorageConfiguration sets the StorageConfiguration field's value. +func (s *KnowledgeBase) SetStorageConfiguration(v *StorageConfiguration) *KnowledgeBase { + s.StorageConfiguration = v + return s +} + +// SetUpdatedAt sets the UpdatedAt field's value. +func (s *KnowledgeBase) SetUpdatedAt(v time.Time) *KnowledgeBase { + s.UpdatedAt = &v + return s +} + +// Configures a bedrock knowledge base. +type KnowledgeBaseConfiguration struct { + _ struct{} `type:"structure"` + + // The type of a knowledge base. + // + // Type is a required field + Type *string `locationName:"type" type:"string" required:"true" enum:"KnowledgeBaseType"` + + // Configurations for a vector knowledge base. + VectorKnowledgeBaseConfiguration *VectorKnowledgeBaseConfiguration `locationName:"vectorKnowledgeBaseConfiguration" 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 KnowledgeBaseConfiguration) 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 KnowledgeBaseConfiguration) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *KnowledgeBaseConfiguration) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "KnowledgeBaseConfiguration"} + if s.Type == nil { + invalidParams.Add(request.NewErrParamRequired("Type")) + } + if s.VectorKnowledgeBaseConfiguration != nil { + if err := s.VectorKnowledgeBaseConfiguration.Validate(); err != nil { + invalidParams.AddNested("VectorKnowledgeBaseConfiguration", err.(request.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetType sets the Type field's value. +func (s *KnowledgeBaseConfiguration) SetType(v string) *KnowledgeBaseConfiguration { + s.Type = &v + return s +} + +// SetVectorKnowledgeBaseConfiguration sets the VectorKnowledgeBaseConfiguration field's value. +func (s *KnowledgeBaseConfiguration) SetVectorKnowledgeBaseConfiguration(v *VectorKnowledgeBaseConfiguration) *KnowledgeBaseConfiguration { + s.VectorKnowledgeBaseConfiguration = v + return s +} + +// Summary information of a knowledge base. +type KnowledgeBaseSummary struct { + _ struct{} `type:"structure"` + + // Description of the Resource. + Description *string `locationName:"description" min:"1" type:"string"` + + // Identifier for a resource. + // + // KnowledgeBaseId is a required field + KnowledgeBaseId *string `locationName:"knowledgeBaseId" type:"string" required:"true"` + + // Name for a resource. + // + // Name is a required field + Name *string `locationName:"name" type:"string" required:"true"` + + // The status of a knowledge base. + // + // Status is a required field + Status *string `locationName:"status" type:"string" required:"true" enum:"KnowledgeBaseStatus"` + + // Time Stamp. + // + // UpdatedAt is a required field + UpdatedAt *time.Time `locationName:"updatedAt" type:"timestamp" timestampFormat:"iso8601" 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 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 +} + +// SetKnowledgeBaseId sets the KnowledgeBaseId field's value. +func (s *KnowledgeBaseSummary) SetKnowledgeBaseId(v string) *KnowledgeBaseSummary { + s.KnowledgeBaseId = &v + return s +} + +// SetName sets the Name field's value. +func (s *KnowledgeBaseSummary) SetName(v string) *KnowledgeBaseSummary { + s.Name = &v + return s +} + +// SetStatus sets the Status field's value. +func (s *KnowledgeBaseSummary) SetStatus(v string) *KnowledgeBaseSummary { + s.Status = &v + return s +} + +// SetUpdatedAt sets the UpdatedAt field's value. +func (s *KnowledgeBaseSummary) SetUpdatedAt(v time.Time) *KnowledgeBaseSummary { + s.UpdatedAt = &v + return s +} + +// List Action Groups Request +type ListAgentActionGroupsInput struct { + _ struct{} `type:"structure"` + + // Id generated at the server side when an Agent is Listed + // + // AgentId is a required field + AgentId *string `location:"uri" locationName:"agentId" type:"string" required:"true"` + + // Id generated at the server side when an Agent is Listed + // + // AgentVersion is a required field + AgentVersion *string `location:"uri" locationName:"agentVersion" min:"1" type:"string" required:"true"` + + // Max Results. + MaxResults *int64 `locationName:"maxResults" min:"1" type:"integer"` + + // Opaque continuation token of previous paginated response. + 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 ListAgentActionGroupsInput) 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 ListAgentActionGroupsInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListAgentActionGroupsInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ListAgentActionGroupsInput"} + if s.AgentId == nil { + invalidParams.Add(request.NewErrParamRequired("AgentId")) + } + if s.AgentId != nil && len(*s.AgentId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("AgentId", 1)) + } + if s.AgentVersion == nil { + invalidParams.Add(request.NewErrParamRequired("AgentVersion")) + } + if s.AgentVersion != nil && len(*s.AgentVersion) < 1 { + invalidParams.Add(request.NewErrParamMinLen("AgentVersion", 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 +} + +// SetAgentId sets the AgentId field's value. +func (s *ListAgentActionGroupsInput) SetAgentId(v string) *ListAgentActionGroupsInput { + s.AgentId = &v + return s +} + +// SetAgentVersion sets the AgentVersion field's value. +func (s *ListAgentActionGroupsInput) SetAgentVersion(v string) *ListAgentActionGroupsInput { + s.AgentVersion = &v + return s +} + +// SetMaxResults sets the MaxResults field's value. +func (s *ListAgentActionGroupsInput) SetMaxResults(v int64) *ListAgentActionGroupsInput { + s.MaxResults = &v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *ListAgentActionGroupsInput) SetNextToken(v string) *ListAgentActionGroupsInput { + s.NextToken = &v + return s +} + +// List Action Groups Response +type ListAgentActionGroupsOutput struct { + _ struct{} `type:"structure"` + + // List of ActionGroup Summaries + // + // ActionGroupSummaries is a required field + ActionGroupSummaries []*ActionGroupSummary `locationName:"actionGroupSummaries" type:"list" required:"true"` + + // Opaque continuation token of previous paginated response. + 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 ListAgentActionGroupsOutput) 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 ListAgentActionGroupsOutput) GoString() string { + return s.String() +} + +// SetActionGroupSummaries sets the ActionGroupSummaries field's value. +func (s *ListAgentActionGroupsOutput) SetActionGroupSummaries(v []*ActionGroupSummary) *ListAgentActionGroupsOutput { + s.ActionGroupSummaries = v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *ListAgentActionGroupsOutput) SetNextToken(v string) *ListAgentActionGroupsOutput { + s.NextToken = &v + return s +} + +// List Agent Aliases Request +type ListAgentAliasesInput struct { + _ struct{} `type:"structure"` + + // Id generated at the server side when an Agent is created + // + // AgentId is a required field + AgentId *string `location:"uri" locationName:"agentId" type:"string" required:"true"` + + // Max Results. + MaxResults *int64 `locationName:"maxResults" min:"1" type:"integer"` + + // Opaque continuation token of previous paginated response. + 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 ListAgentAliasesInput) 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 ListAgentAliasesInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListAgentAliasesInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ListAgentAliasesInput"} + if s.AgentId == nil { + invalidParams.Add(request.NewErrParamRequired("AgentId")) + } + if s.AgentId != nil && len(*s.AgentId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("AgentId", 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 +} + +// SetAgentId sets the AgentId field's value. +func (s *ListAgentAliasesInput) SetAgentId(v string) *ListAgentAliasesInput { + s.AgentId = &v + return s +} + +// SetMaxResults sets the MaxResults field's value. +func (s *ListAgentAliasesInput) SetMaxResults(v int64) *ListAgentAliasesInput { + s.MaxResults = &v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *ListAgentAliasesInput) SetNextToken(v string) *ListAgentAliasesInput { + s.NextToken = &v + return s +} + +// List Agent Aliases Response +type ListAgentAliasesOutput struct { + _ struct{} `type:"structure"` + + // The list of summaries of all the aliases for an Agent. + // + // AgentAliasSummaries is a required field + AgentAliasSummaries []*AgentAliasSummary `locationName:"agentAliasSummaries" type:"list" required:"true"` + + // Opaque continuation token of previous paginated response. + 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 ListAgentAliasesOutput) 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 ListAgentAliasesOutput) GoString() string { + return s.String() +} + +// SetAgentAliasSummaries sets the AgentAliasSummaries field's value. +func (s *ListAgentAliasesOutput) SetAgentAliasSummaries(v []*AgentAliasSummary) *ListAgentAliasesOutput { + s.AgentAliasSummaries = v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *ListAgentAliasesOutput) SetNextToken(v string) *ListAgentAliasesOutput { + s.NextToken = &v + return s +} + +// List Agent Knowledge Bases Request +type ListAgentKnowledgeBasesInput struct { + _ struct{} `type:"structure"` + + // Id generated at the server side when an Agent is created + // + // AgentId is a required field + AgentId *string `location:"uri" locationName:"agentId" type:"string" required:"true"` + + // Version number generated when a version is created + // + // AgentVersion is a required field + AgentVersion *string `location:"uri" locationName:"agentVersion" min:"1" type:"string" required:"true"` + + // Max Results. + MaxResults *int64 `locationName:"maxResults" min:"1" type:"integer"` + + // Opaque continuation token of previous paginated response. + 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 ListAgentKnowledgeBasesInput) 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 ListAgentKnowledgeBasesInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListAgentKnowledgeBasesInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ListAgentKnowledgeBasesInput"} + if s.AgentId == nil { + invalidParams.Add(request.NewErrParamRequired("AgentId")) + } + if s.AgentId != nil && len(*s.AgentId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("AgentId", 1)) + } + if s.AgentVersion == nil { + invalidParams.Add(request.NewErrParamRequired("AgentVersion")) + } + if s.AgentVersion != nil && len(*s.AgentVersion) < 1 { + invalidParams.Add(request.NewErrParamMinLen("AgentVersion", 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 +} + +// SetAgentId sets the AgentId field's value. +func (s *ListAgentKnowledgeBasesInput) SetAgentId(v string) *ListAgentKnowledgeBasesInput { + s.AgentId = &v + return s +} + +// SetAgentVersion sets the AgentVersion field's value. +func (s *ListAgentKnowledgeBasesInput) SetAgentVersion(v string) *ListAgentKnowledgeBasesInput { + s.AgentVersion = &v + return s +} + +// SetMaxResults sets the MaxResults field's value. +func (s *ListAgentKnowledgeBasesInput) SetMaxResults(v int64) *ListAgentKnowledgeBasesInput { + s.MaxResults = &v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *ListAgentKnowledgeBasesInput) SetNextToken(v string) *ListAgentKnowledgeBasesInput { + s.NextToken = &v + return s +} + +// List Agent Knowledge Bases Response +type ListAgentKnowledgeBasesOutput struct { + _ struct{} `type:"structure"` + + // List of Agent Knowledge Base Summaries + // + // AgentKnowledgeBaseSummaries is a required field + AgentKnowledgeBaseSummaries []*AgentKnowledgeBaseSummary `locationName:"agentKnowledgeBaseSummaries" type:"list" required:"true"` + + // Opaque continuation token of previous paginated response. + 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 ListAgentKnowledgeBasesOutput) 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 ListAgentKnowledgeBasesOutput) GoString() string { + return s.String() +} + +// SetAgentKnowledgeBaseSummaries sets the AgentKnowledgeBaseSummaries field's value. +func (s *ListAgentKnowledgeBasesOutput) SetAgentKnowledgeBaseSummaries(v []*AgentKnowledgeBaseSummary) *ListAgentKnowledgeBasesOutput { + s.AgentKnowledgeBaseSummaries = v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *ListAgentKnowledgeBasesOutput) SetNextToken(v string) *ListAgentKnowledgeBasesOutput { + s.NextToken = &v + return s +} + +// List Agent Versions Request +type ListAgentVersionsInput struct { + _ struct{} `type:"structure"` + + // Id generated at the server side when an Agent is created + // + // AgentId is a required field + AgentId *string `location:"uri" locationName:"agentId" type:"string" required:"true"` + + // Max Results. + MaxResults *int64 `locationName:"maxResults" min:"1" type:"integer"` + + // Opaque continuation token of previous paginated response. + 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 ListAgentVersionsInput) 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 ListAgentVersionsInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListAgentVersionsInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ListAgentVersionsInput"} + if s.AgentId == nil { + invalidParams.Add(request.NewErrParamRequired("AgentId")) + } + if s.AgentId != nil && len(*s.AgentId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("AgentId", 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 +} + +// SetAgentId sets the AgentId field's value. +func (s *ListAgentVersionsInput) SetAgentId(v string) *ListAgentVersionsInput { + s.AgentId = &v + return s +} + +// SetMaxResults sets the MaxResults field's value. +func (s *ListAgentVersionsInput) SetMaxResults(v int64) *ListAgentVersionsInput { + s.MaxResults = &v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *ListAgentVersionsInput) SetNextToken(v string) *ListAgentVersionsInput { + s.NextToken = &v + return s +} + +// List Agent Versions Response +type ListAgentVersionsOutput struct { + _ struct{} `type:"structure"` + + // List of AgentVersionSummary. + // + // AgentVersionSummaries is a required field + AgentVersionSummaries []*AgentVersionSummary `locationName:"agentVersionSummaries" type:"list" required:"true"` + + // Opaque continuation token of previous paginated response. + 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 ListAgentVersionsOutput) 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 ListAgentVersionsOutput) GoString() string { + return s.String() +} + +// SetAgentVersionSummaries sets the AgentVersionSummaries field's value. +func (s *ListAgentVersionsOutput) SetAgentVersionSummaries(v []*AgentVersionSummary) *ListAgentVersionsOutput { + s.AgentVersionSummaries = v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *ListAgentVersionsOutput) SetNextToken(v string) *ListAgentVersionsOutput { + s.NextToken = &v + return s +} + +// List Agent Request +type ListAgentsInput struct { + _ struct{} `type:"structure"` + + // Max Results. + MaxResults *int64 `locationName:"maxResults" min:"1" type:"integer"` + + // Opaque continuation token of previous paginated response. + 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 ListAgentsInput) 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 ListAgentsInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListAgentsInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ListAgentsInput"} + 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 *ListAgentsInput) SetMaxResults(v int64) *ListAgentsInput { + s.MaxResults = &v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *ListAgentsInput) SetNextToken(v string) *ListAgentsInput { + s.NextToken = &v + return s +} + +// List Agent Response +type ListAgentsOutput struct { + _ struct{} `type:"structure"` + + // List of AgentSummary. + // + // AgentSummaries is a required field + AgentSummaries []*AgentSummary `locationName:"agentSummaries" type:"list" required:"true"` + + // Opaque continuation token of previous paginated response. + 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 ListAgentsOutput) 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 ListAgentsOutput) GoString() string { + return s.String() +} + +// SetAgentSummaries sets the AgentSummaries field's value. +func (s *ListAgentsOutput) SetAgentSummaries(v []*AgentSummary) *ListAgentsOutput { + s.AgentSummaries = v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *ListAgentsOutput) SetNextToken(v string) *ListAgentsOutput { + s.NextToken = &v + return s +} + +type ListDataSourcesInput struct { + _ struct{} `type:"structure"` + + // Identifier for a resource. + // + // KnowledgeBaseId is a required field + KnowledgeBaseId *string `location:"uri" locationName:"knowledgeBaseId" type:"string" required:"true"` + + // Max Results. + MaxResults *int64 `locationName:"maxResults" min:"1" type:"integer"` + + // Opaque continuation token of previous paginated response. + 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 ListDataSourcesInput) 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 ListDataSourcesInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListDataSourcesInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ListDataSourcesInput"} + 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 *ListDataSourcesInput) SetKnowledgeBaseId(v string) *ListDataSourcesInput { + s.KnowledgeBaseId = &v + return s +} + +// SetMaxResults sets the MaxResults field's value. +func (s *ListDataSourcesInput) SetMaxResults(v int64) *ListDataSourcesInput { + s.MaxResults = &v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *ListDataSourcesInput) SetNextToken(v string) *ListDataSourcesInput { + s.NextToken = &v + return s +} + +type ListDataSourcesOutput struct { + _ struct{} `type:"structure"` + + // list of data source summaries + // + // DataSourceSummaries is a required field + DataSourceSummaries []*DataSourceSummary `locationName:"dataSourceSummaries" type:"list" required:"true"` + + // Opaque continuation token of previous paginated response. + 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 ListDataSourcesOutput) 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 ListDataSourcesOutput) GoString() string { + return s.String() +} + +// SetDataSourceSummaries sets the DataSourceSummaries field's value. +func (s *ListDataSourcesOutput) SetDataSourceSummaries(v []*DataSourceSummary) *ListDataSourcesOutput { + s.DataSourceSummaries = v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *ListDataSourcesOutput) SetNextToken(v string) *ListDataSourcesOutput { + s.NextToken = &v + return s +} + +type ListIngestionJobsInput struct { + _ struct{} `type:"structure"` + + // Identifier for a resource. + // + // DataSourceId is a required field + DataSourceId *string `location:"uri" locationName:"dataSourceId" type:"string" required:"true"` + + // List of IngestionJobFilters + Filters []*IngestionJobFilter `locationName:"filters" min:"1" type:"list"` + + // Identifier for a resource. + // + // KnowledgeBaseId is a required field + KnowledgeBaseId *string `location:"uri" locationName:"knowledgeBaseId" type:"string" required:"true"` + + // Max Results. + MaxResults *int64 `locationName:"maxResults" min:"1" type:"integer"` + + // Opaque continuation token of previous paginated response. + NextToken *string `locationName:"nextToken" min:"1" type:"string"` + + // Sorts the response returned by ListIngestionJobs operation. + SortBy *IngestionJobSortBy `locationName:"sortBy" 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 ListIngestionJobsInput) 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 ListIngestionJobsInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListIngestionJobsInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ListIngestionJobsInput"} + if s.DataSourceId == nil { + invalidParams.Add(request.NewErrParamRequired("DataSourceId")) + } + if s.DataSourceId != nil && len(*s.DataSourceId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("DataSourceId", 1)) + } + if s.Filters != nil && len(s.Filters) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Filters", 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.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.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.SortBy != nil { + if err := s.SortBy.Validate(); err != nil { + invalidParams.AddNested("SortBy", err.(request.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetDataSourceId sets the DataSourceId field's value. +func (s *ListIngestionJobsInput) SetDataSourceId(v string) *ListIngestionJobsInput { + s.DataSourceId = &v + return s +} + +// SetFilters sets the Filters field's value. +func (s *ListIngestionJobsInput) SetFilters(v []*IngestionJobFilter) *ListIngestionJobsInput { + s.Filters = v + return s +} + +// SetKnowledgeBaseId sets the KnowledgeBaseId field's value. +func (s *ListIngestionJobsInput) SetKnowledgeBaseId(v string) *ListIngestionJobsInput { + s.KnowledgeBaseId = &v + return s +} + +// SetMaxResults sets the MaxResults field's value. +func (s *ListIngestionJobsInput) SetMaxResults(v int64) *ListIngestionJobsInput { + s.MaxResults = &v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *ListIngestionJobsInput) SetNextToken(v string) *ListIngestionJobsInput { + s.NextToken = &v + return s +} + +// SetSortBy sets the SortBy field's value. +func (s *ListIngestionJobsInput) SetSortBy(v *IngestionJobSortBy) *ListIngestionJobsInput { + s.SortBy = v + return s +} + +type ListIngestionJobsOutput struct { + _ struct{} `type:"structure"` + + // List of IngestionJobSummaries + // + // IngestionJobSummaries is a required field + IngestionJobSummaries []*IngestionJobSummary `locationName:"ingestionJobSummaries" type:"list" required:"true"` + + // Opaque continuation token of previous paginated response. + 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 ListIngestionJobsOutput) 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 ListIngestionJobsOutput) GoString() string { + return s.String() +} + +// SetIngestionJobSummaries sets the IngestionJobSummaries field's value. +func (s *ListIngestionJobsOutput) SetIngestionJobSummaries(v []*IngestionJobSummary) *ListIngestionJobsOutput { + s.IngestionJobSummaries = v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *ListIngestionJobsOutput) SetNextToken(v string) *ListIngestionJobsOutput { + s.NextToken = &v + return s +} + +type ListKnowledgeBasesInput struct { + _ struct{} `type:"structure"` + + // Max Results. + MaxResults *int64 `locationName:"maxResults" min:"1" type:"integer"` + + // Opaque continuation token of previous paginated response. + 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 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"` + + // List of KnowledgeBaseSummaries + // + // KnowledgeBaseSummaries is a required field + KnowledgeBaseSummaries []*KnowledgeBaseSummary `locationName:"knowledgeBaseSummaries" type:"list" required:"true"` + + // Opaque continuation token of previous paginated response. + 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 ListTagsForResourceInput struct { + _ struct{} `type:"structure" nopayload:"true"` + + // ARN of Taggable resources: [Agent, AgentAlias, Knowledge-Base] + // + // ResourceArn is a required field + ResourceArn *string `location:"uri" locationName:"resourceArn" min:"20" 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) < 20 { + invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 20)) + } + + 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"` + + // A map of tag keys and values + 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 +} + +// Contains the configurations to use OpenSearch Serverless to store knowledge +// base data. +type OpenSearchServerlessConfiguration struct { + _ struct{} `type:"structure"` + + // Arn of an OpenSearch Serverless collection. + // + // CollectionArn is a required field + CollectionArn *string `locationName:"collectionArn" type:"string" required:"true"` + + // A mapping of Bedrock Knowledge Base fields to OpenSearch Serverless field + // names + // + // FieldMapping is a required field + FieldMapping *OpenSearchServerlessFieldMapping `locationName:"fieldMapping" type:"structure" required:"true"` + + // Arn of an OpenSearch Serverless index. + // + // VectorIndexName is a required field + VectorIndexName *string `locationName:"vectorIndexName" 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 OpenSearchServerlessConfiguration) 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 OpenSearchServerlessConfiguration) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *OpenSearchServerlessConfiguration) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "OpenSearchServerlessConfiguration"} + if s.CollectionArn == nil { + invalidParams.Add(request.NewErrParamRequired("CollectionArn")) + } + if s.FieldMapping == nil { + invalidParams.Add(request.NewErrParamRequired("FieldMapping")) + } + if s.VectorIndexName == nil { + invalidParams.Add(request.NewErrParamRequired("VectorIndexName")) + } + if s.FieldMapping != nil { + if err := s.FieldMapping.Validate(); err != nil { + invalidParams.AddNested("FieldMapping", err.(request.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetCollectionArn sets the CollectionArn field's value. +func (s *OpenSearchServerlessConfiguration) SetCollectionArn(v string) *OpenSearchServerlessConfiguration { + s.CollectionArn = &v + return s +} + +// SetFieldMapping sets the FieldMapping field's value. +func (s *OpenSearchServerlessConfiguration) SetFieldMapping(v *OpenSearchServerlessFieldMapping) *OpenSearchServerlessConfiguration { + s.FieldMapping = v + return s +} + +// SetVectorIndexName sets the VectorIndexName field's value. +func (s *OpenSearchServerlessConfiguration) SetVectorIndexName(v string) *OpenSearchServerlessConfiguration { + s.VectorIndexName = &v + return s +} + +// A mapping of Bedrock Knowledge Base fields to OpenSearch Serverless field +// names +type OpenSearchServerlessFieldMapping struct { + _ struct{} `type:"structure"` + + // Name of the field + // + // MetadataField is a required field + MetadataField *string `locationName:"metadataField" type:"string" required:"true"` + + // Name of the field + // + // TextField is a required field + TextField *string `locationName:"textField" type:"string" required:"true"` + + // Name of the field + // + // VectorField is a required field + VectorField *string `locationName:"vectorField" 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 OpenSearchServerlessFieldMapping) 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 OpenSearchServerlessFieldMapping) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *OpenSearchServerlessFieldMapping) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "OpenSearchServerlessFieldMapping"} + if s.MetadataField == nil { + invalidParams.Add(request.NewErrParamRequired("MetadataField")) + } + if s.TextField == nil { + invalidParams.Add(request.NewErrParamRequired("TextField")) + } + if s.VectorField == nil { + invalidParams.Add(request.NewErrParamRequired("VectorField")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetMetadataField sets the MetadataField field's value. +func (s *OpenSearchServerlessFieldMapping) SetMetadataField(v string) *OpenSearchServerlessFieldMapping { + s.MetadataField = &v + return s +} + +// SetTextField sets the TextField field's value. +func (s *OpenSearchServerlessFieldMapping) SetTextField(v string) *OpenSearchServerlessFieldMapping { + s.TextField = &v + return s +} + +// SetVectorField sets the VectorField field's value. +func (s *OpenSearchServerlessFieldMapping) SetVectorField(v string) *OpenSearchServerlessFieldMapping { + s.VectorField = &v + return s +} + +// Contains the configurations to use Pinecone to store knowledge base data. +type PineconeConfiguration struct { + _ struct{} `type:"structure"` + + // Pinecone connection string + // + // ConnectionString is a required field + ConnectionString *string `locationName:"connectionString" type:"string" required:"true"` + + // Arn of a SecretsManager Secret. + // + // CredentialsSecretArn is a required field + CredentialsSecretArn *string `locationName:"credentialsSecretArn" type:"string" required:"true"` + + // A mapping of Bedrock Knowledge Base fields to Pinecone field names + // + // FieldMapping is a required field + FieldMapping *PineconeFieldMapping `locationName:"fieldMapping" type:"structure" required:"true"` + + // Pinecone namespace + Namespace *string `locationName:"namespace" 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 PineconeConfiguration) 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 PineconeConfiguration) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *PineconeConfiguration) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "PineconeConfiguration"} + if s.ConnectionString == nil { + invalidParams.Add(request.NewErrParamRequired("ConnectionString")) + } + if s.CredentialsSecretArn == nil { + invalidParams.Add(request.NewErrParamRequired("CredentialsSecretArn")) + } + if s.FieldMapping == nil { + invalidParams.Add(request.NewErrParamRequired("FieldMapping")) + } + if s.FieldMapping != nil { + if err := s.FieldMapping.Validate(); err != nil { + invalidParams.AddNested("FieldMapping", err.(request.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetConnectionString sets the ConnectionString field's value. +func (s *PineconeConfiguration) SetConnectionString(v string) *PineconeConfiguration { + s.ConnectionString = &v + return s +} + +// SetCredentialsSecretArn sets the CredentialsSecretArn field's value. +func (s *PineconeConfiguration) SetCredentialsSecretArn(v string) *PineconeConfiguration { + s.CredentialsSecretArn = &v + return s +} + +// SetFieldMapping sets the FieldMapping field's value. +func (s *PineconeConfiguration) SetFieldMapping(v *PineconeFieldMapping) *PineconeConfiguration { + s.FieldMapping = v + return s +} + +// SetNamespace sets the Namespace field's value. +func (s *PineconeConfiguration) SetNamespace(v string) *PineconeConfiguration { + s.Namespace = &v + return s +} + +// A mapping of Bedrock Knowledge Base fields to Pinecone field names +type PineconeFieldMapping struct { + _ struct{} `type:"structure"` + + // Name of the field + // + // MetadataField is a required field + MetadataField *string `locationName:"metadataField" type:"string" required:"true"` + + // Name of the field + // + // TextField is a required field + TextField *string `locationName:"textField" 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 PineconeFieldMapping) 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 PineconeFieldMapping) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *PineconeFieldMapping) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "PineconeFieldMapping"} + if s.MetadataField == nil { + invalidParams.Add(request.NewErrParamRequired("MetadataField")) + } + if s.TextField == nil { + invalidParams.Add(request.NewErrParamRequired("TextField")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetMetadataField sets the MetadataField field's value. +func (s *PineconeFieldMapping) SetMetadataField(v string) *PineconeFieldMapping { + s.MetadataField = &v + return s +} + +// SetTextField sets the TextField field's value. +func (s *PineconeFieldMapping) SetTextField(v string) *PineconeFieldMapping { + s.TextField = &v + return s +} + +// PrepareAgent Request +type PrepareAgentInput struct { + _ struct{} `type:"structure" nopayload:"true"` + + // Id generated at the server side when an Agent is created + // + // AgentId is a required field + AgentId *string `location:"uri" locationName:"agentId" 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 PrepareAgentInput) 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 PrepareAgentInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *PrepareAgentInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "PrepareAgentInput"} + if s.AgentId == nil { + invalidParams.Add(request.NewErrParamRequired("AgentId")) + } + if s.AgentId != nil && len(*s.AgentId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("AgentId", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAgentId sets the AgentId field's value. +func (s *PrepareAgentInput) SetAgentId(v string) *PrepareAgentInput { + s.AgentId = &v + return s +} + +// PrepareAgent Response +type PrepareAgentOutput struct { + _ struct{} `type:"structure"` + + // Identifier for a resource. + // + // AgentId is a required field + AgentId *string `locationName:"agentId" type:"string" required:"true"` + + // Schema Type for Action APIs. + // + // AgentStatus is a required field + AgentStatus *string `locationName:"agentStatus" type:"string" required:"true" enum:"AgentStatus"` + + // Agent Version. + // + // AgentVersion is a required field + AgentVersion *string `locationName:"agentVersion" min:"1" type:"string" required:"true"` + + // Time Stamp. + // + // PreparedAt is a required field + PreparedAt *time.Time `locationName:"preparedAt" type:"timestamp" timestampFormat:"iso8601" 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 PrepareAgentOutput) 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 PrepareAgentOutput) GoString() string { + return s.String() +} + +// SetAgentId sets the AgentId field's value. +func (s *PrepareAgentOutput) SetAgentId(v string) *PrepareAgentOutput { + s.AgentId = &v + return s +} + +// SetAgentStatus sets the AgentStatus field's value. +func (s *PrepareAgentOutput) SetAgentStatus(v string) *PrepareAgentOutput { + s.AgentStatus = &v + return s +} + +// SetAgentVersion sets the AgentVersion field's value. +func (s *PrepareAgentOutput) SetAgentVersion(v string) *PrepareAgentOutput { + s.AgentVersion = &v + return s +} + +// SetPreparedAt sets the PreparedAt field's value. +func (s *PrepareAgentOutput) SetPreparedAt(v time.Time) *PrepareAgentOutput { + s.PreparedAt = &v + return s +} + +// BasePromptConfiguration per Prompt Type. +type PromptConfiguration struct { + _ struct{} `type:"structure"` + + // Base Prompt Template. + BasePromptTemplate *string `locationName:"basePromptTemplate" min:"1" type:"string"` + + // Configuration for inference in prompt configuration + InferenceConfiguration *InferenceConfiguration `locationName:"inferenceConfiguration" type:"structure"` + + // Creation Mode for Prompt Configuration. + ParserMode *string `locationName:"parserMode" type:"string" enum:"CreationMode"` + + // Creation Mode for Prompt Configuration. + PromptCreationMode *string `locationName:"promptCreationMode" type:"string" enum:"CreationMode"` + + // Prompt State. + PromptState *string `locationName:"promptState" type:"string" enum:"PromptState"` + + // Prompt Type. + PromptType *string `locationName:"promptType" type:"string" enum:"PromptType"` +} + +// 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 PromptConfiguration) 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 PromptConfiguration) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *PromptConfiguration) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "PromptConfiguration"} + if s.BasePromptTemplate != nil && len(*s.BasePromptTemplate) < 1 { + invalidParams.Add(request.NewErrParamMinLen("BasePromptTemplate", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetBasePromptTemplate sets the BasePromptTemplate field's value. +func (s *PromptConfiguration) SetBasePromptTemplate(v string) *PromptConfiguration { + s.BasePromptTemplate = &v + return s +} + +// SetInferenceConfiguration sets the InferenceConfiguration field's value. +func (s *PromptConfiguration) SetInferenceConfiguration(v *InferenceConfiguration) *PromptConfiguration { + s.InferenceConfiguration = v + return s +} + +// SetParserMode sets the ParserMode field's value. +func (s *PromptConfiguration) SetParserMode(v string) *PromptConfiguration { + s.ParserMode = &v + return s +} + +// SetPromptCreationMode sets the PromptCreationMode field's value. +func (s *PromptConfiguration) SetPromptCreationMode(v string) *PromptConfiguration { + s.PromptCreationMode = &v + return s +} + +// SetPromptState sets the PromptState field's value. +func (s *PromptConfiguration) SetPromptState(v string) *PromptConfiguration { + s.PromptState = &v + return s +} + +// SetPromptType sets the PromptType field's value. +func (s *PromptConfiguration) SetPromptType(v string) *PromptConfiguration { + s.PromptType = &v + return s +} + +// Configuration for prompt override. +type PromptOverrideConfiguration struct { + _ struct{} `type:"structure" sensitive:"true"` + + // ARN of a Lambda. + OverrideLambda *string `locationName:"overrideLambda" type:"string"` + + // List of BasePromptConfiguration + // + // PromptConfigurations is a required field + PromptConfigurations []*PromptConfiguration `locationName:"promptConfigurations" 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 PromptOverrideConfiguration) 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 PromptOverrideConfiguration) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *PromptOverrideConfiguration) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "PromptOverrideConfiguration"} + if s.PromptConfigurations == nil { + invalidParams.Add(request.NewErrParamRequired("PromptConfigurations")) + } + if s.PromptConfigurations != nil { + for i, v := range s.PromptConfigurations { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "PromptConfigurations", i), err.(request.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetOverrideLambda sets the OverrideLambda field's value. +func (s *PromptOverrideConfiguration) SetOverrideLambda(v string) *PromptOverrideConfiguration { + s.OverrideLambda = &v + return s +} + +// SetPromptConfigurations sets the PromptConfigurations field's value. +func (s *PromptOverrideConfiguration) SetPromptConfigurations(v []*PromptConfiguration) *PromptOverrideConfiguration { + s.PromptConfigurations = v + return s +} + +// Contains the configurations to use Redis Enterprise Cloud to store knowledge +// base data. +type RedisEnterpriseCloudConfiguration struct { + _ struct{} `type:"structure"` + + // Arn of a SecretsManager Secret. + // + // CredentialsSecretArn is a required field + CredentialsSecretArn *string `locationName:"credentialsSecretArn" type:"string" required:"true"` + + // Redis enterprise cloud endpoint + // + // Endpoint is a required field + Endpoint *string `locationName:"endpoint" type:"string" required:"true"` + + // A mapping of Bedrock Knowledge Base fields to Redis Cloud field names + // + // FieldMapping is a required field + FieldMapping *RedisEnterpriseCloudFieldMapping `locationName:"fieldMapping" type:"structure" required:"true"` + + // Name of a redis enterprise cloud index + // + // VectorIndexName is a required field + VectorIndexName *string `locationName:"vectorIndexName" 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 RedisEnterpriseCloudConfiguration) 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 RedisEnterpriseCloudConfiguration) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *RedisEnterpriseCloudConfiguration) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "RedisEnterpriseCloudConfiguration"} + if s.CredentialsSecretArn == nil { + invalidParams.Add(request.NewErrParamRequired("CredentialsSecretArn")) + } + if s.Endpoint == nil { + invalidParams.Add(request.NewErrParamRequired("Endpoint")) + } + if s.FieldMapping == nil { + invalidParams.Add(request.NewErrParamRequired("FieldMapping")) + } + if s.VectorIndexName == nil { + invalidParams.Add(request.NewErrParamRequired("VectorIndexName")) + } + if s.FieldMapping != nil { + if err := s.FieldMapping.Validate(); err != nil { + invalidParams.AddNested("FieldMapping", err.(request.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetCredentialsSecretArn sets the CredentialsSecretArn field's value. +func (s *RedisEnterpriseCloudConfiguration) SetCredentialsSecretArn(v string) *RedisEnterpriseCloudConfiguration { + s.CredentialsSecretArn = &v + return s +} + +// SetEndpoint sets the Endpoint field's value. +func (s *RedisEnterpriseCloudConfiguration) SetEndpoint(v string) *RedisEnterpriseCloudConfiguration { + s.Endpoint = &v + return s +} + +// SetFieldMapping sets the FieldMapping field's value. +func (s *RedisEnterpriseCloudConfiguration) SetFieldMapping(v *RedisEnterpriseCloudFieldMapping) *RedisEnterpriseCloudConfiguration { + s.FieldMapping = v + return s +} + +// SetVectorIndexName sets the VectorIndexName field's value. +func (s *RedisEnterpriseCloudConfiguration) SetVectorIndexName(v string) *RedisEnterpriseCloudConfiguration { + s.VectorIndexName = &v + return s +} + +// A mapping of Bedrock Knowledge Base fields to Redis Cloud field names +type RedisEnterpriseCloudFieldMapping struct { + _ struct{} `type:"structure"` + + // Name of the field + // + // MetadataField is a required field + MetadataField *string `locationName:"metadataField" type:"string" required:"true"` + + // Name of the field + // + // TextField is a required field + TextField *string `locationName:"textField" type:"string" required:"true"` + + // Name of the field + // + // VectorField is a required field + VectorField *string `locationName:"vectorField" 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 RedisEnterpriseCloudFieldMapping) 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 RedisEnterpriseCloudFieldMapping) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *RedisEnterpriseCloudFieldMapping) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "RedisEnterpriseCloudFieldMapping"} + if s.MetadataField == nil { + invalidParams.Add(request.NewErrParamRequired("MetadataField")) + } + if s.TextField == nil { + invalidParams.Add(request.NewErrParamRequired("TextField")) + } + if s.VectorField == nil { + invalidParams.Add(request.NewErrParamRequired("VectorField")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetMetadataField sets the MetadataField field's value. +func (s *RedisEnterpriseCloudFieldMapping) SetMetadataField(v string) *RedisEnterpriseCloudFieldMapping { + s.MetadataField = &v + return s +} + +// SetTextField sets the TextField field's value. +func (s *RedisEnterpriseCloudFieldMapping) SetTextField(v string) *RedisEnterpriseCloudFieldMapping { + s.TextField = &v + return s +} + +// SetVectorField sets the VectorField field's value. +func (s *RedisEnterpriseCloudFieldMapping) SetVectorField(v string) *RedisEnterpriseCloudFieldMapping { + s.VectorField = &v + return s +} + +// This exception is thrown when a resource referenced by the operation does +// not exist +type ResourceNotFoundException struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + + // Non Blank String + 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 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", s.Code(), s.Message()) +} + +// 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 +} + +// Configures an S3 data source location. +type S3DataSourceConfiguration struct { + _ struct{} `type:"structure"` + + // A S3 bucket ARN + // + // BucketArn is a required field + BucketArn *string `locationName:"bucketArn" min:"1" type:"string" required:"true"` + + // A list of S3 prefixes. + InclusionPrefixes []*string `locationName:"inclusionPrefixes" 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 S3DataSourceConfiguration) 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 S3DataSourceConfiguration) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *S3DataSourceConfiguration) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "S3DataSourceConfiguration"} + if s.BucketArn == nil { + invalidParams.Add(request.NewErrParamRequired("BucketArn")) + } + if s.BucketArn != nil && len(*s.BucketArn) < 1 { + invalidParams.Add(request.NewErrParamMinLen("BucketArn", 1)) + } + if s.InclusionPrefixes != nil && len(s.InclusionPrefixes) < 1 { + invalidParams.Add(request.NewErrParamMinLen("InclusionPrefixes", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetBucketArn sets the BucketArn field's value. +func (s *S3DataSourceConfiguration) SetBucketArn(v string) *S3DataSourceConfiguration { + s.BucketArn = &v + return s +} + +// SetInclusionPrefixes sets the InclusionPrefixes field's value. +func (s *S3DataSourceConfiguration) SetInclusionPrefixes(v []*string) *S3DataSourceConfiguration { + s.InclusionPrefixes = v + return s +} + +// The identifier for the S3 resource. +type S3Identifier struct { + _ struct{} `type:"structure"` + + // A bucket in S3. + S3BucketName *string `locationName:"s3BucketName" min:"3" type:"string"` + + // A object key in S3. + S3ObjectKey *string `locationName:"s3ObjectKey" 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 S3Identifier) 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 S3Identifier) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *S3Identifier) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "S3Identifier"} + if s.S3BucketName != nil && len(*s.S3BucketName) < 3 { + invalidParams.Add(request.NewErrParamMinLen("S3BucketName", 3)) + } + if s.S3ObjectKey != nil && len(*s.S3ObjectKey) < 1 { + invalidParams.Add(request.NewErrParamMinLen("S3ObjectKey", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetS3BucketName sets the S3BucketName field's value. +func (s *S3Identifier) SetS3BucketName(v string) *S3Identifier { + s.S3BucketName = &v + return s +} + +// SetS3ObjectKey sets the S3ObjectKey field's value. +func (s *S3Identifier) SetS3ObjectKey(v string) *S3Identifier { + s.S3ObjectKey = &v + return s +} + +// Server-side encryption configuration. +type ServerSideEncryptionConfiguration struct { + _ struct{} `type:"structure"` + + // A KMS key ARN + KmsKeyArn *string `locationName:"kmsKeyArn" 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.KmsKeyArn != nil && len(*s.KmsKeyArn) < 1 { + invalidParams.Add(request.NewErrParamMinLen("KmsKeyArn", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetKmsKeyArn sets the KmsKeyArn field's value. +func (s *ServerSideEncryptionConfiguration) SetKmsKeyArn(v string) *ServerSideEncryptionConfiguration { + s.KmsKeyArn = &v + return s +} + +// This exception is thrown when a request is made beyond the service quota +type ServiceQuotaExceededException struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + + // Non Blank String + 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 +} + +type StartIngestionJobInput struct { + _ struct{} `type:"structure"` + + // Client specified token used for idempotency checks + ClientToken *string `locationName:"clientToken" min:"33" type:"string" idempotencyToken:"true"` + + // Identifier for a resource. + // + // DataSourceId is a required field + DataSourceId *string `location:"uri" locationName:"dataSourceId" type:"string" required:"true"` + + // Description of the Resource. + Description *string `locationName:"description" min:"1" type:"string"` + + // Identifier for a resource. + // + // 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 StartIngestionJobInput) 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 StartIngestionJobInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *StartIngestionJobInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "StartIngestionJobInput"} + if s.ClientToken != nil && len(*s.ClientToken) < 33 { + invalidParams.Add(request.NewErrParamMinLen("ClientToken", 33)) + } + if s.DataSourceId == nil { + invalidParams.Add(request.NewErrParamRequired("DataSourceId")) + } + if s.DataSourceId != nil && len(*s.DataSourceId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("DataSourceId", 1)) + } + 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 invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetClientToken sets the ClientToken field's value. +func (s *StartIngestionJobInput) SetClientToken(v string) *StartIngestionJobInput { + s.ClientToken = &v + return s +} + +// SetDataSourceId sets the DataSourceId field's value. +func (s *StartIngestionJobInput) SetDataSourceId(v string) *StartIngestionJobInput { + s.DataSourceId = &v + return s +} + +// SetDescription sets the Description field's value. +func (s *StartIngestionJobInput) SetDescription(v string) *StartIngestionJobInput { + s.Description = &v + return s +} + +// SetKnowledgeBaseId sets the KnowledgeBaseId field's value. +func (s *StartIngestionJobInput) SetKnowledgeBaseId(v string) *StartIngestionJobInput { + s.KnowledgeBaseId = &v + return s +} + +type StartIngestionJobOutput struct { + _ struct{} `type:"structure"` + + // Contains the information of an ingestion job. + // + // IngestionJob is a required field + IngestionJob *IngestionJob `locationName:"ingestionJob" 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 StartIngestionJobOutput) 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 StartIngestionJobOutput) GoString() string { + return s.String() +} + +// SetIngestionJob sets the IngestionJob field's value. +func (s *StartIngestionJobOutput) SetIngestionJob(v *IngestionJob) *StartIngestionJobOutput { + s.IngestionJob = v + return s +} + +// Configures the physical storage of ingested data in a knowledge base. +type StorageConfiguration struct { + _ struct{} `type:"structure"` + + // Contains the configurations to use OpenSearch Serverless to store knowledge + // base data. + OpensearchServerlessConfiguration *OpenSearchServerlessConfiguration `locationName:"opensearchServerlessConfiguration" type:"structure"` + + // Contains the configurations to use Pinecone to store knowledge base data. + PineconeConfiguration *PineconeConfiguration `locationName:"pineconeConfiguration" type:"structure"` + + // Contains the configurations to use Redis Enterprise Cloud to store knowledge + // base data. + RedisEnterpriseCloudConfiguration *RedisEnterpriseCloudConfiguration `locationName:"redisEnterpriseCloudConfiguration" type:"structure"` + + // The storage type of a knowledge base. + // + // Type is a required field + Type *string `locationName:"type" type:"string" required:"true" enum:"KnowledgeBaseStorageType"` +} + +// 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 StorageConfiguration) 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 StorageConfiguration) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *StorageConfiguration) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "StorageConfiguration"} + if s.Type == nil { + invalidParams.Add(request.NewErrParamRequired("Type")) + } + if s.OpensearchServerlessConfiguration != nil { + if err := s.OpensearchServerlessConfiguration.Validate(); err != nil { + invalidParams.AddNested("OpensearchServerlessConfiguration", err.(request.ErrInvalidParams)) + } + } + if s.PineconeConfiguration != nil { + if err := s.PineconeConfiguration.Validate(); err != nil { + invalidParams.AddNested("PineconeConfiguration", err.(request.ErrInvalidParams)) + } + } + if s.RedisEnterpriseCloudConfiguration != nil { + if err := s.RedisEnterpriseCloudConfiguration.Validate(); err != nil { + invalidParams.AddNested("RedisEnterpriseCloudConfiguration", err.(request.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetOpensearchServerlessConfiguration sets the OpensearchServerlessConfiguration field's value. +func (s *StorageConfiguration) SetOpensearchServerlessConfiguration(v *OpenSearchServerlessConfiguration) *StorageConfiguration { + s.OpensearchServerlessConfiguration = v + return s +} + +// SetPineconeConfiguration sets the PineconeConfiguration field's value. +func (s *StorageConfiguration) SetPineconeConfiguration(v *PineconeConfiguration) *StorageConfiguration { + s.PineconeConfiguration = v + return s +} + +// SetRedisEnterpriseCloudConfiguration sets the RedisEnterpriseCloudConfiguration field's value. +func (s *StorageConfiguration) SetRedisEnterpriseCloudConfiguration(v *RedisEnterpriseCloudConfiguration) *StorageConfiguration { + s.RedisEnterpriseCloudConfiguration = v + return s +} + +// SetType sets the Type field's value. +func (s *StorageConfiguration) SetType(v string) *StorageConfiguration { + s.Type = &v + return s +} + +type TagResourceInput struct { + _ struct{} `type:"structure"` + + // ARN of Taggable resources: [Agent, AgentAlias, Knowledge-Base] + // + // ResourceArn is a required field + ResourceArn *string `location:"uri" locationName:"resourceArn" min:"20" type:"string" required:"true"` + + // A map of tag keys and values + // + // 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) < 20 { + invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 20)) + } + 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() +} + +// This exception is thrown when the number of requests exceeds the limit +type ThrottlingException struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + + // Non Blank String + 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 ThrottlingException) 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 ThrottlingException) GoString() string { + return s.String() +} + +func newErrorThrottlingException(v protocol.ResponseMetadata) error { + return &ThrottlingException{ + RespMetadata: v, + } +} + +// Code returns the exception type name. +func (s *ThrottlingException) Code() string { + return "ThrottlingException" +} + +// Message returns the exception's message. +func (s *ThrottlingException) Message() string { + if s.Message_ != nil { + return *s.Message_ + } + return "" +} + +// OrigErr always returns nil, satisfies awserr.Error interface. +func (s *ThrottlingException) OrigErr() error { + return nil +} + +func (s *ThrottlingException) 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 *ThrottlingException) StatusCode() int { + return s.RespMetadata.StatusCode +} + +// RequestID returns the service's response RequestID for request. +func (s *ThrottlingException) RequestID() string { + return s.RespMetadata.RequestID +} + +type UntagResourceInput struct { + _ struct{} `type:"structure" nopayload:"true"` + + // ARN of Taggable resources: [Agent, AgentAlias, Knowledge-Base] + // + // ResourceArn is a required field + ResourceArn *string `location:"uri" locationName:"resourceArn" min:"20" type:"string" required:"true"` + + // List of Tag Keys + // + // TagKeys is a required field + TagKeys []*string `location:"querystring" locationName:"tagKeys" 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) < 20 { + invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 20)) + } + if s.TagKeys == nil { + invalidParams.Add(request.NewErrParamRequired("TagKeys")) + } + + 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() +} + +// Update Action Group Request +type UpdateAgentActionGroupInput struct { + _ struct{} `type:"structure"` + + // Type of Executors for an Action Group + ActionGroupExecutor *ActionGroupExecutor `locationName:"actionGroupExecutor" type:"structure"` + + // Id generated at the server side when an Action Group is created under Agent + // + // ActionGroupId is a required field + ActionGroupId *string `location:"uri" locationName:"actionGroupId" type:"string" required:"true"` + + // Name for a resource. + // + // ActionGroupName is a required field + ActionGroupName *string `locationName:"actionGroupName" type:"string" required:"true"` + + // State of the action group + ActionGroupState *string `locationName:"actionGroupState" type:"string" enum:"ActionGroupState"` + + // Id generated at the server side when an Agent is created + // + // AgentId is a required field + AgentId *string `location:"uri" locationName:"agentId" type:"string" required:"true"` + + // Draft Version of the Agent. + // + // AgentVersion is a required field + AgentVersion *string `location:"uri" locationName:"agentVersion" min:"5" type:"string" required:"true"` + + // Contains information about the API Schema for the Action Group + ApiSchema *APISchema `locationName:"apiSchema" type:"structure"` + + // Description of the Resource. + Description *string `locationName:"description" min:"1" type:"string"` + + // Action Group Signature for a BuiltIn Action + ParentActionGroupSignature *string `locationName:"parentActionGroupSignature" type:"string" enum:"ActionGroupSignature"` +} + +// 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 UpdateAgentActionGroupInput) 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 UpdateAgentActionGroupInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *UpdateAgentActionGroupInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "UpdateAgentActionGroupInput"} + if s.ActionGroupId == nil { + invalidParams.Add(request.NewErrParamRequired("ActionGroupId")) + } + if s.ActionGroupId != nil && len(*s.ActionGroupId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ActionGroupId", 1)) + } + if s.ActionGroupName == nil { + invalidParams.Add(request.NewErrParamRequired("ActionGroupName")) + } + if s.AgentId == nil { + invalidParams.Add(request.NewErrParamRequired("AgentId")) + } + if s.AgentId != nil && len(*s.AgentId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("AgentId", 1)) + } + if s.AgentVersion == nil { + invalidParams.Add(request.NewErrParamRequired("AgentVersion")) + } + if s.AgentVersion != nil && len(*s.AgentVersion) < 5 { + invalidParams.Add(request.NewErrParamMinLen("AgentVersion", 5)) + } + if s.Description != nil && len(*s.Description) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Description", 1)) + } + if s.ApiSchema != nil { + if err := s.ApiSchema.Validate(); err != nil { + invalidParams.AddNested("ApiSchema", err.(request.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetActionGroupExecutor sets the ActionGroupExecutor field's value. +func (s *UpdateAgentActionGroupInput) SetActionGroupExecutor(v *ActionGroupExecutor) *UpdateAgentActionGroupInput { + s.ActionGroupExecutor = v + return s +} + +// SetActionGroupId sets the ActionGroupId field's value. +func (s *UpdateAgentActionGroupInput) SetActionGroupId(v string) *UpdateAgentActionGroupInput { + s.ActionGroupId = &v + return s +} + +// SetActionGroupName sets the ActionGroupName field's value. +func (s *UpdateAgentActionGroupInput) SetActionGroupName(v string) *UpdateAgentActionGroupInput { + s.ActionGroupName = &v + return s +} + +// SetActionGroupState sets the ActionGroupState field's value. +func (s *UpdateAgentActionGroupInput) SetActionGroupState(v string) *UpdateAgentActionGroupInput { + s.ActionGroupState = &v + return s +} + +// SetAgentId sets the AgentId field's value. +func (s *UpdateAgentActionGroupInput) SetAgentId(v string) *UpdateAgentActionGroupInput { + s.AgentId = &v + return s +} + +// SetAgentVersion sets the AgentVersion field's value. +func (s *UpdateAgentActionGroupInput) SetAgentVersion(v string) *UpdateAgentActionGroupInput { + s.AgentVersion = &v + return s +} + +// SetApiSchema sets the ApiSchema field's value. +func (s *UpdateAgentActionGroupInput) SetApiSchema(v *APISchema) *UpdateAgentActionGroupInput { + s.ApiSchema = v + return s +} + +// SetDescription sets the Description field's value. +func (s *UpdateAgentActionGroupInput) SetDescription(v string) *UpdateAgentActionGroupInput { + s.Description = &v + return s +} + +// SetParentActionGroupSignature sets the ParentActionGroupSignature field's value. +func (s *UpdateAgentActionGroupInput) SetParentActionGroupSignature(v string) *UpdateAgentActionGroupInput { + s.ParentActionGroupSignature = &v + return s +} + +// Update Action Group Response +type UpdateAgentActionGroupOutput struct { + _ struct{} `type:"structure"` + + // Contains the information of an Agent Action Group + // + // AgentActionGroup is a required field + AgentActionGroup *AgentActionGroup `locationName:"agentActionGroup" 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 UpdateAgentActionGroupOutput) 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 UpdateAgentActionGroupOutput) GoString() string { + return s.String() +} + +// SetAgentActionGroup sets the AgentActionGroup field's value. +func (s *UpdateAgentActionGroupOutput) SetAgentActionGroup(v *AgentActionGroup) *UpdateAgentActionGroupOutput { + s.AgentActionGroup = v + return s +} + +// Update Agent Alias Request +type UpdateAgentAliasInput struct { + _ struct{} `type:"structure"` + + // Id generated at the server side when an Agent Alias is created + // + // AgentAliasId is a required field + AgentAliasId *string `location:"uri" locationName:"agentAliasId" min:"10" type:"string" required:"true"` + + // Name for a resource. + // + // AgentAliasName is a required field + AgentAliasName *string `locationName:"agentAliasName" type:"string" required:"true"` + + // Id generated at the server side when an Agent is created + // + // AgentId is a required field + AgentId *string `location:"uri" locationName:"agentId" type:"string" required:"true"` + + // Description of the Resource. + Description *string `locationName:"description" min:"1" type:"string"` + + // Routing configuration for an Agent alias. + RoutingConfiguration []*AgentAliasRoutingConfigurationListItem `locationName:"routingConfiguration" 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 UpdateAgentAliasInput) 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 UpdateAgentAliasInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *UpdateAgentAliasInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "UpdateAgentAliasInput"} + if s.AgentAliasId == nil { + invalidParams.Add(request.NewErrParamRequired("AgentAliasId")) + } + if s.AgentAliasId != nil && len(*s.AgentAliasId) < 10 { + invalidParams.Add(request.NewErrParamMinLen("AgentAliasId", 10)) + } + if s.AgentAliasName == nil { + invalidParams.Add(request.NewErrParamRequired("AgentAliasName")) + } + if s.AgentId == nil { + invalidParams.Add(request.NewErrParamRequired("AgentId")) + } + if s.AgentId != nil && len(*s.AgentId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("AgentId", 1)) + } + if s.Description != nil && len(*s.Description) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Description", 1)) + } + if s.RoutingConfiguration != nil { + for i, v := range s.RoutingConfiguration { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "RoutingConfiguration", i), err.(request.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAgentAliasId sets the AgentAliasId field's value. +func (s *UpdateAgentAliasInput) SetAgentAliasId(v string) *UpdateAgentAliasInput { + s.AgentAliasId = &v + return s +} + +// SetAgentAliasName sets the AgentAliasName field's value. +func (s *UpdateAgentAliasInput) SetAgentAliasName(v string) *UpdateAgentAliasInput { + s.AgentAliasName = &v + return s +} + +// SetAgentId sets the AgentId field's value. +func (s *UpdateAgentAliasInput) SetAgentId(v string) *UpdateAgentAliasInput { + s.AgentId = &v + return s +} + +// SetDescription sets the Description field's value. +func (s *UpdateAgentAliasInput) SetDescription(v string) *UpdateAgentAliasInput { + s.Description = &v + return s +} + +// SetRoutingConfiguration sets the RoutingConfiguration field's value. +func (s *UpdateAgentAliasInput) SetRoutingConfiguration(v []*AgentAliasRoutingConfigurationListItem) *UpdateAgentAliasInput { + s.RoutingConfiguration = v + return s +} + +// Update Agent Alias Response +type UpdateAgentAliasOutput struct { + _ struct{} `type:"structure"` + + // Contains the information of an agent alias + // + // AgentAlias is a required field + AgentAlias *AgentAlias `locationName:"agentAlias" 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 UpdateAgentAliasOutput) 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 UpdateAgentAliasOutput) GoString() string { + return s.String() +} + +// SetAgentAlias sets the AgentAlias field's value. +func (s *UpdateAgentAliasOutput) SetAgentAlias(v *AgentAlias) *UpdateAgentAliasOutput { + s.AgentAlias = v + return s +} + +// Update Agent Request +type UpdateAgentInput struct { + _ struct{} `type:"structure"` + + // Id generated at the server side when an Agent is created + // + // AgentId is a required field + AgentId *string `location:"uri" locationName:"agentId" type:"string" required:"true"` + + // Name for a resource. + // + // AgentName is a required field + AgentName *string `locationName:"agentName" type:"string" required:"true"` + + // ARN of a IAM role. + // + // AgentResourceRoleArn is a required field + AgentResourceRoleArn *string `locationName:"agentResourceRoleArn" type:"string" required:"true"` + + // A KMS key ARN + CustomerEncryptionKeyArn *string `locationName:"customerEncryptionKeyArn" min:"1" type:"string"` + + // Description of the Resource. + Description *string `locationName:"description" min:"1" type:"string"` + + // ARN or name of a Bedrock model. + FoundationModel *string `locationName:"foundationModel" min:"1" type:"string"` + + // Max Session Time. + IdleSessionTTLInSeconds *int64 `locationName:"idleSessionTTLInSeconds" min:"60" type:"integer"` + + // Instruction for the agent. + // + // Instruction is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by UpdateAgentInput's + // String and GoString methods. + Instruction *string `locationName:"instruction" min:"40" type:"string" sensitive:"true"` + + // Configuration for prompt override. + // + // PromptOverrideConfiguration is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by UpdateAgentInput's + // String and GoString methods. + PromptOverrideConfiguration *PromptOverrideConfiguration `locationName:"promptOverrideConfiguration" type:"structure" 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 UpdateAgentInput) 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 UpdateAgentInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *UpdateAgentInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "UpdateAgentInput"} + if s.AgentId == nil { + invalidParams.Add(request.NewErrParamRequired("AgentId")) + } + if s.AgentId != nil && len(*s.AgentId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("AgentId", 1)) + } + if s.AgentName == nil { + invalidParams.Add(request.NewErrParamRequired("AgentName")) + } + if s.AgentResourceRoleArn == nil { + invalidParams.Add(request.NewErrParamRequired("AgentResourceRoleArn")) + } + if s.CustomerEncryptionKeyArn != nil && len(*s.CustomerEncryptionKeyArn) < 1 { + invalidParams.Add(request.NewErrParamMinLen("CustomerEncryptionKeyArn", 1)) + } + if s.Description != nil && len(*s.Description) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Description", 1)) + } + if s.FoundationModel != nil && len(*s.FoundationModel) < 1 { + invalidParams.Add(request.NewErrParamMinLen("FoundationModel", 1)) + } + if s.IdleSessionTTLInSeconds != nil && *s.IdleSessionTTLInSeconds < 60 { + invalidParams.Add(request.NewErrParamMinValue("IdleSessionTTLInSeconds", 60)) + } + if s.Instruction != nil && len(*s.Instruction) < 40 { + invalidParams.Add(request.NewErrParamMinLen("Instruction", 40)) + } + if s.PromptOverrideConfiguration != nil { + if err := s.PromptOverrideConfiguration.Validate(); err != nil { + invalidParams.AddNested("PromptOverrideConfiguration", err.(request.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAgentId sets the AgentId field's value. +func (s *UpdateAgentInput) SetAgentId(v string) *UpdateAgentInput { + s.AgentId = &v + return s +} + +// SetAgentName sets the AgentName field's value. +func (s *UpdateAgentInput) SetAgentName(v string) *UpdateAgentInput { + s.AgentName = &v + return s +} + +// SetAgentResourceRoleArn sets the AgentResourceRoleArn field's value. +func (s *UpdateAgentInput) SetAgentResourceRoleArn(v string) *UpdateAgentInput { + s.AgentResourceRoleArn = &v + return s +} + +// SetCustomerEncryptionKeyArn sets the CustomerEncryptionKeyArn field's value. +func (s *UpdateAgentInput) SetCustomerEncryptionKeyArn(v string) *UpdateAgentInput { + s.CustomerEncryptionKeyArn = &v + return s +} + +// SetDescription sets the Description field's value. +func (s *UpdateAgentInput) SetDescription(v string) *UpdateAgentInput { + s.Description = &v + return s +} + +// SetFoundationModel sets the FoundationModel field's value. +func (s *UpdateAgentInput) SetFoundationModel(v string) *UpdateAgentInput { + s.FoundationModel = &v + return s +} + +// SetIdleSessionTTLInSeconds sets the IdleSessionTTLInSeconds field's value. +func (s *UpdateAgentInput) SetIdleSessionTTLInSeconds(v int64) *UpdateAgentInput { + s.IdleSessionTTLInSeconds = &v + return s +} + +// SetInstruction sets the Instruction field's value. +func (s *UpdateAgentInput) SetInstruction(v string) *UpdateAgentInput { + s.Instruction = &v + return s +} + +// SetPromptOverrideConfiguration sets the PromptOverrideConfiguration field's value. +func (s *UpdateAgentInput) SetPromptOverrideConfiguration(v *PromptOverrideConfiguration) *UpdateAgentInput { + s.PromptOverrideConfiguration = v + return s +} + +// Update Agent Knowledge Base Request +type UpdateAgentKnowledgeBaseInput struct { + _ struct{} `type:"structure"` + + // Id generated at the server side when an Agent is created + // + // AgentId is a required field + AgentId *string `location:"uri" locationName:"agentId" type:"string" required:"true"` + + // Draft Version of the Agent. + // + // AgentVersion is a required field + AgentVersion *string `location:"uri" locationName:"agentVersion" min:"5" type:"string" required:"true"` + + // Description of the Resource. + Description *string `locationName:"description" min:"1" type:"string"` + + // Id generated at the server side when a Knowledge Base is associated to an + // Agent + // + // KnowledgeBaseId is a required field + KnowledgeBaseId *string `location:"uri" locationName:"knowledgeBaseId" type:"string" required:"true"` + + // State of the knowledge base; whether it is enabled or disabled + KnowledgeBaseState *string `locationName:"knowledgeBaseState" type:"string" enum:"KnowledgeBaseState"` +} + +// 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 UpdateAgentKnowledgeBaseInput) 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 UpdateAgentKnowledgeBaseInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *UpdateAgentKnowledgeBaseInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "UpdateAgentKnowledgeBaseInput"} + if s.AgentId == nil { + invalidParams.Add(request.NewErrParamRequired("AgentId")) + } + if s.AgentId != nil && len(*s.AgentId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("AgentId", 1)) + } + if s.AgentVersion == nil { + invalidParams.Add(request.NewErrParamRequired("AgentVersion")) + } + if s.AgentVersion != nil && len(*s.AgentVersion) < 5 { + invalidParams.Add(request.NewErrParamMinLen("AgentVersion", 5)) + } + 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 invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAgentId sets the AgentId field's value. +func (s *UpdateAgentKnowledgeBaseInput) SetAgentId(v string) *UpdateAgentKnowledgeBaseInput { + s.AgentId = &v + return s +} + +// SetAgentVersion sets the AgentVersion field's value. +func (s *UpdateAgentKnowledgeBaseInput) SetAgentVersion(v string) *UpdateAgentKnowledgeBaseInput { + s.AgentVersion = &v + return s +} + +// SetDescription sets the Description field's value. +func (s *UpdateAgentKnowledgeBaseInput) SetDescription(v string) *UpdateAgentKnowledgeBaseInput { + s.Description = &v + return s +} + +// SetKnowledgeBaseId sets the KnowledgeBaseId field's value. +func (s *UpdateAgentKnowledgeBaseInput) SetKnowledgeBaseId(v string) *UpdateAgentKnowledgeBaseInput { + s.KnowledgeBaseId = &v + return s +} + +// SetKnowledgeBaseState sets the KnowledgeBaseState field's value. +func (s *UpdateAgentKnowledgeBaseInput) SetKnowledgeBaseState(v string) *UpdateAgentKnowledgeBaseInput { + s.KnowledgeBaseState = &v + return s +} + +// Update Agent Knowledge Base Response +type UpdateAgentKnowledgeBaseOutput struct { + _ struct{} `type:"structure"` + + // Contains the information of an Agent Knowledge Base. + // + // AgentKnowledgeBase is a required field + AgentKnowledgeBase *AgentKnowledgeBase `locationName:"agentKnowledgeBase" 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 UpdateAgentKnowledgeBaseOutput) 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 UpdateAgentKnowledgeBaseOutput) GoString() string { + return s.String() +} + +// SetAgentKnowledgeBase sets the AgentKnowledgeBase field's value. +func (s *UpdateAgentKnowledgeBaseOutput) SetAgentKnowledgeBase(v *AgentKnowledgeBase) *UpdateAgentKnowledgeBaseOutput { + s.AgentKnowledgeBase = v + return s +} + +// Update Agent Response +type UpdateAgentOutput struct { + _ struct{} `type:"structure"` + + // Contains the information of an agent + // + // Agent is a required field + Agent *Agent `locationName:"agent" 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 UpdateAgentOutput) 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 UpdateAgentOutput) GoString() string { + return s.String() +} + +// SetAgent sets the Agent field's value. +func (s *UpdateAgentOutput) SetAgent(v *Agent) *UpdateAgentOutput { + s.Agent = v + return s +} + +type UpdateDataSourceInput struct { + _ struct{} `type:"structure"` + + // Specifies a raw data source location to ingest. + // + // DataSourceConfiguration is a required field + DataSourceConfiguration *DataSourceConfiguration `locationName:"dataSourceConfiguration" type:"structure" required:"true"` + + // Identifier for a resource. + // + // DataSourceId is a required field + DataSourceId *string `location:"uri" locationName:"dataSourceId" type:"string" required:"true"` + + // Description of the Resource. + Description *string `locationName:"description" min:"1" type:"string"` + + // Identifier for a resource. + // + // KnowledgeBaseId is a required field + KnowledgeBaseId *string `location:"uri" locationName:"knowledgeBaseId" type:"string" required:"true"` + + // Name for a resource. + // + // Name is a required field + Name *string `locationName:"name" type:"string" required:"true"` + + // Server-side encryption configuration. + ServerSideEncryptionConfiguration *ServerSideEncryptionConfiguration `locationName:"serverSideEncryptionConfiguration" type:"structure"` + + // Configures ingestion for a vector knowledge base + VectorIngestionConfiguration *VectorIngestionConfiguration `locationName:"vectorIngestionConfiguration" 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 UpdateDataSourceInput) 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 UpdateDataSourceInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *UpdateDataSourceInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "UpdateDataSourceInput"} + if s.DataSourceConfiguration == nil { + invalidParams.Add(request.NewErrParamRequired("DataSourceConfiguration")) + } + if s.DataSourceId == nil { + invalidParams.Add(request.NewErrParamRequired("DataSourceId")) + } + if s.DataSourceId != nil && len(*s.DataSourceId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("DataSourceId", 1)) + } + 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.Name == nil { + invalidParams.Add(request.NewErrParamRequired("Name")) + } + if s.DataSourceConfiguration != nil { + if err := s.DataSourceConfiguration.Validate(); err != nil { + invalidParams.AddNested("DataSourceConfiguration", err.(request.ErrInvalidParams)) + } + } + if s.ServerSideEncryptionConfiguration != nil { + if err := s.ServerSideEncryptionConfiguration.Validate(); err != nil { + invalidParams.AddNested("ServerSideEncryptionConfiguration", err.(request.ErrInvalidParams)) + } + } + if s.VectorIngestionConfiguration != nil { + if err := s.VectorIngestionConfiguration.Validate(); err != nil { + invalidParams.AddNested("VectorIngestionConfiguration", err.(request.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetDataSourceConfiguration sets the DataSourceConfiguration field's value. +func (s *UpdateDataSourceInput) SetDataSourceConfiguration(v *DataSourceConfiguration) *UpdateDataSourceInput { + s.DataSourceConfiguration = v + return s +} + +// SetDataSourceId sets the DataSourceId field's value. +func (s *UpdateDataSourceInput) SetDataSourceId(v string) *UpdateDataSourceInput { + s.DataSourceId = &v + return s +} + +// SetDescription sets the Description field's value. +func (s *UpdateDataSourceInput) SetDescription(v string) *UpdateDataSourceInput { + s.Description = &v + return s +} + +// SetKnowledgeBaseId sets the KnowledgeBaseId field's value. +func (s *UpdateDataSourceInput) SetKnowledgeBaseId(v string) *UpdateDataSourceInput { + s.KnowledgeBaseId = &v + return s +} + +// SetName sets the Name field's value. +func (s *UpdateDataSourceInput) SetName(v string) *UpdateDataSourceInput { + s.Name = &v + return s +} + +// SetServerSideEncryptionConfiguration sets the ServerSideEncryptionConfiguration field's value. +func (s *UpdateDataSourceInput) SetServerSideEncryptionConfiguration(v *ServerSideEncryptionConfiguration) *UpdateDataSourceInput { + s.ServerSideEncryptionConfiguration = v + return s +} + +// SetVectorIngestionConfiguration sets the VectorIngestionConfiguration field's value. +func (s *UpdateDataSourceInput) SetVectorIngestionConfiguration(v *VectorIngestionConfiguration) *UpdateDataSourceInput { + s.VectorIngestionConfiguration = v + return s +} + +type UpdateDataSourceOutput struct { + _ struct{} `type:"structure"` + + // Contains the information of a data source. + // + // DataSource is a required field + DataSource *DataSource `locationName:"dataSource" 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 UpdateDataSourceOutput) 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 UpdateDataSourceOutput) GoString() string { + return s.String() +} + +// SetDataSource sets the DataSource field's value. +func (s *UpdateDataSourceOutput) SetDataSource(v *DataSource) *UpdateDataSourceOutput { + s.DataSource = v + return s +} + +type UpdateKnowledgeBaseInput struct { + _ struct{} `type:"structure"` + + // Description of the Resource. + Description *string `locationName:"description" min:"1" type:"string"` + + // Configures a bedrock knowledge base. + // + // KnowledgeBaseConfiguration is a required field + KnowledgeBaseConfiguration *KnowledgeBaseConfiguration `locationName:"knowledgeBaseConfiguration" type:"structure" required:"true"` + + // Identifier for a resource. + // + // KnowledgeBaseId is a required field + KnowledgeBaseId *string `location:"uri" locationName:"knowledgeBaseId" type:"string" required:"true"` + + // Name for a resource. + // + // Name is a required field + Name *string `locationName:"name" type:"string" required:"true"` + + // ARN of a IAM role. + // + // RoleArn is a required field + RoleArn *string `locationName:"roleArn" type:"string" required:"true"` + + // Configures the physical storage of ingested data in a knowledge base. + // + // StorageConfiguration is a required field + StorageConfiguration *StorageConfiguration `locationName:"storageConfiguration" 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 UpdateKnowledgeBaseInput) 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 UpdateKnowledgeBaseInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *UpdateKnowledgeBaseInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "UpdateKnowledgeBaseInput"} + if s.Description != nil && len(*s.Description) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Description", 1)) + } + if s.KnowledgeBaseConfiguration == nil { + invalidParams.Add(request.NewErrParamRequired("KnowledgeBaseConfiguration")) + } + 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.RoleArn == nil { + invalidParams.Add(request.NewErrParamRequired("RoleArn")) + } + if s.StorageConfiguration == nil { + invalidParams.Add(request.NewErrParamRequired("StorageConfiguration")) + } + if s.KnowledgeBaseConfiguration != nil { + if err := s.KnowledgeBaseConfiguration.Validate(); err != nil { + invalidParams.AddNested("KnowledgeBaseConfiguration", err.(request.ErrInvalidParams)) + } + } + if s.StorageConfiguration != nil { + if err := s.StorageConfiguration.Validate(); err != nil { + invalidParams.AddNested("StorageConfiguration", err.(request.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetDescription sets the Description field's value. +func (s *UpdateKnowledgeBaseInput) SetDescription(v string) *UpdateKnowledgeBaseInput { + s.Description = &v + return s +} + +// SetKnowledgeBaseConfiguration sets the KnowledgeBaseConfiguration field's value. +func (s *UpdateKnowledgeBaseInput) SetKnowledgeBaseConfiguration(v *KnowledgeBaseConfiguration) *UpdateKnowledgeBaseInput { + s.KnowledgeBaseConfiguration = v + return s +} + +// SetKnowledgeBaseId sets the KnowledgeBaseId field's value. +func (s *UpdateKnowledgeBaseInput) SetKnowledgeBaseId(v string) *UpdateKnowledgeBaseInput { + s.KnowledgeBaseId = &v + return s +} + +// SetName sets the Name field's value. +func (s *UpdateKnowledgeBaseInput) SetName(v string) *UpdateKnowledgeBaseInput { + s.Name = &v + return s +} + +// SetRoleArn sets the RoleArn field's value. +func (s *UpdateKnowledgeBaseInput) SetRoleArn(v string) *UpdateKnowledgeBaseInput { + s.RoleArn = &v + return s +} + +// SetStorageConfiguration sets the StorageConfiguration field's value. +func (s *UpdateKnowledgeBaseInput) SetStorageConfiguration(v *StorageConfiguration) *UpdateKnowledgeBaseInput { + s.StorageConfiguration = v + return s +} + +type UpdateKnowledgeBaseOutput struct { + _ struct{} `type:"structure"` + + // Contains the information of a knowledge base. + // + // KnowledgeBase is a required field + KnowledgeBase *KnowledgeBase `locationName:"knowledgeBase" 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 UpdateKnowledgeBaseOutput) 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 UpdateKnowledgeBaseOutput) GoString() string { + return s.String() +} + +// SetKnowledgeBase sets the KnowledgeBase field's value. +func (s *UpdateKnowledgeBaseOutput) SetKnowledgeBase(v *KnowledgeBase) *UpdateKnowledgeBaseOutput { + s.KnowledgeBase = v + return s +} + +// This exception is thrown when the request's input validation fails +type ValidationException struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + + // list of ValidationExceptionField + FieldList []*ValidationExceptionField `locationName:"fieldList" type:"list"` + + // Non Blank String + 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\n%s", s.Code(), s.Message(), s.String()) +} + +// 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 +} + +// Stores information about a field passed inside a request that resulted in +// an exception +type ValidationExceptionField struct { + _ struct{} `type:"structure"` + + // Non Blank String + // + // Message is a required field + Message *string `locationName:"message" type:"string" required:"true"` + + // Non Blank String + // + // Name is a required field + Name *string `locationName:"name" 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 ValidationExceptionField) 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 ValidationExceptionField) GoString() string { + return s.String() +} + +// SetMessage sets the Message field's value. +func (s *ValidationExceptionField) SetMessage(v string) *ValidationExceptionField { + s.Message = &v + return s +} + +// SetName sets the Name field's value. +func (s *ValidationExceptionField) SetName(v string) *ValidationExceptionField { + s.Name = &v + return s +} + +// Configures ingestion for a vector knowledge base +type VectorIngestionConfiguration struct { + _ struct{} `type:"structure"` + + // Configures chunking strategy + ChunkingConfiguration *ChunkingConfiguration `locationName:"chunkingConfiguration" 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 VectorIngestionConfiguration) 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 VectorIngestionConfiguration) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *VectorIngestionConfiguration) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "VectorIngestionConfiguration"} + if s.ChunkingConfiguration != nil { + if err := s.ChunkingConfiguration.Validate(); err != nil { + invalidParams.AddNested("ChunkingConfiguration", err.(request.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetChunkingConfiguration sets the ChunkingConfiguration field's value. +func (s *VectorIngestionConfiguration) SetChunkingConfiguration(v *ChunkingConfiguration) *VectorIngestionConfiguration { + s.ChunkingConfiguration = v + return s +} + +// Configurations for a vector knowledge base. +type VectorKnowledgeBaseConfiguration struct { + _ struct{} `type:"structure"` + + // Arn of a Bedrock model. + // + // EmbeddingModelArn is a required field + EmbeddingModelArn *string `locationName:"embeddingModelArn" min:"20" 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 VectorKnowledgeBaseConfiguration) 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 VectorKnowledgeBaseConfiguration) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *VectorKnowledgeBaseConfiguration) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "VectorKnowledgeBaseConfiguration"} + if s.EmbeddingModelArn == nil { + invalidParams.Add(request.NewErrParamRequired("EmbeddingModelArn")) + } + if s.EmbeddingModelArn != nil && len(*s.EmbeddingModelArn) < 20 { + invalidParams.Add(request.NewErrParamMinLen("EmbeddingModelArn", 20)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetEmbeddingModelArn sets the EmbeddingModelArn field's value. +func (s *VectorKnowledgeBaseConfiguration) SetEmbeddingModelArn(v string) *VectorKnowledgeBaseConfiguration { + s.EmbeddingModelArn = &v + return s +} + +// Action Group Signature for a BuiltIn Action +const ( + // ActionGroupSignatureAmazonUserInput is a ActionGroupSignature enum value + ActionGroupSignatureAmazonUserInput = "AMAZON.UserInput" +) + +// ActionGroupSignature_Values returns all elements of the ActionGroupSignature enum +func ActionGroupSignature_Values() []string { + return []string{ + ActionGroupSignatureAmazonUserInput, + } +} + +// State of the action group +const ( + // ActionGroupStateEnabled is a ActionGroupState enum value + ActionGroupStateEnabled = "ENABLED" + + // ActionGroupStateDisabled is a ActionGroupState enum value + ActionGroupStateDisabled = "DISABLED" +) + +// ActionGroupState_Values returns all elements of the ActionGroupState enum +func ActionGroupState_Values() []string { + return []string{ + ActionGroupStateEnabled, + ActionGroupStateDisabled, + } +} + +// The statuses an Agent Alias can be in. +const ( + // AgentAliasStatusCreating is a AgentAliasStatus enum value + AgentAliasStatusCreating = "CREATING" + + // AgentAliasStatusPrepared is a AgentAliasStatus enum value + AgentAliasStatusPrepared = "PREPARED" + + // AgentAliasStatusFailed is a AgentAliasStatus enum value + AgentAliasStatusFailed = "FAILED" + + // AgentAliasStatusUpdating is a AgentAliasStatus enum value + AgentAliasStatusUpdating = "UPDATING" + + // AgentAliasStatusDeleting is a AgentAliasStatus enum value + AgentAliasStatusDeleting = "DELETING" +) + +// AgentAliasStatus_Values returns all elements of the AgentAliasStatus enum +func AgentAliasStatus_Values() []string { + return []string{ + AgentAliasStatusCreating, + AgentAliasStatusPrepared, + AgentAliasStatusFailed, + AgentAliasStatusUpdating, + AgentAliasStatusDeleting, + } +} + +// Schema Type for Action APIs. +const ( + // AgentStatusCreating is a AgentStatus enum value + AgentStatusCreating = "CREATING" + + // AgentStatusPreparing is a AgentStatus enum value + AgentStatusPreparing = "PREPARING" + + // AgentStatusPrepared is a AgentStatus enum value + AgentStatusPrepared = "PREPARED" + + // AgentStatusNotPrepared is a AgentStatus enum value + AgentStatusNotPrepared = "NOT_PREPARED" + + // AgentStatusDeleting is a AgentStatus enum value + AgentStatusDeleting = "DELETING" + + // AgentStatusFailed is a AgentStatus enum value + AgentStatusFailed = "FAILED" + + // AgentStatusVersioning is a AgentStatus enum value + AgentStatusVersioning = "VERSIONING" + + // AgentStatusUpdating is a AgentStatus enum value + AgentStatusUpdating = "UPDATING" +) + +// AgentStatus_Values returns all elements of the AgentStatus enum +func AgentStatus_Values() []string { + return []string{ + AgentStatusCreating, + AgentStatusPreparing, + AgentStatusPrepared, + AgentStatusNotPrepared, + AgentStatusDeleting, + AgentStatusFailed, + AgentStatusVersioning, + AgentStatusUpdating, + } +} + +// The type of chunking strategy +const ( + // ChunkingStrategyFixedSize is a ChunkingStrategy enum value + ChunkingStrategyFixedSize = "FIXED_SIZE" + + // ChunkingStrategyNone is a ChunkingStrategy enum value + ChunkingStrategyNone = "NONE" +) + +// ChunkingStrategy_Values returns all elements of the ChunkingStrategy enum +func ChunkingStrategy_Values() []string { + return []string{ + ChunkingStrategyFixedSize, + ChunkingStrategyNone, + } +} + +// Creation Mode for Prompt Configuration. +const ( + // CreationModeDefault is a CreationMode enum value + CreationModeDefault = "DEFAULT" + + // CreationModeOverridden is a CreationMode enum value + CreationModeOverridden = "OVERRIDDEN" +) + +// CreationMode_Values returns all elements of the CreationMode enum +func CreationMode_Values() []string { + return []string{ + CreationModeDefault, + CreationModeOverridden, + } +} + +// The status of a data source. +const ( + // DataSourceStatusAvailable is a DataSourceStatus enum value + DataSourceStatusAvailable = "AVAILABLE" + + // DataSourceStatusDeleting is a DataSourceStatus enum value + DataSourceStatusDeleting = "DELETING" +) + +// DataSourceStatus_Values returns all elements of the DataSourceStatus enum +func DataSourceStatus_Values() []string { + return []string{ + DataSourceStatusAvailable, + DataSourceStatusDeleting, + } +} + +// The type of the data source location. +const ( + // DataSourceTypeS3 is a DataSourceType enum value + DataSourceTypeS3 = "S3" +) + +// DataSourceType_Values returns all elements of the DataSourceType enum +func DataSourceType_Values() []string { + return []string{ + DataSourceTypeS3, + } +} + +// The name of the field to filter ingestion jobs. +const ( + // IngestionJobFilterAttributeStatus is a IngestionJobFilterAttribute enum value + IngestionJobFilterAttributeStatus = "STATUS" +) + +// IngestionJobFilterAttribute_Values returns all elements of the IngestionJobFilterAttribute enum +func IngestionJobFilterAttribute_Values() []string { + return []string{ + IngestionJobFilterAttributeStatus, + } +} + +// The operator used to filter ingestion jobs. +const ( + // IngestionJobFilterOperatorEq is a IngestionJobFilterOperator enum value + IngestionJobFilterOperatorEq = "EQ" +) + +// IngestionJobFilterOperator_Values returns all elements of the IngestionJobFilterOperator enum +func IngestionJobFilterOperator_Values() []string { + return []string{ + IngestionJobFilterOperatorEq, + } +} + +// The name of the field to sort ingestion jobs. +const ( + // IngestionJobSortByAttributeStatus is a IngestionJobSortByAttribute enum value + IngestionJobSortByAttributeStatus = "STATUS" + + // IngestionJobSortByAttributeStartedAt is a IngestionJobSortByAttribute enum value + IngestionJobSortByAttributeStartedAt = "STARTED_AT" +) + +// IngestionJobSortByAttribute_Values returns all elements of the IngestionJobSortByAttribute enum +func IngestionJobSortByAttribute_Values() []string { + return []string{ + IngestionJobSortByAttributeStatus, + IngestionJobSortByAttributeStartedAt, + } +} + +// The status of an ingestion job. +const ( + // IngestionJobStatusStarting is a IngestionJobStatus enum value + IngestionJobStatusStarting = "STARTING" + + // IngestionJobStatusInProgress is a IngestionJobStatus enum value + IngestionJobStatusInProgress = "IN_PROGRESS" + + // IngestionJobStatusComplete is a IngestionJobStatus enum value + IngestionJobStatusComplete = "COMPLETE" + + // IngestionJobStatusFailed is a IngestionJobStatus enum value + IngestionJobStatusFailed = "FAILED" +) + +// IngestionJobStatus_Values returns all elements of the IngestionJobStatus enum +func IngestionJobStatus_Values() []string { + return []string{ + IngestionJobStatusStarting, + IngestionJobStatusInProgress, + IngestionJobStatusComplete, + IngestionJobStatusFailed, + } +} + +// State of the knowledge base; whether it is enabled or disabled +const ( + // KnowledgeBaseStateEnabled is a KnowledgeBaseState enum value + KnowledgeBaseStateEnabled = "ENABLED" + + // KnowledgeBaseStateDisabled is a KnowledgeBaseState enum value + KnowledgeBaseStateDisabled = "DISABLED" +) + +// KnowledgeBaseState_Values returns all elements of the KnowledgeBaseState enum +func KnowledgeBaseState_Values() []string { + return []string{ + KnowledgeBaseStateEnabled, + KnowledgeBaseStateDisabled, + } +} + +// The status of a knowledge base. +const ( + // KnowledgeBaseStatusCreating is a KnowledgeBaseStatus enum value + KnowledgeBaseStatusCreating = "CREATING" + + // KnowledgeBaseStatusActive is a KnowledgeBaseStatus enum value + KnowledgeBaseStatusActive = "ACTIVE" + + // KnowledgeBaseStatusDeleting is a KnowledgeBaseStatus enum value + KnowledgeBaseStatusDeleting = "DELETING" + + // KnowledgeBaseStatusUpdating is a KnowledgeBaseStatus enum value + KnowledgeBaseStatusUpdating = "UPDATING" + + // KnowledgeBaseStatusFailed is a KnowledgeBaseStatus enum value + KnowledgeBaseStatusFailed = "FAILED" +) + +// KnowledgeBaseStatus_Values returns all elements of the KnowledgeBaseStatus enum +func KnowledgeBaseStatus_Values() []string { + return []string{ + KnowledgeBaseStatusCreating, + KnowledgeBaseStatusActive, + KnowledgeBaseStatusDeleting, + KnowledgeBaseStatusUpdating, + KnowledgeBaseStatusFailed, + } +} + +// The storage type of a knowledge base. +const ( + // KnowledgeBaseStorageTypeOpensearchServerless is a KnowledgeBaseStorageType enum value + KnowledgeBaseStorageTypeOpensearchServerless = "OPENSEARCH_SERVERLESS" + + // KnowledgeBaseStorageTypePinecone is a KnowledgeBaseStorageType enum value + KnowledgeBaseStorageTypePinecone = "PINECONE" + + // KnowledgeBaseStorageTypeRedisEnterpriseCloud is a KnowledgeBaseStorageType enum value + KnowledgeBaseStorageTypeRedisEnterpriseCloud = "REDIS_ENTERPRISE_CLOUD" +) + +// KnowledgeBaseStorageType_Values returns all elements of the KnowledgeBaseStorageType enum +func KnowledgeBaseStorageType_Values() []string { + return []string{ + KnowledgeBaseStorageTypeOpensearchServerless, + KnowledgeBaseStorageTypePinecone, + KnowledgeBaseStorageTypeRedisEnterpriseCloud, + } +} + +// The type of a knowledge base. +const ( + // KnowledgeBaseTypeVector is a KnowledgeBaseType enum value + KnowledgeBaseTypeVector = "VECTOR" +) + +// KnowledgeBaseType_Values returns all elements of the KnowledgeBaseType enum +func KnowledgeBaseType_Values() []string { + return []string{ + KnowledgeBaseTypeVector, + } +} + +// Prompt State. +const ( + // PromptStateEnabled is a PromptState enum value + PromptStateEnabled = "ENABLED" + + // PromptStateDisabled is a PromptState enum value + PromptStateDisabled = "DISABLED" +) + +// PromptState_Values returns all elements of the PromptState enum +func PromptState_Values() []string { + return []string{ + PromptStateEnabled, + PromptStateDisabled, + } +} + +// Prompt Type. +const ( + // PromptTypePreProcessing is a PromptType enum value + PromptTypePreProcessing = "PRE_PROCESSING" + + // PromptTypeOrchestration is a PromptType enum value + PromptTypeOrchestration = "ORCHESTRATION" + + // PromptTypePostProcessing is a PromptType enum value + PromptTypePostProcessing = "POST_PROCESSING" + + // PromptTypeKnowledgeBaseResponseGeneration is a PromptType enum value + PromptTypeKnowledgeBaseResponseGeneration = "KNOWLEDGE_BASE_RESPONSE_GENERATION" +) + +// PromptType_Values returns all elements of the PromptType enum +func PromptType_Values() []string { + return []string{ + PromptTypePreProcessing, + PromptTypeOrchestration, + PromptTypePostProcessing, + PromptTypeKnowledgeBaseResponseGeneration, + } +} + +// Order to sort results by. +const ( + // SortOrderAscending is a SortOrder enum value + SortOrderAscending = "ASCENDING" + + // SortOrderDescending is a SortOrder enum value + SortOrderDescending = "DESCENDING" +) + +// SortOrder_Values returns all elements of the SortOrder enum +func SortOrder_Values() []string { + return []string{ + SortOrderAscending, + SortOrderDescending, + } +} diff --git a/service/bedrockagent/bedrockagentiface/interface.go b/service/bedrockagent/bedrockagentiface/interface.go new file mode 100644 index 00000000000..675ac884018 --- /dev/null +++ b/service/bedrockagent/bedrockagentiface/interface.go @@ -0,0 +1,248 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +// Package bedrockagentiface provides an interface to enable mocking the Agents for Amazon Bedrock service client +// for testing your code. +// +// It is important to note that this interface will have breaking changes +// when the service model is updated and adds new API operations, paginators, +// and waiters. +package bedrockagentiface + +import ( + "github.com/aws/aws-sdk-go/aws" + "github.com/aws/aws-sdk-go/aws/request" + "github.com/aws/aws-sdk-go/service/bedrockagent" +) + +// BedrockAgentAPI provides an interface to enable mocking the +// bedrockagent.BedrockAgent service client's API operation, +// paginators, and waiters. This make unit testing your code that calls out +// to the SDK's service client's calls easier. +// +// The best way to use this interface is so the SDK's service client's calls +// can be stubbed out for unit testing your code with the SDK without needing +// to inject custom request handlers into the SDK's request pipeline. +// +// // myFunc uses an SDK service client to make a request to +// // Agents for Amazon Bedrock. +// func myFunc(svc bedrockagentiface.BedrockAgentAPI) bool { +// // Make svc.AssociateAgentKnowledgeBase request +// } +// +// func main() { +// sess := session.New() +// svc := bedrockagent.New(sess) +// +// myFunc(svc) +// } +// +// In your _test.go file: +// +// // Define a mock struct to be used in your unit tests of myFunc. +// type mockBedrockAgentClient struct { +// bedrockagentiface.BedrockAgentAPI +// } +// func (m *mockBedrockAgentClient) AssociateAgentKnowledgeBase(input *bedrockagent.AssociateAgentKnowledgeBaseInput) (*bedrockagent.AssociateAgentKnowledgeBaseOutput, error) { +// // mock response/functionality +// } +// +// func TestMyFunc(t *testing.T) { +// // Setup Test +// mockSvc := &mockBedrockAgentClient{} +// +// myfunc(mockSvc) +// +// // Verify myFunc's functionality +// } +// +// It is important to note that this interface will have breaking changes +// when the service model is updated and adds new API operations, paginators, +// and waiters. Its suggested to use the pattern above for testing, or using +// tooling to generate mocks to satisfy the interfaces. +type BedrockAgentAPI interface { + AssociateAgentKnowledgeBase(*bedrockagent.AssociateAgentKnowledgeBaseInput) (*bedrockagent.AssociateAgentKnowledgeBaseOutput, error) + AssociateAgentKnowledgeBaseWithContext(aws.Context, *bedrockagent.AssociateAgentKnowledgeBaseInput, ...request.Option) (*bedrockagent.AssociateAgentKnowledgeBaseOutput, error) + AssociateAgentKnowledgeBaseRequest(*bedrockagent.AssociateAgentKnowledgeBaseInput) (*request.Request, *bedrockagent.AssociateAgentKnowledgeBaseOutput) + + CreateAgent(*bedrockagent.CreateAgentInput) (*bedrockagent.CreateAgentOutput, error) + CreateAgentWithContext(aws.Context, *bedrockagent.CreateAgentInput, ...request.Option) (*bedrockagent.CreateAgentOutput, error) + CreateAgentRequest(*bedrockagent.CreateAgentInput) (*request.Request, *bedrockagent.CreateAgentOutput) + + CreateAgentActionGroup(*bedrockagent.CreateAgentActionGroupInput) (*bedrockagent.CreateAgentActionGroupOutput, error) + CreateAgentActionGroupWithContext(aws.Context, *bedrockagent.CreateAgentActionGroupInput, ...request.Option) (*bedrockagent.CreateAgentActionGroupOutput, error) + CreateAgentActionGroupRequest(*bedrockagent.CreateAgentActionGroupInput) (*request.Request, *bedrockagent.CreateAgentActionGroupOutput) + + CreateAgentAlias(*bedrockagent.CreateAgentAliasInput) (*bedrockagent.CreateAgentAliasOutput, error) + CreateAgentAliasWithContext(aws.Context, *bedrockagent.CreateAgentAliasInput, ...request.Option) (*bedrockagent.CreateAgentAliasOutput, error) + CreateAgentAliasRequest(*bedrockagent.CreateAgentAliasInput) (*request.Request, *bedrockagent.CreateAgentAliasOutput) + + CreateDataSource(*bedrockagent.CreateDataSourceInput) (*bedrockagent.CreateDataSourceOutput, error) + CreateDataSourceWithContext(aws.Context, *bedrockagent.CreateDataSourceInput, ...request.Option) (*bedrockagent.CreateDataSourceOutput, error) + CreateDataSourceRequest(*bedrockagent.CreateDataSourceInput) (*request.Request, *bedrockagent.CreateDataSourceOutput) + + CreateKnowledgeBase(*bedrockagent.CreateKnowledgeBaseInput) (*bedrockagent.CreateKnowledgeBaseOutput, error) + CreateKnowledgeBaseWithContext(aws.Context, *bedrockagent.CreateKnowledgeBaseInput, ...request.Option) (*bedrockagent.CreateKnowledgeBaseOutput, error) + CreateKnowledgeBaseRequest(*bedrockagent.CreateKnowledgeBaseInput) (*request.Request, *bedrockagent.CreateKnowledgeBaseOutput) + + DeleteAgent(*bedrockagent.DeleteAgentInput) (*bedrockagent.DeleteAgentOutput, error) + DeleteAgentWithContext(aws.Context, *bedrockagent.DeleteAgentInput, ...request.Option) (*bedrockagent.DeleteAgentOutput, error) + DeleteAgentRequest(*bedrockagent.DeleteAgentInput) (*request.Request, *bedrockagent.DeleteAgentOutput) + + DeleteAgentActionGroup(*bedrockagent.DeleteAgentActionGroupInput) (*bedrockagent.DeleteAgentActionGroupOutput, error) + DeleteAgentActionGroupWithContext(aws.Context, *bedrockagent.DeleteAgentActionGroupInput, ...request.Option) (*bedrockagent.DeleteAgentActionGroupOutput, error) + DeleteAgentActionGroupRequest(*bedrockagent.DeleteAgentActionGroupInput) (*request.Request, *bedrockagent.DeleteAgentActionGroupOutput) + + DeleteAgentAlias(*bedrockagent.DeleteAgentAliasInput) (*bedrockagent.DeleteAgentAliasOutput, error) + DeleteAgentAliasWithContext(aws.Context, *bedrockagent.DeleteAgentAliasInput, ...request.Option) (*bedrockagent.DeleteAgentAliasOutput, error) + DeleteAgentAliasRequest(*bedrockagent.DeleteAgentAliasInput) (*request.Request, *bedrockagent.DeleteAgentAliasOutput) + + DeleteAgentVersion(*bedrockagent.DeleteAgentVersionInput) (*bedrockagent.DeleteAgentVersionOutput, error) + DeleteAgentVersionWithContext(aws.Context, *bedrockagent.DeleteAgentVersionInput, ...request.Option) (*bedrockagent.DeleteAgentVersionOutput, error) + DeleteAgentVersionRequest(*bedrockagent.DeleteAgentVersionInput) (*request.Request, *bedrockagent.DeleteAgentVersionOutput) + + DeleteDataSource(*bedrockagent.DeleteDataSourceInput) (*bedrockagent.DeleteDataSourceOutput, error) + DeleteDataSourceWithContext(aws.Context, *bedrockagent.DeleteDataSourceInput, ...request.Option) (*bedrockagent.DeleteDataSourceOutput, error) + DeleteDataSourceRequest(*bedrockagent.DeleteDataSourceInput) (*request.Request, *bedrockagent.DeleteDataSourceOutput) + + DeleteKnowledgeBase(*bedrockagent.DeleteKnowledgeBaseInput) (*bedrockagent.DeleteKnowledgeBaseOutput, error) + DeleteKnowledgeBaseWithContext(aws.Context, *bedrockagent.DeleteKnowledgeBaseInput, ...request.Option) (*bedrockagent.DeleteKnowledgeBaseOutput, error) + DeleteKnowledgeBaseRequest(*bedrockagent.DeleteKnowledgeBaseInput) (*request.Request, *bedrockagent.DeleteKnowledgeBaseOutput) + + DisassociateAgentKnowledgeBase(*bedrockagent.DisassociateAgentKnowledgeBaseInput) (*bedrockagent.DisassociateAgentKnowledgeBaseOutput, error) + DisassociateAgentKnowledgeBaseWithContext(aws.Context, *bedrockagent.DisassociateAgentKnowledgeBaseInput, ...request.Option) (*bedrockagent.DisassociateAgentKnowledgeBaseOutput, error) + DisassociateAgentKnowledgeBaseRequest(*bedrockagent.DisassociateAgentKnowledgeBaseInput) (*request.Request, *bedrockagent.DisassociateAgentKnowledgeBaseOutput) + + GetAgent(*bedrockagent.GetAgentInput) (*bedrockagent.GetAgentOutput, error) + GetAgentWithContext(aws.Context, *bedrockagent.GetAgentInput, ...request.Option) (*bedrockagent.GetAgentOutput, error) + GetAgentRequest(*bedrockagent.GetAgentInput) (*request.Request, *bedrockagent.GetAgentOutput) + + GetAgentActionGroup(*bedrockagent.GetAgentActionGroupInput) (*bedrockagent.GetAgentActionGroupOutput, error) + GetAgentActionGroupWithContext(aws.Context, *bedrockagent.GetAgentActionGroupInput, ...request.Option) (*bedrockagent.GetAgentActionGroupOutput, error) + GetAgentActionGroupRequest(*bedrockagent.GetAgentActionGroupInput) (*request.Request, *bedrockagent.GetAgentActionGroupOutput) + + GetAgentAlias(*bedrockagent.GetAgentAliasInput) (*bedrockagent.GetAgentAliasOutput, error) + GetAgentAliasWithContext(aws.Context, *bedrockagent.GetAgentAliasInput, ...request.Option) (*bedrockagent.GetAgentAliasOutput, error) + GetAgentAliasRequest(*bedrockagent.GetAgentAliasInput) (*request.Request, *bedrockagent.GetAgentAliasOutput) + + GetAgentKnowledgeBase(*bedrockagent.GetAgentKnowledgeBaseInput) (*bedrockagent.GetAgentKnowledgeBaseOutput, error) + GetAgentKnowledgeBaseWithContext(aws.Context, *bedrockagent.GetAgentKnowledgeBaseInput, ...request.Option) (*bedrockagent.GetAgentKnowledgeBaseOutput, error) + GetAgentKnowledgeBaseRequest(*bedrockagent.GetAgentKnowledgeBaseInput) (*request.Request, *bedrockagent.GetAgentKnowledgeBaseOutput) + + GetAgentVersion(*bedrockagent.GetAgentVersionInput) (*bedrockagent.GetAgentVersionOutput, error) + GetAgentVersionWithContext(aws.Context, *bedrockagent.GetAgentVersionInput, ...request.Option) (*bedrockagent.GetAgentVersionOutput, error) + GetAgentVersionRequest(*bedrockagent.GetAgentVersionInput) (*request.Request, *bedrockagent.GetAgentVersionOutput) + + GetDataSource(*bedrockagent.GetDataSourceInput) (*bedrockagent.GetDataSourceOutput, error) + GetDataSourceWithContext(aws.Context, *bedrockagent.GetDataSourceInput, ...request.Option) (*bedrockagent.GetDataSourceOutput, error) + GetDataSourceRequest(*bedrockagent.GetDataSourceInput) (*request.Request, *bedrockagent.GetDataSourceOutput) + + GetIngestionJob(*bedrockagent.GetIngestionJobInput) (*bedrockagent.GetIngestionJobOutput, error) + GetIngestionJobWithContext(aws.Context, *bedrockagent.GetIngestionJobInput, ...request.Option) (*bedrockagent.GetIngestionJobOutput, error) + GetIngestionJobRequest(*bedrockagent.GetIngestionJobInput) (*request.Request, *bedrockagent.GetIngestionJobOutput) + + GetKnowledgeBase(*bedrockagent.GetKnowledgeBaseInput) (*bedrockagent.GetKnowledgeBaseOutput, error) + GetKnowledgeBaseWithContext(aws.Context, *bedrockagent.GetKnowledgeBaseInput, ...request.Option) (*bedrockagent.GetKnowledgeBaseOutput, error) + GetKnowledgeBaseRequest(*bedrockagent.GetKnowledgeBaseInput) (*request.Request, *bedrockagent.GetKnowledgeBaseOutput) + + ListAgentActionGroups(*bedrockagent.ListAgentActionGroupsInput) (*bedrockagent.ListAgentActionGroupsOutput, error) + ListAgentActionGroupsWithContext(aws.Context, *bedrockagent.ListAgentActionGroupsInput, ...request.Option) (*bedrockagent.ListAgentActionGroupsOutput, error) + ListAgentActionGroupsRequest(*bedrockagent.ListAgentActionGroupsInput) (*request.Request, *bedrockagent.ListAgentActionGroupsOutput) + + ListAgentActionGroupsPages(*bedrockagent.ListAgentActionGroupsInput, func(*bedrockagent.ListAgentActionGroupsOutput, bool) bool) error + ListAgentActionGroupsPagesWithContext(aws.Context, *bedrockagent.ListAgentActionGroupsInput, func(*bedrockagent.ListAgentActionGroupsOutput, bool) bool, ...request.Option) error + + ListAgentAliases(*bedrockagent.ListAgentAliasesInput) (*bedrockagent.ListAgentAliasesOutput, error) + ListAgentAliasesWithContext(aws.Context, *bedrockagent.ListAgentAliasesInput, ...request.Option) (*bedrockagent.ListAgentAliasesOutput, error) + ListAgentAliasesRequest(*bedrockagent.ListAgentAliasesInput) (*request.Request, *bedrockagent.ListAgentAliasesOutput) + + ListAgentAliasesPages(*bedrockagent.ListAgentAliasesInput, func(*bedrockagent.ListAgentAliasesOutput, bool) bool) error + ListAgentAliasesPagesWithContext(aws.Context, *bedrockagent.ListAgentAliasesInput, func(*bedrockagent.ListAgentAliasesOutput, bool) bool, ...request.Option) error + + ListAgentKnowledgeBases(*bedrockagent.ListAgentKnowledgeBasesInput) (*bedrockagent.ListAgentKnowledgeBasesOutput, error) + ListAgentKnowledgeBasesWithContext(aws.Context, *bedrockagent.ListAgentKnowledgeBasesInput, ...request.Option) (*bedrockagent.ListAgentKnowledgeBasesOutput, error) + ListAgentKnowledgeBasesRequest(*bedrockagent.ListAgentKnowledgeBasesInput) (*request.Request, *bedrockagent.ListAgentKnowledgeBasesOutput) + + ListAgentKnowledgeBasesPages(*bedrockagent.ListAgentKnowledgeBasesInput, func(*bedrockagent.ListAgentKnowledgeBasesOutput, bool) bool) error + ListAgentKnowledgeBasesPagesWithContext(aws.Context, *bedrockagent.ListAgentKnowledgeBasesInput, func(*bedrockagent.ListAgentKnowledgeBasesOutput, bool) bool, ...request.Option) error + + ListAgentVersions(*bedrockagent.ListAgentVersionsInput) (*bedrockagent.ListAgentVersionsOutput, error) + ListAgentVersionsWithContext(aws.Context, *bedrockagent.ListAgentVersionsInput, ...request.Option) (*bedrockagent.ListAgentVersionsOutput, error) + ListAgentVersionsRequest(*bedrockagent.ListAgentVersionsInput) (*request.Request, *bedrockagent.ListAgentVersionsOutput) + + ListAgentVersionsPages(*bedrockagent.ListAgentVersionsInput, func(*bedrockagent.ListAgentVersionsOutput, bool) bool) error + ListAgentVersionsPagesWithContext(aws.Context, *bedrockagent.ListAgentVersionsInput, func(*bedrockagent.ListAgentVersionsOutput, bool) bool, ...request.Option) error + + ListAgents(*bedrockagent.ListAgentsInput) (*bedrockagent.ListAgentsOutput, error) + ListAgentsWithContext(aws.Context, *bedrockagent.ListAgentsInput, ...request.Option) (*bedrockagent.ListAgentsOutput, error) + ListAgentsRequest(*bedrockagent.ListAgentsInput) (*request.Request, *bedrockagent.ListAgentsOutput) + + ListAgentsPages(*bedrockagent.ListAgentsInput, func(*bedrockagent.ListAgentsOutput, bool) bool) error + ListAgentsPagesWithContext(aws.Context, *bedrockagent.ListAgentsInput, func(*bedrockagent.ListAgentsOutput, bool) bool, ...request.Option) error + + ListDataSources(*bedrockagent.ListDataSourcesInput) (*bedrockagent.ListDataSourcesOutput, error) + ListDataSourcesWithContext(aws.Context, *bedrockagent.ListDataSourcesInput, ...request.Option) (*bedrockagent.ListDataSourcesOutput, error) + ListDataSourcesRequest(*bedrockagent.ListDataSourcesInput) (*request.Request, *bedrockagent.ListDataSourcesOutput) + + ListDataSourcesPages(*bedrockagent.ListDataSourcesInput, func(*bedrockagent.ListDataSourcesOutput, bool) bool) error + ListDataSourcesPagesWithContext(aws.Context, *bedrockagent.ListDataSourcesInput, func(*bedrockagent.ListDataSourcesOutput, bool) bool, ...request.Option) error + + ListIngestionJobs(*bedrockagent.ListIngestionJobsInput) (*bedrockagent.ListIngestionJobsOutput, error) + ListIngestionJobsWithContext(aws.Context, *bedrockagent.ListIngestionJobsInput, ...request.Option) (*bedrockagent.ListIngestionJobsOutput, error) + ListIngestionJobsRequest(*bedrockagent.ListIngestionJobsInput) (*request.Request, *bedrockagent.ListIngestionJobsOutput) + + ListIngestionJobsPages(*bedrockagent.ListIngestionJobsInput, func(*bedrockagent.ListIngestionJobsOutput, bool) bool) error + ListIngestionJobsPagesWithContext(aws.Context, *bedrockagent.ListIngestionJobsInput, func(*bedrockagent.ListIngestionJobsOutput, bool) bool, ...request.Option) error + + ListKnowledgeBases(*bedrockagent.ListKnowledgeBasesInput) (*bedrockagent.ListKnowledgeBasesOutput, error) + ListKnowledgeBasesWithContext(aws.Context, *bedrockagent.ListKnowledgeBasesInput, ...request.Option) (*bedrockagent.ListKnowledgeBasesOutput, error) + ListKnowledgeBasesRequest(*bedrockagent.ListKnowledgeBasesInput) (*request.Request, *bedrockagent.ListKnowledgeBasesOutput) + + ListKnowledgeBasesPages(*bedrockagent.ListKnowledgeBasesInput, func(*bedrockagent.ListKnowledgeBasesOutput, bool) bool) error + ListKnowledgeBasesPagesWithContext(aws.Context, *bedrockagent.ListKnowledgeBasesInput, func(*bedrockagent.ListKnowledgeBasesOutput, bool) bool, ...request.Option) error + + ListTagsForResource(*bedrockagent.ListTagsForResourceInput) (*bedrockagent.ListTagsForResourceOutput, error) + ListTagsForResourceWithContext(aws.Context, *bedrockagent.ListTagsForResourceInput, ...request.Option) (*bedrockagent.ListTagsForResourceOutput, error) + ListTagsForResourceRequest(*bedrockagent.ListTagsForResourceInput) (*request.Request, *bedrockagent.ListTagsForResourceOutput) + + PrepareAgent(*bedrockagent.PrepareAgentInput) (*bedrockagent.PrepareAgentOutput, error) + PrepareAgentWithContext(aws.Context, *bedrockagent.PrepareAgentInput, ...request.Option) (*bedrockagent.PrepareAgentOutput, error) + PrepareAgentRequest(*bedrockagent.PrepareAgentInput) (*request.Request, *bedrockagent.PrepareAgentOutput) + + StartIngestionJob(*bedrockagent.StartIngestionJobInput) (*bedrockagent.StartIngestionJobOutput, error) + StartIngestionJobWithContext(aws.Context, *bedrockagent.StartIngestionJobInput, ...request.Option) (*bedrockagent.StartIngestionJobOutput, error) + StartIngestionJobRequest(*bedrockagent.StartIngestionJobInput) (*request.Request, *bedrockagent.StartIngestionJobOutput) + + TagResource(*bedrockagent.TagResourceInput) (*bedrockagent.TagResourceOutput, error) + TagResourceWithContext(aws.Context, *bedrockagent.TagResourceInput, ...request.Option) (*bedrockagent.TagResourceOutput, error) + TagResourceRequest(*bedrockagent.TagResourceInput) (*request.Request, *bedrockagent.TagResourceOutput) + + UntagResource(*bedrockagent.UntagResourceInput) (*bedrockagent.UntagResourceOutput, error) + UntagResourceWithContext(aws.Context, *bedrockagent.UntagResourceInput, ...request.Option) (*bedrockagent.UntagResourceOutput, error) + UntagResourceRequest(*bedrockagent.UntagResourceInput) (*request.Request, *bedrockagent.UntagResourceOutput) + + UpdateAgent(*bedrockagent.UpdateAgentInput) (*bedrockagent.UpdateAgentOutput, error) + UpdateAgentWithContext(aws.Context, *bedrockagent.UpdateAgentInput, ...request.Option) (*bedrockagent.UpdateAgentOutput, error) + UpdateAgentRequest(*bedrockagent.UpdateAgentInput) (*request.Request, *bedrockagent.UpdateAgentOutput) + + UpdateAgentActionGroup(*bedrockagent.UpdateAgentActionGroupInput) (*bedrockagent.UpdateAgentActionGroupOutput, error) + UpdateAgentActionGroupWithContext(aws.Context, *bedrockagent.UpdateAgentActionGroupInput, ...request.Option) (*bedrockagent.UpdateAgentActionGroupOutput, error) + UpdateAgentActionGroupRequest(*bedrockagent.UpdateAgentActionGroupInput) (*request.Request, *bedrockagent.UpdateAgentActionGroupOutput) + + UpdateAgentAlias(*bedrockagent.UpdateAgentAliasInput) (*bedrockagent.UpdateAgentAliasOutput, error) + UpdateAgentAliasWithContext(aws.Context, *bedrockagent.UpdateAgentAliasInput, ...request.Option) (*bedrockagent.UpdateAgentAliasOutput, error) + UpdateAgentAliasRequest(*bedrockagent.UpdateAgentAliasInput) (*request.Request, *bedrockagent.UpdateAgentAliasOutput) + + UpdateAgentKnowledgeBase(*bedrockagent.UpdateAgentKnowledgeBaseInput) (*bedrockagent.UpdateAgentKnowledgeBaseOutput, error) + UpdateAgentKnowledgeBaseWithContext(aws.Context, *bedrockagent.UpdateAgentKnowledgeBaseInput, ...request.Option) (*bedrockagent.UpdateAgentKnowledgeBaseOutput, error) + UpdateAgentKnowledgeBaseRequest(*bedrockagent.UpdateAgentKnowledgeBaseInput) (*request.Request, *bedrockagent.UpdateAgentKnowledgeBaseOutput) + + UpdateDataSource(*bedrockagent.UpdateDataSourceInput) (*bedrockagent.UpdateDataSourceOutput, error) + UpdateDataSourceWithContext(aws.Context, *bedrockagent.UpdateDataSourceInput, ...request.Option) (*bedrockagent.UpdateDataSourceOutput, error) + UpdateDataSourceRequest(*bedrockagent.UpdateDataSourceInput) (*request.Request, *bedrockagent.UpdateDataSourceOutput) + + UpdateKnowledgeBase(*bedrockagent.UpdateKnowledgeBaseInput) (*bedrockagent.UpdateKnowledgeBaseOutput, error) + UpdateKnowledgeBaseWithContext(aws.Context, *bedrockagent.UpdateKnowledgeBaseInput, ...request.Option) (*bedrockagent.UpdateKnowledgeBaseOutput, error) + UpdateKnowledgeBaseRequest(*bedrockagent.UpdateKnowledgeBaseInput) (*request.Request, *bedrockagent.UpdateKnowledgeBaseOutput) +} + +var _ BedrockAgentAPI = (*bedrockagent.BedrockAgent)(nil) diff --git a/service/bedrockagent/doc.go b/service/bedrockagent/doc.go new file mode 100644 index 00000000000..c497aa38c3c --- /dev/null +++ b/service/bedrockagent/doc.go @@ -0,0 +1,29 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +// Package bedrockagent provides the client and types for making API +// requests to Agents for Amazon Bedrock. +// +// An example service, deployed with the Octane Service creator, which will +// echo the string +// +// See https://docs.aws.amazon.com/goto/WebAPI/bedrock-agent-2023-06-05 for more information on this service. +// +// See bedrockagent package documentation for more information. +// https://docs.aws.amazon.com/sdk-for-go/api/service/bedrockagent/ +// +// # Using the Client +// +// To contact Agents for Amazon Bedrock with the SDK use the New function to create +// a new service client. With that client you can make API requests to the service. +// These clients are safe to use concurrently. +// +// See the SDK's documentation for more information on how to use the SDK. +// https://docs.aws.amazon.com/sdk-for-go/api/ +// +// See aws.Config documentation for more information on configuring SDK clients. +// https://docs.aws.amazon.com/sdk-for-go/api/aws/#Config +// +// See the Agents for Amazon Bedrock client BedrockAgent for more +// information on creating client for this service. +// https://docs.aws.amazon.com/sdk-for-go/api/service/bedrockagent/#New +package bedrockagent diff --git a/service/bedrockagent/errors.go b/service/bedrockagent/errors.go new file mode 100644 index 00000000000..24505c2917d --- /dev/null +++ b/service/bedrockagent/errors.go @@ -0,0 +1,64 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package bedrockagent + +import ( + "github.com/aws/aws-sdk-go/private/protocol" +) + +const ( + + // ErrCodeAccessDeniedException for service response error code + // "AccessDeniedException". + // + // This exception is thrown when a request is denied per access permissions + ErrCodeAccessDeniedException = "AccessDeniedException" + + // ErrCodeConflictException for service response error code + // "ConflictException". + // + // This exception is thrown when there is a conflict performing an operation + ErrCodeConflictException = "ConflictException" + + // ErrCodeInternalServerException for service response error code + // "InternalServerException". + // + // This exception is thrown if there was an unexpected error during processing + // of request + ErrCodeInternalServerException = "InternalServerException" + + // ErrCodeResourceNotFoundException for service response error code + // "ResourceNotFoundException". + // + // This exception is thrown when a resource referenced by the operation does + // not exist + ErrCodeResourceNotFoundException = "ResourceNotFoundException" + + // ErrCodeServiceQuotaExceededException for service response error code + // "ServiceQuotaExceededException". + // + // This exception is thrown when a request is made beyond the service quota + ErrCodeServiceQuotaExceededException = "ServiceQuotaExceededException" + + // ErrCodeThrottlingException for service response error code + // "ThrottlingException". + // + // This exception is thrown when the number of requests exceeds the limit + ErrCodeThrottlingException = "ThrottlingException" + + // ErrCodeValidationException for service response error code + // "ValidationException". + // + // This exception is thrown when the request's input validation fails + ErrCodeValidationException = "ValidationException" +) + +var exceptionFromCode = map[string]func(protocol.ResponseMetadata) error{ + "AccessDeniedException": newErrorAccessDeniedException, + "ConflictException": newErrorConflictException, + "InternalServerException": newErrorInternalServerException, + "ResourceNotFoundException": newErrorResourceNotFoundException, + "ServiceQuotaExceededException": newErrorServiceQuotaExceededException, + "ThrottlingException": newErrorThrottlingException, + "ValidationException": newErrorValidationException, +} diff --git a/service/bedrockagent/service.go b/service/bedrockagent/service.go new file mode 100644 index 00000000000..755cbc7b035 --- /dev/null +++ b/service/bedrockagent/service.go @@ -0,0 +1,106 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package bedrockagent + +import ( + "github.com/aws/aws-sdk-go/aws" + "github.com/aws/aws-sdk-go/aws/client" + "github.com/aws/aws-sdk-go/aws/client/metadata" + "github.com/aws/aws-sdk-go/aws/request" + "github.com/aws/aws-sdk-go/aws/signer/v4" + "github.com/aws/aws-sdk-go/private/protocol" + "github.com/aws/aws-sdk-go/private/protocol/restjson" +) + +// BedrockAgent provides the API operation methods for making requests to +// Agents for Amazon Bedrock. See this package's package overview docs +// for details on the service. +// +// BedrockAgent methods are safe to use concurrently. It is not safe to +// modify mutate any of the struct's properties though. +type BedrockAgent struct { + *client.Client +} + +// Used for custom client initialization logic +var initClient func(*client.Client) + +// Used for custom request initialization logic +var initRequest func(*request.Request) + +// Service information constants +const ( + ServiceName = "Bedrock Agent" // Name of service. + EndpointsID = "bedrock-agent" // ID to lookup a service endpoint with. + ServiceID = "Bedrock Agent" // ServiceID is a unique identifier of a specific service. +) + +// New creates a new instance of the BedrockAgent client with a session. +// If additional configuration is needed for the client instance use the optional +// aws.Config parameter to add your extra config. +// +// Example: +// +// mySession := session.Must(session.NewSession()) +// +// // Create a BedrockAgent client from just a session. +// svc := bedrockagent.New(mySession) +// +// // Create a BedrockAgent client with additional configuration +// svc := bedrockagent.New(mySession, aws.NewConfig().WithRegion("us-west-2")) +func New(p client.ConfigProvider, cfgs ...*aws.Config) *BedrockAgent { + c := p.ClientConfig(EndpointsID, cfgs...) + if c.SigningNameDerived || len(c.SigningName) == 0 { + c.SigningName = "bedrock" + } + return newClient(*c.Config, c.Handlers, c.PartitionID, c.Endpoint, c.SigningRegion, c.SigningName, c.ResolvedRegion) +} + +// newClient creates, initializes and returns a new service client instance. +func newClient(cfg aws.Config, handlers request.Handlers, partitionID, endpoint, signingRegion, signingName, resolvedRegion string) *BedrockAgent { + svc := &BedrockAgent{ + Client: client.New( + cfg, + metadata.ClientInfo{ + ServiceName: ServiceName, + ServiceID: ServiceID, + SigningName: signingName, + SigningRegion: signingRegion, + PartitionID: partitionID, + Endpoint: endpoint, + APIVersion: "2023-06-05", + ResolvedRegion: resolvedRegion, + }, + handlers, + ), + } + + // Handlers + svc.Handlers.Sign.PushBackNamed(v4.SignRequestHandler) + svc.Handlers.Build.PushBackNamed(restjson.BuildHandler) + svc.Handlers.Unmarshal.PushBackNamed(restjson.UnmarshalHandler) + svc.Handlers.UnmarshalMeta.PushBackNamed(restjson.UnmarshalMetaHandler) + svc.Handlers.UnmarshalError.PushBackNamed( + protocol.NewUnmarshalErrorHandler(restjson.NewUnmarshalTypedError(exceptionFromCode)).NamedHandler(), + ) + + // Run custom client initialization if present + if initClient != nil { + initClient(svc.Client) + } + + return svc +} + +// newRequest creates a new request for a BedrockAgent operation and runs any +// custom request initialization. +func (c *BedrockAgent) newRequest(op *request.Operation, params, data interface{}) *request.Request { + req := c.NewRequest(op, params, data) + + // Run custom request initialization if present + if initRequest != nil { + initRequest(req) + } + + return req +} diff --git a/service/bedrockagentruntime/api.go b/service/bedrockagentruntime/api.go new file mode 100644 index 00000000000..8b33882b4a3 --- /dev/null +++ b/service/bedrockagentruntime/api.go @@ -0,0 +1,4379 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package bedrockagentruntime + +import ( + "bytes" + "fmt" + "io" + "sync" + "time" + + "github.com/aws/aws-sdk-go/aws" + "github.com/aws/aws-sdk-go/aws/awserr" + "github.com/aws/aws-sdk-go/aws/awsutil" + "github.com/aws/aws-sdk-go/aws/client" + "github.com/aws/aws-sdk-go/aws/request" + "github.com/aws/aws-sdk-go/private/protocol" + "github.com/aws/aws-sdk-go/private/protocol/eventstream" + "github.com/aws/aws-sdk-go/private/protocol/eventstream/eventstreamapi" + "github.com/aws/aws-sdk-go/private/protocol/rest" + "github.com/aws/aws-sdk-go/private/protocol/restjson" +) + +const opInvokeAgent = "InvokeAgent" + +// InvokeAgentRequest generates a "aws/request.Request" representing the +// client's request for the InvokeAgent 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 InvokeAgent for more information on using the InvokeAgent +// 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 InvokeAgentRequest method. +// req, resp := client.InvokeAgentRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/bedrock-agent-runtime-2023-07-26/InvokeAgent +func (c *BedrockAgentRuntime) InvokeAgentRequest(input *InvokeAgentInput) (req *request.Request, output *InvokeAgentOutput) { + op := &request.Operation{ + Name: opInvokeAgent, + HTTPMethod: "POST", + HTTPPath: "/agents/{agentId}/agentAliases/{agentAliasId}/sessions/{sessionId}/text", + } + + if input == nil { + input = &InvokeAgentInput{} + } + + output = &InvokeAgentOutput{} + req = c.newRequest(op, input, output) + + es := NewInvokeAgentEventStream() + output.eventStream = es + + req.Handlers.Send.Swap(client.LogHTTPResponseHandler.Name, client.LogHTTPResponseHeaderHandler) + req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, rest.UnmarshalHandler) + req.Handlers.Unmarshal.PushBack(es.runOutputStream) + req.Handlers.Unmarshal.PushBack(es.runOnStreamPartClose) + return +} + +// InvokeAgent API operation for Agents for Amazon Bedrock Runtime. +// +// Invokes the specified Bedrock model to run inference using the input provided +// in the request body. +// +// 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 Agents for Amazon Bedrock Runtime's +// API operation InvokeAgent for usage and error information. +// +// Returned Error Types: +// +// - ConflictException +// This exception is thrown when there is a conflict performing an operation +// +// - ResourceNotFoundException +// This exception is thrown when a resource referenced by the operation does +// not exist +// +// - ValidationException +// This exception is thrown when the request's input validation fails +// +// - InternalServerException +// This exception is thrown if there was an unexpected error during processing +// of request +// +// - DependencyFailedException +// This exception is thrown when a request fails due to dependency like Lambda, +// Bedrock, STS resource due to a customer fault (i.e. bad configuration) +// +// - BadGatewayException +// This exception is thrown when a request fails due to dependency like Lambda, +// Bedrock, STS resource +// +// - ThrottlingException +// This exception is thrown when the number of requests exceeds the limit +// +// - AccessDeniedException +// This exception is thrown when a request is denied per access permissions +// +// - ServiceQuotaExceededException +// This exception is thrown when a request is made beyond the service quota +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/bedrock-agent-runtime-2023-07-26/InvokeAgent +func (c *BedrockAgentRuntime) InvokeAgent(input *InvokeAgentInput) (*InvokeAgentOutput, error) { + req, out := c.InvokeAgentRequest(input) + return out, req.Send() +} + +// InvokeAgentWithContext is the same as InvokeAgent with the addition of +// the ability to pass a context and additional request options. +// +// See InvokeAgent 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 *BedrockAgentRuntime) InvokeAgentWithContext(ctx aws.Context, input *InvokeAgentInput, opts ...request.Option) (*InvokeAgentOutput, error) { + req, out := c.InvokeAgentRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +var _ awserr.Error +var _ time.Time + +// InvokeAgentEventStream provides the event stream handling for the InvokeAgent. +// +// For testing and mocking the event stream this type should be initialized via +// the NewInvokeAgentEventStream constructor function. Using the functional options +// to pass in nested mock behavior. +type InvokeAgentEventStream struct { + + // Reader is the EventStream reader for the ResponseStream + // events. This value is automatically set by the SDK when the API call is made + // Use this member when unit testing your code with the SDK to mock out the + // EventStream Reader. + // + // Must not be nil. + Reader ResponseStreamReader + + outputReader io.ReadCloser + + done chan struct{} + closeOnce sync.Once + err *eventstreamapi.OnceError +} + +// NewInvokeAgentEventStream initializes an InvokeAgentEventStream. +// This function should only be used for testing and mocking the InvokeAgentEventStream +// stream within your application. +// +// The Reader member must be set before reading events from the stream. +// +// es := NewInvokeAgentEventStream(func(o *InvokeAgentEventStream){ +// es.Reader = myMockStreamReader +// }) +func NewInvokeAgentEventStream(opts ...func(*InvokeAgentEventStream)) *InvokeAgentEventStream { + es := &InvokeAgentEventStream{ + done: make(chan struct{}), + err: eventstreamapi.NewOnceError(), + } + + for _, fn := range opts { + fn(es) + } + + return es +} + +func (es *InvokeAgentEventStream) runOnStreamPartClose(r *request.Request) { + if es.done == nil { + return + } + go es.waitStreamPartClose() + +} + +func (es *InvokeAgentEventStream) waitStreamPartClose() { + var outputErrCh <-chan struct{} + if v, ok := es.Reader.(interface{ ErrorSet() <-chan struct{} }); ok { + outputErrCh = v.ErrorSet() + } + var outputClosedCh <-chan struct{} + if v, ok := es.Reader.(interface{ Closed() <-chan struct{} }); ok { + outputClosedCh = v.Closed() + } + + select { + case <-es.done: + case <-outputErrCh: + es.err.SetError(es.Reader.Err()) + es.Close() + case <-outputClosedCh: + if err := es.Reader.Err(); err != nil { + es.err.SetError(es.Reader.Err()) + } + es.Close() + } +} + +// Events returns a channel to read events from. +// +// These events are: +// +// - PayloadPart +// - TracePart +// - ResponseStreamUnknownEvent +func (es *InvokeAgentEventStream) Events() <-chan ResponseStreamEvent { + return es.Reader.Events() +} + +func (es *InvokeAgentEventStream) runOutputStream(r *request.Request) { + var opts []func(*eventstream.Decoder) + if r.Config.Logger != nil && r.Config.LogLevel.Matches(aws.LogDebugWithEventStreamBody) { + opts = append(opts, eventstream.DecodeWithLogger(r.Config.Logger)) + } + + unmarshalerForEvent := unmarshalerForResponseStreamEvent{ + metadata: protocol.ResponseMetadata{ + StatusCode: r.HTTPResponse.StatusCode, + RequestID: r.RequestID, + }, + }.UnmarshalerForEventName + + decoder := eventstream.NewDecoder(r.HTTPResponse.Body, opts...) + eventReader := eventstreamapi.NewEventReader(decoder, + protocol.HandlerPayloadUnmarshal{ + Unmarshalers: r.Handlers.UnmarshalStream, + }, + unmarshalerForEvent, + ) + + es.outputReader = r.HTTPResponse.Body + es.Reader = newReadResponseStream(eventReader) +} + +// Close closes the stream. This will also cause the stream to be closed. +// Close must be called when done using the stream API. Not calling Close +// may result in resource leaks. +// +// You can use the closing of the Reader's Events channel to terminate your +// application's read from the API's stream. +func (es *InvokeAgentEventStream) Close() (err error) { + es.closeOnce.Do(es.safeClose) + return es.Err() +} + +func (es *InvokeAgentEventStream) safeClose() { + if es.done != nil { + close(es.done) + } + + es.Reader.Close() + if es.outputReader != nil { + es.outputReader.Close() + } +} + +// Err returns any error that occurred while reading or writing EventStream +// Events from the service API's response. Returns nil if there were no errors. +func (es *InvokeAgentEventStream) Err() error { + if err := es.err.Err(); err != nil { + return err + } + if err := es.Reader.Err(); err != nil { + return err + } + + return nil +} + +const opRetrieve = "Retrieve" + +// RetrieveRequest generates a "aws/request.Request" representing the +// client's request for the Retrieve 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 Retrieve for more information on using the Retrieve +// 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 RetrieveRequest method. +// req, resp := client.RetrieveRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/bedrock-agent-runtime-2023-07-26/Retrieve +func (c *BedrockAgentRuntime) RetrieveRequest(input *RetrieveInput) (req *request.Request, output *RetrieveOutput) { + op := &request.Operation{ + Name: opRetrieve, + HTTPMethod: "POST", + HTTPPath: "/knowledgebases/{knowledgeBaseId}/retrieve", + Paginator: &request.Paginator{ + InputTokens: []string{"nextToken"}, + OutputTokens: []string{"nextToken"}, + LimitToken: "", + TruncationToken: "", + }, + } + + if input == nil { + input = &RetrieveInput{} + } + + output = &RetrieveOutput{} + req = c.newRequest(op, input, output) + return +} + +// Retrieve API operation for Agents for Amazon Bedrock Runtime. +// +// Retrieve from 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 Agents for Amazon Bedrock Runtime's +// API operation Retrieve for usage and error information. +// +// Returned Error Types: +// +// - ConflictException +// This exception is thrown when there is a conflict performing an operation +// +// - ResourceNotFoundException +// This exception is thrown when a resource referenced by the operation does +// not exist +// +// - ValidationException +// This exception is thrown when the request's input validation fails +// +// - InternalServerException +// This exception is thrown if there was an unexpected error during processing +// of request +// +// - DependencyFailedException +// This exception is thrown when a request fails due to dependency like Lambda, +// Bedrock, STS resource due to a customer fault (i.e. bad configuration) +// +// - BadGatewayException +// This exception is thrown when a request fails due to dependency like Lambda, +// Bedrock, STS resource +// +// - ThrottlingException +// This exception is thrown when the number of requests exceeds the limit +// +// - AccessDeniedException +// This exception is thrown when a request is denied per access permissions +// +// - ServiceQuotaExceededException +// This exception is thrown when a request is made beyond the service quota +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/bedrock-agent-runtime-2023-07-26/Retrieve +func (c *BedrockAgentRuntime) Retrieve(input *RetrieveInput) (*RetrieveOutput, error) { + req, out := c.RetrieveRequest(input) + return out, req.Send() +} + +// RetrieveWithContext is the same as Retrieve with the addition of +// the ability to pass a context and additional request options. +// +// See Retrieve 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 *BedrockAgentRuntime) RetrieveWithContext(ctx aws.Context, input *RetrieveInput, opts ...request.Option) (*RetrieveOutput, error) { + req, out := c.RetrieveRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +// RetrievePages iterates over the pages of a Retrieve operation, +// calling the "fn" function with the response data for each page. To stop +// iterating, return false from the fn function. +// +// See Retrieve 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 Retrieve operation. +// pageNum := 0 +// err := client.RetrievePages(params, +// func(page *bedrockagentruntime.RetrieveOutput, lastPage bool) bool { +// pageNum++ +// fmt.Println(page) +// return pageNum <= 3 +// }) +func (c *BedrockAgentRuntime) RetrievePages(input *RetrieveInput, fn func(*RetrieveOutput, bool) bool) error { + return c.RetrievePagesWithContext(aws.BackgroundContext(), input, fn) +} + +// RetrievePagesWithContext same as RetrievePages 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 *BedrockAgentRuntime) RetrievePagesWithContext(ctx aws.Context, input *RetrieveInput, fn func(*RetrieveOutput, bool) bool, opts ...request.Option) error { + p := request.Pagination{ + NewRequest: func() (*request.Request, error) { + var inCpy *RetrieveInput + if input != nil { + tmp := *input + inCpy = &tmp + } + req, _ := c.RetrieveRequest(inCpy) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return req, nil + }, + } + + for p.Next() { + if !fn(p.Page().(*RetrieveOutput), !p.HasNextPage()) { + break + } + } + + return p.Err() +} + +const opRetrieveAndGenerate = "RetrieveAndGenerate" + +// RetrieveAndGenerateRequest generates a "aws/request.Request" representing the +// client's request for the RetrieveAndGenerate 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 RetrieveAndGenerate for more information on using the RetrieveAndGenerate +// 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 RetrieveAndGenerateRequest method. +// req, resp := client.RetrieveAndGenerateRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/bedrock-agent-runtime-2023-07-26/RetrieveAndGenerate +func (c *BedrockAgentRuntime) RetrieveAndGenerateRequest(input *RetrieveAndGenerateInput) (req *request.Request, output *RetrieveAndGenerateOutput) { + op := &request.Operation{ + Name: opRetrieveAndGenerate, + HTTPMethod: "POST", + HTTPPath: "/retrieveAndGenerate", + } + + if input == nil { + input = &RetrieveAndGenerateInput{} + } + + output = &RetrieveAndGenerateOutput{} + req = c.newRequest(op, input, output) + return +} + +// RetrieveAndGenerate API operation for Agents for Amazon Bedrock Runtime. +// +// # RetrieveAndGenerate API +// +// 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 Agents for Amazon Bedrock Runtime's +// API operation RetrieveAndGenerate for usage and error information. +// +// Returned Error Types: +// +// - ConflictException +// This exception is thrown when there is a conflict performing an operation +// +// - ResourceNotFoundException +// This exception is thrown when a resource referenced by the operation does +// not exist +// +// - ValidationException +// This exception is thrown when the request's input validation fails +// +// - InternalServerException +// This exception is thrown if there was an unexpected error during processing +// of request +// +// - DependencyFailedException +// This exception is thrown when a request fails due to dependency like Lambda, +// Bedrock, STS resource due to a customer fault (i.e. bad configuration) +// +// - BadGatewayException +// This exception is thrown when a request fails due to dependency like Lambda, +// Bedrock, STS resource +// +// - ThrottlingException +// This exception is thrown when the number of requests exceeds the limit +// +// - AccessDeniedException +// This exception is thrown when a request is denied per access permissions +// +// - ServiceQuotaExceededException +// This exception is thrown when a request is made beyond the service quota +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/bedrock-agent-runtime-2023-07-26/RetrieveAndGenerate +func (c *BedrockAgentRuntime) RetrieveAndGenerate(input *RetrieveAndGenerateInput) (*RetrieveAndGenerateOutput, error) { + req, out := c.RetrieveAndGenerateRequest(input) + return out, req.Send() +} + +// RetrieveAndGenerateWithContext is the same as RetrieveAndGenerate with the addition of +// the ability to pass a context and additional request options. +// +// See RetrieveAndGenerate 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 *BedrockAgentRuntime) RetrieveAndGenerateWithContext(ctx aws.Context, input *RetrieveAndGenerateInput, opts ...request.Option) (*RetrieveAndGenerateOutput, error) { + req, out := c.RetrieveAndGenerateRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +// This exception is thrown when a request is denied per access permissions +type AccessDeniedException struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + + // Non Blank String + 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() +} + +// The AccessDeniedException is and event in the ResponseStream group of events. +func (s *AccessDeniedException) eventResponseStream() {} + +// UnmarshalEvent unmarshals the EventStream Message into the AccessDeniedException value. +// This method is only used internally within the SDK's EventStream handling. +func (s *AccessDeniedException) UnmarshalEvent( + payloadUnmarshaler protocol.PayloadUnmarshaler, + msg eventstream.Message, +) error { + if err := payloadUnmarshaler.UnmarshalPayload( + bytes.NewReader(msg.Payload), s, + ); err != nil { + return err + } + return nil +} + +// MarshalEvent marshals the type into an stream event value. This method +// should only used internally within the SDK's EventStream handling. +func (s *AccessDeniedException) MarshalEvent(pm protocol.PayloadMarshaler) (msg eventstream.Message, err error) { + msg.Headers.Set(eventstreamapi.MessageTypeHeader, eventstream.StringValue(eventstreamapi.ExceptionMessageType)) + var buf bytes.Buffer + if err = pm.MarshalPayload(&buf, s); err != nil { + return eventstream.Message{}, err + } + msg.Payload = buf.Bytes() + return msg, err +} + +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 +} + +// input to lambda used in action group +type ActionGroupInvocationInput_ struct { + _ struct{} `type:"structure"` + + // Agent Trace Action Group Name + // + // ActionGroupName is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by ActionGroupInvocationInput_'s + // String and GoString methods. + ActionGroupName *string `locationName:"actionGroupName" type:"string" sensitive:"true"` + + // Agent Trace Action Group API path + // + // ApiPath is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by ActionGroupInvocationInput_'s + // String and GoString methods. + ApiPath *string `locationName:"apiPath" type:"string" sensitive:"true"` + + // list of parameters included in action group invocation + Parameters []*Parameter `locationName:"parameters" type:"list"` + + // Request Body Content Map + RequestBody *RequestBody `locationName:"requestBody" type:"structure"` + + // Agent Trace Action Group Action verb + // + // Verb is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by ActionGroupInvocationInput_'s + // String and GoString methods. + Verb *string `locationName:"verb" 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 ActionGroupInvocationInput_) 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 ActionGroupInvocationInput_) GoString() string { + return s.String() +} + +// SetActionGroupName sets the ActionGroupName field's value. +func (s *ActionGroupInvocationInput_) SetActionGroupName(v string) *ActionGroupInvocationInput_ { + s.ActionGroupName = &v + return s +} + +// SetApiPath sets the ApiPath field's value. +func (s *ActionGroupInvocationInput_) SetApiPath(v string) *ActionGroupInvocationInput_ { + s.ApiPath = &v + return s +} + +// SetParameters sets the Parameters field's value. +func (s *ActionGroupInvocationInput_) SetParameters(v []*Parameter) *ActionGroupInvocationInput_ { + s.Parameters = v + return s +} + +// SetRequestBody sets the RequestBody field's value. +func (s *ActionGroupInvocationInput_) SetRequestBody(v *RequestBody) *ActionGroupInvocationInput_ { + s.RequestBody = v + return s +} + +// SetVerb sets the Verb field's value. +func (s *ActionGroupInvocationInput_) SetVerb(v string) *ActionGroupInvocationInput_ { + s.Verb = &v + return s +} + +// output from lambda used in action group +type ActionGroupInvocationOutput_ struct { + _ struct{} `type:"structure"` + + // Agent Trace Action Group Lambda Invocation Output String + // + // Text is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by ActionGroupInvocationOutput_'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 ActionGroupInvocationOutput_) 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 ActionGroupInvocationOutput_) GoString() string { + return s.String() +} + +// SetText sets the Text field's value. +func (s *ActionGroupInvocationOutput_) SetText(v string) *ActionGroupInvocationOutput_ { + s.Text = &v + return s +} + +// Citations associated with final agent response +type Attribution struct { + _ struct{} `type:"structure"` + + // List of citations + Citations []*Citation `locationName:"citations" 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 Attribution) 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 Attribution) GoString() string { + return s.String() +} + +// SetCitations sets the Citations field's value. +func (s *Attribution) SetCitations(v []*Citation) *Attribution { + s.Citations = v + return s +} + +// This exception is thrown when a request fails due to dependency like Lambda, +// Bedrock, STS resource +type BadGatewayException struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + + // Non Blank String + Message_ *string `locationName:"message" type:"string"` + + // Non Blank String + 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 BadGatewayException) 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 BadGatewayException) GoString() string { + return s.String() +} + +// The BadGatewayException is and event in the ResponseStream group of events. +func (s *BadGatewayException) eventResponseStream() {} + +// UnmarshalEvent unmarshals the EventStream Message into the BadGatewayException value. +// This method is only used internally within the SDK's EventStream handling. +func (s *BadGatewayException) UnmarshalEvent( + payloadUnmarshaler protocol.PayloadUnmarshaler, + msg eventstream.Message, +) error { + if err := payloadUnmarshaler.UnmarshalPayload( + bytes.NewReader(msg.Payload), s, + ); err != nil { + return err + } + return nil +} + +// MarshalEvent marshals the type into an stream event value. This method +// should only used internally within the SDK's EventStream handling. +func (s *BadGatewayException) MarshalEvent(pm protocol.PayloadMarshaler) (msg eventstream.Message, err error) { + msg.Headers.Set(eventstreamapi.MessageTypeHeader, eventstream.StringValue(eventstreamapi.ExceptionMessageType)) + var buf bytes.Buffer + if err = pm.MarshalPayload(&buf, s); err != nil { + return eventstream.Message{}, err + } + msg.Payload = buf.Bytes() + return msg, err +} + +func newErrorBadGatewayException(v protocol.ResponseMetadata) error { + return &BadGatewayException{ + RespMetadata: v, + } +} + +// Code returns the exception type name. +func (s *BadGatewayException) Code() string { + return "BadGatewayException" +} + +// Message returns the exception's message. +func (s *BadGatewayException) Message() string { + if s.Message_ != nil { + return *s.Message_ + } + return "" +} + +// OrigErr always returns nil, satisfies awserr.Error interface. +func (s *BadGatewayException) OrigErr() error { + return nil +} + +func (s *BadGatewayException) 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 *BadGatewayException) StatusCode() int { + return s.RespMetadata.StatusCode +} + +// RequestID returns the service's response RequestID for request. +func (s *BadGatewayException) RequestID() string { + return s.RespMetadata.RequestID +} + +// Citation associated with the agent response +type Citation struct { + _ struct{} `type:"structure"` + + // Generate response part + GeneratedResponsePart *GeneratedResponsePart `locationName:"generatedResponsePart" type:"structure"` + + // list of retrieved references + RetrievedReferences []*RetrievedReference `locationName:"retrievedReferences" 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 Citation) 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 Citation) GoString() string { + return s.String() +} + +// SetGeneratedResponsePart sets the GeneratedResponsePart field's value. +func (s *Citation) SetGeneratedResponsePart(v *GeneratedResponsePart) *Citation { + s.GeneratedResponsePart = v + return s +} + +// SetRetrievedReferences sets the RetrievedReferences field's value. +func (s *Citation) SetRetrievedReferences(v []*RetrievedReference) *Citation { + s.RetrievedReferences = v + return s +} + +// This exception is thrown when there is a conflict performing an operation +type ConflictException struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + + // Non Blank String + 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() +} + +// The ConflictException is and event in the ResponseStream group of events. +func (s *ConflictException) eventResponseStream() {} + +// UnmarshalEvent unmarshals the EventStream Message into the ConflictException value. +// This method is only used internally within the SDK's EventStream handling. +func (s *ConflictException) UnmarshalEvent( + payloadUnmarshaler protocol.PayloadUnmarshaler, + msg eventstream.Message, +) error { + if err := payloadUnmarshaler.UnmarshalPayload( + bytes.NewReader(msg.Payload), s, + ); err != nil { + return err + } + return nil +} + +// MarshalEvent marshals the type into an stream event value. This method +// should only used internally within the SDK's EventStream handling. +func (s *ConflictException) MarshalEvent(pm protocol.PayloadMarshaler) (msg eventstream.Message, err error) { + msg.Headers.Set(eventstreamapi.MessageTypeHeader, eventstream.StringValue(eventstreamapi.ExceptionMessageType)) + var buf bytes.Buffer + if err = pm.MarshalPayload(&buf, s); err != nil { + return eventstream.Message{}, err + } + msg.Payload = buf.Bytes() + return msg, err +} + +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 +} + +// This exception is thrown when a request fails due to dependency like Lambda, +// Bedrock, STS resource due to a customer fault (i.e. bad configuration) +type DependencyFailedException struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + + // Non Blank String + Message_ *string `locationName:"message" type:"string"` + + // Non Blank String + 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 DependencyFailedException) 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 DependencyFailedException) GoString() string { + return s.String() +} + +// The DependencyFailedException is and event in the ResponseStream group of events. +func (s *DependencyFailedException) eventResponseStream() {} + +// UnmarshalEvent unmarshals the EventStream Message into the DependencyFailedException value. +// This method is only used internally within the SDK's EventStream handling. +func (s *DependencyFailedException) UnmarshalEvent( + payloadUnmarshaler protocol.PayloadUnmarshaler, + msg eventstream.Message, +) error { + if err := payloadUnmarshaler.UnmarshalPayload( + bytes.NewReader(msg.Payload), s, + ); err != nil { + return err + } + return nil +} + +// MarshalEvent marshals the type into an stream event value. This method +// should only used internally within the SDK's EventStream handling. +func (s *DependencyFailedException) MarshalEvent(pm protocol.PayloadMarshaler) (msg eventstream.Message, err error) { + msg.Headers.Set(eventstreamapi.MessageTypeHeader, eventstream.StringValue(eventstreamapi.ExceptionMessageType)) + var buf bytes.Buffer + if err = pm.MarshalPayload(&buf, s); err != nil { + return eventstream.Message{}, err + } + msg.Payload = buf.Bytes() + return msg, err +} + +func newErrorDependencyFailedException(v protocol.ResponseMetadata) error { + return &DependencyFailedException{ + RespMetadata: v, + } +} + +// Code returns the exception type name. +func (s *DependencyFailedException) Code() string { + return "DependencyFailedException" +} + +// Message returns the exception's message. +func (s *DependencyFailedException) Message() string { + if s.Message_ != nil { + return *s.Message_ + } + return "" +} + +// OrigErr always returns nil, satisfies awserr.Error interface. +func (s *DependencyFailedException) OrigErr() error { + return nil +} + +func (s *DependencyFailedException) 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 *DependencyFailedException) StatusCode() int { + return s.RespMetadata.StatusCode +} + +// RequestID returns the service's response RequestID for request. +func (s *DependencyFailedException) RequestID() string { + return s.RespMetadata.RequestID +} + +// Trace Part which is emitted when agent trace could not be generated +type FailureTrace struct { + _ struct{} `type:"structure" sensitive:"true"` + + // Agent Trace Failed Reason String + // + // FailureReason is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by FailureTrace's + // String and GoString methods. + FailureReason *string `locationName:"failureReason" type:"string" sensitive:"true"` + + // Identifier for trace + TraceId *string `locationName:"traceId" min:"2" 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 FailureTrace) 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 FailureTrace) GoString() string { + return s.String() +} + +// SetFailureReason sets the FailureReason field's value. +func (s *FailureTrace) SetFailureReason(v string) *FailureTrace { + s.FailureReason = &v + return s +} + +// SetTraceId sets the TraceId field's value. +func (s *FailureTrace) SetTraceId(v string) *FailureTrace { + s.TraceId = &v + return s +} + +// Agent finish output +type FinalResponse struct { + _ struct{} `type:"structure"` + + // Agent Trace Action Group Lambda Invocation Output String + // + // Text is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by FinalResponse'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 FinalResponse) 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 FinalResponse) GoString() string { + return s.String() +} + +// SetText sets the Text field's value. +func (s *FinalResponse) SetText(v string) *FinalResponse { + s.Text = &v + return s +} + +// Generate response part +type GeneratedResponsePart struct { + _ struct{} `type:"structure"` + + // Text response part + TextResponsePart *TextResponsePart `locationName:"textResponsePart" 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 GeneratedResponsePart) 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 GeneratedResponsePart) GoString() string { + return s.String() +} + +// SetTextResponsePart sets the TextResponsePart field's value. +func (s *GeneratedResponsePart) SetTextResponsePart(v *TextResponsePart) *GeneratedResponsePart { + s.TextResponsePart = v + return s +} + +// Configurations for controlling the inference response of an InvokeAgent API +// call +type InferenceConfiguration struct { + _ struct{} `type:"structure"` + + // Maximum length of output + MaximumLength *int64 `locationName:"maximumLength" type:"integer"` + + // List of stop sequences + StopSequences []*string `locationName:"stopSequences" type:"list"` + + // Controls randomness, higher values increase diversity + Temperature *float64 `locationName:"temperature" type:"float"` + + // Sample from the k most likely next tokens + TopK *int64 `locationName:"topK" type:"integer"` + + // Cumulative probability cutoff for token selection + TopP *float64 `locationName:"topP" type:"float"` +} + +// 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 InferenceConfiguration) 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 InferenceConfiguration) GoString() string { + return s.String() +} + +// SetMaximumLength sets the MaximumLength field's value. +func (s *InferenceConfiguration) SetMaximumLength(v int64) *InferenceConfiguration { + s.MaximumLength = &v + return s +} + +// SetStopSequences sets the StopSequences field's value. +func (s *InferenceConfiguration) SetStopSequences(v []*string) *InferenceConfiguration { + s.StopSequences = v + return s +} + +// SetTemperature sets the Temperature field's value. +func (s *InferenceConfiguration) SetTemperature(v float64) *InferenceConfiguration { + s.Temperature = &v + return s +} + +// SetTopK sets the TopK field's value. +func (s *InferenceConfiguration) SetTopK(v int64) *InferenceConfiguration { + s.TopK = &v + return s +} + +// SetTopP sets the TopP field's value. +func (s *InferenceConfiguration) SetTopP(v float64) *InferenceConfiguration { + s.TopP = &v + return s +} + +// This exception is thrown if there was an unexpected error during processing +// of request +type InternalServerException struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + + // Non Blank String + 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 InternalServerException) 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 InternalServerException) GoString() string { + return s.String() +} + +// The InternalServerException is and event in the ResponseStream group of events. +func (s *InternalServerException) eventResponseStream() {} + +// UnmarshalEvent unmarshals the EventStream Message into the InternalServerException value. +// This method is only used internally within the SDK's EventStream handling. +func (s *InternalServerException) UnmarshalEvent( + payloadUnmarshaler protocol.PayloadUnmarshaler, + msg eventstream.Message, +) error { + if err := payloadUnmarshaler.UnmarshalPayload( + bytes.NewReader(msg.Payload), s, + ); err != nil { + return err + } + return nil +} + +// MarshalEvent marshals the type into an stream event value. This method +// should only used internally within the SDK's EventStream handling. +func (s *InternalServerException) MarshalEvent(pm protocol.PayloadMarshaler) (msg eventstream.Message, err error) { + msg.Headers.Set(eventstreamapi.MessageTypeHeader, eventstream.StringValue(eventstreamapi.ExceptionMessageType)) + var buf bytes.Buffer + if err = pm.MarshalPayload(&buf, s); err != nil { + return eventstream.Message{}, err + } + msg.Payload = buf.Bytes() + return msg, err +} + +func newErrorInternalServerException(v protocol.ResponseMetadata) error { + return &InternalServerException{ + RespMetadata: v, + } +} + +// Code returns the exception type name. +func (s *InternalServerException) Code() string { + return "InternalServerException" +} + +// Message returns the exception's message. +func (s *InternalServerException) Message() string { + if s.Message_ != nil { + return *s.Message_ + } + return "" +} + +// OrigErr always returns nil, satisfies awserr.Error interface. +func (s *InternalServerException) OrigErr() error { + return nil +} + +func (s *InternalServerException) 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 *InternalServerException) StatusCode() int { + return s.RespMetadata.StatusCode +} + +// RequestID returns the service's response RequestID for request. +func (s *InternalServerException) RequestID() string { + return s.RespMetadata.RequestID +} + +// Trace Part which contains input details for action group or knowledge base +type InvocationInput_ struct { + _ struct{} `type:"structure" sensitive:"true"` + + // input to lambda used in action group + ActionGroupInvocationInput *ActionGroupInvocationInput_ `locationName:"actionGroupInvocationInput" type:"structure"` + + // types of invocations + InvocationType *string `locationName:"invocationType" type:"string" enum:"InvocationType"` + + // Input to lambda used in action group + KnowledgeBaseLookupInput *KnowledgeBaseLookupInput_ `locationName:"knowledgeBaseLookupInput" type:"structure"` + + // Identifier for trace + TraceId *string `locationName:"traceId" min:"2" 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 InvocationInput_) 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 InvocationInput_) GoString() string { + return s.String() +} + +// SetActionGroupInvocationInput sets the ActionGroupInvocationInput field's value. +func (s *InvocationInput_) SetActionGroupInvocationInput(v *ActionGroupInvocationInput_) *InvocationInput_ { + s.ActionGroupInvocationInput = v + return s +} + +// SetInvocationType sets the InvocationType field's value. +func (s *InvocationInput_) SetInvocationType(v string) *InvocationInput_ { + s.InvocationType = &v + return s +} + +// SetKnowledgeBaseLookupInput sets the KnowledgeBaseLookupInput field's value. +func (s *InvocationInput_) SetKnowledgeBaseLookupInput(v *KnowledgeBaseLookupInput_) *InvocationInput_ { + s.KnowledgeBaseLookupInput = v + return s +} + +// SetTraceId sets the TraceId field's value. +func (s *InvocationInput_) SetTraceId(v string) *InvocationInput_ { + s.TraceId = &v + return s +} + +// InvokeAgent Request +type InvokeAgentInput struct { + _ struct{} `type:"structure"` + + // Identifier for Agent Alias + // + // AgentAliasId is a required field + AgentAliasId *string `location:"uri" locationName:"agentAliasId" type:"string" required:"true"` + + // Identifier for Agent + // + // AgentId is a required field + AgentId *string `location:"uri" locationName:"agentId" type:"string" required:"true"` + + // Enable agent trace events for improved debugging + EnableTrace *bool `locationName:"enableTrace" type:"boolean"` + + // End current session + EndSession *bool `locationName:"endSession" type:"boolean"` + + // Input data in the format specified in the Content-Type request header. + // + // InputText is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by InvokeAgentInput's + // String and GoString methods. + // + // InputText is a required field + InputText *string `locationName:"inputText" type:"string" required:"true" sensitive:"true"` + + // Identifier used for the current session + // + // SessionId is a required field + SessionId *string `location:"uri" locationName:"sessionId" min:"2" type:"string" required:"true"` + + // Session state passed by customer. Base64 encoded json string representation + // of SessionState. + SessionState *SessionState `locationName:"sessionState" 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 InvokeAgentInput) 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 InvokeAgentInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *InvokeAgentInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "InvokeAgentInput"} + if s.AgentAliasId == nil { + invalidParams.Add(request.NewErrParamRequired("AgentAliasId")) + } + if s.AgentAliasId != nil && len(*s.AgentAliasId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("AgentAliasId", 1)) + } + if s.AgentId == nil { + invalidParams.Add(request.NewErrParamRequired("AgentId")) + } + if s.AgentId != nil && len(*s.AgentId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("AgentId", 1)) + } + if s.InputText == nil { + invalidParams.Add(request.NewErrParamRequired("InputText")) + } + if s.SessionId == nil { + invalidParams.Add(request.NewErrParamRequired("SessionId")) + } + if s.SessionId != nil && len(*s.SessionId) < 2 { + invalidParams.Add(request.NewErrParamMinLen("SessionId", 2)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAgentAliasId sets the AgentAliasId field's value. +func (s *InvokeAgentInput) SetAgentAliasId(v string) *InvokeAgentInput { + s.AgentAliasId = &v + return s +} + +// SetAgentId sets the AgentId field's value. +func (s *InvokeAgentInput) SetAgentId(v string) *InvokeAgentInput { + s.AgentId = &v + return s +} + +// SetEnableTrace sets the EnableTrace field's value. +func (s *InvokeAgentInput) SetEnableTrace(v bool) *InvokeAgentInput { + s.EnableTrace = &v + return s +} + +// SetEndSession sets the EndSession field's value. +func (s *InvokeAgentInput) SetEndSession(v bool) *InvokeAgentInput { + s.EndSession = &v + return s +} + +// SetInputText sets the InputText field's value. +func (s *InvokeAgentInput) SetInputText(v string) *InvokeAgentInput { + s.InputText = &v + return s +} + +// SetSessionId sets the SessionId field's value. +func (s *InvokeAgentInput) SetSessionId(v string) *InvokeAgentInput { + s.SessionId = &v + return s +} + +// SetSessionState sets the SessionState field's value. +func (s *InvokeAgentInput) SetSessionState(v *SessionState) *InvokeAgentInput { + s.SessionState = v + return s +} + +// InvokeAgent Response +type InvokeAgentOutput struct { + _ struct{} `type:"structure" payload:"Completion"` + + eventStream *InvokeAgentEventStream + + // streaming response mimetype of the model + // + // ContentType is a required field + ContentType *string `location:"header" locationName:"x-amzn-bedrock-agent-content-type" type:"string" required:"true"` + + // streaming response mimetype of the model + // + // SessionId is a required field + SessionId *string `location:"header" locationName:"x-amz-bedrock-agent-session-id" min:"2" 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 InvokeAgentOutput) 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 InvokeAgentOutput) GoString() string { + return s.String() +} + +// SetContentType sets the ContentType field's value. +func (s *InvokeAgentOutput) SetContentType(v string) *InvokeAgentOutput { + s.ContentType = &v + return s +} + +// SetSessionId sets the SessionId field's value. +func (s *InvokeAgentOutput) SetSessionId(v string) *InvokeAgentOutput { + s.SessionId = &v + return s +} + +// GetStream returns the type to interact with the event stream. +func (s *InvokeAgentOutput) GetStream() *InvokeAgentEventStream { + return s.eventStream +} + +// Input to lambda used in action group +type KnowledgeBaseLookupInput_ struct { + _ struct{} `type:"structure"` + + // Agent Trace Action Group Knowledge Base Id + // + // KnowledgeBaseId is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by KnowledgeBaseLookupInput_'s + // String and GoString methods. + KnowledgeBaseId *string `locationName:"knowledgeBaseId" type:"string" sensitive:"true"` + + // Agent Trace Action Group Lambda Invocation Output String + // + // Text is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by KnowledgeBaseLookupInput_'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 KnowledgeBaseLookupInput_) 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 KnowledgeBaseLookupInput_) GoString() string { + return s.String() +} + +// SetKnowledgeBaseId sets the KnowledgeBaseId field's value. +func (s *KnowledgeBaseLookupInput_) SetKnowledgeBaseId(v string) *KnowledgeBaseLookupInput_ { + s.KnowledgeBaseId = &v + return s +} + +// SetText sets the Text field's value. +func (s *KnowledgeBaseLookupInput_) SetText(v string) *KnowledgeBaseLookupInput_ { + s.Text = &v + return s +} + +// Input to lambda used in action group +type KnowledgeBaseLookupOutput_ struct { + _ struct{} `type:"structure"` + + // list of retrieved references + RetrievedReferences []*RetrievedReference `locationName:"retrievedReferences" 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 KnowledgeBaseLookupOutput_) 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 KnowledgeBaseLookupOutput_) GoString() string { + return s.String() +} + +// SetRetrievedReferences sets the RetrievedReferences field's value. +func (s *KnowledgeBaseLookupOutput_) SetRetrievedReferences(v []*RetrievedReference) *KnowledgeBaseLookupOutput_ { + s.RetrievedReferences = v + return s +} + +// Knowledge base input query. +type KnowledgeBaseQuery struct { + _ struct{} `type:"structure" sensitive:"true"` + + // Knowledge base input query in text + // + // Text is a required field + Text *string `locationName:"text" 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 KnowledgeBaseQuery) 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 KnowledgeBaseQuery) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *KnowledgeBaseQuery) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "KnowledgeBaseQuery"} + if s.Text == nil { + invalidParams.Add(request.NewErrParamRequired("Text")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetText sets the Text field's value. +func (s *KnowledgeBaseQuery) SetText(v string) *KnowledgeBaseQuery { + s.Text = &v + return s +} + +// Search parameters for retrieving from knowledge base. +type KnowledgeBaseRetrievalConfiguration struct { + _ struct{} `type:"structure"` + + // Knowledge base vector search configuration + // + // VectorSearchConfiguration is a required field + VectorSearchConfiguration *KnowledgeBaseVectorSearchConfiguration `locationName:"vectorSearchConfiguration" 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 KnowledgeBaseRetrievalConfiguration) 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 KnowledgeBaseRetrievalConfiguration) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *KnowledgeBaseRetrievalConfiguration) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "KnowledgeBaseRetrievalConfiguration"} + if s.VectorSearchConfiguration == nil { + invalidParams.Add(request.NewErrParamRequired("VectorSearchConfiguration")) + } + if s.VectorSearchConfiguration != nil { + if err := s.VectorSearchConfiguration.Validate(); err != nil { + invalidParams.AddNested("VectorSearchConfiguration", err.(request.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetVectorSearchConfiguration sets the VectorSearchConfiguration field's value. +func (s *KnowledgeBaseRetrievalConfiguration) SetVectorSearchConfiguration(v *KnowledgeBaseVectorSearchConfiguration) *KnowledgeBaseRetrievalConfiguration { + s.VectorSearchConfiguration = v + return s +} + +// Result item returned from a knowledge base retrieval. +type KnowledgeBaseRetrievalResult struct { + _ struct{} `type:"structure"` + + // Content of a retrieval result. + // + // Content is a required field + Content *RetrievalResultContent `locationName:"content" type:"structure" required:"true"` + + // The source location of a retrieval result. + Location *RetrievalResultLocation `locationName:"location" type:"structure"` + + // The relevance score of a result. + Score *float64 `locationName:"score" 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 KnowledgeBaseRetrievalResult) 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 KnowledgeBaseRetrievalResult) GoString() string { + return s.String() +} + +// SetContent sets the Content field's value. +func (s *KnowledgeBaseRetrievalResult) SetContent(v *RetrievalResultContent) *KnowledgeBaseRetrievalResult { + s.Content = v + return s +} + +// SetLocation sets the Location field's value. +func (s *KnowledgeBaseRetrievalResult) SetLocation(v *RetrievalResultLocation) *KnowledgeBaseRetrievalResult { + s.Location = v + return s +} + +// SetScore sets the Score field's value. +func (s *KnowledgeBaseRetrievalResult) SetScore(v float64) *KnowledgeBaseRetrievalResult { + s.Score = &v + return s +} + +// Configurations for retrieval and generation for knowledge base. +type KnowledgeBaseRetrieveAndGenerateConfiguration struct { + _ struct{} `type:"structure"` + + // Identifier of the KnowledgeBase + // + // KnowledgeBaseId is a required field + KnowledgeBaseId *string `locationName:"knowledgeBaseId" type:"string" required:"true"` + + // Arn of a Bedrock model. + // + // ModelArn is a required field + ModelArn *string `locationName:"modelArn" min:"20" 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 KnowledgeBaseRetrieveAndGenerateConfiguration) 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 KnowledgeBaseRetrieveAndGenerateConfiguration) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *KnowledgeBaseRetrieveAndGenerateConfiguration) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "KnowledgeBaseRetrieveAndGenerateConfiguration"} + if s.KnowledgeBaseId == nil { + invalidParams.Add(request.NewErrParamRequired("KnowledgeBaseId")) + } + if s.ModelArn == nil { + invalidParams.Add(request.NewErrParamRequired("ModelArn")) + } + if s.ModelArn != nil && len(*s.ModelArn) < 20 { + invalidParams.Add(request.NewErrParamMinLen("ModelArn", 20)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetKnowledgeBaseId sets the KnowledgeBaseId field's value. +func (s *KnowledgeBaseRetrieveAndGenerateConfiguration) SetKnowledgeBaseId(v string) *KnowledgeBaseRetrieveAndGenerateConfiguration { + s.KnowledgeBaseId = &v + return s +} + +// SetModelArn sets the ModelArn field's value. +func (s *KnowledgeBaseRetrieveAndGenerateConfiguration) SetModelArn(v string) *KnowledgeBaseRetrieveAndGenerateConfiguration { + s.ModelArn = &v + return s +} + +// Knowledge base vector search configuration +type KnowledgeBaseVectorSearchConfiguration struct { + _ struct{} `type:"structure"` + + // Top-K results to retrieve from knowledge base. + // + // NumberOfResults is a required field + NumberOfResults *int64 `locationName:"numberOfResults" min:"1" type:"integer" 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 KnowledgeBaseVectorSearchConfiguration) 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 KnowledgeBaseVectorSearchConfiguration) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *KnowledgeBaseVectorSearchConfiguration) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "KnowledgeBaseVectorSearchConfiguration"} + if s.NumberOfResults == nil { + invalidParams.Add(request.NewErrParamRequired("NumberOfResults")) + } + if s.NumberOfResults != nil && *s.NumberOfResults < 1 { + invalidParams.Add(request.NewErrParamMinValue("NumberOfResults", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetNumberOfResults sets the NumberOfResults field's value. +func (s *KnowledgeBaseVectorSearchConfiguration) SetNumberOfResults(v int64) *KnowledgeBaseVectorSearchConfiguration { + s.NumberOfResults = &v + return s +} + +// Trace Part which contains information used to call Invoke Model +type ModelInvocationInput_ struct { + _ struct{} `type:"structure" sensitive:"true"` + + // Configurations for controlling the inference response of an InvokeAgent API + // call + InferenceConfiguration *InferenceConfiguration `locationName:"inferenceConfiguration" type:"structure"` + + // ARN of a Lambda. + OverrideLambda *string `locationName:"overrideLambda" type:"string"` + + // indicates if agent uses default prompt or overriden prompt + ParserMode *string `locationName:"parserMode" type:"string" enum:"CreationMode"` + + // indicates if agent uses default prompt or overriden prompt + PromptCreationMode *string `locationName:"promptCreationMode" type:"string" enum:"CreationMode"` + + // Prompt Message + // + // Text is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by ModelInvocationInput_'s + // String and GoString methods. + Text *string `locationName:"text" type:"string" sensitive:"true"` + + // Identifier for trace + TraceId *string `locationName:"traceId" min:"2" type:"string"` + + // types of prompts + Type *string `locationName:"type" type:"string" enum:"PromptType"` +} + +// 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 ModelInvocationInput_) 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 ModelInvocationInput_) GoString() string { + return s.String() +} + +// SetInferenceConfiguration sets the InferenceConfiguration field's value. +func (s *ModelInvocationInput_) SetInferenceConfiguration(v *InferenceConfiguration) *ModelInvocationInput_ { + s.InferenceConfiguration = v + return s +} + +// SetOverrideLambda sets the OverrideLambda field's value. +func (s *ModelInvocationInput_) SetOverrideLambda(v string) *ModelInvocationInput_ { + s.OverrideLambda = &v + return s +} + +// SetParserMode sets the ParserMode field's value. +func (s *ModelInvocationInput_) SetParserMode(v string) *ModelInvocationInput_ { + s.ParserMode = &v + return s +} + +// SetPromptCreationMode sets the PromptCreationMode field's value. +func (s *ModelInvocationInput_) SetPromptCreationMode(v string) *ModelInvocationInput_ { + s.PromptCreationMode = &v + return s +} + +// SetText sets the Text field's value. +func (s *ModelInvocationInput_) SetText(v string) *ModelInvocationInput_ { + s.Text = &v + return s +} + +// SetTraceId sets the TraceId field's value. +func (s *ModelInvocationInput_) SetTraceId(v string) *ModelInvocationInput_ { + s.TraceId = &v + return s +} + +// SetType sets the Type field's value. +func (s *ModelInvocationInput_) SetType(v string) *ModelInvocationInput_ { + s.Type = &v + return s +} + +// Trace Part which contains output details for action group or knowledge base +// or final response +type Observation struct { + _ struct{} `type:"structure" sensitive:"true"` + + // output from lambda used in action group + ActionGroupInvocationOutput *ActionGroupInvocationOutput_ `locationName:"actionGroupInvocationOutput" type:"structure"` + + // Agent finish output + FinalResponse *FinalResponse `locationName:"finalResponse" type:"structure"` + + // Input to lambda used in action group + KnowledgeBaseLookupOutput *KnowledgeBaseLookupOutput_ `locationName:"knowledgeBaseLookupOutput" type:"structure"` + + // Observation information if there were reprompts + // + // RepromptResponse is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by Observation's + // String and GoString methods. + RepromptResponse *RepromptResponse `locationName:"repromptResponse" type:"structure" sensitive:"true"` + + // Identifier for trace + TraceId *string `locationName:"traceId" min:"2" type:"string"` + + // types of observations + Type *string `locationName:"type" type:"string" enum:"Type"` +} + +// 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 Observation) 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 Observation) GoString() string { + return s.String() +} + +// SetActionGroupInvocationOutput sets the ActionGroupInvocationOutput field's value. +func (s *Observation) SetActionGroupInvocationOutput(v *ActionGroupInvocationOutput_) *Observation { + s.ActionGroupInvocationOutput = v + return s +} + +// SetFinalResponse sets the FinalResponse field's value. +func (s *Observation) SetFinalResponse(v *FinalResponse) *Observation { + s.FinalResponse = v + return s +} + +// SetKnowledgeBaseLookupOutput sets the KnowledgeBaseLookupOutput field's value. +func (s *Observation) SetKnowledgeBaseLookupOutput(v *KnowledgeBaseLookupOutput_) *Observation { + s.KnowledgeBaseLookupOutput = v + return s +} + +// SetRepromptResponse sets the RepromptResponse field's value. +func (s *Observation) SetRepromptResponse(v *RepromptResponse) *Observation { + s.RepromptResponse = v + return s +} + +// SetTraceId sets the TraceId field's value. +func (s *Observation) SetTraceId(v string) *Observation { + s.TraceId = &v + return s +} + +// SetType sets the Type field's value. +func (s *Observation) SetType(v string) *Observation { + s.Type = &v + return s +} + +// Trace contains intermidate response during orchestration +type OrchestrationTrace struct { + _ struct{} `type:"structure" sensitive:"true"` + + // Trace Part which contains input details for action group or knowledge base + // + // InvocationInput is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by OrchestrationTrace's + // String and GoString methods. + InvocationInput *InvocationInput_ `locationName:"invocationInput" type:"structure" sensitive:"true"` + + // Trace Part which contains information used to call Invoke Model + // + // ModelInvocationInput is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by OrchestrationTrace's + // String and GoString methods. + ModelInvocationInput *ModelInvocationInput_ `locationName:"modelInvocationInput" type:"structure" sensitive:"true"` + + // Trace Part which contains output details for action group or knowledge base + // or final response + // + // Observation is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by OrchestrationTrace's + // String and GoString methods. + Observation *Observation `locationName:"observation" type:"structure" sensitive:"true"` + + // Trace Part which contains information related to reasoning + // + // Rationale is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by OrchestrationTrace's + // String and GoString methods. + Rationale *Rationale `locationName:"rationale" type:"structure" 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 OrchestrationTrace) 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 OrchestrationTrace) GoString() string { + return s.String() +} + +// SetInvocationInput sets the InvocationInput field's value. +func (s *OrchestrationTrace) SetInvocationInput(v *InvocationInput_) *OrchestrationTrace { + s.InvocationInput = v + return s +} + +// SetModelInvocationInput sets the ModelInvocationInput field's value. +func (s *OrchestrationTrace) SetModelInvocationInput(v *ModelInvocationInput_) *OrchestrationTrace { + s.ModelInvocationInput = v + return s +} + +// SetObservation sets the Observation field's value. +func (s *OrchestrationTrace) SetObservation(v *Observation) *OrchestrationTrace { + s.Observation = v + return s +} + +// SetRationale sets the Rationale field's value. +func (s *OrchestrationTrace) SetRationale(v *Rationale) *OrchestrationTrace { + s.Rationale = v + return s +} + +// parameters included in action group invocation +type Parameter struct { + _ struct{} `type:"structure"` + + // Name of parameter + Name *string `locationName:"name" type:"string"` + + // Type of parameter + Type *string `locationName:"type" type:"string"` + + // Value of parameter + Value *string `locationName:"value" 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 Parameter) 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 Parameter) GoString() string { + return s.String() +} + +// SetName sets the Name field's value. +func (s *Parameter) SetName(v string) *Parameter { + s.Name = &v + return s +} + +// SetType sets the Type field's value. +func (s *Parameter) SetType(v string) *Parameter { + s.Type = &v + return s +} + +// SetValue sets the Value field's value. +func (s *Parameter) SetValue(v string) *Parameter { + s.Value = &v + return s +} + +// Base 64 endoded byte response +type PayloadPart struct { + _ struct{} `type:"structure" sensitive:"true"` + + // Citations associated with final agent response + Attribution *Attribution `locationName:"attribution" type:"structure"` + + // PartBody of the payload in bytes + // + // Bytes is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by PayloadPart's + // String and GoString methods. + // + // Bytes is automatically base64 encoded/decoded by the SDK. + Bytes []byte `locationName:"bytes" type:"blob" 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 PayloadPart) 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 PayloadPart) GoString() string { + return s.String() +} + +// SetAttribution sets the Attribution field's value. +func (s *PayloadPart) SetAttribution(v *Attribution) *PayloadPart { + s.Attribution = v + return s +} + +// SetBytes sets the Bytes field's value. +func (s *PayloadPart) SetBytes(v []byte) *PayloadPart { + s.Bytes = v + return s +} + +// The PayloadPart is and event in the ResponseStream group of events. +func (s *PayloadPart) eventResponseStream() {} + +// UnmarshalEvent unmarshals the EventStream Message into the PayloadPart value. +// This method is only used internally within the SDK's EventStream handling. +func (s *PayloadPart) UnmarshalEvent( + payloadUnmarshaler protocol.PayloadUnmarshaler, + msg eventstream.Message, +) error { + if err := payloadUnmarshaler.UnmarshalPayload( + bytes.NewReader(msg.Payload), s, + ); err != nil { + return err + } + return nil +} + +// MarshalEvent marshals the type into an stream event value. This method +// should only used internally within the SDK's EventStream handling. +func (s *PayloadPart) MarshalEvent(pm protocol.PayloadMarshaler) (msg eventstream.Message, err error) { + msg.Headers.Set(eventstreamapi.MessageTypeHeader, eventstream.StringValue(eventstreamapi.EventMessageType)) + var buf bytes.Buffer + if err = pm.MarshalPayload(&buf, s); err != nil { + return eventstream.Message{}, err + } + msg.Payload = buf.Bytes() + return msg, err +} + +// Trace Part which contains information related to postprocessing +type PostProcessingModelInvocationOutput_ struct { + _ struct{} `type:"structure" sensitive:"true"` + + // Trace Part which contains information if preprocessing was successful + // + // ParsedResponse is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by PostProcessingModelInvocationOutput_'s + // String and GoString methods. + ParsedResponse *PostProcessingParsedResponse `locationName:"parsedResponse" type:"structure" sensitive:"true"` + + // Identifier for trace + TraceId *string `locationName:"traceId" min:"2" 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 PostProcessingModelInvocationOutput_) 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 PostProcessingModelInvocationOutput_) GoString() string { + return s.String() +} + +// SetParsedResponse sets the ParsedResponse field's value. +func (s *PostProcessingModelInvocationOutput_) SetParsedResponse(v *PostProcessingParsedResponse) *PostProcessingModelInvocationOutput_ { + s.ParsedResponse = v + return s +} + +// SetTraceId sets the TraceId field's value. +func (s *PostProcessingModelInvocationOutput_) SetTraceId(v string) *PostProcessingModelInvocationOutput_ { + s.TraceId = &v + return s +} + +// Trace Part which contains information if preprocessing was successful +type PostProcessingParsedResponse struct { + _ struct{} `type:"structure" sensitive:"true"` + + // Agent Trace Output String + // + // Text is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by PostProcessingParsedResponse'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 PostProcessingParsedResponse) 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 PostProcessingParsedResponse) GoString() string { + return s.String() +} + +// SetText sets the Text field's value. +func (s *PostProcessingParsedResponse) SetText(v string) *PostProcessingParsedResponse { + s.Text = &v + return s +} + +// Trace Part which contains information related to post processing step +type PostProcessingTrace struct { + _ struct{} `type:"structure" sensitive:"true"` + + // Trace Part which contains information used to call Invoke Model + // + // ModelInvocationInput is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by PostProcessingTrace's + // String and GoString methods. + ModelInvocationInput *ModelInvocationInput_ `locationName:"modelInvocationInput" type:"structure" sensitive:"true"` + + // Trace Part which contains information related to postprocessing + // + // ModelInvocationOutput is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by PostProcessingTrace's + // String and GoString methods. + ModelInvocationOutput *PostProcessingModelInvocationOutput_ `locationName:"modelInvocationOutput" type:"structure" 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 PostProcessingTrace) 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 PostProcessingTrace) GoString() string { + return s.String() +} + +// SetModelInvocationInput sets the ModelInvocationInput field's value. +func (s *PostProcessingTrace) SetModelInvocationInput(v *ModelInvocationInput_) *PostProcessingTrace { + s.ModelInvocationInput = v + return s +} + +// SetModelInvocationOutput sets the ModelInvocationOutput field's value. +func (s *PostProcessingTrace) SetModelInvocationOutput(v *PostProcessingModelInvocationOutput_) *PostProcessingTrace { + s.ModelInvocationOutput = v + return s +} + +// Trace Part which contains information related to preprocessing +type PreProcessingModelInvocationOutput_ struct { + _ struct{} `type:"structure" sensitive:"true"` + + // Trace Part which contains information if preprocessing was successful + // + // ParsedResponse is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by PreProcessingModelInvocationOutput_'s + // String and GoString methods. + ParsedResponse *PreProcessingParsedResponse `locationName:"parsedResponse" type:"structure" sensitive:"true"` + + // Identifier for trace + TraceId *string `locationName:"traceId" min:"2" 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 PreProcessingModelInvocationOutput_) 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 PreProcessingModelInvocationOutput_) GoString() string { + return s.String() +} + +// SetParsedResponse sets the ParsedResponse field's value. +func (s *PreProcessingModelInvocationOutput_) SetParsedResponse(v *PreProcessingParsedResponse) *PreProcessingModelInvocationOutput_ { + s.ParsedResponse = v + return s +} + +// SetTraceId sets the TraceId field's value. +func (s *PreProcessingModelInvocationOutput_) SetTraceId(v string) *PreProcessingModelInvocationOutput_ { + s.TraceId = &v + return s +} + +// Trace Part which contains information if preprocessing was successful +type PreProcessingParsedResponse struct { + _ struct{} `type:"structure" sensitive:"true"` + + // Boolean value + IsValid *bool `locationName:"isValid" type:"boolean"` + + // Agent Trace Rationale String + // + // Rationale is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by PreProcessingParsedResponse's + // String and GoString methods. + Rationale *string `locationName:"rationale" 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 PreProcessingParsedResponse) 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 PreProcessingParsedResponse) GoString() string { + return s.String() +} + +// SetIsValid sets the IsValid field's value. +func (s *PreProcessingParsedResponse) SetIsValid(v bool) *PreProcessingParsedResponse { + s.IsValid = &v + return s +} + +// SetRationale sets the Rationale field's value. +func (s *PreProcessingParsedResponse) SetRationale(v string) *PreProcessingParsedResponse { + s.Rationale = &v + return s +} + +// Trace Part which contains information related to preprocessing step +type PreProcessingTrace struct { + _ struct{} `type:"structure" sensitive:"true"` + + // Trace Part which contains information used to call Invoke Model + // + // ModelInvocationInput is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by PreProcessingTrace's + // String and GoString methods. + ModelInvocationInput *ModelInvocationInput_ `locationName:"modelInvocationInput" type:"structure" sensitive:"true"` + + // Trace Part which contains information related to preprocessing + // + // ModelInvocationOutput is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by PreProcessingTrace's + // String and GoString methods. + ModelInvocationOutput *PreProcessingModelInvocationOutput_ `locationName:"modelInvocationOutput" type:"structure" 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 PreProcessingTrace) 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 PreProcessingTrace) GoString() string { + return s.String() +} + +// SetModelInvocationInput sets the ModelInvocationInput field's value. +func (s *PreProcessingTrace) SetModelInvocationInput(v *ModelInvocationInput_) *PreProcessingTrace { + s.ModelInvocationInput = v + return s +} + +// SetModelInvocationOutput sets the ModelInvocationOutput field's value. +func (s *PreProcessingTrace) SetModelInvocationOutput(v *PreProcessingModelInvocationOutput_) *PreProcessingTrace { + s.ModelInvocationOutput = v + return s +} + +// Trace Part which contains information related to reasoning +type Rationale struct { + _ struct{} `type:"structure" sensitive:"true"` + + // Agent Trace Rationale String + // + // Text is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by Rationale's + // String and GoString methods. + Text *string `locationName:"text" type:"string" sensitive:"true"` + + // Identifier for trace + TraceId *string `locationName:"traceId" min:"2" 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 Rationale) 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 Rationale) GoString() string { + return s.String() +} + +// SetText sets the Text field's value. +func (s *Rationale) SetText(v string) *Rationale { + s.Text = &v + return s +} + +// SetTraceId sets the TraceId field's value. +func (s *Rationale) SetTraceId(v string) *Rationale { + s.TraceId = &v + return s +} + +// Observation information if there were reprompts +type RepromptResponse struct { + _ struct{} `type:"structure" sensitive:"true"` + + // Parsing error source + // + // Source is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by RepromptResponse's + // String and GoString methods. + Source *string `locationName:"source" type:"string" enum:"Source" sensitive:"true"` + + // Reprompt response text + Text *string `locationName:"text" 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 RepromptResponse) 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 RepromptResponse) GoString() string { + return s.String() +} + +// SetSource sets the Source field's value. +func (s *RepromptResponse) SetSource(v string) *RepromptResponse { + s.Source = &v + return s +} + +// SetText sets the Text field's value. +func (s *RepromptResponse) SetText(v string) *RepromptResponse { + s.Text = &v + return s +} + +// Request Body Content Map +type RequestBody struct { + _ struct{} `type:"structure"` + + // Content type paramter map + Content map[string][]*Parameter `locationName:"content" 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 RequestBody) 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 RequestBody) GoString() string { + return s.String() +} + +// SetContent sets the Content field's value. +func (s *RequestBody) SetContent(v map[string][]*Parameter) *RequestBody { + s.Content = v + return s +} + +// This exception is thrown when a resource referenced by the operation does +// not exist +type ResourceNotFoundException struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + + // Non Blank String + 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 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() +} + +// The ResourceNotFoundException is and event in the ResponseStream group of events. +func (s *ResourceNotFoundException) eventResponseStream() {} + +// UnmarshalEvent unmarshals the EventStream Message into the ResourceNotFoundException value. +// This method is only used internally within the SDK's EventStream handling. +func (s *ResourceNotFoundException) UnmarshalEvent( + payloadUnmarshaler protocol.PayloadUnmarshaler, + msg eventstream.Message, +) error { + if err := payloadUnmarshaler.UnmarshalPayload( + bytes.NewReader(msg.Payload), s, + ); err != nil { + return err + } + return nil +} + +// MarshalEvent marshals the type into an stream event value. This method +// should only used internally within the SDK's EventStream handling. +func (s *ResourceNotFoundException) MarshalEvent(pm protocol.PayloadMarshaler) (msg eventstream.Message, err error) { + msg.Headers.Set(eventstreamapi.MessageTypeHeader, eventstream.StringValue(eventstreamapi.ExceptionMessageType)) + var buf bytes.Buffer + if err = pm.MarshalPayload(&buf, s); err != nil { + return eventstream.Message{}, err + } + msg.Payload = buf.Bytes() + return msg, err +} + +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", s.Code(), s.Message()) +} + +// 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 +} + +// ResponseStreamEvent groups together all EventStream +// events writes for ResponseStream. +// +// These events are: +// +// - PayloadPart +// - TracePart +type ResponseStreamEvent interface { + eventResponseStream() + eventstreamapi.Marshaler + eventstreamapi.Unmarshaler +} + +// ResponseStreamReader provides the interface for reading to the stream. The +// default implementation for this interface will be ResponseStream. +// +// The reader's Close method must allow multiple concurrent calls. +// +// These events are: +// +// - PayloadPart +// - TracePart +// - ResponseStreamUnknownEvent +type ResponseStreamReader interface { + // Returns a channel of events as they are read from the event stream. + Events() <-chan ResponseStreamEvent + + // Close will stop the reader reading events from the stream. + Close() error + + // Returns any error that has occurred while reading from the event stream. + Err() error +} + +type readResponseStream struct { + eventReader *eventstreamapi.EventReader + stream chan ResponseStreamEvent + err *eventstreamapi.OnceError + + done chan struct{} + closeOnce sync.Once +} + +func newReadResponseStream(eventReader *eventstreamapi.EventReader) *readResponseStream { + r := &readResponseStream{ + eventReader: eventReader, + stream: make(chan ResponseStreamEvent), + done: make(chan struct{}), + err: eventstreamapi.NewOnceError(), + } + go r.readEventStream() + + return r +} + +// Close will close the underlying event stream reader. +func (r *readResponseStream) Close() error { + r.closeOnce.Do(r.safeClose) + return r.Err() +} + +func (r *readResponseStream) ErrorSet() <-chan struct{} { + return r.err.ErrorSet() +} + +func (r *readResponseStream) Closed() <-chan struct{} { + return r.done +} + +func (r *readResponseStream) safeClose() { + close(r.done) +} + +func (r *readResponseStream) Err() error { + return r.err.Err() +} + +func (r *readResponseStream) Events() <-chan ResponseStreamEvent { + return r.stream +} + +func (r *readResponseStream) readEventStream() { + defer r.Close() + defer close(r.stream) + + for { + event, err := r.eventReader.ReadEvent() + if err != nil { + if err == io.EOF { + return + } + select { + case <-r.done: + // If closed already ignore the error + return + default: + } + if _, ok := err.(*eventstreamapi.UnknownMessageTypeError); ok { + continue + } + r.err.SetError(err) + return + } + + select { + case r.stream <- event.(ResponseStreamEvent): + case <-r.done: + return + } + } +} + +type unmarshalerForResponseStreamEvent struct { + metadata protocol.ResponseMetadata +} + +func (u unmarshalerForResponseStreamEvent) UnmarshalerForEventName(eventType string) (eventstreamapi.Unmarshaler, error) { + switch eventType { + case "chunk": + return &PayloadPart{}, nil + case "trace": + return &TracePart{}, nil + case "accessDeniedException": + return newErrorAccessDeniedException(u.metadata).(eventstreamapi.Unmarshaler), nil + case "badGatewayException": + return newErrorBadGatewayException(u.metadata).(eventstreamapi.Unmarshaler), nil + case "conflictException": + return newErrorConflictException(u.metadata).(eventstreamapi.Unmarshaler), nil + case "dependencyFailedException": + return newErrorDependencyFailedException(u.metadata).(eventstreamapi.Unmarshaler), nil + case "internalServerException": + return newErrorInternalServerException(u.metadata).(eventstreamapi.Unmarshaler), nil + case "resourceNotFoundException": + return newErrorResourceNotFoundException(u.metadata).(eventstreamapi.Unmarshaler), nil + case "serviceQuotaExceededException": + return newErrorServiceQuotaExceededException(u.metadata).(eventstreamapi.Unmarshaler), nil + case "throttlingException": + return newErrorThrottlingException(u.metadata).(eventstreamapi.Unmarshaler), nil + case "validationException": + return newErrorValidationException(u.metadata).(eventstreamapi.Unmarshaler), nil + default: + return &ResponseStreamUnknownEvent{Type: eventType}, nil + } +} + +// ResponseStreamUnknownEvent provides a failsafe event for the +// ResponseStream group of events when an unknown event is received. +type ResponseStreamUnknownEvent struct { + Type string + Message eventstream.Message +} + +// The ResponseStreamUnknownEvent is and event in the ResponseStream +// group of events. +func (s *ResponseStreamUnknownEvent) eventResponseStream() {} + +// MarshalEvent marshals the type into an stream event value. This method +// should only used internally within the SDK's EventStream handling. +func (e *ResponseStreamUnknownEvent) MarshalEvent(pm protocol.PayloadMarshaler) ( + msg eventstream.Message, err error, +) { + return e.Message.Clone(), nil +} + +// UnmarshalEvent unmarshals the EventStream Message into the ResponseStream value. +// This method is only used internally within the SDK's EventStream handling. +func (e *ResponseStreamUnknownEvent) UnmarshalEvent( + payloadUnmarshaler protocol.PayloadUnmarshaler, + msg eventstream.Message, +) error { + e.Message = msg.Clone() + return nil +} + +// Content of a retrieval result. +type RetrievalResultContent struct { + _ struct{} `type:"structure"` + + // Content of a retrieval result in text + // + // Text is a required field + Text *string `locationName:"text" 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 RetrievalResultContent) 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 RetrievalResultContent) GoString() string { + return s.String() +} + +// SetText sets the Text field's value. +func (s *RetrievalResultContent) SetText(v string) *RetrievalResultContent { + s.Text = &v + return s +} + +// The source location of a retrieval result. +type RetrievalResultLocation struct { + _ struct{} `type:"structure"` + + // The S3 location of a retrieval result. + S3Location *RetrievalResultS3Location `locationName:"s3Location" type:"structure"` + + // The location type of a retrieval result. + // + // Type is a required field + Type *string `locationName:"type" type:"string" required:"true" enum:"RetrievalResultLocationType"` +} + +// 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 RetrievalResultLocation) 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 RetrievalResultLocation) GoString() string { + return s.String() +} + +// SetS3Location sets the S3Location field's value. +func (s *RetrievalResultLocation) SetS3Location(v *RetrievalResultS3Location) *RetrievalResultLocation { + s.S3Location = v + return s +} + +// SetType sets the Type field's value. +func (s *RetrievalResultLocation) SetType(v string) *RetrievalResultLocation { + s.Type = &v + return s +} + +// The S3 location of a retrieval result. +type RetrievalResultS3Location struct { + _ struct{} `type:"structure"` + + // URI of S3 location + Uri *string `locationName:"uri" 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 RetrievalResultS3Location) 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 RetrievalResultS3Location) GoString() string { + return s.String() +} + +// SetUri sets the Uri field's value. +func (s *RetrievalResultS3Location) SetUri(v string) *RetrievalResultS3Location { + s.Uri = &v + return s +} + +// Configures the retrieval and generation for the session. +type RetrieveAndGenerateConfiguration struct { + _ struct{} `type:"structure"` + + // Configurations for retrieval and generation for knowledge base. + KnowledgeBaseConfiguration *KnowledgeBaseRetrieveAndGenerateConfiguration `locationName:"knowledgeBaseConfiguration" type:"structure"` + + // The type of RetrieveAndGenerate. + // + // Type is a required field + Type *string `locationName:"type" type:"string" required:"true" enum:"RetrieveAndGenerateType"` +} + +// 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 RetrieveAndGenerateConfiguration) 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 RetrieveAndGenerateConfiguration) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *RetrieveAndGenerateConfiguration) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "RetrieveAndGenerateConfiguration"} + if s.Type == nil { + invalidParams.Add(request.NewErrParamRequired("Type")) + } + if s.KnowledgeBaseConfiguration != nil { + if err := s.KnowledgeBaseConfiguration.Validate(); err != nil { + invalidParams.AddNested("KnowledgeBaseConfiguration", err.(request.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetKnowledgeBaseConfiguration sets the KnowledgeBaseConfiguration field's value. +func (s *RetrieveAndGenerateConfiguration) SetKnowledgeBaseConfiguration(v *KnowledgeBaseRetrieveAndGenerateConfiguration) *RetrieveAndGenerateConfiguration { + s.KnowledgeBaseConfiguration = v + return s +} + +// SetType sets the Type field's value. +func (s *RetrieveAndGenerateConfiguration) SetType(v string) *RetrieveAndGenerateConfiguration { + s.Type = &v + return s +} + +type RetrieveAndGenerateInput struct { + _ struct{} `type:"structure"` + + // Customer input of the turn + // + // Input is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by RetrieveAndGenerateInput's + // String and GoString methods. + // + // Input is a required field + Input *RetrieveAndGenerateInput_ `locationName:"input" type:"structure" required:"true" sensitive:"true"` + + // Configures the retrieval and generation for the session. + RetrieveAndGenerateConfiguration *RetrieveAndGenerateConfiguration `locationName:"retrieveAndGenerateConfiguration" type:"structure"` + + // Configures common parameters of the session. + SessionConfiguration *RetrieveAndGenerateSessionConfiguration `locationName:"sessionConfiguration" type:"structure"` + + // Identifier of the session. + SessionId *string `locationName:"sessionId" min:"2" 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 RetrieveAndGenerateInput) 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 RetrieveAndGenerateInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *RetrieveAndGenerateInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "RetrieveAndGenerateInput"} + if s.Input == nil { + invalidParams.Add(request.NewErrParamRequired("Input")) + } + if s.SessionId != nil && len(*s.SessionId) < 2 { + invalidParams.Add(request.NewErrParamMinLen("SessionId", 2)) + } + if s.Input != nil { + if err := s.Input.Validate(); err != nil { + invalidParams.AddNested("Input", err.(request.ErrInvalidParams)) + } + } + if s.RetrieveAndGenerateConfiguration != nil { + if err := s.RetrieveAndGenerateConfiguration.Validate(); err != nil { + invalidParams.AddNested("RetrieveAndGenerateConfiguration", err.(request.ErrInvalidParams)) + } + } + if s.SessionConfiguration != nil { + if err := s.SessionConfiguration.Validate(); err != nil { + invalidParams.AddNested("SessionConfiguration", err.(request.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetInput sets the Input field's value. +func (s *RetrieveAndGenerateInput) SetInput(v *RetrieveAndGenerateInput_) *RetrieveAndGenerateInput { + s.Input = v + return s +} + +// SetRetrieveAndGenerateConfiguration sets the RetrieveAndGenerateConfiguration field's value. +func (s *RetrieveAndGenerateInput) SetRetrieveAndGenerateConfiguration(v *RetrieveAndGenerateConfiguration) *RetrieveAndGenerateInput { + s.RetrieveAndGenerateConfiguration = v + return s +} + +// SetSessionConfiguration sets the SessionConfiguration field's value. +func (s *RetrieveAndGenerateInput) SetSessionConfiguration(v *RetrieveAndGenerateSessionConfiguration) *RetrieveAndGenerateInput { + s.SessionConfiguration = v + return s +} + +// SetSessionId sets the SessionId field's value. +func (s *RetrieveAndGenerateInput) SetSessionId(v string) *RetrieveAndGenerateInput { + s.SessionId = &v + return s +} + +// Customer input of the turn +type RetrieveAndGenerateInput_ struct { + _ struct{} `type:"structure" sensitive:"true"` + + // Customer input of the turn in text + // + // Text is a required field + Text *string `locationName:"text" 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 RetrieveAndGenerateInput_) 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 RetrieveAndGenerateInput_) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *RetrieveAndGenerateInput_) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "RetrieveAndGenerateInput_"} + if s.Text == nil { + invalidParams.Add(request.NewErrParamRequired("Text")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetText sets the Text field's value. +func (s *RetrieveAndGenerateInput_) SetText(v string) *RetrieveAndGenerateInput_ { + s.Text = &v + return s +} + +type RetrieveAndGenerateOutput struct { + _ struct{} `type:"structure"` + + // List of citations + Citations []*Citation `locationName:"citations" type:"list"` + + // Service response of the turn + // + // Output is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by RetrieveAndGenerateOutput's + // String and GoString methods. + // + // Output is a required field + Output *RetrieveAndGenerateOutput_ `locationName:"output" type:"structure" required:"true" sensitive:"true"` + + // Identifier of the session. + // + // SessionId is a required field + SessionId *string `locationName:"sessionId" min:"2" 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 RetrieveAndGenerateOutput) 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 RetrieveAndGenerateOutput) GoString() string { + return s.String() +} + +// SetCitations sets the Citations field's value. +func (s *RetrieveAndGenerateOutput) SetCitations(v []*Citation) *RetrieveAndGenerateOutput { + s.Citations = v + return s +} + +// SetOutput sets the Output field's value. +func (s *RetrieveAndGenerateOutput) SetOutput(v *RetrieveAndGenerateOutput_) *RetrieveAndGenerateOutput { + s.Output = v + return s +} + +// SetSessionId sets the SessionId field's value. +func (s *RetrieveAndGenerateOutput) SetSessionId(v string) *RetrieveAndGenerateOutput { + s.SessionId = &v + return s +} + +// Service response of the turn +type RetrieveAndGenerateOutput_ struct { + _ struct{} `type:"structure" sensitive:"true"` + + // Service response of the turn in text + // + // Text is a required field + Text *string `locationName:"text" 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 RetrieveAndGenerateOutput_) 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 RetrieveAndGenerateOutput_) GoString() string { + return s.String() +} + +// SetText sets the Text field's value. +func (s *RetrieveAndGenerateOutput_) SetText(v string) *RetrieveAndGenerateOutput_ { + s.Text = &v + return s +} + +// Configures common parameters of the session. +type RetrieveAndGenerateSessionConfiguration struct { + _ struct{} `type:"structure"` + + // The KMS key arn to encrypt the customer data of the session. + // + // KmsKeyArn is a required field + KmsKeyArn *string `locationName:"kmsKeyArn" 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 RetrieveAndGenerateSessionConfiguration) 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 RetrieveAndGenerateSessionConfiguration) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *RetrieveAndGenerateSessionConfiguration) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "RetrieveAndGenerateSessionConfiguration"} + if s.KmsKeyArn == nil { + invalidParams.Add(request.NewErrParamRequired("KmsKeyArn")) + } + if s.KmsKeyArn != nil && len(*s.KmsKeyArn) < 1 { + invalidParams.Add(request.NewErrParamMinLen("KmsKeyArn", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetKmsKeyArn sets the KmsKeyArn field's value. +func (s *RetrieveAndGenerateSessionConfiguration) SetKmsKeyArn(v string) *RetrieveAndGenerateSessionConfiguration { + s.KmsKeyArn = &v + return s +} + +type RetrieveInput struct { + _ struct{} `type:"structure"` + + // Identifier of the KnowledgeBase + // + // KnowledgeBaseId is a required field + KnowledgeBaseId *string `location:"uri" locationName:"knowledgeBaseId" type:"string" required:"true"` + + // Opaque continuation token of previous paginated response. + NextToken *string `locationName:"nextToken" min:"1" type:"string"` + + // Search parameters for retrieving from knowledge base. + RetrievalConfiguration *KnowledgeBaseRetrievalConfiguration `locationName:"retrievalConfiguration" type:"structure"` + + // Knowledge base input query. + // + // RetrievalQuery is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by RetrieveInput's + // String and GoString methods. + // + // RetrievalQuery is a required field + RetrievalQuery *KnowledgeBaseQuery `locationName:"retrievalQuery" type:"structure" required:"true" 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 RetrieveInput) 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 RetrieveInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *RetrieveInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "RetrieveInput"} + 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.NextToken != nil && len(*s.NextToken) < 1 { + invalidParams.Add(request.NewErrParamMinLen("NextToken", 1)) + } + if s.RetrievalQuery == nil { + invalidParams.Add(request.NewErrParamRequired("RetrievalQuery")) + } + if s.RetrievalConfiguration != nil { + if err := s.RetrievalConfiguration.Validate(); err != nil { + invalidParams.AddNested("RetrievalConfiguration", err.(request.ErrInvalidParams)) + } + } + if s.RetrievalQuery != nil { + if err := s.RetrievalQuery.Validate(); err != nil { + invalidParams.AddNested("RetrievalQuery", err.(request.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetKnowledgeBaseId sets the KnowledgeBaseId field's value. +func (s *RetrieveInput) SetKnowledgeBaseId(v string) *RetrieveInput { + s.KnowledgeBaseId = &v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *RetrieveInput) SetNextToken(v string) *RetrieveInput { + s.NextToken = &v + return s +} + +// SetRetrievalConfiguration sets the RetrievalConfiguration field's value. +func (s *RetrieveInput) SetRetrievalConfiguration(v *KnowledgeBaseRetrievalConfiguration) *RetrieveInput { + s.RetrievalConfiguration = v + return s +} + +// SetRetrievalQuery sets the RetrievalQuery field's value. +func (s *RetrieveInput) SetRetrievalQuery(v *KnowledgeBaseQuery) *RetrieveInput { + s.RetrievalQuery = v + return s +} + +type RetrieveOutput struct { + _ struct{} `type:"structure"` + + // Opaque continuation token of previous paginated response. + NextToken *string `locationName:"nextToken" min:"1" type:"string"` + + // List of knowledge base retrieval results + // + // RetrievalResults is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by RetrieveOutput's + // String and GoString methods. + // + // RetrievalResults is a required field + RetrievalResults []*KnowledgeBaseRetrievalResult `locationName:"retrievalResults" type:"list" required:"true" 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 RetrieveOutput) 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 RetrieveOutput) GoString() string { + return s.String() +} + +// SetNextToken sets the NextToken field's value. +func (s *RetrieveOutput) SetNextToken(v string) *RetrieveOutput { + s.NextToken = &v + return s +} + +// SetRetrievalResults sets the RetrievalResults field's value. +func (s *RetrieveOutput) SetRetrievalResults(v []*KnowledgeBaseRetrievalResult) *RetrieveOutput { + s.RetrievalResults = v + return s +} + +// Retrieved reference +type RetrievedReference struct { + _ struct{} `type:"structure"` + + // Content of a retrieval result. + Content *RetrievalResultContent `locationName:"content" type:"structure"` + + // The source location of a retrieval result. + Location *RetrievalResultLocation `locationName:"location" 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 RetrievedReference) 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 RetrievedReference) GoString() string { + return s.String() +} + +// SetContent sets the Content field's value. +func (s *RetrievedReference) SetContent(v *RetrievalResultContent) *RetrievedReference { + s.Content = v + return s +} + +// SetLocation sets the Location field's value. +func (s *RetrievedReference) SetLocation(v *RetrievalResultLocation) *RetrievedReference { + s.Location = v + return s +} + +// This exception is thrown when a request is made beyond the service quota +type ServiceQuotaExceededException struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + + // Non Blank String + 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() +} + +// The ServiceQuotaExceededException is and event in the ResponseStream group of events. +func (s *ServiceQuotaExceededException) eventResponseStream() {} + +// UnmarshalEvent unmarshals the EventStream Message into the ServiceQuotaExceededException value. +// This method is only used internally within the SDK's EventStream handling. +func (s *ServiceQuotaExceededException) UnmarshalEvent( + payloadUnmarshaler protocol.PayloadUnmarshaler, + msg eventstream.Message, +) error { + if err := payloadUnmarshaler.UnmarshalPayload( + bytes.NewReader(msg.Payload), s, + ); err != nil { + return err + } + return nil +} + +// MarshalEvent marshals the type into an stream event value. This method +// should only used internally within the SDK's EventStream handling. +func (s *ServiceQuotaExceededException) MarshalEvent(pm protocol.PayloadMarshaler) (msg eventstream.Message, err error) { + msg.Headers.Set(eventstreamapi.MessageTypeHeader, eventstream.StringValue(eventstreamapi.ExceptionMessageType)) + var buf bytes.Buffer + if err = pm.MarshalPayload(&buf, s); err != nil { + return eventstream.Message{}, err + } + msg.Payload = buf.Bytes() + return msg, err +} + +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 +} + +// Session state provided +type SessionState struct { + _ struct{} `type:"structure"` + + // Prompt Session Attributes + PromptSessionAttributes map[string]*string `locationName:"promptSessionAttributes" type:"map"` + + // Session Attributes + SessionAttributes map[string]*string `locationName:"sessionAttributes" 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 SessionState) 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 SessionState) GoString() string { + return s.String() +} + +// SetPromptSessionAttributes sets the PromptSessionAttributes field's value. +func (s *SessionState) SetPromptSessionAttributes(v map[string]*string) *SessionState { + s.PromptSessionAttributes = v + return s +} + +// SetSessionAttributes sets the SessionAttributes field's value. +func (s *SessionState) SetSessionAttributes(v map[string]*string) *SessionState { + s.SessionAttributes = v + return s +} + +// Span of text +type Span struct { + _ struct{} `type:"structure"` + + // End of span + End *int64 `locationName:"end" type:"integer"` + + // Start of span + Start *int64 `locationName:"start" 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 Span) 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 Span) GoString() string { + return s.String() +} + +// SetEnd sets the End field's value. +func (s *Span) SetEnd(v int64) *Span { + s.End = &v + return s +} + +// SetStart sets the Start field's value. +func (s *Span) SetStart(v int64) *Span { + s.Start = &v + return s +} + +// Text response part +type TextResponsePart struct { + _ struct{} `type:"structure"` + + // Span of text + Span *Span `locationName:"span" type:"structure"` + + // Response part in text + Text *string `locationName:"text" 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 TextResponsePart) 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 TextResponsePart) GoString() string { + return s.String() +} + +// SetSpan sets the Span field's value. +func (s *TextResponsePart) SetSpan(v *Span) *TextResponsePart { + s.Span = v + return s +} + +// SetText sets the Text field's value. +func (s *TextResponsePart) SetText(v string) *TextResponsePart { + s.Text = &v + return s +} + +// This exception is thrown when the number of requests exceeds the limit +type ThrottlingException struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + + // Non Blank String + 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 ThrottlingException) 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 ThrottlingException) GoString() string { + return s.String() +} + +// The ThrottlingException is and event in the ResponseStream group of events. +func (s *ThrottlingException) eventResponseStream() {} + +// UnmarshalEvent unmarshals the EventStream Message into the ThrottlingException value. +// This method is only used internally within the SDK's EventStream handling. +func (s *ThrottlingException) UnmarshalEvent( + payloadUnmarshaler protocol.PayloadUnmarshaler, + msg eventstream.Message, +) error { + if err := payloadUnmarshaler.UnmarshalPayload( + bytes.NewReader(msg.Payload), s, + ); err != nil { + return err + } + return nil +} + +// MarshalEvent marshals the type into an stream event value. This method +// should only used internally within the SDK's EventStream handling. +func (s *ThrottlingException) MarshalEvent(pm protocol.PayloadMarshaler) (msg eventstream.Message, err error) { + msg.Headers.Set(eventstreamapi.MessageTypeHeader, eventstream.StringValue(eventstreamapi.ExceptionMessageType)) + var buf bytes.Buffer + if err = pm.MarshalPayload(&buf, s); err != nil { + return eventstream.Message{}, err + } + msg.Payload = buf.Bytes() + return msg, err +} + +func newErrorThrottlingException(v protocol.ResponseMetadata) error { + return &ThrottlingException{ + RespMetadata: v, + } +} + +// Code returns the exception type name. +func (s *ThrottlingException) Code() string { + return "ThrottlingException" +} + +// Message returns the exception's message. +func (s *ThrottlingException) Message() string { + if s.Message_ != nil { + return *s.Message_ + } + return "" +} + +// OrigErr always returns nil, satisfies awserr.Error interface. +func (s *ThrottlingException) OrigErr() error { + return nil +} + +func (s *ThrottlingException) 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 *ThrottlingException) StatusCode() int { + return s.RespMetadata.StatusCode +} + +// RequestID returns the service's response RequestID for request. +func (s *ThrottlingException) RequestID() string { + return s.RespMetadata.RequestID +} + +// Trace contains intermidate response for customer +type Trace struct { + _ struct{} `type:"structure" sensitive:"true"` + + // Trace Part which is emitted when agent trace could not be generated + // + // FailureTrace is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by Trace's + // String and GoString methods. + FailureTrace *FailureTrace `locationName:"failureTrace" type:"structure" sensitive:"true"` + + // Trace contains intermidate response during orchestration + // + // OrchestrationTrace is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by Trace's + // String and GoString methods. + OrchestrationTrace *OrchestrationTrace `locationName:"orchestrationTrace" type:"structure" sensitive:"true"` + + // Trace Part which contains information related to post processing step + // + // PostProcessingTrace is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by Trace's + // String and GoString methods. + PostProcessingTrace *PostProcessingTrace `locationName:"postProcessingTrace" type:"structure" sensitive:"true"` + + // Trace Part which contains information related to preprocessing step + // + // PreProcessingTrace is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by Trace's + // String and GoString methods. + PreProcessingTrace *PreProcessingTrace `locationName:"preProcessingTrace" type:"structure" 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 Trace) 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 Trace) GoString() string { + return s.String() +} + +// SetFailureTrace sets the FailureTrace field's value. +func (s *Trace) SetFailureTrace(v *FailureTrace) *Trace { + s.FailureTrace = v + return s +} + +// SetOrchestrationTrace sets the OrchestrationTrace field's value. +func (s *Trace) SetOrchestrationTrace(v *OrchestrationTrace) *Trace { + s.OrchestrationTrace = v + return s +} + +// SetPostProcessingTrace sets the PostProcessingTrace field's value. +func (s *Trace) SetPostProcessingTrace(v *PostProcessingTrace) *Trace { + s.PostProcessingTrace = v + return s +} + +// SetPreProcessingTrace sets the PreProcessingTrace field's value. +func (s *Trace) SetPreProcessingTrace(v *PreProcessingTrace) *Trace { + s.PreProcessingTrace = v + return s +} + +// Trace Part which contains intermidate response for customer +type TracePart struct { + _ struct{} `type:"structure" sensitive:"true"` + + // Identifier of the agent alias. + AgentAliasId *string `locationName:"agentAliasId" type:"string"` + + // Identifier of the agent. + AgentId *string `locationName:"agentId" type:"string"` + + // Identifier of the session. + SessionId *string `locationName:"sessionId" min:"2" type:"string"` + + // Trace contains intermidate response for customer + // + // Trace is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by TracePart's + // String and GoString methods. + Trace *Trace `locationName:"trace" type:"structure" 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 TracePart) 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 TracePart) GoString() string { + return s.String() +} + +// SetAgentAliasId sets the AgentAliasId field's value. +func (s *TracePart) SetAgentAliasId(v string) *TracePart { + s.AgentAliasId = &v + return s +} + +// SetAgentId sets the AgentId field's value. +func (s *TracePart) SetAgentId(v string) *TracePart { + s.AgentId = &v + return s +} + +// SetSessionId sets the SessionId field's value. +func (s *TracePart) SetSessionId(v string) *TracePart { + s.SessionId = &v + return s +} + +// SetTrace sets the Trace field's value. +func (s *TracePart) SetTrace(v *Trace) *TracePart { + s.Trace = v + return s +} + +// The TracePart is and event in the ResponseStream group of events. +func (s *TracePart) eventResponseStream() {} + +// UnmarshalEvent unmarshals the EventStream Message into the TracePart value. +// This method is only used internally within the SDK's EventStream handling. +func (s *TracePart) UnmarshalEvent( + payloadUnmarshaler protocol.PayloadUnmarshaler, + msg eventstream.Message, +) error { + if err := payloadUnmarshaler.UnmarshalPayload( + bytes.NewReader(msg.Payload), s, + ); err != nil { + return err + } + return nil +} + +// MarshalEvent marshals the type into an stream event value. This method +// should only used internally within the SDK's EventStream handling. +func (s *TracePart) MarshalEvent(pm protocol.PayloadMarshaler) (msg eventstream.Message, err error) { + msg.Headers.Set(eventstreamapi.MessageTypeHeader, eventstream.StringValue(eventstreamapi.EventMessageType)) + var buf bytes.Buffer + if err = pm.MarshalPayload(&buf, s); err != nil { + return eventstream.Message{}, err + } + msg.Payload = buf.Bytes() + return msg, err +} + +// This exception is thrown when the request's input validation fails +type ValidationException struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + + // Non Blank String + 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() +} + +// The ValidationException is and event in the ResponseStream group of events. +func (s *ValidationException) eventResponseStream() {} + +// UnmarshalEvent unmarshals the EventStream Message into the ValidationException value. +// This method is only used internally within the SDK's EventStream handling. +func (s *ValidationException) UnmarshalEvent( + payloadUnmarshaler protocol.PayloadUnmarshaler, + msg eventstream.Message, +) error { + if err := payloadUnmarshaler.UnmarshalPayload( + bytes.NewReader(msg.Payload), s, + ); err != nil { + return err + } + return nil +} + +// MarshalEvent marshals the type into an stream event value. This method +// should only used internally within the SDK's EventStream handling. +func (s *ValidationException) MarshalEvent(pm protocol.PayloadMarshaler) (msg eventstream.Message, err error) { + msg.Headers.Set(eventstreamapi.MessageTypeHeader, eventstream.StringValue(eventstreamapi.ExceptionMessageType)) + var buf bytes.Buffer + if err = pm.MarshalPayload(&buf, s); err != nil { + return eventstream.Message{}, err + } + msg.Payload = buf.Bytes() + return msg, err +} + +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 +} + +// indicates if agent uses default prompt or overriden prompt +const ( + // CreationModeDefault is a CreationMode enum value + CreationModeDefault = "DEFAULT" + + // CreationModeOverridden is a CreationMode enum value + CreationModeOverridden = "OVERRIDDEN" +) + +// CreationMode_Values returns all elements of the CreationMode enum +func CreationMode_Values() []string { + return []string{ + CreationModeDefault, + CreationModeOverridden, + } +} + +// types of invocations +const ( + // InvocationTypeActionGroup is a InvocationType enum value + InvocationTypeActionGroup = "ACTION_GROUP" + + // InvocationTypeKnowledgeBase is a InvocationType enum value + InvocationTypeKnowledgeBase = "KNOWLEDGE_BASE" + + // InvocationTypeFinish is a InvocationType enum value + InvocationTypeFinish = "FINISH" +) + +// InvocationType_Values returns all elements of the InvocationType enum +func InvocationType_Values() []string { + return []string{ + InvocationTypeActionGroup, + InvocationTypeKnowledgeBase, + InvocationTypeFinish, + } +} + +// types of prompts +const ( + // PromptTypePreProcessing is a PromptType enum value + PromptTypePreProcessing = "PRE_PROCESSING" + + // PromptTypeOrchestration is a PromptType enum value + PromptTypeOrchestration = "ORCHESTRATION" + + // PromptTypeKnowledgeBaseResponseGeneration is a PromptType enum value + PromptTypeKnowledgeBaseResponseGeneration = "KNOWLEDGE_BASE_RESPONSE_GENERATION" + + // PromptTypePostProcessing is a PromptType enum value + PromptTypePostProcessing = "POST_PROCESSING" +) + +// PromptType_Values returns all elements of the PromptType enum +func PromptType_Values() []string { + return []string{ + PromptTypePreProcessing, + PromptTypeOrchestration, + PromptTypeKnowledgeBaseResponseGeneration, + PromptTypePostProcessing, + } +} + +// The location type of a retrieval result. +const ( + // RetrievalResultLocationTypeS3 is a RetrievalResultLocationType enum value + RetrievalResultLocationTypeS3 = "S3" +) + +// RetrievalResultLocationType_Values returns all elements of the RetrievalResultLocationType enum +func RetrievalResultLocationType_Values() []string { + return []string{ + RetrievalResultLocationTypeS3, + } +} + +// The type of RetrieveAndGenerate. +const ( + // RetrieveAndGenerateTypeKnowledgeBase is a RetrieveAndGenerateType enum value + RetrieveAndGenerateTypeKnowledgeBase = "KNOWLEDGE_BASE" +) + +// RetrieveAndGenerateType_Values returns all elements of the RetrieveAndGenerateType enum +func RetrieveAndGenerateType_Values() []string { + return []string{ + RetrieveAndGenerateTypeKnowledgeBase, + } +} + +// Parsing error source +const ( + // SourceActionGroup is a Source enum value + SourceActionGroup = "ACTION_GROUP" + + // SourceKnowledgeBase is a Source enum value + SourceKnowledgeBase = "KNOWLEDGE_BASE" + + // SourceParser is a Source enum value + SourceParser = "PARSER" +) + +// Source_Values returns all elements of the Source enum +func Source_Values() []string { + return []string{ + SourceActionGroup, + SourceKnowledgeBase, + SourceParser, + } +} + +// types of observations +const ( + // TypeActionGroup is a Type enum value + TypeActionGroup = "ACTION_GROUP" + + // TypeKnowledgeBase is a Type enum value + TypeKnowledgeBase = "KNOWLEDGE_BASE" + + // TypeFinish is a Type enum value + TypeFinish = "FINISH" + + // TypeAskUser is a Type enum value + TypeAskUser = "ASK_USER" + + // TypeReprompt is a Type enum value + TypeReprompt = "REPROMPT" +) + +// Type_Values returns all elements of the Type enum +func Type_Values() []string { + return []string{ + TypeActionGroup, + TypeKnowledgeBase, + TypeFinish, + TypeAskUser, + TypeReprompt, + } +} diff --git a/service/bedrockagentruntime/bedrockagentruntimeiface/interface.go b/service/bedrockagentruntime/bedrockagentruntimeiface/interface.go new file mode 100644 index 00000000000..e224cf10c28 --- /dev/null +++ b/service/bedrockagentruntime/bedrockagentruntimeiface/interface.go @@ -0,0 +1,79 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +// Package bedrockagentruntimeiface provides an interface to enable mocking the Agents for Amazon Bedrock Runtime service client +// for testing your code. +// +// It is important to note that this interface will have breaking changes +// when the service model is updated and adds new API operations, paginators, +// and waiters. +package bedrockagentruntimeiface + +import ( + "github.com/aws/aws-sdk-go/aws" + "github.com/aws/aws-sdk-go/aws/request" + "github.com/aws/aws-sdk-go/service/bedrockagentruntime" +) + +// BedrockAgentRuntimeAPI provides an interface to enable mocking the +// bedrockagentruntime.BedrockAgentRuntime service client's API operation, +// paginators, and waiters. This make unit testing your code that calls out +// to the SDK's service client's calls easier. +// +// The best way to use this interface is so the SDK's service client's calls +// can be stubbed out for unit testing your code with the SDK without needing +// to inject custom request handlers into the SDK's request pipeline. +// +// // myFunc uses an SDK service client to make a request to +// // Agents for Amazon Bedrock Runtime. +// func myFunc(svc bedrockagentruntimeiface.BedrockAgentRuntimeAPI) bool { +// // Make svc.InvokeAgent request +// } +// +// func main() { +// sess := session.New() +// svc := bedrockagentruntime.New(sess) +// +// myFunc(svc) +// } +// +// In your _test.go file: +// +// // Define a mock struct to be used in your unit tests of myFunc. +// type mockBedrockAgentRuntimeClient struct { +// bedrockagentruntimeiface.BedrockAgentRuntimeAPI +// } +// func (m *mockBedrockAgentRuntimeClient) InvokeAgent(input *bedrockagentruntime.InvokeAgentInput) (*bedrockagentruntime.InvokeAgentOutput, error) { +// // mock response/functionality +// } +// +// func TestMyFunc(t *testing.T) { +// // Setup Test +// mockSvc := &mockBedrockAgentRuntimeClient{} +// +// myfunc(mockSvc) +// +// // Verify myFunc's functionality +// } +// +// It is important to note that this interface will have breaking changes +// when the service model is updated and adds new API operations, paginators, +// and waiters. Its suggested to use the pattern above for testing, or using +// tooling to generate mocks to satisfy the interfaces. +type BedrockAgentRuntimeAPI interface { + InvokeAgent(*bedrockagentruntime.InvokeAgentInput) (*bedrockagentruntime.InvokeAgentOutput, error) + InvokeAgentWithContext(aws.Context, *bedrockagentruntime.InvokeAgentInput, ...request.Option) (*bedrockagentruntime.InvokeAgentOutput, error) + InvokeAgentRequest(*bedrockagentruntime.InvokeAgentInput) (*request.Request, *bedrockagentruntime.InvokeAgentOutput) + + Retrieve(*bedrockagentruntime.RetrieveInput) (*bedrockagentruntime.RetrieveOutput, error) + RetrieveWithContext(aws.Context, *bedrockagentruntime.RetrieveInput, ...request.Option) (*bedrockagentruntime.RetrieveOutput, error) + RetrieveRequest(*bedrockagentruntime.RetrieveInput) (*request.Request, *bedrockagentruntime.RetrieveOutput) + + RetrievePages(*bedrockagentruntime.RetrieveInput, func(*bedrockagentruntime.RetrieveOutput, bool) bool) error + RetrievePagesWithContext(aws.Context, *bedrockagentruntime.RetrieveInput, func(*bedrockagentruntime.RetrieveOutput, bool) bool, ...request.Option) error + + RetrieveAndGenerate(*bedrockagentruntime.RetrieveAndGenerateInput) (*bedrockagentruntime.RetrieveAndGenerateOutput, error) + RetrieveAndGenerateWithContext(aws.Context, *bedrockagentruntime.RetrieveAndGenerateInput, ...request.Option) (*bedrockagentruntime.RetrieveAndGenerateOutput, error) + RetrieveAndGenerateRequest(*bedrockagentruntime.RetrieveAndGenerateInput) (*request.Request, *bedrockagentruntime.RetrieveAndGenerateOutput) +} + +var _ BedrockAgentRuntimeAPI = (*bedrockagentruntime.BedrockAgentRuntime)(nil) diff --git a/service/bedrockagentruntime/doc.go b/service/bedrockagentruntime/doc.go new file mode 100644 index 00000000000..8f32afec3dd --- /dev/null +++ b/service/bedrockagentruntime/doc.go @@ -0,0 +1,28 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +// Package bedrockagentruntime provides the client and types for making API +// requests to Agents for Amazon Bedrock Runtime. +// +// # Amazon Bedrock Agent +// +// See https://docs.aws.amazon.com/goto/WebAPI/bedrock-agent-runtime-2023-07-26 for more information on this service. +// +// See bedrockagentruntime package documentation for more information. +// https://docs.aws.amazon.com/sdk-for-go/api/service/bedrockagentruntime/ +// +// # Using the Client +// +// To contact Agents for Amazon Bedrock Runtime with the SDK use the New function to create +// a new service client. With that client you can make API requests to the service. +// These clients are safe to use concurrently. +// +// See the SDK's documentation for more information on how to use the SDK. +// https://docs.aws.amazon.com/sdk-for-go/api/ +// +// See aws.Config documentation for more information on configuring SDK clients. +// https://docs.aws.amazon.com/sdk-for-go/api/aws/#Config +// +// See the Agents for Amazon Bedrock Runtime client BedrockAgentRuntime for more +// information on creating client for this service. +// https://docs.aws.amazon.com/sdk-for-go/api/service/bedrockagentruntime/#New +package bedrockagentruntime diff --git a/service/bedrockagentruntime/errors.go b/service/bedrockagentruntime/errors.go new file mode 100644 index 00000000000..09fa2f26778 --- /dev/null +++ b/service/bedrockagentruntime/errors.go @@ -0,0 +1,80 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package bedrockagentruntime + +import ( + "github.com/aws/aws-sdk-go/private/protocol" +) + +const ( + + // ErrCodeAccessDeniedException for service response error code + // "AccessDeniedException". + // + // This exception is thrown when a request is denied per access permissions + ErrCodeAccessDeniedException = "AccessDeniedException" + + // ErrCodeBadGatewayException for service response error code + // "BadGatewayException". + // + // This exception is thrown when a request fails due to dependency like Lambda, + // Bedrock, STS resource + ErrCodeBadGatewayException = "BadGatewayException" + + // ErrCodeConflictException for service response error code + // "ConflictException". + // + // This exception is thrown when there is a conflict performing an operation + ErrCodeConflictException = "ConflictException" + + // ErrCodeDependencyFailedException for service response error code + // "DependencyFailedException". + // + // This exception is thrown when a request fails due to dependency like Lambda, + // Bedrock, STS resource due to a customer fault (i.e. bad configuration) + ErrCodeDependencyFailedException = "DependencyFailedException" + + // ErrCodeInternalServerException for service response error code + // "InternalServerException". + // + // This exception is thrown if there was an unexpected error during processing + // of request + ErrCodeInternalServerException = "InternalServerException" + + // ErrCodeResourceNotFoundException for service response error code + // "ResourceNotFoundException". + // + // This exception is thrown when a resource referenced by the operation does + // not exist + ErrCodeResourceNotFoundException = "ResourceNotFoundException" + + // ErrCodeServiceQuotaExceededException for service response error code + // "ServiceQuotaExceededException". + // + // This exception is thrown when a request is made beyond the service quota + ErrCodeServiceQuotaExceededException = "ServiceQuotaExceededException" + + // ErrCodeThrottlingException for service response error code + // "ThrottlingException". + // + // This exception is thrown when the number of requests exceeds the limit + ErrCodeThrottlingException = "ThrottlingException" + + // ErrCodeValidationException for service response error code + // "ValidationException". + // + // This exception is thrown when the request's input validation fails + ErrCodeValidationException = "ValidationException" +) + +var exceptionFromCode = map[string]func(protocol.ResponseMetadata) error{ + "AccessDeniedException": newErrorAccessDeniedException, + "BadGatewayException": newErrorBadGatewayException, + "ConflictException": newErrorConflictException, + "DependencyFailedException": newErrorDependencyFailedException, + "InternalServerException": newErrorInternalServerException, + "ResourceNotFoundException": newErrorResourceNotFoundException, + "ServiceQuotaExceededException": newErrorServiceQuotaExceededException, + "ThrottlingException": newErrorThrottlingException, + "ValidationException": newErrorValidationException, +} diff --git a/service/bedrockagentruntime/eventstream_test.go b/service/bedrockagentruntime/eventstream_test.go new file mode 100644 index 00000000000..b7e7235b21f --- /dev/null +++ b/service/bedrockagentruntime/eventstream_test.go @@ -0,0 +1,730 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +//go:build go1.16 +// +build go1.16 + +package bedrockagentruntime + +import ( + "bytes" + "context" + "io/ioutil" + "net/http" + "reflect" + "strings" + "sync" + "testing" + "time" + + "github.com/aws/aws-sdk-go/aws" + "github.com/aws/aws-sdk-go/aws/awserr" + "github.com/aws/aws-sdk-go/aws/corehandlers" + "github.com/aws/aws-sdk-go/aws/request" + "github.com/aws/aws-sdk-go/awstesting/unit" + "github.com/aws/aws-sdk-go/private/protocol" + "github.com/aws/aws-sdk-go/private/protocol/eventstream" + "github.com/aws/aws-sdk-go/private/protocol/eventstream/eventstreamapi" + "github.com/aws/aws-sdk-go/private/protocol/eventstream/eventstreamtest" + "github.com/aws/aws-sdk-go/private/protocol/restjson" +) + +var _ time.Time +var _ awserr.Error +var _ context.Context +var _ sync.WaitGroup +var _ strings.Reader + +func TestInvokeAgent_Read(t *testing.T) { + expectEvents, eventMsgs := mockInvokeAgentReadEvents() + sess, cleanupFn, err := eventstreamtest.SetupEventStreamSession(t, + eventstreamtest.ServeEventStream{ + T: t, + Events: eventMsgs, + }, + true, + ) + if err != nil { + t.Fatalf("expect no error, %v", err) + } + defer cleanupFn() + + svc := New(sess) + resp, err := svc.InvokeAgent(nil) + if err != nil { + t.Fatalf("expect no error got, %v", err) + } + defer resp.GetStream().Close() + + var i int + for event := range resp.GetStream().Events() { + if event == nil { + t.Errorf("%d, expect event, got nil", i) + } + if e, a := expectEvents[i], event; !reflect.DeepEqual(e, a) { + t.Errorf("%d, expect %T %v, got %T %v", i, e, e, a, a) + } + i++ + } + + if err := resp.GetStream().Err(); err != nil { + t.Errorf("expect no error, %v", err) + } +} + +func TestInvokeAgent_ReadClose(t *testing.T) { + _, eventMsgs := mockInvokeAgentReadEvents() + sess, cleanupFn, err := eventstreamtest.SetupEventStreamSession(t, + eventstreamtest.ServeEventStream{ + T: t, + Events: eventMsgs, + }, + true, + ) + if err != nil { + t.Fatalf("expect no error, %v", err) + } + defer cleanupFn() + + svc := New(sess) + resp, err := svc.InvokeAgent(nil) + if err != nil { + t.Fatalf("expect no error got, %v", err) + } + + // Assert calling Err before close does not close the stream. + resp.GetStream().Err() + select { + case _, ok := <-resp.GetStream().Events(): + if !ok { + t.Fatalf("expect stream not to be closed, but was") + } + default: + } + + resp.GetStream().Close() + <-resp.GetStream().Events() + + if err := resp.GetStream().Err(); err != nil { + t.Errorf("expect no error, %v", err) + } +} + +func TestInvokeAgent_ReadUnknownEvent(t *testing.T) { + expectEvents, eventMsgs := mockInvokeAgentReadEvents() + var eventOffset int + + unknownEvent := eventstream.Message{ + Headers: eventstream.Headers{ + eventstreamtest.EventMessageTypeHeader, + { + Name: eventstreamapi.EventTypeHeader, + Value: eventstream.StringValue("UnknownEventName"), + }, + }, + Payload: []byte("some unknown event"), + } + + eventMsgs = append(eventMsgs[:eventOffset], + append([]eventstream.Message{unknownEvent}, eventMsgs[eventOffset:]...)...) + + expectEvents = append(expectEvents[:eventOffset], + append([]ResponseStreamEvent{ + &ResponseStreamUnknownEvent{ + Type: "UnknownEventName", + Message: unknownEvent, + }, + }, + expectEvents[eventOffset:]...)...) + + sess, cleanupFn, err := eventstreamtest.SetupEventStreamSession(t, + eventstreamtest.ServeEventStream{ + T: t, + Events: eventMsgs, + }, + true, + ) + if err != nil { + t.Fatalf("expect no error, %v", err) + } + defer cleanupFn() + + svc := New(sess) + resp, err := svc.InvokeAgent(nil) + if err != nil { + t.Fatalf("expect no error got, %v", err) + } + defer resp.GetStream().Close() + + var i int + for event := range resp.GetStream().Events() { + if event == nil { + t.Errorf("%d, expect event, got nil", i) + } + if e, a := expectEvents[i], event; !reflect.DeepEqual(e, a) { + t.Errorf("%d, expect %T %v, got %T %v", i, e, e, a, a) + } + i++ + } + + if err := resp.GetStream().Err(); err != nil { + t.Errorf("expect no error, %v", err) + } +} + +func BenchmarkInvokeAgent_Read(b *testing.B) { + _, eventMsgs := mockInvokeAgentReadEvents() + var buf bytes.Buffer + encoder := eventstream.NewEncoder(&buf) + for _, msg := range eventMsgs { + if err := encoder.Encode(msg); err != nil { + b.Fatalf("failed to encode message, %v", err) + } + } + stream := &loopReader{source: bytes.NewReader(buf.Bytes())} + + sess := unit.Session + svc := New(sess, &aws.Config{ + Endpoint: aws.String("https://example.com"), + DisableParamValidation: aws.Bool(true), + }) + svc.Handlers.Send.Swap(corehandlers.SendHandler.Name, + request.NamedHandler{Name: "mockSend", + Fn: func(r *request.Request) { + r.HTTPResponse = &http.Response{ + Status: "200 OK", + StatusCode: 200, + Header: http.Header{}, + Body: ioutil.NopCloser(stream), + } + }, + }, + ) + + resp, err := svc.InvokeAgent(nil) + if err != nil { + b.Fatalf("failed to create request, %v", err) + } + defer resp.GetStream().Close() + b.ResetTimer() + + for i := 0; i < b.N; i++ { + if err = resp.GetStream().Err(); err != nil { + b.Fatalf("expect no error, got %v", err) + } + event := <-resp.GetStream().Events() + if event == nil { + b.Fatalf("expect event, got nil, %v, %d", resp.GetStream().Err(), i) + } + } +} + +func mockInvokeAgentReadEvents() ( + []ResponseStreamEvent, + []eventstream.Message, +) { + expectEvents := []ResponseStreamEvent{ + &PayloadPart{ + Attribution: &Attribution{ + Citations: []*Citation{ + { + GeneratedResponsePart: &GeneratedResponsePart{ + TextResponsePart: &TextResponsePart{ + Span: &Span{ + End: aws.Int64(123), + Start: aws.Int64(123), + }, + Text: aws.String("string value goes here"), + }, + }, + RetrievedReferences: []*RetrievedReference{ + { + Content: &RetrievalResultContent{ + Text: aws.String("string value goes here"), + }, + Location: &RetrievalResultLocation{ + S3Location: &RetrievalResultS3Location{ + Uri: aws.String("string value goes here"), + }, + Type: aws.String("string value goes here"), + }, + }, + { + Content: &RetrievalResultContent{ + Text: aws.String("string value goes here"), + }, + Location: &RetrievalResultLocation{ + S3Location: &RetrievalResultS3Location{ + Uri: aws.String("string value goes here"), + }, + Type: aws.String("string value goes here"), + }, + }, + { + Content: &RetrievalResultContent{ + Text: aws.String("string value goes here"), + }, + Location: &RetrievalResultLocation{ + S3Location: &RetrievalResultS3Location{ + Uri: aws.String("string value goes here"), + }, + Type: aws.String("string value goes here"), + }, + }, + }, + }, + { + GeneratedResponsePart: &GeneratedResponsePart{ + TextResponsePart: &TextResponsePart{ + Span: &Span{ + End: aws.Int64(123), + Start: aws.Int64(123), + }, + Text: aws.String("string value goes here"), + }, + }, + RetrievedReferences: []*RetrievedReference{ + { + Content: &RetrievalResultContent{ + Text: aws.String("string value goes here"), + }, + Location: &RetrievalResultLocation{ + S3Location: &RetrievalResultS3Location{ + Uri: aws.String("string value goes here"), + }, + Type: aws.String("string value goes here"), + }, + }, + { + Content: &RetrievalResultContent{ + Text: aws.String("string value goes here"), + }, + Location: &RetrievalResultLocation{ + S3Location: &RetrievalResultS3Location{ + Uri: aws.String("string value goes here"), + }, + Type: aws.String("string value goes here"), + }, + }, + { + Content: &RetrievalResultContent{ + Text: aws.String("string value goes here"), + }, + Location: &RetrievalResultLocation{ + S3Location: &RetrievalResultS3Location{ + Uri: aws.String("string value goes here"), + }, + Type: aws.String("string value goes here"), + }, + }, + }, + }, + { + GeneratedResponsePart: &GeneratedResponsePart{ + TextResponsePart: &TextResponsePart{ + Span: &Span{ + End: aws.Int64(123), + Start: aws.Int64(123), + }, + Text: aws.String("string value goes here"), + }, + }, + RetrievedReferences: []*RetrievedReference{ + { + Content: &RetrievalResultContent{ + Text: aws.String("string value goes here"), + }, + Location: &RetrievalResultLocation{ + S3Location: &RetrievalResultS3Location{ + Uri: aws.String("string value goes here"), + }, + Type: aws.String("string value goes here"), + }, + }, + { + Content: &RetrievalResultContent{ + Text: aws.String("string value goes here"), + }, + Location: &RetrievalResultLocation{ + S3Location: &RetrievalResultS3Location{ + Uri: aws.String("string value goes here"), + }, + Type: aws.String("string value goes here"), + }, + }, + { + Content: &RetrievalResultContent{ + Text: aws.String("string value goes here"), + }, + Location: &RetrievalResultLocation{ + S3Location: &RetrievalResultS3Location{ + Uri: aws.String("string value goes here"), + }, + Type: aws.String("string value goes here"), + }, + }, + }, + }, + }, + }, + Bytes: []byte("blob value goes here"), + }, + &TracePart{ + AgentAliasId: aws.String("string value goes here"), + AgentId: aws.String("string value goes here"), + SessionId: aws.String("string value goes here"), + Trace: &Trace{ + FailureTrace: &FailureTrace{ + FailureReason: aws.String("string value goes here"), + TraceId: aws.String("string value goes here"), + }, + OrchestrationTrace: &OrchestrationTrace{ + InvocationInput: &InvocationInput_{ + ActionGroupInvocationInput: &ActionGroupInvocationInput_{ + ActionGroupName: aws.String("string value goes here"), + ApiPath: aws.String("string value goes here"), + Parameters: []*Parameter{ + { + Name: aws.String("string value goes here"), + Type: aws.String("string value goes here"), + Value: aws.String("string value goes here"), + }, + { + Name: aws.String("string value goes here"), + Type: aws.String("string value goes here"), + Value: aws.String("string value goes here"), + }, + { + Name: aws.String("string value goes here"), + Type: aws.String("string value goes here"), + Value: aws.String("string value goes here"), + }, + }, + RequestBody: &RequestBody{ + Content: map[string][]*Parameter{ + "a": { + { + Name: aws.String("string value goes here"), + Type: aws.String("string value goes here"), + Value: aws.String("string value goes here"), + }, + { + Name: aws.String("string value goes here"), + Type: aws.String("string value goes here"), + Value: aws.String("string value goes here"), + }, + { + Name: aws.String("string value goes here"), + Type: aws.String("string value goes here"), + Value: aws.String("string value goes here"), + }, + }, + "b": { + { + Name: aws.String("string value goes here"), + Type: aws.String("string value goes here"), + Value: aws.String("string value goes here"), + }, + { + Name: aws.String("string value goes here"), + Type: aws.String("string value goes here"), + Value: aws.String("string value goes here"), + }, + { + Name: aws.String("string value goes here"), + Type: aws.String("string value goes here"), + Value: aws.String("string value goes here"), + }, + }, + "c": { + { + Name: aws.String("string value goes here"), + Type: aws.String("string value goes here"), + Value: aws.String("string value goes here"), + }, + { + Name: aws.String("string value goes here"), + Type: aws.String("string value goes here"), + Value: aws.String("string value goes here"), + }, + { + Name: aws.String("string value goes here"), + Type: aws.String("string value goes here"), + Value: aws.String("string value goes here"), + }, + }, + }, + }, + Verb: aws.String("string value goes here"), + }, + InvocationType: aws.String("string value goes here"), + KnowledgeBaseLookupInput: &KnowledgeBaseLookupInput_{ + KnowledgeBaseId: aws.String("string value goes here"), + Text: aws.String("string value goes here"), + }, + TraceId: aws.String("string value goes here"), + }, + ModelInvocationInput: &ModelInvocationInput_{ + InferenceConfiguration: &InferenceConfiguration{ + MaximumLength: aws.Int64(123), + StopSequences: []*string{ + aws.String("string value goes here"), + aws.String("string value goes here"), + aws.String("string value goes here"), + }, + Temperature: aws.Float64(123.4), + TopK: aws.Int64(123), + TopP: aws.Float64(123.4), + }, + OverrideLambda: aws.String("string value goes here"), + ParserMode: aws.String("string value goes here"), + PromptCreationMode: aws.String("string value goes here"), + Text: aws.String("string value goes here"), + TraceId: aws.String("string value goes here"), + Type: aws.String("string value goes here"), + }, + Observation: &Observation{ + ActionGroupInvocationOutput: &ActionGroupInvocationOutput_{ + Text: aws.String("string value goes here"), + }, + FinalResponse: &FinalResponse{ + Text: aws.String("string value goes here"), + }, + KnowledgeBaseLookupOutput: &KnowledgeBaseLookupOutput_{ + RetrievedReferences: []*RetrievedReference{ + { + Content: &RetrievalResultContent{ + Text: aws.String("string value goes here"), + }, + Location: &RetrievalResultLocation{ + S3Location: &RetrievalResultS3Location{ + Uri: aws.String("string value goes here"), + }, + Type: aws.String("string value goes here"), + }, + }, + { + Content: &RetrievalResultContent{ + Text: aws.String("string value goes here"), + }, + Location: &RetrievalResultLocation{ + S3Location: &RetrievalResultS3Location{ + Uri: aws.String("string value goes here"), + }, + Type: aws.String("string value goes here"), + }, + }, + { + Content: &RetrievalResultContent{ + Text: aws.String("string value goes here"), + }, + Location: &RetrievalResultLocation{ + S3Location: &RetrievalResultS3Location{ + Uri: aws.String("string value goes here"), + }, + Type: aws.String("string value goes here"), + }, + }, + }, + }, + RepromptResponse: &RepromptResponse{ + Source: aws.String("string value goes here"), + Text: aws.String("string value goes here"), + }, + TraceId: aws.String("string value goes here"), + Type: aws.String("string value goes here"), + }, + Rationale: &Rationale{ + Text: aws.String("string value goes here"), + TraceId: aws.String("string value goes here"), + }, + }, + PostProcessingTrace: &PostProcessingTrace{ + ModelInvocationInput: &ModelInvocationInput_{ + InferenceConfiguration: &InferenceConfiguration{ + MaximumLength: aws.Int64(123), + StopSequences: []*string{ + aws.String("string value goes here"), + aws.String("string value goes here"), + aws.String("string value goes here"), + }, + Temperature: aws.Float64(123.4), + TopK: aws.Int64(123), + TopP: aws.Float64(123.4), + }, + OverrideLambda: aws.String("string value goes here"), + ParserMode: aws.String("string value goes here"), + PromptCreationMode: aws.String("string value goes here"), + Text: aws.String("string value goes here"), + TraceId: aws.String("string value goes here"), + Type: aws.String("string value goes here"), + }, + ModelInvocationOutput: &PostProcessingModelInvocationOutput_{ + ParsedResponse: &PostProcessingParsedResponse{ + Text: aws.String("string value goes here"), + }, + TraceId: aws.String("string value goes here"), + }, + }, + PreProcessingTrace: &PreProcessingTrace{ + ModelInvocationInput: &ModelInvocationInput_{ + InferenceConfiguration: &InferenceConfiguration{ + MaximumLength: aws.Int64(123), + StopSequences: []*string{ + aws.String("string value goes here"), + aws.String("string value goes here"), + aws.String("string value goes here"), + }, + Temperature: aws.Float64(123.4), + TopK: aws.Int64(123), + TopP: aws.Float64(123.4), + }, + OverrideLambda: aws.String("string value goes here"), + ParserMode: aws.String("string value goes here"), + PromptCreationMode: aws.String("string value goes here"), + Text: aws.String("string value goes here"), + TraceId: aws.String("string value goes here"), + Type: aws.String("string value goes here"), + }, + ModelInvocationOutput: &PreProcessingModelInvocationOutput_{ + ParsedResponse: &PreProcessingParsedResponse{ + IsValid: aws.Bool(true), + Rationale: aws.String("string value goes here"), + }, + TraceId: aws.String("string value goes here"), + }, + }, + }, + }, + } + + var marshalers request.HandlerList + marshalers.PushBackNamed(restjson.BuildHandler) + payloadMarshaler := protocol.HandlerPayloadMarshal{ + Marshalers: marshalers, + } + _ = payloadMarshaler + + eventMsgs := []eventstream.Message{ + { + Headers: eventstream.Headers{ + eventstreamtest.EventMessageTypeHeader, + { + Name: eventstreamapi.EventTypeHeader, + Value: eventstream.StringValue("chunk"), + }, + }, + Payload: eventstreamtest.MarshalEventPayload(payloadMarshaler, expectEvents[0]), + }, + { + Headers: eventstream.Headers{ + eventstreamtest.EventMessageTypeHeader, + { + Name: eventstreamapi.EventTypeHeader, + Value: eventstream.StringValue("trace"), + }, + }, + Payload: eventstreamtest.MarshalEventPayload(payloadMarshaler, expectEvents[1]), + }, + } + + return expectEvents, eventMsgs +} +func TestInvokeAgent_ReadException(t *testing.T) { + expectEvents := []ResponseStreamEvent{ + &AccessDeniedException{ + RespMetadata: protocol.ResponseMetadata{ + StatusCode: 200, + }, + Message_: aws.String("string value goes here"), + }, + } + + var marshalers request.HandlerList + marshalers.PushBackNamed(restjson.BuildHandler) + payloadMarshaler := protocol.HandlerPayloadMarshal{ + Marshalers: marshalers, + } + + eventMsgs := []eventstream.Message{ + { + Headers: eventstream.Headers{ + eventstreamtest.EventExceptionTypeHeader, + { + Name: eventstreamapi.ExceptionTypeHeader, + Value: eventstream.StringValue("accessDeniedException"), + }, + }, + Payload: eventstreamtest.MarshalEventPayload(payloadMarshaler, expectEvents[0]), + }, + } + + sess, cleanupFn, err := eventstreamtest.SetupEventStreamSession(t, + eventstreamtest.ServeEventStream{ + T: t, + Events: eventMsgs, + }, + true, + ) + if err != nil { + t.Fatalf("expect no error, %v", err) + } + defer cleanupFn() + + svc := New(sess) + resp, err := svc.InvokeAgent(nil) + if err != nil { + t.Fatalf("expect no error got, %v", err) + } + + defer resp.GetStream().Close() + + <-resp.GetStream().Events() + + err = resp.GetStream().Err() + if err == nil { + t.Fatalf("expect err, got none") + } + + expectErr := &AccessDeniedException{ + RespMetadata: protocol.ResponseMetadata{ + StatusCode: 200, + }, + Message_: aws.String("string value goes here"), + } + aerr, ok := err.(awserr.Error) + if !ok { + t.Errorf("expect exception, got %T, %#v", err, err) + } + if e, a := expectErr.Code(), aerr.Code(); e != a { + t.Errorf("expect %v, got %v", e, a) + } + if e, a := expectErr.Message(), aerr.Message(); e != a { + t.Errorf("expect %v, got %v", e, a) + } + + if e, a := expectErr, aerr; !reflect.DeepEqual(e, a) { + t.Errorf("expect error %+#v, got %+#v", e, a) + } +} + +var _ awserr.Error = (*AccessDeniedException)(nil) +var _ awserr.Error = (*BadGatewayException)(nil) +var _ awserr.Error = (*ConflictException)(nil) +var _ awserr.Error = (*DependencyFailedException)(nil) +var _ awserr.Error = (*InternalServerException)(nil) +var _ awserr.Error = (*ResourceNotFoundException)(nil) +var _ awserr.Error = (*ServiceQuotaExceededException)(nil) +var _ awserr.Error = (*ThrottlingException)(nil) +var _ awserr.Error = (*ValidationException)(nil) + +type loopReader struct { + source *bytes.Reader +} + +func (c *loopReader) Read(p []byte) (int, error) { + if c.source.Len() == 0 { + c.source.Seek(0, 0) + } + + return c.source.Read(p) +} diff --git a/service/bedrockagentruntime/service.go b/service/bedrockagentruntime/service.go new file mode 100644 index 00000000000..f5f2378f8ac --- /dev/null +++ b/service/bedrockagentruntime/service.go @@ -0,0 +1,109 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package bedrockagentruntime + +import ( + "github.com/aws/aws-sdk-go/aws" + "github.com/aws/aws-sdk-go/aws/client" + "github.com/aws/aws-sdk-go/aws/client/metadata" + "github.com/aws/aws-sdk-go/aws/request" + "github.com/aws/aws-sdk-go/aws/signer/v4" + "github.com/aws/aws-sdk-go/private/protocol" + "github.com/aws/aws-sdk-go/private/protocol/restjson" +) + +// BedrockAgentRuntime provides the API operation methods for making requests to +// Agents for Amazon Bedrock Runtime. See this package's package overview docs +// for details on the service. +// +// BedrockAgentRuntime methods are safe to use concurrently. It is not safe to +// modify mutate any of the struct's properties though. +type BedrockAgentRuntime struct { + *client.Client +} + +// Used for custom client initialization logic +var initClient func(*client.Client) + +// Used for custom request initialization logic +var initRequest func(*request.Request) + +// Service information constants +const ( + ServiceName = "Bedrock Agent Runtime" // Name of service. + EndpointsID = "bedrock-agent-runtime" // ID to lookup a service endpoint with. + ServiceID = "Bedrock Agent Runtime" // ServiceID is a unique identifier of a specific service. +) + +// New creates a new instance of the BedrockAgentRuntime client with a session. +// If additional configuration is needed for the client instance use the optional +// aws.Config parameter to add your extra config. +// +// Example: +// +// mySession := session.Must(session.NewSession()) +// +// // Create a BedrockAgentRuntime client from just a session. +// svc := bedrockagentruntime.New(mySession) +// +// // Create a BedrockAgentRuntime client with additional configuration +// svc := bedrockagentruntime.New(mySession, aws.NewConfig().WithRegion("us-west-2")) +func New(p client.ConfigProvider, cfgs ...*aws.Config) *BedrockAgentRuntime { + c := p.ClientConfig(EndpointsID, cfgs...) + if c.SigningNameDerived || len(c.SigningName) == 0 { + c.SigningName = "bedrock" + } + return newClient(*c.Config, c.Handlers, c.PartitionID, c.Endpoint, c.SigningRegion, c.SigningName, c.ResolvedRegion) +} + +// newClient creates, initializes and returns a new service client instance. +func newClient(cfg aws.Config, handlers request.Handlers, partitionID, endpoint, signingRegion, signingName, resolvedRegion string) *BedrockAgentRuntime { + svc := &BedrockAgentRuntime{ + Client: client.New( + cfg, + metadata.ClientInfo{ + ServiceName: ServiceName, + ServiceID: ServiceID, + SigningName: signingName, + SigningRegion: signingRegion, + PartitionID: partitionID, + Endpoint: endpoint, + APIVersion: "2023-07-26", + ResolvedRegion: resolvedRegion, + }, + handlers, + ), + } + + // Handlers + svc.Handlers.Sign.PushBackNamed(v4.SignRequestHandler) + svc.Handlers.Build.PushBackNamed(restjson.BuildHandler) + svc.Handlers.Unmarshal.PushBackNamed(restjson.UnmarshalHandler) + svc.Handlers.UnmarshalMeta.PushBackNamed(restjson.UnmarshalMetaHandler) + svc.Handlers.UnmarshalError.PushBackNamed( + protocol.NewUnmarshalErrorHandler(restjson.NewUnmarshalTypedError(exceptionFromCode)).NamedHandler(), + ) + + svc.Handlers.BuildStream.PushBackNamed(restjson.BuildHandler) + svc.Handlers.UnmarshalStream.PushBackNamed(restjson.UnmarshalHandler) + + // Run custom client initialization if present + if initClient != nil { + initClient(svc.Client) + } + + return svc +} + +// newRequest creates a new request for a BedrockAgentRuntime operation and runs any +// custom request initialization. +func (c *BedrockAgentRuntime) newRequest(op *request.Operation, params, data interface{}) *request.Request { + req := c.NewRequest(op, params, data) + + // Run custom request initialization if present + if initRequest != nil { + initRequest(req) + } + + return req +} diff --git a/service/connect/api.go b/service/connect/api.go index 8b5d6ad46ab..9a8d6e2e643 100644 --- a/service/connect/api.go +++ b/service/connect/api.go @@ -106,6 +106,100 @@ func (c *Connect) ActivateEvaluationFormWithContext(ctx aws.Context, input *Acti return out, req.Send() } +const opAssociateAnalyticsDataSet = "AssociateAnalyticsDataSet" + +// AssociateAnalyticsDataSetRequest generates a "aws/request.Request" representing the +// client's request for the AssociateAnalyticsDataSet 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 AssociateAnalyticsDataSet for more information on using the AssociateAnalyticsDataSet +// 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 AssociateAnalyticsDataSetRequest method. +// req, resp := client.AssociateAnalyticsDataSetRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/connect-2017-08-08/AssociateAnalyticsDataSet +func (c *Connect) AssociateAnalyticsDataSetRequest(input *AssociateAnalyticsDataSetInput) (req *request.Request, output *AssociateAnalyticsDataSetOutput) { + op := &request.Operation{ + Name: opAssociateAnalyticsDataSet, + HTTPMethod: "PUT", + HTTPPath: "/analytics-data/instance/{InstanceId}/association", + } + + if input == nil { + input = &AssociateAnalyticsDataSetInput{} + } + + output = &AssociateAnalyticsDataSetOutput{} + req = c.newRequest(op, input, output) + return +} + +// AssociateAnalyticsDataSet API operation for Amazon Connect Service. +// +// This API is in preview release for Amazon Connect and is subject to change. +// +// Associates the specified dataset for a Amazon Connect instance with the target +// account. You can associate only one dataset in a single call. +// +// 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 Connect Service's +// API operation AssociateAnalyticsDataSet for usage and error information. +// +// Returned Error Types: +// +// - InvalidRequestException +// The request is not valid. +// +// - InvalidParameterException +// One or more of the specified parameters are not valid. +// +// - ResourceNotFoundException +// The specified resource was not found. +// +// - ThrottlingException +// The throttling limit has been exceeded. +// +// - InternalServiceException +// Request processing failed because of an error or failure with the service. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/connect-2017-08-08/AssociateAnalyticsDataSet +func (c *Connect) AssociateAnalyticsDataSet(input *AssociateAnalyticsDataSetInput) (*AssociateAnalyticsDataSetOutput, error) { + req, out := c.AssociateAnalyticsDataSetRequest(input) + return out, req.Send() +} + +// AssociateAnalyticsDataSetWithContext is the same as AssociateAnalyticsDataSet with the addition of +// the ability to pass a context and additional request options. +// +// See AssociateAnalyticsDataSet 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 *Connect) AssociateAnalyticsDataSetWithContext(ctx aws.Context, input *AssociateAnalyticsDataSetInput, opts ...request.Option) (*AssociateAnalyticsDataSetOutput, error) { + req, out := c.AssociateAnalyticsDataSetRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opAssociateApprovedOrigin = "AssociateApprovedOrigin" // AssociateApprovedOriginRequest generates a "aws/request.Request" representing the @@ -401,6 +495,101 @@ func (c *Connect) AssociateDefaultVocabularyWithContext(ctx aws.Context, input * return out, req.Send() } +const opAssociateFlow = "AssociateFlow" + +// AssociateFlowRequest generates a "aws/request.Request" representing the +// client's request for the AssociateFlow 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 AssociateFlow for more information on using the AssociateFlow +// 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 AssociateFlowRequest method. +// req, resp := client.AssociateFlowRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/connect-2017-08-08/AssociateFlow +func (c *Connect) AssociateFlowRequest(input *AssociateFlowInput) (req *request.Request, output *AssociateFlowOutput) { + op := &request.Operation{ + Name: opAssociateFlow, + HTTPMethod: "PUT", + HTTPPath: "/flow-associations/{InstanceId}", + } + + if input == nil { + input = &AssociateFlowInput{} + } + + output = &AssociateFlowOutput{} + req = c.newRequest(op, input, output) + req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) + return +} + +// AssociateFlow API operation for Amazon Connect Service. +// +// Associates a connect resource to a flow. +// +// 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 Connect Service's +// API operation AssociateFlow for usage and error information. +// +// Returned Error Types: +// +// - AccessDeniedException +// You do not have sufficient permissions to perform this action. +// +// - ResourceNotFoundException +// The specified resource was not found. +// +// - InternalServiceException +// Request processing failed because of an error or failure with the service. +// +// - InvalidRequestException +// The request is not valid. +// +// - InvalidParameterException +// One or more of the specified parameters are not valid. +// +// - ThrottlingException +// The throttling limit has been exceeded. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/connect-2017-08-08/AssociateFlow +func (c *Connect) AssociateFlow(input *AssociateFlowInput) (*AssociateFlowOutput, error) { + req, out := c.AssociateFlowRequest(input) + return out, req.Send() +} + +// AssociateFlowWithContext is the same as AssociateFlow with the addition of +// the ability to pass a context and additional request options. +// +// See AssociateFlow 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 *Connect) AssociateFlowWithContext(ctx aws.Context, input *AssociateFlowInput, opts ...request.Option) (*AssociateFlowOutput, error) { + req, out := c.AssociateFlowRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opAssociateInstanceStorageConfig = "AssociateInstanceStorageConfig" // AssociateInstanceStorageConfigRequest generates a "aws/request.Request" representing the @@ -1190,6 +1379,194 @@ func (c *Connect) AssociateTrafficDistributionGroupUserWithContext(ctx aws.Conte return out, req.Send() } +const opBatchAssociateAnalyticsDataSet = "BatchAssociateAnalyticsDataSet" + +// BatchAssociateAnalyticsDataSetRequest generates a "aws/request.Request" representing the +// client's request for the BatchAssociateAnalyticsDataSet 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 BatchAssociateAnalyticsDataSet for more information on using the BatchAssociateAnalyticsDataSet +// 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 BatchAssociateAnalyticsDataSetRequest method. +// req, resp := client.BatchAssociateAnalyticsDataSetRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/connect-2017-08-08/BatchAssociateAnalyticsDataSet +func (c *Connect) BatchAssociateAnalyticsDataSetRequest(input *BatchAssociateAnalyticsDataSetInput) (req *request.Request, output *BatchAssociateAnalyticsDataSetOutput) { + op := &request.Operation{ + Name: opBatchAssociateAnalyticsDataSet, + HTTPMethod: "PUT", + HTTPPath: "/analytics-data/instance/{InstanceId}/associations", + } + + if input == nil { + input = &BatchAssociateAnalyticsDataSetInput{} + } + + output = &BatchAssociateAnalyticsDataSetOutput{} + req = c.newRequest(op, input, output) + return +} + +// BatchAssociateAnalyticsDataSet API operation for Amazon Connect Service. +// +// This API is in preview release for Amazon Connect and is subject to change. +// +// Associates a list of analytics datasets for a given Amazon Connect instance +// to a target account. You can associate multiple datasets in a single call. +// +// 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 Connect Service's +// API operation BatchAssociateAnalyticsDataSet for usage and error information. +// +// Returned Error Types: +// +// - InvalidRequestException +// The request is not valid. +// +// - InvalidParameterException +// One or more of the specified parameters are not valid. +// +// - ResourceNotFoundException +// The specified resource was not found. +// +// - ThrottlingException +// The throttling limit has been exceeded. +// +// - InternalServiceException +// Request processing failed because of an error or failure with the service. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/connect-2017-08-08/BatchAssociateAnalyticsDataSet +func (c *Connect) BatchAssociateAnalyticsDataSet(input *BatchAssociateAnalyticsDataSetInput) (*BatchAssociateAnalyticsDataSetOutput, error) { + req, out := c.BatchAssociateAnalyticsDataSetRequest(input) + return out, req.Send() +} + +// BatchAssociateAnalyticsDataSetWithContext is the same as BatchAssociateAnalyticsDataSet with the addition of +// the ability to pass a context and additional request options. +// +// See BatchAssociateAnalyticsDataSet 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 *Connect) BatchAssociateAnalyticsDataSetWithContext(ctx aws.Context, input *BatchAssociateAnalyticsDataSetInput, opts ...request.Option) (*BatchAssociateAnalyticsDataSetOutput, error) { + req, out := c.BatchAssociateAnalyticsDataSetRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opBatchDisassociateAnalyticsDataSet = "BatchDisassociateAnalyticsDataSet" + +// BatchDisassociateAnalyticsDataSetRequest generates a "aws/request.Request" representing the +// client's request for the BatchDisassociateAnalyticsDataSet 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 BatchDisassociateAnalyticsDataSet for more information on using the BatchDisassociateAnalyticsDataSet +// 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 BatchDisassociateAnalyticsDataSetRequest method. +// req, resp := client.BatchDisassociateAnalyticsDataSetRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/connect-2017-08-08/BatchDisassociateAnalyticsDataSet +func (c *Connect) BatchDisassociateAnalyticsDataSetRequest(input *BatchDisassociateAnalyticsDataSetInput) (req *request.Request, output *BatchDisassociateAnalyticsDataSetOutput) { + op := &request.Operation{ + Name: opBatchDisassociateAnalyticsDataSet, + HTTPMethod: "POST", + HTTPPath: "/analytics-data/instance/{InstanceId}/associations", + } + + if input == nil { + input = &BatchDisassociateAnalyticsDataSetInput{} + } + + output = &BatchDisassociateAnalyticsDataSetOutput{} + req = c.newRequest(op, input, output) + return +} + +// BatchDisassociateAnalyticsDataSet API operation for Amazon Connect Service. +// +// This API is in preview release for Amazon Connect and is subject to change. +// +// Removes a list of analytics datasets associated with a given Amazon Connect +// instance. You can disassociate multiple datasets in a single call. +// +// 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 Connect Service's +// API operation BatchDisassociateAnalyticsDataSet for usage and error information. +// +// Returned Error Types: +// +// - InvalidRequestException +// The request is not valid. +// +// - InvalidParameterException +// One or more of the specified parameters are not valid. +// +// - ResourceNotFoundException +// The specified resource was not found. +// +// - ThrottlingException +// The throttling limit has been exceeded. +// +// - InternalServiceException +// Request processing failed because of an error or failure with the service. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/connect-2017-08-08/BatchDisassociateAnalyticsDataSet +func (c *Connect) BatchDisassociateAnalyticsDataSet(input *BatchDisassociateAnalyticsDataSetInput) (*BatchDisassociateAnalyticsDataSetOutput, error) { + req, out := c.BatchDisassociateAnalyticsDataSetRequest(input) + return out, req.Send() +} + +// BatchDisassociateAnalyticsDataSetWithContext is the same as BatchDisassociateAnalyticsDataSet with the addition of +// the ability to pass a context and additional request options. +// +// See BatchDisassociateAnalyticsDataSet 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 *Connect) BatchDisassociateAnalyticsDataSetWithContext(ctx aws.Context, input *BatchDisassociateAnalyticsDataSetInput, opts ...request.Option) (*BatchDisassociateAnalyticsDataSetOutput, error) { + req, out := c.BatchDisassociateAnalyticsDataSetRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opBatchGetFlowAssociation = "BatchGetFlowAssociation" // BatchGetFlowAssociationRequest generates a "aws/request.Request" representing the @@ -3349,8 +3726,8 @@ func (c *Connect) CreateUserRequest(input *CreateUserInput) (req *request.Reques // if you are using SAML for identity management. FirstName and LastName are // required if you are using Amazon Connect or SAML for identity management. // -// For information about how to create user accounts using the Amazon Connect -// console, see Add Users (https://docs.aws.amazon.com/connect/latest/adminguide/user-management.html) +// For information about how to create users using the Amazon Connect admin +// website, see Add Users (https://docs.aws.amazon.com/connect/latest/adminguide/user-management.html) // in the Amazon Connect Administrator Guide. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions @@ -7608,8 +7985,8 @@ func (c *Connect) DescribeUserRequest(input *DescribeUserInput) (req *request.Re // DescribeUser API operation for Amazon Connect Service. // -// Describes the specified user account. You can find the instance ID in the -// Amazon Connect console (https://docs.aws.amazon.com/connect/latest/adminguide/find-instance-arn.html) +// Describes the specified user. You can find the instance ID in the Amazon +// Connect console (https://docs.aws.amazon.com/connect/latest/adminguide/find-instance-arn.html) // (it’s the final part of the ARN). The console does not display the user // IDs. Instead, list the users and note the IDs provided in the output. // @@ -8036,6 +8413,100 @@ func (c *Connect) DescribeVocabularyWithContext(ctx aws.Context, input *Describe return out, req.Send() } +const opDisassociateAnalyticsDataSet = "DisassociateAnalyticsDataSet" + +// DisassociateAnalyticsDataSetRequest generates a "aws/request.Request" representing the +// client's request for the DisassociateAnalyticsDataSet 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 DisassociateAnalyticsDataSet for more information on using the DisassociateAnalyticsDataSet +// 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 DisassociateAnalyticsDataSetRequest method. +// req, resp := client.DisassociateAnalyticsDataSetRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/connect-2017-08-08/DisassociateAnalyticsDataSet +func (c *Connect) DisassociateAnalyticsDataSetRequest(input *DisassociateAnalyticsDataSetInput) (req *request.Request, output *DisassociateAnalyticsDataSetOutput) { + op := &request.Operation{ + Name: opDisassociateAnalyticsDataSet, + HTTPMethod: "POST", + HTTPPath: "/analytics-data/instance/{InstanceId}/association", + } + + if input == nil { + input = &DisassociateAnalyticsDataSetInput{} + } + + output = &DisassociateAnalyticsDataSetOutput{} + req = c.newRequest(op, input, output) + req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) + return +} + +// DisassociateAnalyticsDataSet API operation for Amazon Connect Service. +// +// This API is in preview release for Amazon Connect and is subject to change. +// +// Removes the dataset ID associated with a given Amazon Connect instance. +// +// 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 Connect Service's +// API operation DisassociateAnalyticsDataSet for usage and error information. +// +// Returned Error Types: +// +// - InvalidRequestException +// The request is not valid. +// +// - InvalidParameterException +// One or more of the specified parameters are not valid. +// +// - ResourceNotFoundException +// The specified resource was not found. +// +// - ThrottlingException +// The throttling limit has been exceeded. +// +// - InternalServiceException +// Request processing failed because of an error or failure with the service. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/connect-2017-08-08/DisassociateAnalyticsDataSet +func (c *Connect) DisassociateAnalyticsDataSet(input *DisassociateAnalyticsDataSetInput) (*DisassociateAnalyticsDataSetOutput, error) { + req, out := c.DisassociateAnalyticsDataSetRequest(input) + return out, req.Send() +} + +// DisassociateAnalyticsDataSetWithContext is the same as DisassociateAnalyticsDataSet with the addition of +// the ability to pass a context and additional request options. +// +// See DisassociateAnalyticsDataSet 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 *Connect) DisassociateAnalyticsDataSetWithContext(ctx aws.Context, input *DisassociateAnalyticsDataSetInput, opts ...request.Option) (*DisassociateAnalyticsDataSetOutput, error) { + req, out := c.DisassociateAnalyticsDataSetRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opDisassociateApprovedOrigin = "DisassociateApprovedOrigin" // DisassociateApprovedOriginRequest generates a "aws/request.Request" representing the @@ -8222,6 +8693,101 @@ func (c *Connect) DisassociateBotWithContext(ctx aws.Context, input *Disassociat return out, req.Send() } +const opDisassociateFlow = "DisassociateFlow" + +// DisassociateFlowRequest generates a "aws/request.Request" representing the +// client's request for the DisassociateFlow 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 DisassociateFlow for more information on using the DisassociateFlow +// 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 DisassociateFlowRequest method. +// req, resp := client.DisassociateFlowRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/connect-2017-08-08/DisassociateFlow +func (c *Connect) DisassociateFlowRequest(input *DisassociateFlowInput) (req *request.Request, output *DisassociateFlowOutput) { + op := &request.Operation{ + Name: opDisassociateFlow, + HTTPMethod: "DELETE", + HTTPPath: "/flow-associations/{InstanceId}/{ResourceId}/{ResourceType}", + } + + if input == nil { + input = &DisassociateFlowInput{} + } + + output = &DisassociateFlowOutput{} + req = c.newRequest(op, input, output) + req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) + return +} + +// DisassociateFlow API operation for Amazon Connect Service. +// +// Disassociates a connect resource from a flow. +// +// 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 Connect Service's +// API operation DisassociateFlow for usage and error information. +// +// Returned Error Types: +// +// - AccessDeniedException +// You do not have sufficient permissions to perform this action. +// +// - ResourceNotFoundException +// The specified resource was not found. +// +// - InternalServiceException +// Request processing failed because of an error or failure with the service. +// +// - InvalidRequestException +// The request is not valid. +// +// - InvalidParameterException +// One or more of the specified parameters are not valid. +// +// - ThrottlingException +// The throttling limit has been exceeded. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/connect-2017-08-08/DisassociateFlow +func (c *Connect) DisassociateFlow(input *DisassociateFlowInput) (*DisassociateFlowOutput, error) { + req, out := c.DisassociateFlowRequest(input) + return out, req.Send() +} + +// DisassociateFlowWithContext is the same as DisassociateFlow with the addition of +// the ability to pass a context and additional request options. +// +// See DisassociateFlow 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 *Connect) DisassociateFlowWithContext(ctx aws.Context, input *DisassociateFlowInput, opts ...request.Option) (*DisassociateFlowOutput, error) { + req, out := c.DisassociateFlowRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opDisassociateInstanceStorageConfig = "DisassociateInstanceStorageConfig" // DisassociateInstanceStorageConfigRequest generates a "aws/request.Request" representing the @@ -9572,6 +10138,100 @@ func (c *Connect) GetFederationTokenWithContext(ctx aws.Context, input *GetFeder return out, req.Send() } +const opGetFlowAssociation = "GetFlowAssociation" + +// GetFlowAssociationRequest generates a "aws/request.Request" representing the +// client's request for the GetFlowAssociation 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 GetFlowAssociation for more information on using the GetFlowAssociation +// 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 GetFlowAssociationRequest method. +// req, resp := client.GetFlowAssociationRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/connect-2017-08-08/GetFlowAssociation +func (c *Connect) GetFlowAssociationRequest(input *GetFlowAssociationInput) (req *request.Request, output *GetFlowAssociationOutput) { + op := &request.Operation{ + Name: opGetFlowAssociation, + HTTPMethod: "GET", + HTTPPath: "/flow-associations/{InstanceId}/{ResourceId}/{ResourceType}", + } + + if input == nil { + input = &GetFlowAssociationInput{} + } + + output = &GetFlowAssociationOutput{} + req = c.newRequest(op, input, output) + return +} + +// GetFlowAssociation API operation for Amazon Connect Service. +// +// Retrieves the flow associated for a given 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 Connect Service's +// API operation GetFlowAssociation for usage and error information. +// +// Returned Error Types: +// +// - AccessDeniedException +// You do not have sufficient permissions to perform this action. +// +// - ResourceNotFoundException +// The specified resource was not found. +// +// - InternalServiceException +// Request processing failed because of an error or failure with the service. +// +// - InvalidRequestException +// The request is not valid. +// +// - InvalidParameterException +// One or more of the specified parameters are not valid. +// +// - ThrottlingException +// The throttling limit has been exceeded. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/connect-2017-08-08/GetFlowAssociation +func (c *Connect) GetFlowAssociation(input *GetFlowAssociationInput) (*GetFlowAssociationOutput, error) { + req, out := c.GetFlowAssociationRequest(input) + return out, req.Send() +} + +// GetFlowAssociationWithContext is the same as GetFlowAssociation with the addition of +// the ability to pass a context and additional request options. +// +// See GetFlowAssociation 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 *Connect) GetFlowAssociationWithContext(ctx aws.Context, input *GetFlowAssociationInput, opts ...request.Option) (*GetFlowAssociationOutput, error) { + req, out := c.GetFlowAssociationRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opGetMetricData = "GetMetricData" // GetMetricDataRequest generates a "aws/request.Request" representing the @@ -10166,6 +10826,102 @@ func (c *Connect) GetTrafficDistributionWithContext(ctx aws.Context, input *GetT return out, req.Send() } +const opImportPhoneNumber = "ImportPhoneNumber" + +// ImportPhoneNumberRequest generates a "aws/request.Request" representing the +// client's request for the ImportPhoneNumber 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 ImportPhoneNumber for more information on using the ImportPhoneNumber +// 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 ImportPhoneNumberRequest method. +// req, resp := client.ImportPhoneNumberRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/connect-2017-08-08/ImportPhoneNumber +func (c *Connect) ImportPhoneNumberRequest(input *ImportPhoneNumberInput) (req *request.Request, output *ImportPhoneNumberOutput) { + op := &request.Operation{ + Name: opImportPhoneNumber, + HTTPMethod: "POST", + HTTPPath: "/phone-number/import", + } + + if input == nil { + input = &ImportPhoneNumberInput{} + } + + output = &ImportPhoneNumberOutput{} + req = c.newRequest(op, input, output) + return +} + +// ImportPhoneNumber API operation for Amazon Connect Service. +// +// Imports a claimed phone number from an external service, such as Amazon Pinpoint, +// into an Amazon Connect instance. You can call this API only in the same Amazon +// Web Services Region where the Amazon Connect instance was created. +// +// 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 Connect Service's +// API operation ImportPhoneNumber for usage and error information. +// +// Returned Error Types: +// +// - InvalidParameterException +// One or more of the specified parameters are not valid. +// +// - ResourceNotFoundException +// The specified resource was not found. +// +// - ThrottlingException +// The throttling limit has been exceeded. +// +// - InternalServiceException +// Request processing failed because of an error or failure with the service. +// +// - IdempotencyException +// An entity with the same name already exists. +// +// - AccessDeniedException +// You do not have sufficient permissions to perform this action. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/connect-2017-08-08/ImportPhoneNumber +func (c *Connect) ImportPhoneNumber(input *ImportPhoneNumberInput) (*ImportPhoneNumberOutput, error) { + req, out := c.ImportPhoneNumberRequest(input) + return out, req.Send() +} + +// ImportPhoneNumberWithContext is the same as ImportPhoneNumber with the addition of +// the ability to pass a context and additional request options. +// +// See ImportPhoneNumber 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 *Connect) ImportPhoneNumberWithContext(ctx aws.Context, input *ImportPhoneNumberInput, opts ...request.Option) (*ImportPhoneNumberOutput, error) { + req, out := c.ImportPhoneNumberRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opListAgentStatuses = "ListAgentStatuses" // ListAgentStatusesRequest generates a "aws/request.Request" representing the @@ -10316,6 +11072,100 @@ func (c *Connect) ListAgentStatusesPagesWithContext(ctx aws.Context, input *List return p.Err() } +const opListAnalyticsDataAssociations = "ListAnalyticsDataAssociations" + +// ListAnalyticsDataAssociationsRequest generates a "aws/request.Request" representing the +// client's request for the ListAnalyticsDataAssociations 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 ListAnalyticsDataAssociations for more information on using the ListAnalyticsDataAssociations +// 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 ListAnalyticsDataAssociationsRequest method. +// req, resp := client.ListAnalyticsDataAssociationsRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/connect-2017-08-08/ListAnalyticsDataAssociations +func (c *Connect) ListAnalyticsDataAssociationsRequest(input *ListAnalyticsDataAssociationsInput) (req *request.Request, output *ListAnalyticsDataAssociationsOutput) { + op := &request.Operation{ + Name: opListAnalyticsDataAssociations, + HTTPMethod: "GET", + HTTPPath: "/analytics-data/instance/{InstanceId}/association", + } + + if input == nil { + input = &ListAnalyticsDataAssociationsInput{} + } + + output = &ListAnalyticsDataAssociationsOutput{} + req = c.newRequest(op, input, output) + return +} + +// ListAnalyticsDataAssociations API operation for Amazon Connect Service. +// +// This API is in preview release for Amazon Connect and is subject to change. +// +// Lists the association status of requested dataset ID for a given Amazon Connect +// instance. +// +// 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 Connect Service's +// API operation ListAnalyticsDataAssociations for usage and error information. +// +// Returned Error Types: +// +// - InvalidRequestException +// The request is not valid. +// +// - InvalidParameterException +// One or more of the specified parameters are not valid. +// +// - ResourceNotFoundException +// The specified resource was not found. +// +// - ThrottlingException +// The throttling limit has been exceeded. +// +// - InternalServiceException +// Request processing failed because of an error or failure with the service. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/connect-2017-08-08/ListAnalyticsDataAssociations +func (c *Connect) ListAnalyticsDataAssociations(input *ListAnalyticsDataAssociationsInput) (*ListAnalyticsDataAssociationsOutput, error) { + req, out := c.ListAnalyticsDataAssociationsRequest(input) + return out, req.Send() +} + +// ListAnalyticsDataAssociationsWithContext is the same as ListAnalyticsDataAssociations with the addition of +// the ability to pass a context and additional request options. +// +// See ListAnalyticsDataAssociations 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 *Connect) ListAnalyticsDataAssociationsWithContext(ctx aws.Context, input *ListAnalyticsDataAssociationsInput, opts ...request.Option) (*ListAnalyticsDataAssociationsOutput, error) { + req, out := c.ListAnalyticsDataAssociationsRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opListApprovedOrigins = "ListApprovedOrigins" // ListApprovedOriginsRequest generates a "aws/request.Request" representing the @@ -11652,6 +12502,157 @@ func (c *Connect) ListEvaluationFormsPagesWithContext(ctx aws.Context, input *Li return p.Err() } +const opListFlowAssociations = "ListFlowAssociations" + +// ListFlowAssociationsRequest generates a "aws/request.Request" representing the +// client's request for the ListFlowAssociations 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 ListFlowAssociations for more information on using the ListFlowAssociations +// 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 ListFlowAssociationsRequest method. +// req, resp := client.ListFlowAssociationsRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/connect-2017-08-08/ListFlowAssociations +func (c *Connect) ListFlowAssociationsRequest(input *ListFlowAssociationsInput) (req *request.Request, output *ListFlowAssociationsOutput) { + op := &request.Operation{ + Name: opListFlowAssociations, + HTTPMethod: "GET", + HTTPPath: "/flow-associations-summary/{InstanceId}", + Paginator: &request.Paginator{ + InputTokens: []string{"NextToken"}, + OutputTokens: []string{"NextToken"}, + LimitToken: "MaxResults", + TruncationToken: "", + }, + } + + if input == nil { + input = &ListFlowAssociationsInput{} + } + + output = &ListFlowAssociationsOutput{} + req = c.newRequest(op, input, output) + return +} + +// ListFlowAssociations API operation for Amazon Connect Service. +// +// List the flow association based on the filters. +// +// 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 Connect Service's +// API operation ListFlowAssociations for usage and error information. +// +// Returned Error Types: +// +// - AccessDeniedException +// You do not have sufficient permissions to perform this action. +// +// - ResourceNotFoundException +// The specified resource was not found. +// +// - InternalServiceException +// Request processing failed because of an error or failure with the service. +// +// - InvalidRequestException +// The request is not valid. +// +// - InvalidParameterException +// One or more of the specified parameters are not valid. +// +// - ThrottlingException +// The throttling limit has been exceeded. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/connect-2017-08-08/ListFlowAssociations +func (c *Connect) ListFlowAssociations(input *ListFlowAssociationsInput) (*ListFlowAssociationsOutput, error) { + req, out := c.ListFlowAssociationsRequest(input) + return out, req.Send() +} + +// ListFlowAssociationsWithContext is the same as ListFlowAssociations with the addition of +// the ability to pass a context and additional request options. +// +// See ListFlowAssociations 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 *Connect) ListFlowAssociationsWithContext(ctx aws.Context, input *ListFlowAssociationsInput, opts ...request.Option) (*ListFlowAssociationsOutput, error) { + req, out := c.ListFlowAssociationsRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +// ListFlowAssociationsPages iterates over the pages of a ListFlowAssociations operation, +// calling the "fn" function with the response data for each page. To stop +// iterating, return false from the fn function. +// +// See ListFlowAssociations 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 ListFlowAssociations operation. +// pageNum := 0 +// err := client.ListFlowAssociationsPages(params, +// func(page *connect.ListFlowAssociationsOutput, lastPage bool) bool { +// pageNum++ +// fmt.Println(page) +// return pageNum <= 3 +// }) +func (c *Connect) ListFlowAssociationsPages(input *ListFlowAssociationsInput, fn func(*ListFlowAssociationsOutput, bool) bool) error { + return c.ListFlowAssociationsPagesWithContext(aws.BackgroundContext(), input, fn) +} + +// ListFlowAssociationsPagesWithContext same as ListFlowAssociationsPages 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 *Connect) ListFlowAssociationsPagesWithContext(ctx aws.Context, input *ListFlowAssociationsInput, fn func(*ListFlowAssociationsOutput, bool) bool, opts ...request.Option) error { + p := request.Pagination{ + NewRequest: func() (*request.Request, error) { + var inCpy *ListFlowAssociationsInput + if input != nil { + tmp := *input + inCpy = &tmp + } + req, _ := c.ListFlowAssociationsRequest(inCpy) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return req, nil + }, + } + + for p.Next() { + if !fn(p.Page().(*ListFlowAssociationsOutput), !p.HasNextPage()) { + break + } + } + + return p.Err() +} + const opListHoursOfOperations = "ListHoursOfOperations" // ListHoursOfOperationsRequest generates a "aws/request.Request" representing the @@ -13629,6 +14630,159 @@ func (c *Connect) ListQuickConnectsPagesWithContext(ctx aws.Context, input *List return p.Err() } +const opListRealtimeContactAnalysisSegmentsV2 = "ListRealtimeContactAnalysisSegmentsV2" + +// ListRealtimeContactAnalysisSegmentsV2Request generates a "aws/request.Request" representing the +// client's request for the ListRealtimeContactAnalysisSegmentsV2 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 ListRealtimeContactAnalysisSegmentsV2 for more information on using the ListRealtimeContactAnalysisSegmentsV2 +// 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 ListRealtimeContactAnalysisSegmentsV2Request method. +// req, resp := client.ListRealtimeContactAnalysisSegmentsV2Request(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/connect-2017-08-08/ListRealtimeContactAnalysisSegmentsV2 +func (c *Connect) ListRealtimeContactAnalysisSegmentsV2Request(input *ListRealtimeContactAnalysisSegmentsV2Input) (req *request.Request, output *ListRealtimeContactAnalysisSegmentsV2Output) { + op := &request.Operation{ + Name: opListRealtimeContactAnalysisSegmentsV2, + HTTPMethod: "POST", + HTTPPath: "/contact/list-real-time-analysis-segments-v2/{InstanceId}/{ContactId}", + Paginator: &request.Paginator{ + InputTokens: []string{"NextToken"}, + OutputTokens: []string{"NextToken"}, + LimitToken: "MaxResults", + TruncationToken: "", + }, + } + + if input == nil { + input = &ListRealtimeContactAnalysisSegmentsV2Input{} + } + + output = &ListRealtimeContactAnalysisSegmentsV2Output{} + req = c.newRequest(op, input, output) + return +} + +// ListRealtimeContactAnalysisSegmentsV2 API operation for Amazon Connect Service. +// +// Provides a list of analysis segments for a real-time analysis 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 Connect Service's +// API operation ListRealtimeContactAnalysisSegmentsV2 for usage and error information. +// +// Returned Error Types: +// +// - OutputTypeNotFoundException +// Thrown for analyzed content when requested OutputType was not enabled for +// a given contact. For example, if an OutputType.Raw was requested for a contact +// that had `RedactedOnly` Redaction policy set in Contact flow. +// +// - AccessDeniedException +// You do not have sufficient permissions to perform this action. +// +// - ResourceNotFoundException +// The specified resource was not found. +// +// - InvalidRequestException +// The request is not valid. +// +// - InternalServiceException +// Request processing failed because of an error or failure with the service. +// +// - ThrottlingException +// The throttling limit has been exceeded. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/connect-2017-08-08/ListRealtimeContactAnalysisSegmentsV2 +func (c *Connect) ListRealtimeContactAnalysisSegmentsV2(input *ListRealtimeContactAnalysisSegmentsV2Input) (*ListRealtimeContactAnalysisSegmentsV2Output, error) { + req, out := c.ListRealtimeContactAnalysisSegmentsV2Request(input) + return out, req.Send() +} + +// ListRealtimeContactAnalysisSegmentsV2WithContext is the same as ListRealtimeContactAnalysisSegmentsV2 with the addition of +// the ability to pass a context and additional request options. +// +// See ListRealtimeContactAnalysisSegmentsV2 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 *Connect) ListRealtimeContactAnalysisSegmentsV2WithContext(ctx aws.Context, input *ListRealtimeContactAnalysisSegmentsV2Input, opts ...request.Option) (*ListRealtimeContactAnalysisSegmentsV2Output, error) { + req, out := c.ListRealtimeContactAnalysisSegmentsV2Request(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +// ListRealtimeContactAnalysisSegmentsV2Pages iterates over the pages of a ListRealtimeContactAnalysisSegmentsV2 operation, +// calling the "fn" function with the response data for each page. To stop +// iterating, return false from the fn function. +// +// See ListRealtimeContactAnalysisSegmentsV2 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 ListRealtimeContactAnalysisSegmentsV2 operation. +// pageNum := 0 +// err := client.ListRealtimeContactAnalysisSegmentsV2Pages(params, +// func(page *connect.ListRealtimeContactAnalysisSegmentsV2Output, lastPage bool) bool { +// pageNum++ +// fmt.Println(page) +// return pageNum <= 3 +// }) +func (c *Connect) ListRealtimeContactAnalysisSegmentsV2Pages(input *ListRealtimeContactAnalysisSegmentsV2Input, fn func(*ListRealtimeContactAnalysisSegmentsV2Output, bool) bool) error { + return c.ListRealtimeContactAnalysisSegmentsV2PagesWithContext(aws.BackgroundContext(), input, fn) +} + +// ListRealtimeContactAnalysisSegmentsV2PagesWithContext same as ListRealtimeContactAnalysisSegmentsV2Pages 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 *Connect) ListRealtimeContactAnalysisSegmentsV2PagesWithContext(ctx aws.Context, input *ListRealtimeContactAnalysisSegmentsV2Input, fn func(*ListRealtimeContactAnalysisSegmentsV2Output, bool) bool, opts ...request.Option) error { + p := request.Pagination{ + NewRequest: func() (*request.Request, error) { + var inCpy *ListRealtimeContactAnalysisSegmentsV2Input + if input != nil { + tmp := *input + inCpy = &tmp + } + req, _ := c.ListRealtimeContactAnalysisSegmentsV2Request(inCpy) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return req, nil + }, + } + + for p.Next() { + if !fn(p.Page().(*ListRealtimeContactAnalysisSegmentsV2Output), !p.HasNextPage()) { + break + } + } + + return p.Err() +} + const opListRoutingProfileQueues = "ListRoutingProfileQueues" // ListRoutingProfileQueuesRequest generates a "aws/request.Request" representing the @@ -16214,7 +17368,7 @@ func (c *Connect) ReleasePhoneNumberRequest(input *ReleasePhoneNumberInput) (req // Services Region where the number was claimed. // // To release phone numbers from a traffic distribution group, use the ReleasePhoneNumber -// API, not the Amazon Connect console. +// API, not the Amazon Connect admin website. // // After releasing a phone number, the phone number enters into a cooldown period // of 30 days. It cannot be searched for or claimed again until the period has @@ -17972,6 +19126,111 @@ func (c *Connect) SearchVocabulariesPagesWithContext(ctx aws.Context, input *Sea return p.Err() } +const opSendChatIntegrationEvent = "SendChatIntegrationEvent" + +// SendChatIntegrationEventRequest generates a "aws/request.Request" representing the +// client's request for the SendChatIntegrationEvent 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 SendChatIntegrationEvent for more information on using the SendChatIntegrationEvent +// 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 SendChatIntegrationEventRequest method. +// req, resp := client.SendChatIntegrationEventRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/connect-2017-08-08/SendChatIntegrationEvent +func (c *Connect) SendChatIntegrationEventRequest(input *SendChatIntegrationEventInput) (req *request.Request, output *SendChatIntegrationEventOutput) { + op := &request.Operation{ + Name: opSendChatIntegrationEvent, + HTTPMethod: "POST", + HTTPPath: "/chat-integration-event", + } + + if input == nil { + input = &SendChatIntegrationEventInput{} + } + + output = &SendChatIntegrationEventOutput{} + req = c.newRequest(op, input, output) + return +} + +// SendChatIntegrationEvent API operation for Amazon Connect Service. +// +// Processes chat integration events from Amazon Web Services or external integrations +// to Amazon Connect. A chat integration event includes: +// +// - SourceId, DestinationId, and Subtype: a set of identifiers, uniquely +// representing a chat +// +// - ChatEvent: details of the chat action to perform such as sending a message, +// event, or disconnecting from a chat +// +// When a chat integration event is sent with chat identifiers that do not map +// to an active chat contact, a new chat contact is also created before handling +// chat action. +// +// Access to this API is currently restricted to Amazon Pinpoint for supporting +// SMS integration. +// +// 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 Connect Service's +// API operation SendChatIntegrationEvent for usage and error information. +// +// Returned Error Types: +// +// - InvalidRequestException +// The request is not valid. +// +// - ResourceNotFoundException +// The specified resource was not found. +// +// - InternalServiceException +// Request processing failed because of an error or failure with the service. +// +// - ThrottlingException +// The throttling limit has been exceeded. +// +// - AccessDeniedException +// You do not have sufficient permissions to perform this action. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/connect-2017-08-08/SendChatIntegrationEvent +func (c *Connect) SendChatIntegrationEvent(input *SendChatIntegrationEventInput) (*SendChatIntegrationEventOutput, error) { + req, out := c.SendChatIntegrationEventRequest(input) + return out, req.Send() +} + +// SendChatIntegrationEventWithContext is the same as SendChatIntegrationEvent with the addition of +// the ability to pass a context and additional request options. +// +// See SendChatIntegrationEvent 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 *Connect) SendChatIntegrationEventWithContext(ctx aws.Context, input *SendChatIntegrationEventInput, opts ...request.Option) (*SendChatIntegrationEventOutput, error) { + req, out := c.SendChatIntegrationEventRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opStartChatContact = "StartChatContact" // StartChatContactRequest generates a "aws/request.Request" representing the @@ -18627,6 +19886,99 @@ func (c *Connect) StartTaskContactWithContext(ctx aws.Context, input *StartTaskC return out, req.Send() } +const opStartWebRTCContact = "StartWebRTCContact" + +// StartWebRTCContactRequest generates a "aws/request.Request" representing the +// client's request for the StartWebRTCContact 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 StartWebRTCContact for more information on using the StartWebRTCContact +// 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 StartWebRTCContactRequest method. +// req, resp := client.StartWebRTCContactRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/connect-2017-08-08/StartWebRTCContact +func (c *Connect) StartWebRTCContactRequest(input *StartWebRTCContactInput) (req *request.Request, output *StartWebRTCContactOutput) { + op := &request.Operation{ + Name: opStartWebRTCContact, + HTTPMethod: "PUT", + HTTPPath: "/contact/webrtc", + } + + if input == nil { + input = &StartWebRTCContactInput{} + } + + output = &StartWebRTCContactOutput{} + req = c.newRequest(op, input, output) + return +} + +// StartWebRTCContact API operation for Amazon Connect Service. +// +// Places an inbound in-app, web, or video call to a contact, and then initiates +// the flow. It performs the actions in the flow that are specified (in ContactFlowId) +// and present in the Amazon Connect instance (specified as InstanceId). +// +// 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 Connect Service's +// API operation StartWebRTCContact for usage and error information. +// +// Returned Error Types: +// +// - InternalServiceException +// Request processing failed because of an error or failure with the service. +// +// - InvalidRequestException +// The request is not valid. +// +// - InvalidParameterException +// One or more of the specified parameters are not valid. +// +// - LimitExceededException +// The allowed limit for the resource has been exceeded. +// +// - ResourceNotFoundException +// The specified resource was not found. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/connect-2017-08-08/StartWebRTCContact +func (c *Connect) StartWebRTCContact(input *StartWebRTCContactInput) (*StartWebRTCContactOutput, error) { + req, out := c.StartWebRTCContactRequest(input) + return out, req.Send() +} + +// StartWebRTCContactWithContext is the same as StartWebRTCContact with the addition of +// the ability to pass a context and additional request options. +// +// See StartWebRTCContact 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 *Connect) StartWebRTCContactWithContext(ctx aws.Context, input *StartWebRTCContactInput, opts ...request.Option) (*StartWebRTCContactOutput, error) { + req, out := c.StartWebRTCContactRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opStopContact = "StopContact" // StopContactRequest generates a "aws/request.Request" representing the @@ -24255,6 +25607,109 @@ func (s *AgentStatusSummary) SetType(v string) *AgentStatusSummary { return s } +// Information about the capabilities enabled for participants of the contact. +type AllowedCapabilities struct { + _ struct{} `type:"structure"` + + // Information about the agent's video sharing capabilities. + Agent *ParticipantCapabilities `type:"structure"` + + // Information about the customer's video sharing capabilities. + Customer *ParticipantCapabilities `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 AllowedCapabilities) 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 AllowedCapabilities) GoString() string { + return s.String() +} + +// SetAgent sets the Agent field's value. +func (s *AllowedCapabilities) SetAgent(v *ParticipantCapabilities) *AllowedCapabilities { + s.Agent = v + return s +} + +// SetCustomer sets the Customer field's value. +func (s *AllowedCapabilities) SetCustomer(v *ParticipantCapabilities) *AllowedCapabilities { + s.Customer = v + return s +} + +// This API is in preview release for Amazon Connect and is subject to change. +// +// Information about associations that are successfully created: DataSetId, +// TargetAccountId, ResourceShareId, ResourceShareArn. +type AnalyticsDataAssociationResult struct { + _ struct{} `type:"structure"` + + // The identifier of the dataset. + DataSetId *string `min:"1" type:"string"` + + // The Amazon Resource Name (ARN) of the Resource Access Manager share. + ResourceShareArn *string `type:"string"` + + // The Resource Access Manager share ID. + ResourceShareId *string `type:"string"` + + // The identifier of the target account. + TargetAccountId *string `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 AnalyticsDataAssociationResult) 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 AnalyticsDataAssociationResult) GoString() string { + return s.String() +} + +// SetDataSetId sets the DataSetId field's value. +func (s *AnalyticsDataAssociationResult) SetDataSetId(v string) *AnalyticsDataAssociationResult { + s.DataSetId = &v + return s +} + +// SetResourceShareArn sets the ResourceShareArn field's value. +func (s *AnalyticsDataAssociationResult) SetResourceShareArn(v string) *AnalyticsDataAssociationResult { + s.ResourceShareArn = &v + return s +} + +// SetResourceShareId sets the ResourceShareId field's value. +func (s *AnalyticsDataAssociationResult) SetResourceShareId(v string) *AnalyticsDataAssociationResult { + s.ResourceShareId = &v + return s +} + +// SetTargetAccountId sets the TargetAccountId field's value. +func (s *AnalyticsDataAssociationResult) SetTargetAccountId(v string) *AnalyticsDataAssociationResult { + s.TargetAccountId = &v + return s +} + // Configuration of the answering machine detection. type AnswerMachineDetectionConfig struct { _ struct{} `type:"structure"` @@ -24358,8 +25813,8 @@ func (s *Application) SetNamespace(v string) *Application { } // This action must be set if TriggerEventSource is one of the following values: -// OnPostCallAnalysisAvailable | OnRealTimeCallAnalysisAvailable | OnPostChatAnalysisAvailable. -// Contact is categorized using the rule name. +// OnPostCallAnalysisAvailable | OnRealTimeCallAnalysisAvailable | OnRealTimeChatAnalysisAvailable +// | OnPostChatAnalysisAvailable. Contact is categorized using the rule name. // // RuleName is used as ContactCategory. type AssignContactCategoryActionDefinition struct { @@ -24384,6 +25839,144 @@ func (s AssignContactCategoryActionDefinition) GoString() string { return s.String() } +type AssociateAnalyticsDataSetInput struct { + _ struct{} `type:"structure"` + + // The identifier of the dataset to associate with the target account. + // + // DataSetId is a required field + DataSetId *string `min:"1" type:"string" required:"true"` + + // The identifier of the Amazon Connect instance. You can find the instance + // ID (https://docs.aws.amazon.com/connect/latest/adminguide/find-instance-arn.html) + // in the Amazon Resource Name (ARN) of the instance. + // + // InstanceId is a required field + InstanceId *string `location:"uri" locationName:"InstanceId" min:"1" type:"string" required:"true"` + + // The identifier of the target account. Use to associate a dataset to a different + // account than the one containing the Amazon Connect instance. If not specified, + // by default this value is the Amazon Web Services account that has the Amazon + // Connect instance. + TargetAccountId *string `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 AssociateAnalyticsDataSetInput) 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 AssociateAnalyticsDataSetInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *AssociateAnalyticsDataSetInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "AssociateAnalyticsDataSetInput"} + if s.DataSetId == nil { + invalidParams.Add(request.NewErrParamRequired("DataSetId")) + } + if s.DataSetId != nil && len(*s.DataSetId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("DataSetId", 1)) + } + if s.InstanceId == nil { + invalidParams.Add(request.NewErrParamRequired("InstanceId")) + } + if s.InstanceId != nil && len(*s.InstanceId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("InstanceId", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetDataSetId sets the DataSetId field's value. +func (s *AssociateAnalyticsDataSetInput) SetDataSetId(v string) *AssociateAnalyticsDataSetInput { + s.DataSetId = &v + return s +} + +// SetInstanceId sets the InstanceId field's value. +func (s *AssociateAnalyticsDataSetInput) SetInstanceId(v string) *AssociateAnalyticsDataSetInput { + s.InstanceId = &v + return s +} + +// SetTargetAccountId sets the TargetAccountId field's value. +func (s *AssociateAnalyticsDataSetInput) SetTargetAccountId(v string) *AssociateAnalyticsDataSetInput { + s.TargetAccountId = &v + return s +} + +type AssociateAnalyticsDataSetOutput struct { + _ struct{} `type:"structure"` + + // The identifier of the dataset that was associated. + DataSetId *string `min:"1" type:"string"` + + // The Amazon Resource Name (ARN) of the Resource Access Manager share. + ResourceShareArn *string `type:"string"` + + // The Resource Access Manager share ID that is generated. + ResourceShareId *string `type:"string"` + + // The identifier of the target account. + TargetAccountId *string `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 AssociateAnalyticsDataSetOutput) 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 AssociateAnalyticsDataSetOutput) GoString() string { + return s.String() +} + +// SetDataSetId sets the DataSetId field's value. +func (s *AssociateAnalyticsDataSetOutput) SetDataSetId(v string) *AssociateAnalyticsDataSetOutput { + s.DataSetId = &v + return s +} + +// SetResourceShareArn sets the ResourceShareArn field's value. +func (s *AssociateAnalyticsDataSetOutput) SetResourceShareArn(v string) *AssociateAnalyticsDataSetOutput { + s.ResourceShareArn = &v + return s +} + +// SetResourceShareId sets the ResourceShareId field's value. +func (s *AssociateAnalyticsDataSetOutput) SetResourceShareId(v string) *AssociateAnalyticsDataSetOutput { + s.ResourceShareId = &v + return s +} + +// SetTargetAccountId sets the TargetAccountId field's value. +func (s *AssociateAnalyticsDataSetOutput) SetTargetAccountId(v string) *AssociateAnalyticsDataSetOutput { + s.TargetAccountId = &v + return s +} + type AssociateApprovedOriginInput struct { _ struct{} `type:"structure"` @@ -24676,6 +26269,121 @@ func (s AssociateDefaultVocabularyOutput) GoString() string { return s.String() } +type AssociateFlowInput struct { + _ struct{} `type:"structure"` + + // The identifier of the flow. + // + // FlowId is a required field + FlowId *string `type:"string" required:"true"` + + // The identifier of the Amazon Connect instance. You can find the instance + // ID (https://docs.aws.amazon.com/connect/latest/adminguide/find-instance-arn.html) + // in the Amazon Resource Name (ARN) of the instance. + // + // InstanceId is a required field + InstanceId *string `location:"uri" locationName:"InstanceId" min:"1" type:"string" required:"true"` + + // The identifier of the resource. + // + // ResourceId is a required field + ResourceId *string `type:"string" required:"true"` + + // A valid resource type. + // + // ResourceType is a required field + ResourceType *string `type:"string" required:"true" enum:"FlowAssociationResourceType"` +} + +// 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 AssociateFlowInput) 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 AssociateFlowInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *AssociateFlowInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "AssociateFlowInput"} + if s.FlowId == nil { + invalidParams.Add(request.NewErrParamRequired("FlowId")) + } + if s.InstanceId == nil { + invalidParams.Add(request.NewErrParamRequired("InstanceId")) + } + if s.InstanceId != nil && len(*s.InstanceId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("InstanceId", 1)) + } + if s.ResourceId == nil { + invalidParams.Add(request.NewErrParamRequired("ResourceId")) + } + if s.ResourceType == nil { + invalidParams.Add(request.NewErrParamRequired("ResourceType")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetFlowId sets the FlowId field's value. +func (s *AssociateFlowInput) SetFlowId(v string) *AssociateFlowInput { + s.FlowId = &v + return s +} + +// SetInstanceId sets the InstanceId field's value. +func (s *AssociateFlowInput) SetInstanceId(v string) *AssociateFlowInput { + s.InstanceId = &v + return s +} + +// SetResourceId sets the ResourceId field's value. +func (s *AssociateFlowInput) SetResourceId(v string) *AssociateFlowInput { + s.ResourceId = &v + return s +} + +// SetResourceType sets the ResourceType field's value. +func (s *AssociateFlowInput) SetResourceType(v string) *AssociateFlowInput { + s.ResourceType = &v + return s +} + +type AssociateFlowOutput 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 AssociateFlowOutput) 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 AssociateFlowOutput) GoString() string { + return s.String() +} + type AssociateInstanceStorageConfigInput struct { _ struct{} `type:"structure"` @@ -25562,6 +27270,51 @@ func (s *AttachmentReference) SetValue(v string) *AttachmentReference { return s } +// The attendee information, including attendee ID and join token. +type Attendee struct { + _ struct{} `type:"structure"` + + // The Amazon Chime SDK attendee ID. + AttendeeId *string `type:"string"` + + // The join token used by the Amazon Chime SDK attendee. + // + // JoinToken is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by Attendee's + // String and GoString methods. + JoinToken *string `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 Attendee) 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 Attendee) GoString() string { + return s.String() +} + +// SetAttendeeId sets the AttendeeId field's value. +func (s *Attendee) SetAttendeeId(v string) *Attendee { + s.AttendeeId = &v + return s +} + +// SetJoinToken sets the JoinToken field's value. +func (s *Attendee) SetJoinToken(v string) *Attendee { + s.JoinToken = &v + return s +} + // A toggle for an individual feature at the instance level. type Attribute struct { _ struct{} `type:"structure"` @@ -25603,6 +27356,38 @@ func (s *Attribute) SetValue(v string) *Attribute { return s } +// Has audio-specific configurations as the operating parameter for Echo Reduction. +type AudioFeatures struct { + _ struct{} `type:"structure"` + + // Makes echo reduction available to clients who connect to the meeting. + EchoReduction *string `type:"string" enum:"MeetingFeatureStatus"` +} + +// 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 AudioFeatures) 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 AudioFeatures) GoString() string { + return s.String() +} + +// SetEchoReduction sets the EchoReduction field's value. +func (s *AudioFeatures) SetEchoReduction(v string) *AudioFeatures { + s.EchoReduction = &v + return s +} + // Information about available phone numbers. type AvailableNumberSummary struct { _ struct{} `type:"structure"` @@ -25654,6 +27439,242 @@ func (s *AvailableNumberSummary) SetPhoneNumberType(v string) *AvailableNumberSu return s } +type BatchAssociateAnalyticsDataSetInput struct { + _ struct{} `type:"structure"` + + // An array of dataset identifiers to associate. + // + // DataSetIds is a required field + DataSetIds []*string `type:"list" required:"true"` + + // The identifier of the Amazon Connect instance. You can find the instance + // ID (https://docs.aws.amazon.com/connect/latest/adminguide/find-instance-arn.html) + // in the Amazon Resource Name (ARN) of the instance. + // + // InstanceId is a required field + InstanceId *string `location:"uri" locationName:"InstanceId" min:"1" type:"string" required:"true"` + + // The identifier of the target account. Use to associate a dataset to a different + // account than the one containing the Amazon Connect instance. If not specified, + // by default this value is the Amazon Web Services account that has the Amazon + // Connect instance. + TargetAccountId *string `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 BatchAssociateAnalyticsDataSetInput) 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 BatchAssociateAnalyticsDataSetInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *BatchAssociateAnalyticsDataSetInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "BatchAssociateAnalyticsDataSetInput"} + if s.DataSetIds == nil { + invalidParams.Add(request.NewErrParamRequired("DataSetIds")) + } + if s.InstanceId == nil { + invalidParams.Add(request.NewErrParamRequired("InstanceId")) + } + if s.InstanceId != nil && len(*s.InstanceId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("InstanceId", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetDataSetIds sets the DataSetIds field's value. +func (s *BatchAssociateAnalyticsDataSetInput) SetDataSetIds(v []*string) *BatchAssociateAnalyticsDataSetInput { + s.DataSetIds = v + return s +} + +// SetInstanceId sets the InstanceId field's value. +func (s *BatchAssociateAnalyticsDataSetInput) SetInstanceId(v string) *BatchAssociateAnalyticsDataSetInput { + s.InstanceId = &v + return s +} + +// SetTargetAccountId sets the TargetAccountId field's value. +func (s *BatchAssociateAnalyticsDataSetInput) SetTargetAccountId(v string) *BatchAssociateAnalyticsDataSetInput { + s.TargetAccountId = &v + return s +} + +type BatchAssociateAnalyticsDataSetOutput struct { + _ struct{} `type:"structure"` + + // Information about associations that are successfully created: DataSetId, + // TargetAccountId, ResourceShareId, ResourceShareArn. + Created []*AnalyticsDataAssociationResult `type:"list"` + + // A list of errors for datasets that aren't successfully associated with the + // target account. + Errors []*ErrorResult `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 BatchAssociateAnalyticsDataSetOutput) 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 BatchAssociateAnalyticsDataSetOutput) GoString() string { + return s.String() +} + +// SetCreated sets the Created field's value. +func (s *BatchAssociateAnalyticsDataSetOutput) SetCreated(v []*AnalyticsDataAssociationResult) *BatchAssociateAnalyticsDataSetOutput { + s.Created = v + return s +} + +// SetErrors sets the Errors field's value. +func (s *BatchAssociateAnalyticsDataSetOutput) SetErrors(v []*ErrorResult) *BatchAssociateAnalyticsDataSetOutput { + s.Errors = v + return s +} + +type BatchDisassociateAnalyticsDataSetInput struct { + _ struct{} `type:"structure"` + + // An array of associated dataset identifiers to remove. + // + // DataSetIds is a required field + DataSetIds []*string `type:"list" required:"true"` + + // The identifier of the Amazon Connect instance. You can find the instance + // ID (https://docs.aws.amazon.com/connect/latest/adminguide/find-instance-arn.html) + // in the Amazon Resource Name (ARN) of the instance. + // + // InstanceId is a required field + InstanceId *string `location:"uri" locationName:"InstanceId" min:"1" type:"string" required:"true"` + + // The identifier of the target account. Use to disassociate a dataset from + // a different account than the one containing the Amazon Connect instance. + // If not specified, by default this value is the Amazon Web Services account + // that has the Amazon Connect instance. + TargetAccountId *string `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 BatchDisassociateAnalyticsDataSetInput) 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 BatchDisassociateAnalyticsDataSetInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *BatchDisassociateAnalyticsDataSetInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "BatchDisassociateAnalyticsDataSetInput"} + if s.DataSetIds == nil { + invalidParams.Add(request.NewErrParamRequired("DataSetIds")) + } + if s.InstanceId == nil { + invalidParams.Add(request.NewErrParamRequired("InstanceId")) + } + if s.InstanceId != nil && len(*s.InstanceId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("InstanceId", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetDataSetIds sets the DataSetIds field's value. +func (s *BatchDisassociateAnalyticsDataSetInput) SetDataSetIds(v []*string) *BatchDisassociateAnalyticsDataSetInput { + s.DataSetIds = v + return s +} + +// SetInstanceId sets the InstanceId field's value. +func (s *BatchDisassociateAnalyticsDataSetInput) SetInstanceId(v string) *BatchDisassociateAnalyticsDataSetInput { + s.InstanceId = &v + return s +} + +// SetTargetAccountId sets the TargetAccountId field's value. +func (s *BatchDisassociateAnalyticsDataSetInput) SetTargetAccountId(v string) *BatchDisassociateAnalyticsDataSetInput { + s.TargetAccountId = &v + return s +} + +type BatchDisassociateAnalyticsDataSetOutput struct { + _ struct{} `type:"structure"` + + // An array of successfully disassociated dataset identifiers. + Deleted []*string `type:"list"` + + // A list of errors for any datasets not successfully removed. + Errors []*ErrorResult `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 BatchDisassociateAnalyticsDataSetOutput) 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 BatchDisassociateAnalyticsDataSetOutput) GoString() string { + return s.String() +} + +// SetDeleted sets the Deleted field's value. +func (s *BatchDisassociateAnalyticsDataSetOutput) SetDeleted(v []*string) *BatchDisassociateAnalyticsDataSetOutput { + s.Deleted = v + return s +} + +// SetErrors sets the Errors field's value. +func (s *BatchDisassociateAnalyticsDataSetOutput) SetErrors(v []*ErrorResult) *BatchDisassociateAnalyticsDataSetOutput { + s.Errors = v + return s +} + type BatchGetFlowAssociationInput struct { _ struct{} `type:"structure"` @@ -25937,6 +27958,101 @@ func (s *Campaign) SetCampaignId(v string) *Campaign { return s } +// Chat integration event containing payload to perform different chat actions +// such as: +// +// - Sending a chat message +// +// - Sending a chat event, such as typing +// +// - Disconnecting from a chat +type ChatEvent struct { + _ struct{} `type:"structure"` + + // Content of the message or event. This is required when Type is MESSAGE and + // for certain ContentTypes when Type is EVENT. + // + // * For allowed message content, see the Content parameter in the SendMessage + // (https://docs.aws.amazon.com/connect-participant/latest/APIReference/API_SendMessage.html) + // topic in the Amazon Connect Participant Service API Reference. + // + // * For allowed event content, see the Content parameter in the SendEvent + // (https://docs.aws.amazon.com/connect-participant/latest/APIReference/API_SendEvent.html) + // topic in the Amazon Connect Participant Service API Reference. + Content *string `min:"1" type:"string"` + + // Type of content. This is required when Type is MESSAGE or EVENT. + // + // * For allowed message content types, see the ContentType parameter in + // the SendMessage (https://docs.aws.amazon.com/connect-participant/latest/APIReference/API_SendMessage.html) + // topic in the Amazon Connect Participant Service API Reference. + // + // * For allowed event content types, see the ContentType parameter in the + // SendEvent (https://docs.aws.amazon.com/connect-participant/latest/APIReference/API_SendEvent.html) + // topic in the Amazon Connect Participant Service API Reference. + ContentType *string `min:"1" type:"string"` + + // Type of chat integration event. + // + // Type is a required field + Type *string `type:"string" required:"true" enum:"ChatEventType"` +} + +// 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 ChatEvent) 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 ChatEvent) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ChatEvent) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ChatEvent"} + if s.Content != nil && len(*s.Content) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Content", 1)) + } + if s.ContentType != nil && len(*s.ContentType) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ContentType", 1)) + } + if s.Type == nil { + invalidParams.Add(request.NewErrParamRequired("Type")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetContent sets the Content field's value. +func (s *ChatEvent) SetContent(v string) *ChatEvent { + s.Content = &v + return s +} + +// SetContentType sets the ContentType field's value. +func (s *ChatEvent) SetContentType(v string) *ChatEvent { + s.ContentType = &v + return s +} + +// SetType sets the Type field's value. +func (s *ChatEvent) SetType(v string) *ChatEvent { + s.Type = &v + return s +} + // A chat message. type ChatMessage struct { _ struct{} `type:"structure"` @@ -26331,6 +28447,11 @@ type ClaimedPhoneNumberSummary struct { // The type of phone number. PhoneNumberType *string `type:"string" enum:"PhoneNumberType"` + // The claimed phone number ARN that was previously imported from the external + // service, such as Amazon Pinpoint. If it is from Amazon Pinpoint, it looks + // like the ARN of the phone number that was imported from Amazon Pinpoint. + SourcePhoneNumberArn *string `type:"string"` + // The tags used to organize, track, or control access for this resource. For // example, { "tags": {"key1":"value1", "key2":"value2"} }. Tags map[string]*string `min:"1" type:"map"` @@ -26406,6 +28527,12 @@ func (s *ClaimedPhoneNumberSummary) SetPhoneNumberType(v string) *ClaimedPhoneNu return s } +// SetSourcePhoneNumberArn sets the SourcePhoneNumberArn field's value. +func (s *ClaimedPhoneNumberSummary) SetSourcePhoneNumberArn(v string) *ClaimedPhoneNumberSummary { + s.SourcePhoneNumberArn = &v + return s +} + // SetTags sets the Tags field's value. func (s *ClaimedPhoneNumberSummary) SetTags(v map[string]*string) *ClaimedPhoneNumberSummary { s.Tags = v @@ -26418,6 +28545,47 @@ func (s *ClaimedPhoneNumberSummary) SetTargetArn(v string) *ClaimedPhoneNumberSu return s } +// Information required to join the call. +type ConnectionData struct { + _ struct{} `type:"structure"` + + // The attendee information, including attendee ID and join token. + Attendee *Attendee `type:"structure"` + + // A meeting created using the Amazon Chime SDK. + Meeting *Meeting `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 ConnectionData) 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 ConnectionData) GoString() string { + return s.String() +} + +// SetAttendee sets the Attendee field's value. +func (s *ConnectionData) SetAttendee(v *Attendee) *ConnectionData { + s.Attendee = v + return s +} + +// SetMeeting sets the Meeting field's value. +func (s *ConnectionData) SetMeeting(v *Meeting) *ConnectionData { + s.Meeting = v + return s +} + // Contains information about a contact. type Contact struct { _ struct{} `type:"structure"` @@ -35960,6 +38128,108 @@ func (s *Dimensions) SetRoutingProfile(v *RoutingProfileReference) *Dimensions { return s } +type DisassociateAnalyticsDataSetInput struct { + _ struct{} `type:"structure"` + + // The identifier of the dataset to remove. + // + // DataSetId is a required field + DataSetId *string `min:"1" type:"string" required:"true"` + + // The identifier of the Amazon Connect instance. You can find the instance + // ID (https://docs.aws.amazon.com/connect/latest/adminguide/find-instance-arn.html) + // in the Amazon Resource Name (ARN) of the instance. + // + // InstanceId is a required field + InstanceId *string `location:"uri" locationName:"InstanceId" min:"1" type:"string" required:"true"` + + // The identifier of the target account. Use to associate a dataset to a different + // account than the one containing the Amazon Connect instance. If not specified, + // by default this value is the Amazon Web Services account that has the Amazon + // Connect instance. + TargetAccountId *string `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 DisassociateAnalyticsDataSetInput) 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 DisassociateAnalyticsDataSetInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DisassociateAnalyticsDataSetInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DisassociateAnalyticsDataSetInput"} + if s.DataSetId == nil { + invalidParams.Add(request.NewErrParamRequired("DataSetId")) + } + if s.DataSetId != nil && len(*s.DataSetId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("DataSetId", 1)) + } + if s.InstanceId == nil { + invalidParams.Add(request.NewErrParamRequired("InstanceId")) + } + if s.InstanceId != nil && len(*s.InstanceId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("InstanceId", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetDataSetId sets the DataSetId field's value. +func (s *DisassociateAnalyticsDataSetInput) SetDataSetId(v string) *DisassociateAnalyticsDataSetInput { + s.DataSetId = &v + return s +} + +// SetInstanceId sets the InstanceId field's value. +func (s *DisassociateAnalyticsDataSetInput) SetInstanceId(v string) *DisassociateAnalyticsDataSetInput { + s.InstanceId = &v + return s +} + +// SetTargetAccountId sets the TargetAccountId field's value. +func (s *DisassociateAnalyticsDataSetInput) SetTargetAccountId(v string) *DisassociateAnalyticsDataSetInput { + s.TargetAccountId = &v + return s +} + +type DisassociateAnalyticsDataSetOutput 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 DisassociateAnalyticsDataSetOutput) 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 DisassociateAnalyticsDataSetOutput) GoString() string { + return s.String() +} + type DisassociateApprovedOriginInput struct { _ struct{} `type:"structure" nopayload:"true"` @@ -36148,6 +38418,113 @@ func (s DisassociateBotOutput) GoString() string { return s.String() } +type DisassociateFlowInput struct { + _ struct{} `type:"structure" nopayload:"true"` + + // The identifier of the Amazon Connect instance. You can find the instance + // ID (https://docs.aws.amazon.com/connect/latest/adminguide/find-instance-arn.html) + // in the Amazon Resource Name (ARN) of the instance. + // + // InstanceId is a required field + InstanceId *string `location:"uri" locationName:"InstanceId" min:"1" type:"string" required:"true"` + + // The identifier of the resource. + // + // ResourceId is a required field + ResourceId *string `location:"uri" locationName:"ResourceId" type:"string" required:"true"` + + // A valid resource type. + // + // ResourceType is a required field + ResourceType *string `location:"uri" locationName:"ResourceType" type:"string" required:"true" enum:"FlowAssociationResourceType"` +} + +// 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 DisassociateFlowInput) 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 DisassociateFlowInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DisassociateFlowInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DisassociateFlowInput"} + if s.InstanceId == nil { + invalidParams.Add(request.NewErrParamRequired("InstanceId")) + } + if s.InstanceId != nil && len(*s.InstanceId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("InstanceId", 1)) + } + if s.ResourceId == nil { + invalidParams.Add(request.NewErrParamRequired("ResourceId")) + } + if s.ResourceId != nil && len(*s.ResourceId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ResourceId", 1)) + } + if s.ResourceType == nil { + invalidParams.Add(request.NewErrParamRequired("ResourceType")) + } + if s.ResourceType != nil && len(*s.ResourceType) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ResourceType", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetInstanceId sets the InstanceId field's value. +func (s *DisassociateFlowInput) SetInstanceId(v string) *DisassociateFlowInput { + s.InstanceId = &v + return s +} + +// SetResourceId sets the ResourceId field's value. +func (s *DisassociateFlowInput) SetResourceId(v string) *DisassociateFlowInput { + s.ResourceId = &v + return s +} + +// SetResourceType sets the ResourceType field's value. +func (s *DisassociateFlowInput) SetResourceType(v string) *DisassociateFlowInput { + s.ResourceType = &v + return s +} + +type DisassociateFlowOutput 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 DisassociateFlowOutput) 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 DisassociateFlowOutput) GoString() string { + return s.String() +} + type DisassociateInstanceStorageConfigInput struct { _ struct{} `type:"structure" nopayload:"true"` @@ -37372,6 +39749,49 @@ func (s *Endpoint) SetType(v string) *Endpoint { return s } +// This API is in preview release for Amazon Connect and is subject to change. +// +// List of errors for dataset association failures. +type ErrorResult struct { + _ struct{} `type:"structure"` + + // The error code. + ErrorCode *string `type:"string"` + + // The corresponding error message for the error code. + ErrorMessage *string `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 ErrorResult) 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 ErrorResult) GoString() string { + return s.String() +} + +// SetErrorCode sets the ErrorCode field's value. +func (s *ErrorResult) SetErrorCode(v string) *ErrorResult { + s.ErrorCode = &v + return s +} + +// SetErrorMessage sets the ErrorMessage field's value. +func (s *ErrorResult) SetErrorMessage(v string) *ErrorResult { + s.ErrorMessage = &v + return s +} + // Information about a contact evaluation. type Evaluation struct { _ struct{} `type:"structure"` @@ -40321,6 +42741,140 @@ func (s *GetFederationTokenOutput) SetUserId(v string) *GetFederationTokenOutput return s } +type GetFlowAssociationInput struct { + _ struct{} `type:"structure" nopayload:"true"` + + // The identifier of the Amazon Connect instance. You can find the instance + // ID (https://docs.aws.amazon.com/connect/latest/adminguide/find-instance-arn.html) + // in the Amazon Resource Name (ARN) of the instance. + // + // InstanceId is a required field + InstanceId *string `location:"uri" locationName:"InstanceId" min:"1" type:"string" required:"true"` + + // The identifier of the resource. + // + // ResourceId is a required field + ResourceId *string `location:"uri" locationName:"ResourceId" type:"string" required:"true"` + + // A valid resource type. + // + // ResourceType is a required field + ResourceType *string `location:"uri" locationName:"ResourceType" type:"string" required:"true" enum:"FlowAssociationResourceType"` +} + +// 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 GetFlowAssociationInput) 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 GetFlowAssociationInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GetFlowAssociationInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "GetFlowAssociationInput"} + if s.InstanceId == nil { + invalidParams.Add(request.NewErrParamRequired("InstanceId")) + } + if s.InstanceId != nil && len(*s.InstanceId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("InstanceId", 1)) + } + if s.ResourceId == nil { + invalidParams.Add(request.NewErrParamRequired("ResourceId")) + } + if s.ResourceId != nil && len(*s.ResourceId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ResourceId", 1)) + } + if s.ResourceType == nil { + invalidParams.Add(request.NewErrParamRequired("ResourceType")) + } + if s.ResourceType != nil && len(*s.ResourceType) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ResourceType", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetInstanceId sets the InstanceId field's value. +func (s *GetFlowAssociationInput) SetInstanceId(v string) *GetFlowAssociationInput { + s.InstanceId = &v + return s +} + +// SetResourceId sets the ResourceId field's value. +func (s *GetFlowAssociationInput) SetResourceId(v string) *GetFlowAssociationInput { + s.ResourceId = &v + return s +} + +// SetResourceType sets the ResourceType field's value. +func (s *GetFlowAssociationInput) SetResourceType(v string) *GetFlowAssociationInput { + s.ResourceType = &v + return s +} + +type GetFlowAssociationOutput struct { + _ struct{} `type:"structure"` + + // The identifier of the flow. + FlowId *string `type:"string"` + + // The identifier of the resource. + ResourceId *string `type:"string"` + + // A valid resource type. + ResourceType *string `type:"string" enum:"FlowAssociationResourceType"` +} + +// 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 GetFlowAssociationOutput) 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 GetFlowAssociationOutput) GoString() string { + return s.String() +} + +// SetFlowId sets the FlowId field's value. +func (s *GetFlowAssociationOutput) SetFlowId(v string) *GetFlowAssociationOutput { + s.FlowId = &v + return s +} + +// SetResourceId sets the ResourceId field's value. +func (s *GetFlowAssociationOutput) SetResourceId(v string) *GetFlowAssociationOutput { + s.ResourceId = &v + return s +} + +// SetResourceType sets the ResourceType field's value. +func (s *GetFlowAssociationOutput) SetResourceType(v string) *GetFlowAssociationOutput { + s.ResourceType = &v + return s +} + type GetMetricDataInput struct { _ struct{} `type:"structure"` @@ -40726,7 +43280,7 @@ type GetMetricDataV2Input struct { // * Filter keys: A maximum of 5 filter keys are supported in a single request. // Valid filter keys: QUEUE | ROUTING_PROFILE | AGENT | CHANNEL | AGENT_HIERARCHY_LEVEL_ONE // | AGENT_HIERARCHY_LEVEL_TWO | AGENT_HIERARCHY_LEVEL_THREE | AGENT_HIERARCHY_LEVEL_FOUR - // | AGENT_HIERARCHY_LEVEL_FIVE | FEATURE + // | AGENT_HIERARCHY_LEVEL_FIVE | FEATURE | contact/segmentAttributes/connect:Subtype // // * Filter values: A maximum of 100 filter values are supported in a single // request. VOICE, CHAT, and TASK are valid filterValue for the CHANNEL filter @@ -40735,7 +43289,9 @@ type GetMetricDataV2Input struct { // profiles for a total of 100 filter values, along with 3 channel filters. // contact_lens_conversational_analytics is a valid filterValue for the FEATURE // filter key. It is available only to contacts analyzed by Contact Lens - // conversational analytics. + // conversational analytics. connect:Chat, connect:SMS, connect:Telephony, + // and connect:WebRTC are valid filterValue examples (not exhaustive) for + // the contact/segmentAttributes/connect:Subtype filter key. // // Filters is a required field Filters []*FilterV2 `min:"1" type:"list" required:"true"` @@ -40749,7 +43305,7 @@ type GetMetricDataV2Input struct { // // Valid grouping keys: QUEUE | ROUTING_PROFILE | AGENT | CHANNEL | AGENT_HIERARCHY_LEVEL_ONE // | AGENT_HIERARCHY_LEVEL_TWO | AGENT_HIERARCHY_LEVEL_THREE | AGENT_HIERARCHY_LEVEL_FOUR - // | AGENT_HIERARCHY_LEVEL_FIVE + // | AGENT_HIERARCHY_LEVEL_FIVE, contact/segmentAttributes/connect:Subtype Groupings []*string `type:"list"` // The interval period and timezone to apply to returned metrics. @@ -40785,7 +43341,7 @@ type GetMetricDataV2Input struct { // Unit: Percent // // Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent - // Hierarchy + // Hierarchy, Feature, contact/segmentAttributes/connect:Subtype // // AGENT_ADHERENT_TIME // @@ -40798,6 +43354,20 @@ type GetMetricDataV2Input struct { // Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent // Hierarchy // + // AGENT_ANSWER_RATE + // + // Unit: Percent + // + // Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent + // Hierarchy + // + // AGENT_NON_ADHERENT_TIME + // + // Unit: Seconds + // + // Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent + // Hierarchy + // // AGENT_NON_RESPONSE // // Unit: Count @@ -40847,14 +43417,16 @@ type GetMetricDataV2Input struct { // Unit: Seconds // // Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent - // Hierarchy + // Hierarchy, Feature, contact/segmentAttributes/connect:Subtype // // AVG_AFTER_CONTACT_WORK_TIME // // Unit: Seconds // + // Valid metric filter key: INITIATION_METHOD + // // Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent - // Hierarchy, Feature + // Hierarchy, Feature, contact/segmentAttributes/connect:Subtype // // Feature is a valid filter but not a valid grouping. // @@ -40875,7 +43447,7 @@ type GetMetricDataV2Input struct { // Unit: Seconds // // Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent - // Hierarchy, Feature + // Hierarchy, Feature, contact/segmentAttributes/connect:Subtype // // Feature is a valid filter but not a valid grouping. // @@ -40884,7 +43456,7 @@ type GetMetricDataV2Input struct { // Unit: Seconds // // Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent - // Hierarchy + // Hierarchy, Feature, contact/segmentAttributes/connect:Subtype // // AVG_GREETING_TIME_AGENT // @@ -40894,14 +43466,14 @@ type GetMetricDataV2Input struct { // Unit: Seconds // // Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent - // Hierarchy + // Hierarchy, contact/segmentAttributes/connect:Subtype // // AVG_HANDLE_TIME // // Unit: Seconds // // Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent - // Hierarchy, Feature + // Hierarchy, Feature, contact/segmentAttributes/connect:Subtype // // Feature is a valid filter but not a valid grouping. // @@ -40910,7 +43482,7 @@ type GetMetricDataV2Input struct { // Unit: Seconds // // Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent - // Hierarchy, Feature + // Hierarchy, Feature, contact/segmentAttributes/connect:Subtype // // Feature is a valid filter but not a valid grouping. // @@ -40919,14 +43491,14 @@ type GetMetricDataV2Input struct { // Unit: Seconds // // Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent - // Hierarchy + // Hierarchy, contact/segmentAttributes/connect:Subtype // // AVG_HOLDS // // Unit: Count // // Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent - // Hierarchy, Feature + // Hierarchy, Feature, contact/segmentAttributes/connect:Subtype // // Feature is a valid filter but not a valid grouping. // @@ -40935,13 +43507,15 @@ type GetMetricDataV2Input struct { // Unit: Seconds // // Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent - // Hierarchy + // Hierarchy, contact/segmentAttributes/connect:Subtype // // AVG_INTERACTION_TIME // // Unit: Seconds // - // Valid groupings and filters: Queue, Channel, Routing Profile, Feature + // Valid metric filter key: INITIATION_METHOD + // + // Valid groupings and filters: Queue, Channel, Routing Profile, Feature, contact/segmentAttributes/connect:Subtype // // Feature is a valid filter but not a valid grouping. // @@ -40953,7 +43527,7 @@ type GetMetricDataV2Input struct { // Unit: Count // // Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent - // Hierarchy + // Hierarchy, contact/segmentAttributes/connect:Subtype // // AVG_INTERRUPTION_TIME_AGENT // @@ -40963,7 +43537,7 @@ type GetMetricDataV2Input struct { // Unit: Seconds // // Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent - // Hierarchy + // Hierarchy, contact/segmentAttributes/connect:Subtype // // AVG_NON_TALK_TIME // @@ -40973,13 +43547,13 @@ type GetMetricDataV2Input struct { // Unit: Seconds // // Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent - // Hierarchy + // Hierarchy, contact/segmentAttributes/connect:Subtype // // AVG_QUEUE_ANSWER_TIME // // Unit: Seconds // - // Valid groupings and filters: Queue, Channel, Routing Profile, Feature + // Valid groupings and filters: Queue, Channel, Routing Profile, Feature, contact/segmentAttributes/connect:Subtype // // Feature is a valid filter but not a valid grouping. // @@ -40987,7 +43561,7 @@ type GetMetricDataV2Input struct { // // Unit: Seconds // - // Valid groupings and filters: Queue, Channel, Routing Profile + // Valid groupings and filters: Queue, Channel, Routing Profile, contact/segmentAttributes/connect:Subtype // // AVG_TALK_TIME // @@ -40997,7 +43571,7 @@ type GetMetricDataV2Input struct { // Unit: Seconds // // Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent - // Hierarchy + // Hierarchy, contact/segmentAttributes/connect:Subtype // // AVG_TALK_TIME_AGENT // @@ -41007,7 +43581,7 @@ type GetMetricDataV2Input struct { // Unit: Seconds // // Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent - // Hierarchy + // Hierarchy, contact/segmentAttributes/connect:Subtype // // AVG_TALK_TIME_CUSTOMER // @@ -41017,14 +43591,14 @@ type GetMetricDataV2Input struct { // Unit: Seconds // // Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent - // Hierarchy + // Hierarchy, contact/segmentAttributes/connect:Subtype // // CONTACTS_ABANDONED // // Unit: Count // // Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent - // Hierarchy + // Hierarchy, contact/segmentAttributes/connect:Subtype // // CONTACTS_CREATED // @@ -41032,7 +43606,7 @@ type GetMetricDataV2Input struct { // // Valid metric filter key: INITIATION_METHOD // - // Valid groupings and filters: Queue, Channel, Routing Profile, Feature + // Valid groupings and filters: Queue, Channel, Routing Profile, Feature, contact/segmentAttributes/connect:Subtype // // Feature is a valid filter but not a valid grouping. // @@ -41043,7 +43617,7 @@ type GetMetricDataV2Input struct { // Valid metric filter key: INITIATION_METHOD, DISCONNECT_REASON // // Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent - // Hierarchy, Feature + // Hierarchy, Feature, contact/segmentAttributes/connect:Subtype // // Feature is a valid filter but not a valid grouping. // @@ -41052,20 +43626,55 @@ type GetMetricDataV2Input struct { // Unit: Count // // Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent + // Hierarchy, contact/segmentAttributes/connect:Subtype + // + // CONTACTS_ON_HOLD_AGENT_DISCONNECT + // + // Unit: Count + // + // Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent // Hierarchy // - // CONTACTS_QUEUED + // CONTACTS_ON_HOLD_CUSTOMER_DISCONNECT // // Unit: Count // // Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent // Hierarchy // + // CONTACTS_PUT_ON_HOLD + // + // Unit: Count + // + // Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent + // Hierarchy + // + // CONTACTS_TRANSFERRED_OUT_EXTERNAL + // + // Unit: Count + // + // Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent + // Hierarchy + // + // CONTACTS_TRANSFERRED_OUT_INTERNAL + // + // Unit: Percent + // + // Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent + // Hierarchy + // + // CONTACTS_QUEUED + // + // Unit: Count + // + // Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent + // Hierarchy, contact/segmentAttributes/connect:Subtype + // // CONTACTS_RESOLVED_IN_X // // Unit: Count // - // Valid groupings and filters: Queue, Channel, Routing Profile + // Valid groupings and filters: Queue, Channel, Routing Profile, contact/segmentAttributes/connect:Subtype // // Threshold: For ThresholdValue enter any whole number from 1 to 604800 (inclusive), // in seconds. For Comparison, you must enter LT (for "Less than"). @@ -41075,7 +43684,7 @@ type GetMetricDataV2Input struct { // Unit: Count // // Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent - // Hierarchy, Feature + // Hierarchy, Feature, contact/segmentAttributes/connect:Subtype // // Feature is a valid filter but not a valid grouping. // @@ -41084,21 +43693,21 @@ type GetMetricDataV2Input struct { // Unit: Count // // Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent - // Hierarchy + // Hierarchy, contact/segmentAttributes/connect:Subtype // // CONTACTS_TRANSFERRED_OUT_FROM_QUEUE // // Unit: Count // // Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent - // Hierarchy + // Hierarchy, contact/segmentAttributes/connect:Subtype // // MAX_QUEUED_TIME // // Unit: Seconds // // Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent - // Hierarchy + // Hierarchy, contact/segmentAttributes/connect:Subtype // // PERCENT_NON_TALK_TIME // @@ -41108,7 +43717,7 @@ type GetMetricDataV2Input struct { // Unit: Percentage // // Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent - // Hierarchy + // Hierarchy, contact/segmentAttributes/connect:Subtype // // PERCENT_TALK_TIME // @@ -41118,7 +43727,7 @@ type GetMetricDataV2Input struct { // Unit: Percentage // // Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent - // Hierarchy + // Hierarchy, contact/segmentAttributes/connect:Subtype // // PERCENT_TALK_TIME_AGENT // @@ -41128,7 +43737,7 @@ type GetMetricDataV2Input struct { // Unit: Percentage // // Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent - // Hierarchy + // Hierarchy, contact/segmentAttributes/connect:Subtype // // PERCENT_TALK_TIME_CUSTOMER // @@ -41138,7 +43747,7 @@ type GetMetricDataV2Input struct { // Unit: Percentage // // Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent - // Hierarchy + // Hierarchy, contact/segmentAttributes/connect:Subtype // // SERVICE_LEVEL // @@ -41151,11 +43760,45 @@ type GetMetricDataV2Input struct { // Threshold: For ThresholdValue, enter any whole number from 1 to 604800 (inclusive), // in seconds. For Comparison, you must enter LT (for "Less than"). // + // SUM_AFTER_CONTACT_WORK_TIME + // + // Unit: Seconds + // + // Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent + // Hierarchy + // + // SUM_CONNECTING_TIME_AGENT + // + // Unit: Seconds + // + // Valid metric filter key: INITIATION_METHOD. This metric only supports the + // following filter keys as INITIATION_METHOD: INBOUND | OUTBOUND | CALLBACK + // | API + // + // Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent + // Hierarchy + // + // The Negate key in Metric Level Filters is not applicable for this metric. + // + // SUM_CONTACT_FLOW_TIME + // + // Unit: Seconds + // + // Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent + // Hierarchy + // + // SUM_CONTACT_TIME_AGENT + // + // Unit: Seconds + // + // Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent + // Hierarchy + // // SUM_CONTACTS_ANSWERED_IN_X // // Unit: Count // - // Valid groupings and filters: Queue, Channel, Routing Profile + // Valid groupings and filters: Queue, Channel, Routing Profile, contact/segmentAttributes/connect:Subtype // // Threshold: For ThresholdValue, enter any whole number from 1 to 604800 (inclusive), // in seconds. For Comparison, you must enter LT (for "Less than"). @@ -41164,7 +43807,7 @@ type GetMetricDataV2Input struct { // // Unit: Count // - // Valid groupings and filters: Queue, Channel, Routing Profile + // Valid groupings and filters: Queue, Channel, Routing Profile, contact/segmentAttributes/connect:Subtype // // Threshold: For ThresholdValue, enter any whole number from 1 to 604800 (inclusive), // in seconds. For Comparison, you must enter LT (for "Less than"). @@ -41175,13 +43818,67 @@ type GetMetricDataV2Input struct { // // Unit: Count // - // Valid groupings and filters: Queue, Channel, Routing Profile + // Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent + // Hierarchy, contact/segmentAttributes/connect:Subtype + // + // SUM_ERROR_STATUS_TIME_AGENT + // + // Unit: Seconds + // + // Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent + // Hierarchy + // + // SUM_HANDLE_TIME + // + // Unit: Seconds + // + // Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent + // Hierarchy + // + // SUM_HOLD_TIME + // + // Unit: Count + // + // Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent + // Hierarchy + // + // SUM_IDLE_TIME_AGENT + // + // Unit: Seconds + // + // Valid groupings and filters: Routing Profile, Agent, Agent Hierarchy + // + // SUM_INTERACTION_AND_HOLD_TIME + // + // Unit: Seconds + // + // Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent + // Hierarchy + // + // SUM_INTERACTION_TIME + // + // Unit: Seconds + // + // Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent + // Hierarchy + // + // SUM_NON_PRODUCTIVE_TIME_AGENT + // + // Unit: Seconds + // + // Valid groupings and filters: Routing Profile, Agent, Agent Hierarchy + // + // SUM_ONLINE_TIME_AGENT + // + // Unit: Seconds + // + // Valid groupings and filters: Routing Profile, Agent, Agent Hierarchy // // SUM_RETRY_CALLBACK_ATTEMPTS // // Unit: Count // - // Valid groupings and filters: Queue, Channel, Routing Profile + // Valid groupings and filters: Queue, Channel, Routing Profile, contact/segmentAttributes/connect:Subtype // // Metrics is a required field Metrics []*MetricV2 `type:"list" required:"true"` @@ -43126,6 +45823,147 @@ func (s *IdempotencyException) RequestID() string { return s.RespMetadata.RequestID } +type ImportPhoneNumberInput 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 `type:"string" idempotencyToken:"true"` + + // The identifier of the Amazon Connect instance. You can find the instance + // ID (https://docs.aws.amazon.com/connect/latest/adminguide/find-instance-arn.html) + // in the Amazon Resource Name (ARN) of the instance. + // + // InstanceId is a required field + InstanceId *string `min:"1" type:"string" required:"true"` + + // The description of the phone number. + PhoneNumberDescription *string `type:"string"` + + // The claimed phone number ARN being imported from the external service, such + // as Amazon Pinpoint. If it is from Amazon Pinpoint, it looks like the ARN + // of the phone number to import from Amazon Pinpoint. + // + // SourcePhoneNumberArn is a required field + SourcePhoneNumberArn *string `type:"string" required:"true"` + + // The tags used to organize, track, or control access for this resource. For + // example, { "tags": {"key1":"value1", "key2":"value2"} }. + Tags map[string]*string `min:"1" 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 ImportPhoneNumberInput) 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 ImportPhoneNumberInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ImportPhoneNumberInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ImportPhoneNumberInput"} + if s.InstanceId == nil { + invalidParams.Add(request.NewErrParamRequired("InstanceId")) + } + if s.InstanceId != nil && len(*s.InstanceId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("InstanceId", 1)) + } + if s.SourcePhoneNumberArn == nil { + invalidParams.Add(request.NewErrParamRequired("SourcePhoneNumberArn")) + } + if s.Tags != nil && len(s.Tags) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Tags", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetClientToken sets the ClientToken field's value. +func (s *ImportPhoneNumberInput) SetClientToken(v string) *ImportPhoneNumberInput { + s.ClientToken = &v + return s +} + +// SetInstanceId sets the InstanceId field's value. +func (s *ImportPhoneNumberInput) SetInstanceId(v string) *ImportPhoneNumberInput { + s.InstanceId = &v + return s +} + +// SetPhoneNumberDescription sets the PhoneNumberDescription field's value. +func (s *ImportPhoneNumberInput) SetPhoneNumberDescription(v string) *ImportPhoneNumberInput { + s.PhoneNumberDescription = &v + return s +} + +// SetSourcePhoneNumberArn sets the SourcePhoneNumberArn field's value. +func (s *ImportPhoneNumberInput) SetSourcePhoneNumberArn(v string) *ImportPhoneNumberInput { + s.SourcePhoneNumberArn = &v + return s +} + +// SetTags sets the Tags field's value. +func (s *ImportPhoneNumberInput) SetTags(v map[string]*string) *ImportPhoneNumberInput { + s.Tags = v + return s +} + +type ImportPhoneNumberOutput struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the phone number. + PhoneNumberArn *string `type:"string"` + + // A unique identifier for the phone number. + PhoneNumberId *string `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 ImportPhoneNumberOutput) 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 ImportPhoneNumberOutput) GoString() string { + return s.String() +} + +// SetPhoneNumberArn sets the PhoneNumberArn field's value. +func (s *ImportPhoneNumberOutput) SetPhoneNumberArn(v string) *ImportPhoneNumberOutput { + s.PhoneNumberArn = &v + return s +} + +// SetPhoneNumberId sets the PhoneNumberId field's value. +func (s *ImportPhoneNumberOutput) SetPhoneNumberId(v string) *ImportPhoneNumberOutput { + s.PhoneNumberId = &v + return s +} + // The Amazon Connect instance. type Instance struct { _ struct{} `type:"structure"` @@ -44574,6 +47412,133 @@ func (s *ListAgentStatusesOutput) SetNextToken(v string) *ListAgentStatusesOutpu return s } +type ListAnalyticsDataAssociationsInput struct { + _ struct{} `type:"structure" nopayload:"true"` + + // The identifier of the dataset to get the association status. + DataSetId *string `location:"querystring" locationName:"DataSetId" min:"1" type:"string"` + + // The identifier of the Amazon Connect instance. You can find the instance + // ID (https://docs.aws.amazon.com/connect/latest/adminguide/find-instance-arn.html) + // in the Amazon Resource Name (ARN) of the instance. + // + // InstanceId is a required field + InstanceId *string `location:"uri" locationName:"InstanceId" min:"1" 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" 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 ListAnalyticsDataAssociationsInput) 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 ListAnalyticsDataAssociationsInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListAnalyticsDataAssociationsInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ListAnalyticsDataAssociationsInput"} + if s.DataSetId != nil && len(*s.DataSetId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("DataSetId", 1)) + } + if s.InstanceId == nil { + invalidParams.Add(request.NewErrParamRequired("InstanceId")) + } + if s.InstanceId != nil && len(*s.InstanceId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("InstanceId", 1)) + } + if s.MaxResults != nil && *s.MaxResults < 1 { + invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetDataSetId sets the DataSetId field's value. +func (s *ListAnalyticsDataAssociationsInput) SetDataSetId(v string) *ListAnalyticsDataAssociationsInput { + s.DataSetId = &v + return s +} + +// SetInstanceId sets the InstanceId field's value. +func (s *ListAnalyticsDataAssociationsInput) SetInstanceId(v string) *ListAnalyticsDataAssociationsInput { + s.InstanceId = &v + return s +} + +// SetMaxResults sets the MaxResults field's value. +func (s *ListAnalyticsDataAssociationsInput) SetMaxResults(v int64) *ListAnalyticsDataAssociationsInput { + s.MaxResults = &v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *ListAnalyticsDataAssociationsInput) SetNextToken(v string) *ListAnalyticsDataAssociationsInput { + s.NextToken = &v + return s +} + +type ListAnalyticsDataAssociationsOutput struct { + _ struct{} `type:"structure"` + + // If there are additional results, this is the token for the next set of results. + NextToken *string `type:"string"` + + // An array of successful results: DataSetId, TargetAccountId, ResourceShareId, + // ResourceShareArn. This is a paginated API, so nextToken is given if there + // are more results to be returned. + Results []*AnalyticsDataAssociationResult `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 ListAnalyticsDataAssociationsOutput) 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 ListAnalyticsDataAssociationsOutput) GoString() string { + return s.String() +} + +// SetNextToken sets the NextToken field's value. +func (s *ListAnalyticsDataAssociationsOutput) SetNextToken(v string) *ListAnalyticsDataAssociationsOutput { + s.NextToken = &v + return s +} + +// SetResults sets the Results field's value. +func (s *ListAnalyticsDataAssociationsOutput) SetResults(v []*AnalyticsDataAssociationResult) *ListAnalyticsDataAssociationsOutput { + s.Results = v + return s +} + type ListApprovedOriginsInput struct { _ struct{} `type:"structure" nopayload:"true"` @@ -45697,6 +48662,128 @@ func (s *ListEvaluationFormsOutput) SetNextToken(v string) *ListEvaluationFormsO return s } +type ListFlowAssociationsInput struct { + _ struct{} `type:"structure" nopayload:"true"` + + // The identifier of the Amazon Connect instance. You can find the instance + // ID (https://docs.aws.amazon.com/connect/latest/adminguide/find-instance-arn.html) + // in the Amazon Resource Name (ARN) of the instance. + // + // InstanceId is a required field + InstanceId *string `location:"uri" locationName:"InstanceId" min:"1" 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" type:"string"` + + // A valid resource type. + ResourceType *string `location:"querystring" locationName:"ResourceType" type:"string" enum:"ListFlowAssociationResourceType"` +} + +// 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 ListFlowAssociationsInput) 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 ListFlowAssociationsInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListFlowAssociationsInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ListFlowAssociationsInput"} + if s.InstanceId == nil { + invalidParams.Add(request.NewErrParamRequired("InstanceId")) + } + if s.InstanceId != nil && len(*s.InstanceId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("InstanceId", 1)) + } + if s.MaxResults != nil && *s.MaxResults < 1 { + invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetInstanceId sets the InstanceId field's value. +func (s *ListFlowAssociationsInput) SetInstanceId(v string) *ListFlowAssociationsInput { + s.InstanceId = &v + return s +} + +// SetMaxResults sets the MaxResults field's value. +func (s *ListFlowAssociationsInput) SetMaxResults(v int64) *ListFlowAssociationsInput { + s.MaxResults = &v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *ListFlowAssociationsInput) SetNextToken(v string) *ListFlowAssociationsInput { + s.NextToken = &v + return s +} + +// SetResourceType sets the ResourceType field's value. +func (s *ListFlowAssociationsInput) SetResourceType(v string) *ListFlowAssociationsInput { + s.ResourceType = &v + return s +} + +type ListFlowAssociationsOutput struct { + _ struct{} `type:"structure"` + + // Summary of flow associations. + FlowAssociationSummaryList []*FlowAssociationSummary `type:"list"` + + // If there are additional results, this is the token for the next set of results. + NextToken *string `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 ListFlowAssociationsOutput) 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 ListFlowAssociationsOutput) GoString() string { + return s.String() +} + +// SetFlowAssociationSummaryList sets the FlowAssociationSummaryList field's value. +func (s *ListFlowAssociationsOutput) SetFlowAssociationSummaryList(v []*FlowAssociationSummary) *ListFlowAssociationsOutput { + s.FlowAssociationSummaryList = v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *ListFlowAssociationsOutput) SetNextToken(v string) *ListFlowAssociationsOutput { + s.NextToken = &v + return s +} + type ListHoursOfOperationsInput struct { _ struct{} `type:"structure" nopayload:"true"` @@ -46661,12 +49748,20 @@ type ListPhoneNumbersSummary struct { // The ISO country code. PhoneNumberCountryCode *string `type:"string" enum:"PhoneNumberCountryCode"` + // The description of the phone number. + PhoneNumberDescription *string `type:"string"` + // A unique identifier for the phone number. PhoneNumberId *string `type:"string"` // The type of phone number. PhoneNumberType *string `type:"string" enum:"PhoneNumberType"` + // The claimed phone number ARN that was previously imported from the external + // service, such as Amazon Pinpoint. If it is from Amazon Pinpoint, it looks + // like the ARN of the phone number that was imported from Amazon Pinpoint. + SourcePhoneNumberArn *string `type:"string"` + // The Amazon Resource Name (ARN) for Amazon Connect instances or traffic distribution // groups that phone number inbound traffic is routed through. TargetArn *string `type:"string"` @@ -46714,6 +49809,12 @@ func (s *ListPhoneNumbersSummary) SetPhoneNumberCountryCode(v string) *ListPhone return s } +// SetPhoneNumberDescription sets the PhoneNumberDescription field's value. +func (s *ListPhoneNumbersSummary) SetPhoneNumberDescription(v string) *ListPhoneNumbersSummary { + s.PhoneNumberDescription = &v + return s +} + // SetPhoneNumberId sets the PhoneNumberId field's value. func (s *ListPhoneNumbersSummary) SetPhoneNumberId(v string) *ListPhoneNumbersSummary { s.PhoneNumberId = &v @@ -46726,6 +49827,12 @@ func (s *ListPhoneNumbersSummary) SetPhoneNumberType(v string) *ListPhoneNumbers return s } +// SetSourcePhoneNumberArn sets the SourcePhoneNumberArn field's value. +func (s *ListPhoneNumbersSummary) SetSourcePhoneNumberArn(v string) *ListPhoneNumbersSummary { + s.SourcePhoneNumberArn = &v + return s +} + // SetTargetArn sets the TargetArn field's value. func (s *ListPhoneNumbersSummary) SetTargetArn(v string) *ListPhoneNumbersSummary { s.TargetArn = &v @@ -47290,9 +50397,9 @@ type ListQuickConnectsInput struct { // response in the next request to retrieve the next set of results. NextToken *string `location:"querystring" locationName:"nextToken" type:"string"` - // The type of quick connect. In the Amazon Connect console, when you create - // a quick connect, you are prompted to assign one of the following types: Agent - // (USER), External (PHONE_NUMBER), or Queue (QUEUE). + // The type of quick connect. In the Amazon Connect admin website, when you + // create a quick connect, you are prompted to assign one of the following types: + // Agent (USER), External (PHONE_NUMBER), or Queue (QUEUE). QuickConnectTypes []*string `location:"querystring" locationName:"QuickConnectTypes" type:"list" enum:"QuickConnectType"` } @@ -47397,6 +50504,193 @@ func (s *ListQuickConnectsOutput) SetQuickConnectSummaryList(v []*QuickConnectSu return s } +type ListRealtimeContactAnalysisSegmentsV2Input struct { + _ struct{} `type:"structure"` + + // The identifier of the contact in this instance of Amazon Connect. + // + // ContactId is a required field + ContactId *string `location:"uri" locationName:"ContactId" min:"1" type:"string" required:"true"` + + // The identifier of the Amazon Connect instance. You can find the instance + // ID (https://docs.aws.amazon.com/connect/latest/adminguide/find-instance-arn.html) + // in the Amazon Resource Name (ARN) of the instance. + // + // InstanceId is a required field + InstanceId *string `location:"uri" locationName:"InstanceId" min:"1" type:"string" required:"true"` + + // The maximum number of results to return per page. + MaxResults *int64 `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 `min:"1" type:"string"` + + // The Contact Lens output type to be returned. + // + // OutputType is a required field + OutputType *string `type:"string" required:"true" enum:"RealTimeContactAnalysisOutputType"` + + // Enum with segment types . Each value corresponds to a segment type returned + // in the segments list of the API. Each segment type has its own structure. + // Different channels may have different sets of supported segment types. + // + // SegmentTypes is a required field + SegmentTypes []*string `type:"list" required:"true" enum:"RealTimeContactAnalysisSegmentType"` +} + +// 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 ListRealtimeContactAnalysisSegmentsV2Input) 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 ListRealtimeContactAnalysisSegmentsV2Input) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListRealtimeContactAnalysisSegmentsV2Input) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ListRealtimeContactAnalysisSegmentsV2Input"} + if s.ContactId == nil { + invalidParams.Add(request.NewErrParamRequired("ContactId")) + } + if s.ContactId != nil && len(*s.ContactId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ContactId", 1)) + } + if s.InstanceId == nil { + invalidParams.Add(request.NewErrParamRequired("InstanceId")) + } + if s.InstanceId != nil && len(*s.InstanceId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("InstanceId", 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.OutputType == nil { + invalidParams.Add(request.NewErrParamRequired("OutputType")) + } + if s.SegmentTypes == nil { + invalidParams.Add(request.NewErrParamRequired("SegmentTypes")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetContactId sets the ContactId field's value. +func (s *ListRealtimeContactAnalysisSegmentsV2Input) SetContactId(v string) *ListRealtimeContactAnalysisSegmentsV2Input { + s.ContactId = &v + return s +} + +// SetInstanceId sets the InstanceId field's value. +func (s *ListRealtimeContactAnalysisSegmentsV2Input) SetInstanceId(v string) *ListRealtimeContactAnalysisSegmentsV2Input { + s.InstanceId = &v + return s +} + +// SetMaxResults sets the MaxResults field's value. +func (s *ListRealtimeContactAnalysisSegmentsV2Input) SetMaxResults(v int64) *ListRealtimeContactAnalysisSegmentsV2Input { + s.MaxResults = &v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *ListRealtimeContactAnalysisSegmentsV2Input) SetNextToken(v string) *ListRealtimeContactAnalysisSegmentsV2Input { + s.NextToken = &v + return s +} + +// SetOutputType sets the OutputType field's value. +func (s *ListRealtimeContactAnalysisSegmentsV2Input) SetOutputType(v string) *ListRealtimeContactAnalysisSegmentsV2Input { + s.OutputType = &v + return s +} + +// SetSegmentTypes sets the SegmentTypes field's value. +func (s *ListRealtimeContactAnalysisSegmentsV2Input) SetSegmentTypes(v []*string) *ListRealtimeContactAnalysisSegmentsV2Input { + s.SegmentTypes = v + return s +} + +type ListRealtimeContactAnalysisSegmentsV2Output struct { + _ struct{} `type:"structure"` + + // The channel of the contact. Voice will not be returned. + // + // Channel is a required field + Channel *string `type:"string" required:"true" enum:"RealTimeContactAnalysisSupportedChannel"` + + // If there are additional results, this is the token for the next set of results. + NextToken *string `min:"1" type:"string"` + + // An analyzed transcript or category. + // + // Segments is a required field + Segments []*RealtimeContactAnalysisSegment `type:"list" required:"true"` + + // Status of real-time contact analysis. + // + // Status is a required field + Status *string `type:"string" required:"true" enum:"RealTimeContactAnalysisStatus"` +} + +// 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 ListRealtimeContactAnalysisSegmentsV2Output) 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 ListRealtimeContactAnalysisSegmentsV2Output) GoString() string { + return s.String() +} + +// SetChannel sets the Channel field's value. +func (s *ListRealtimeContactAnalysisSegmentsV2Output) SetChannel(v string) *ListRealtimeContactAnalysisSegmentsV2Output { + s.Channel = &v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *ListRealtimeContactAnalysisSegmentsV2Output) SetNextToken(v string) *ListRealtimeContactAnalysisSegmentsV2Output { + s.NextToken = &v + return s +} + +// SetSegments sets the Segments field's value. +func (s *ListRealtimeContactAnalysisSegmentsV2Output) SetSegments(v []*RealtimeContactAnalysisSegment) *ListRealtimeContactAnalysisSegmentsV2Output { + s.Segments = v + return s +} + +// SetStatus sets the Status field's value. +func (s *ListRealtimeContactAnalysisSegmentsV2Output) SetStatus(v string) *ListRealtimeContactAnalysisSegmentsV2Output { + s.Status = &v + return s +} + type ListRoutingProfileQueuesInput struct { _ struct{} `type:"structure" nopayload:"true"` @@ -49540,6 +52834,166 @@ func (s *MediaConcurrency) SetCrossChannelBehavior(v *CrossChannelBehavior) *Med return s } +// A set of endpoints used by clients to connect to the media service group +// for an Amazon Chime SDK meeting. +type MediaPlacement struct { + _ struct{} `type:"structure"` + + // The audio fallback URL. + AudioFallbackUrl *string `min:"1" type:"string"` + + // The audio host URL. + AudioHostUrl *string `min:"1" type:"string"` + + // The event ingestion URL to which you send client meeting events. + EventIngestionUrl *string `min:"1" type:"string"` + + // The signaling URL. + SignalingUrl *string `min:"1" type:"string"` + + // The turn control URL. + TurnControlUrl *string `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 MediaPlacement) 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 MediaPlacement) GoString() string { + return s.String() +} + +// SetAudioFallbackUrl sets the AudioFallbackUrl field's value. +func (s *MediaPlacement) SetAudioFallbackUrl(v string) *MediaPlacement { + s.AudioFallbackUrl = &v + return s +} + +// SetAudioHostUrl sets the AudioHostUrl field's value. +func (s *MediaPlacement) SetAudioHostUrl(v string) *MediaPlacement { + s.AudioHostUrl = &v + return s +} + +// SetEventIngestionUrl sets the EventIngestionUrl field's value. +func (s *MediaPlacement) SetEventIngestionUrl(v string) *MediaPlacement { + s.EventIngestionUrl = &v + return s +} + +// SetSignalingUrl sets the SignalingUrl field's value. +func (s *MediaPlacement) SetSignalingUrl(v string) *MediaPlacement { + s.SignalingUrl = &v + return s +} + +// SetTurnControlUrl sets the TurnControlUrl field's value. +func (s *MediaPlacement) SetTurnControlUrl(v string) *MediaPlacement { + s.TurnControlUrl = &v + return s +} + +// A meeting created using the Amazon Chime SDK. +type Meeting struct { + _ struct{} `type:"structure"` + + // The media placement for the meeting. + MediaPlacement *MediaPlacement `type:"structure"` + + // The Amazon Web Services Region in which you create the meeting. + MediaRegion *string `type:"string"` + + // The configuration settings of the features available to a meeting. + MeetingFeatures *MeetingFeaturesConfiguration `type:"structure"` + + // The Amazon Chime SDK meeting ID. + MeetingId *string `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 Meeting) 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 Meeting) GoString() string { + return s.String() +} + +// SetMediaPlacement sets the MediaPlacement field's value. +func (s *Meeting) SetMediaPlacement(v *MediaPlacement) *Meeting { + s.MediaPlacement = v + return s +} + +// SetMediaRegion sets the MediaRegion field's value. +func (s *Meeting) SetMediaRegion(v string) *Meeting { + s.MediaRegion = &v + return s +} + +// SetMeetingFeatures sets the MeetingFeatures field's value. +func (s *Meeting) SetMeetingFeatures(v *MeetingFeaturesConfiguration) *Meeting { + s.MeetingFeatures = v + return s +} + +// SetMeetingId sets the MeetingId field's value. +func (s *Meeting) SetMeetingId(v string) *Meeting { + s.MeetingId = &v + return s +} + +// The configuration settings of the features available to a meeting. +type MeetingFeaturesConfiguration struct { + _ struct{} `type:"structure"` + + // The configuration settings for the audio features available to a meeting. + Audio *AudioFeatures `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 MeetingFeaturesConfiguration) 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 MeetingFeaturesConfiguration) GoString() string { + return s.String() +} + +// SetAudio sets the Audio field's value. +func (s *MeetingFeaturesConfiguration) SetAudio(v *AudioFeatures) *MeetingFeaturesConfiguration { + s.Audio = v + return s +} + // Contains the name, thresholds, and metric filters. type MetricDataV2 struct { _ struct{} `type:"structure"` @@ -49993,6 +53447,97 @@ func (s *MonitorContactOutput) SetContactId(v string) *MonitorContactOutput { return s } +// Payload of chat properties to apply when starting a new contact. +type NewSessionDetails struct { + _ struct{} `type:"structure"` + + // A custom key-value pair using an attribute map. The attributes are standard + // Amazon Connect attributes. They can be accessed in flows just like any other + // contact attributes. + // + // There can be up to 32,768 UTF-8 bytes across all key-value pairs per contact. + // Attribute keys can include only alphanumeric, dash, and underscore characters. + Attributes map[string]*string `type:"map"` + + // The customer's details. + ParticipantDetails *ParticipantDetails `type:"structure"` + + // The streaming configuration, such as the Amazon SNS streaming endpoint. + StreamingConfiguration *ChatStreamingConfiguration `type:"structure"` + + // The supported chat message content types. Supported types are text/plain, + // text/markdown, application/json, application/vnd.amazonaws.connect.message.interactive, + // and application/vnd.amazonaws.connect.message.interactive.response. + // + // Content types must always contain text/plain. You can then put any other + // supported type in the list. For example, all the following lists are valid + // because they contain text/plain: [text/plain, text/markdown, application/json], + // [text/markdown, text/plain], [text/plain, application/json, application/vnd.amazonaws.connect.message.interactive.response]. + SupportedMessagingContentTypes []*string `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 NewSessionDetails) 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 NewSessionDetails) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *NewSessionDetails) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "NewSessionDetails"} + if s.ParticipantDetails != nil { + if err := s.ParticipantDetails.Validate(); err != nil { + invalidParams.AddNested("ParticipantDetails", err.(request.ErrInvalidParams)) + } + } + if s.StreamingConfiguration != nil { + if err := s.StreamingConfiguration.Validate(); err != nil { + invalidParams.AddNested("StreamingConfiguration", err.(request.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAttributes sets the Attributes field's value. +func (s *NewSessionDetails) SetAttributes(v map[string]*string) *NewSessionDetails { + s.Attributes = v + return s +} + +// SetParticipantDetails sets the ParticipantDetails field's value. +func (s *NewSessionDetails) SetParticipantDetails(v *ParticipantDetails) *NewSessionDetails { + s.ParticipantDetails = v + return s +} + +// SetStreamingConfiguration sets the StreamingConfiguration field's value. +func (s *NewSessionDetails) SetStreamingConfiguration(v *ChatStreamingConfiguration) *NewSessionDetails { + s.StreamingConfiguration = v + return s +} + +// SetSupportedMessagingContentTypes sets the SupportedMessagingContentTypes field's value. +func (s *NewSessionDetails) SetSupportedMessagingContentTypes(v []*string) *NewSessionDetails { + s.SupportedMessagingContentTypes = v + return s +} + // The type of notification recipient. type NotificationRecipientType struct { _ struct{} `type:"structure"` @@ -50265,6 +53810,106 @@ func (s *OutboundContactNotPermittedException) RequestID() string { return s.RespMetadata.RequestID } +// Thrown for analyzed content when requested OutputType was not enabled for +// a given contact. For example, if an OutputType.Raw was requested for a contact +// that had `RedactedOnly` Redaction policy set in Contact flow. +type OutputTypeNotFoundException 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 OutputTypeNotFoundException) 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 OutputTypeNotFoundException) GoString() string { + return s.String() +} + +func newErrorOutputTypeNotFoundException(v protocol.ResponseMetadata) error { + return &OutputTypeNotFoundException{ + RespMetadata: v, + } +} + +// Code returns the exception type name. +func (s *OutputTypeNotFoundException) Code() string { + return "OutputTypeNotFoundException" +} + +// Message returns the exception's message. +func (s *OutputTypeNotFoundException) Message() string { + if s.Message_ != nil { + return *s.Message_ + } + return "" +} + +// OrigErr always returns nil, satisfies awserr.Error interface. +func (s *OutputTypeNotFoundException) OrigErr() error { + return nil +} + +func (s *OutputTypeNotFoundException) 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 *OutputTypeNotFoundException) StatusCode() int { + return s.RespMetadata.StatusCode +} + +// RequestID returns the service's response RequestID for request. +func (s *OutputTypeNotFoundException) RequestID() string { + return s.RespMetadata.RequestID +} + +// The configuration for the allowed capabilities for participants present over +// the call. +type ParticipantCapabilities struct { + _ struct{} `type:"structure"` + + // The configuration having the video sharing capabilities for participants + // over the call. + Video *string `type:"string" enum:"VideoCapability"` +} + +// 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 ParticipantCapabilities) 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 ParticipantCapabilities) GoString() string { + return s.String() +} + +// SetVideo sets the Video field's value. +func (s *ParticipantCapabilities) SetVideo(v string) *ParticipantCapabilities { + s.Video = &v + return s +} + // The customer's details. type ParticipantDetails struct { _ struct{} `type:"structure"` @@ -51863,9 +55508,9 @@ type QuickConnectConfig struct { // The queue configuration. This is required only if QuickConnectType is QUEUE. QueueConfig *QueueQuickConnectConfig `type:"structure"` - // The type of quick connect. In the Amazon Connect console, when you create - // a quick connect, you are prompted to assign one of the following types: Agent - // (USER), External (PHONE_NUMBER), or Queue (QUEUE). + // The type of quick connect. In the Amazon Connect admin website, when you + // create a quick connect, you are prompted to assign one of the following types: + // Agent (USER), External (PHONE_NUMBER), or Queue (QUEUE). // // QuickConnectType is a required field QuickConnectType *string `type:"string" required:"true" enum:"QuickConnectType"` @@ -52053,9 +55698,9 @@ type QuickConnectSummary struct { // The name of the quick connect. Name *string `min:"1" type:"string"` - // The type of quick connect. In the Amazon Connect console, when you create - // a quick connect, you are prompted to assign one of the following types: Agent - // (USER), External (PHONE_NUMBER), or Queue (QUEUE). + // The type of quick connect. In the Amazon Connect admin website, when you + // create a quick connect, you are prompted to assign one of the following types: + // Agent (USER), External (PHONE_NUMBER), or Queue (QUEUE). QuickConnectType *string `type:"string" enum:"QuickConnectType"` } @@ -52160,6 +55805,812 @@ func (s *ReadOnlyFieldInfo) SetId(v *TaskTemplateFieldIdentifier) *ReadOnlyField return s } +// Object that describes attached file. +type RealTimeContactAnalysisAttachment struct { + _ struct{} `type:"structure"` + + // A unique identifier for the attachment. + // + // AttachmentId is a required field + AttachmentId *string `min:"1" type:"string" required:"true"` + + // A case-sensitive name of the attachment being uploaded. Can be redacted. + // + // AttachmentName is a required field + AttachmentName *string `min:"1" type:"string" required:"true"` + + // Describes the MIME file type of the attachment. For a list of supported file + // types, see Feature specifications (https://docs.aws.amazon.com/connect/latest/adminguide/feature-limits.html) + // in the Amazon Connect Administrator Guide. + ContentType *string `min:"1" type:"string"` + + // Status of the attachment. + Status *string `type:"string" enum:"ArtifactStatus"` +} + +// 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 RealTimeContactAnalysisAttachment) 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 RealTimeContactAnalysisAttachment) GoString() string { + return s.String() +} + +// SetAttachmentId sets the AttachmentId field's value. +func (s *RealTimeContactAnalysisAttachment) SetAttachmentId(v string) *RealTimeContactAnalysisAttachment { + s.AttachmentId = &v + return s +} + +// SetAttachmentName sets the AttachmentName field's value. +func (s *RealTimeContactAnalysisAttachment) SetAttachmentName(v string) *RealTimeContactAnalysisAttachment { + s.AttachmentName = &v + return s +} + +// SetContentType sets the ContentType field's value. +func (s *RealTimeContactAnalysisAttachment) SetContentType(v string) *RealTimeContactAnalysisAttachment { + s.ContentType = &v + return s +} + +// SetStatus sets the Status field's value. +func (s *RealTimeContactAnalysisAttachment) SetStatus(v string) *RealTimeContactAnalysisAttachment { + s.Status = &v + return s +} + +// Provides information about the category rule that was matched. +type RealTimeContactAnalysisCategoryDetails struct { + _ struct{} `type:"structure"` + + // List of PointOfInterest - objects describing a single match of a rule. + // + // PointsOfInterest is a required field + PointsOfInterest []*RealTimeContactAnalysisPointOfInterest `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 RealTimeContactAnalysisCategoryDetails) 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 RealTimeContactAnalysisCategoryDetails) GoString() string { + return s.String() +} + +// SetPointsOfInterest sets the PointsOfInterest field's value. +func (s *RealTimeContactAnalysisCategoryDetails) SetPointsOfInterest(v []*RealTimeContactAnalysisPointOfInterest) *RealTimeContactAnalysisCategoryDetails { + s.PointsOfInterest = v + return s +} + +// Begin and end offsets for a part of text. +type RealTimeContactAnalysisCharacterInterval struct { + _ struct{} `type:"structure"` + + // The beginning of the character interval. + // + // BeginOffsetChar is a required field + BeginOffsetChar *int64 `type:"integer" required:"true"` + + // The end of the character interval. + // + // EndOffsetChar is a required field + EndOffsetChar *int64 `type:"integer" 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 RealTimeContactAnalysisCharacterInterval) 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 RealTimeContactAnalysisCharacterInterval) GoString() string { + return s.String() +} + +// SetBeginOffsetChar sets the BeginOffsetChar field's value. +func (s *RealTimeContactAnalysisCharacterInterval) SetBeginOffsetChar(v int64) *RealTimeContactAnalysisCharacterInterval { + s.BeginOffsetChar = &v + return s +} + +// SetEndOffsetChar sets the EndOffsetChar field's value. +func (s *RealTimeContactAnalysisCharacterInterval) SetEndOffsetChar(v int64) *RealTimeContactAnalysisCharacterInterval { + s.EndOffsetChar = &v + return s +} + +// Potential issues that are detected based on an artificial intelligence analysis +// of each turn in the conversation. +type RealTimeContactAnalysisIssueDetected struct { + _ struct{} `type:"structure"` + + // List of the transcript items (segments) that are associated with a given + // issue. + // + // TranscriptItems is a required field + TranscriptItems []*RealTimeContactAnalysisTranscriptItemWithContent `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 RealTimeContactAnalysisIssueDetected) 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 RealTimeContactAnalysisIssueDetected) GoString() string { + return s.String() +} + +// SetTranscriptItems sets the TranscriptItems field's value. +func (s *RealTimeContactAnalysisIssueDetected) SetTranscriptItems(v []*RealTimeContactAnalysisTranscriptItemWithContent) *RealTimeContactAnalysisIssueDetected { + s.TranscriptItems = v + return s +} + +// The section of the contact transcript segment that category rule was detected. +type RealTimeContactAnalysisPointOfInterest struct { + _ struct{} `type:"structure"` + + // List of the transcript items (segments) that are associated with a given + // point of interest. + TranscriptItems []*RealTimeContactAnalysisTranscriptItemWithCharacterOffsets `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 RealTimeContactAnalysisPointOfInterest) 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 RealTimeContactAnalysisPointOfInterest) GoString() string { + return s.String() +} + +// SetTranscriptItems sets the TranscriptItems field's value. +func (s *RealTimeContactAnalysisPointOfInterest) SetTranscriptItems(v []*RealTimeContactAnalysisTranscriptItemWithCharacterOffsets) *RealTimeContactAnalysisPointOfInterest { + s.TranscriptItems = v + return s +} + +// Segment containing list of attachments. +type RealTimeContactAnalysisSegmentAttachments struct { + _ struct{} `type:"structure"` + + // List of objects describing an individual attachment. + // + // Attachments is a required field + Attachments []*RealTimeContactAnalysisAttachment `type:"list" required:"true"` + + // The display name of the participant. Can be redacted. + DisplayName *string `min:"1" type:"string"` + + // The identifier of the segment. + // + // Id is a required field + Id *string `min:"1" type:"string" required:"true"` + + // The identifier of the participant. + // + // ParticipantId is a required field + ParticipantId *string `min:"1" type:"string" required:"true"` + + // The role of the participant. For example, is it a customer, agent, or system. + // + // ParticipantRole is a required field + ParticipantRole *string `type:"string" required:"true" enum:"ParticipantRole"` + + // Field describing the time of the event. It can have different representations + // of time. + // + // Time is a required field + Time *RealTimeContactAnalysisTimeData `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 RealTimeContactAnalysisSegmentAttachments) 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 RealTimeContactAnalysisSegmentAttachments) GoString() string { + return s.String() +} + +// SetAttachments sets the Attachments field's value. +func (s *RealTimeContactAnalysisSegmentAttachments) SetAttachments(v []*RealTimeContactAnalysisAttachment) *RealTimeContactAnalysisSegmentAttachments { + s.Attachments = v + return s +} + +// SetDisplayName sets the DisplayName field's value. +func (s *RealTimeContactAnalysisSegmentAttachments) SetDisplayName(v string) *RealTimeContactAnalysisSegmentAttachments { + s.DisplayName = &v + return s +} + +// SetId sets the Id field's value. +func (s *RealTimeContactAnalysisSegmentAttachments) SetId(v string) *RealTimeContactAnalysisSegmentAttachments { + s.Id = &v + return s +} + +// SetParticipantId sets the ParticipantId field's value. +func (s *RealTimeContactAnalysisSegmentAttachments) SetParticipantId(v string) *RealTimeContactAnalysisSegmentAttachments { + s.ParticipantId = &v + return s +} + +// SetParticipantRole sets the ParticipantRole field's value. +func (s *RealTimeContactAnalysisSegmentAttachments) SetParticipantRole(v string) *RealTimeContactAnalysisSegmentAttachments { + s.ParticipantRole = &v + return s +} + +// SetTime sets the Time field's value. +func (s *RealTimeContactAnalysisSegmentAttachments) SetTime(v *RealTimeContactAnalysisTimeData) *RealTimeContactAnalysisSegmentAttachments { + s.Time = v + return s +} + +// The matched category rules. +type RealTimeContactAnalysisSegmentCategories struct { + _ struct{} `type:"structure"` + + // Map between the name of the matched rule and RealTimeContactAnalysisCategoryDetails. + // + // MatchedDetails is a required field + MatchedDetails map[string]*RealTimeContactAnalysisCategoryDetails `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 RealTimeContactAnalysisSegmentCategories) 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 RealTimeContactAnalysisSegmentCategories) GoString() string { + return s.String() +} + +// SetMatchedDetails sets the MatchedDetails field's value. +func (s *RealTimeContactAnalysisSegmentCategories) SetMatchedDetails(v map[string]*RealTimeContactAnalysisCategoryDetails) *RealTimeContactAnalysisSegmentCategories { + s.MatchedDetails = v + return s +} + +// Segment type describing a contact event. +type RealTimeContactAnalysisSegmentEvent struct { + _ struct{} `type:"structure"` + + // The display name of the participant. Can be redacted. + DisplayName *string `min:"1" type:"string"` + + // Type of the event. For example, application/vnd.amazonaws.connect.event.participant.left. + // + // EventType is a required field + EventType *string `min:"1" type:"string" required:"true"` + + // The identifier of the contact event. + // + // Id is a required field + Id *string `min:"1" type:"string" required:"true"` + + // The identifier of the participant. + ParticipantId *string `min:"1" type:"string"` + + // The role of the participant. For example, is it a customer, agent, or system. + ParticipantRole *string `type:"string" enum:"ParticipantRole"` + + // Field describing the time of the event. It can have different representations + // of time. + // + // Time is a required field + Time *RealTimeContactAnalysisTimeData `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 RealTimeContactAnalysisSegmentEvent) 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 RealTimeContactAnalysisSegmentEvent) GoString() string { + return s.String() +} + +// SetDisplayName sets the DisplayName field's value. +func (s *RealTimeContactAnalysisSegmentEvent) SetDisplayName(v string) *RealTimeContactAnalysisSegmentEvent { + s.DisplayName = &v + return s +} + +// SetEventType sets the EventType field's value. +func (s *RealTimeContactAnalysisSegmentEvent) SetEventType(v string) *RealTimeContactAnalysisSegmentEvent { + s.EventType = &v + return s +} + +// SetId sets the Id field's value. +func (s *RealTimeContactAnalysisSegmentEvent) SetId(v string) *RealTimeContactAnalysisSegmentEvent { + s.Id = &v + return s +} + +// SetParticipantId sets the ParticipantId field's value. +func (s *RealTimeContactAnalysisSegmentEvent) SetParticipantId(v string) *RealTimeContactAnalysisSegmentEvent { + s.ParticipantId = &v + return s +} + +// SetParticipantRole sets the ParticipantRole field's value. +func (s *RealTimeContactAnalysisSegmentEvent) SetParticipantRole(v string) *RealTimeContactAnalysisSegmentEvent { + s.ParticipantRole = &v + return s +} + +// SetTime sets the Time field's value. +func (s *RealTimeContactAnalysisSegmentEvent) SetTime(v *RealTimeContactAnalysisTimeData) *RealTimeContactAnalysisSegmentEvent { + s.Time = v + return s +} + +// Segment type containing a list of detected issues. +type RealTimeContactAnalysisSegmentIssues struct { + _ struct{} `type:"structure"` + + // List of the issues detected. + // + // IssuesDetected is a required field + IssuesDetected []*RealTimeContactAnalysisIssueDetected `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 RealTimeContactAnalysisSegmentIssues) 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 RealTimeContactAnalysisSegmentIssues) GoString() string { + return s.String() +} + +// SetIssuesDetected sets the IssuesDetected field's value. +func (s *RealTimeContactAnalysisSegmentIssues) SetIssuesDetected(v []*RealTimeContactAnalysisIssueDetected) *RealTimeContactAnalysisSegmentIssues { + s.IssuesDetected = v + return s +} + +// The analyzed transcript segment. +type RealTimeContactAnalysisSegmentTranscript struct { + _ struct{} `type:"structure"` + + // The content of the transcript. Can be redacted. + // + // Content is a required field + Content *string `min:"1" type:"string" required:"true"` + + // The type of content of the item. For example, text/plain. + ContentType *string `min:"1" type:"string"` + + // The display name of the participant. + DisplayName *string `min:"1" type:"string"` + + // The identifier of the transcript. + // + // Id is a required field + Id *string `min:"1" type:"string" required:"true"` + + // The identifier of the participant. + // + // ParticipantId is a required field + ParticipantId *string `min:"1" type:"string" required:"true"` + + // The role of the participant. For example, is it a customer, agent, or system. + // + // ParticipantRole is a required field + ParticipantRole *string `type:"string" required:"true" enum:"ParticipantRole"` + + // Object describing redaction that was applied to the transcript. If transcript + // has the field it means part of the transcript was redacted. + Redaction *RealTimeContactAnalysisTranscriptItemRedaction `type:"structure"` + + // The sentiment detected for this piece of transcript. + Sentiment *string `type:"string" enum:"RealTimeContactAnalysisSentimentLabel"` + + // Field describing the time of the event. It can have different representations + // of time. + // + // Time is a required field + Time *RealTimeContactAnalysisTimeData `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 RealTimeContactAnalysisSegmentTranscript) 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 RealTimeContactAnalysisSegmentTranscript) GoString() string { + return s.String() +} + +// SetContent sets the Content field's value. +func (s *RealTimeContactAnalysisSegmentTranscript) SetContent(v string) *RealTimeContactAnalysisSegmentTranscript { + s.Content = &v + return s +} + +// SetContentType sets the ContentType field's value. +func (s *RealTimeContactAnalysisSegmentTranscript) SetContentType(v string) *RealTimeContactAnalysisSegmentTranscript { + s.ContentType = &v + return s +} + +// SetDisplayName sets the DisplayName field's value. +func (s *RealTimeContactAnalysisSegmentTranscript) SetDisplayName(v string) *RealTimeContactAnalysisSegmentTranscript { + s.DisplayName = &v + return s +} + +// SetId sets the Id field's value. +func (s *RealTimeContactAnalysisSegmentTranscript) SetId(v string) *RealTimeContactAnalysisSegmentTranscript { + s.Id = &v + return s +} + +// SetParticipantId sets the ParticipantId field's value. +func (s *RealTimeContactAnalysisSegmentTranscript) SetParticipantId(v string) *RealTimeContactAnalysisSegmentTranscript { + s.ParticipantId = &v + return s +} + +// SetParticipantRole sets the ParticipantRole field's value. +func (s *RealTimeContactAnalysisSegmentTranscript) SetParticipantRole(v string) *RealTimeContactAnalysisSegmentTranscript { + s.ParticipantRole = &v + return s +} + +// SetRedaction sets the Redaction field's value. +func (s *RealTimeContactAnalysisSegmentTranscript) SetRedaction(v *RealTimeContactAnalysisTranscriptItemRedaction) *RealTimeContactAnalysisSegmentTranscript { + s.Redaction = v + return s +} + +// SetSentiment sets the Sentiment field's value. +func (s *RealTimeContactAnalysisSegmentTranscript) SetSentiment(v string) *RealTimeContactAnalysisSegmentTranscript { + s.Sentiment = &v + return s +} + +// SetTime sets the Time field's value. +func (s *RealTimeContactAnalysisSegmentTranscript) SetTime(v *RealTimeContactAnalysisTimeData) *RealTimeContactAnalysisSegmentTranscript { + s.Time = v + return s +} + +// Object describing time with which the segment is associated. It can have +// different representations of time. Currently supported: absoluteTime +type RealTimeContactAnalysisTimeData struct { + _ struct{} `type:"structure"` + + // Time represented in ISO 8601 format: yyyy-MM-ddThh:mm:ss.SSSZ. For example, + // 2019-11-08T02:41:28.172Z. + AbsoluteTime *time.Time `type:"timestamp" timestampFormat:"iso8601"` +} + +// 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 RealTimeContactAnalysisTimeData) 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 RealTimeContactAnalysisTimeData) GoString() string { + return s.String() +} + +// SetAbsoluteTime sets the AbsoluteTime field's value. +func (s *RealTimeContactAnalysisTimeData) SetAbsoluteTime(v time.Time) *RealTimeContactAnalysisTimeData { + s.AbsoluteTime = &v + return s +} + +// Object describing redaction applied to the segment. +type RealTimeContactAnalysisTranscriptItemRedaction struct { + _ struct{} `type:"structure"` + + // List of character intervals each describing a part of the text that was redacted. + // For OutputType.Raw, part of the original text that contains data that can + // be redacted. For OutputType.Redacted, part of the string with redaction tag. + CharacterOffsets []*RealTimeContactAnalysisCharacterInterval `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 RealTimeContactAnalysisTranscriptItemRedaction) 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 RealTimeContactAnalysisTranscriptItemRedaction) GoString() string { + return s.String() +} + +// SetCharacterOffsets sets the CharacterOffsets field's value. +func (s *RealTimeContactAnalysisTranscriptItemRedaction) SetCharacterOffsets(v []*RealTimeContactAnalysisCharacterInterval) *RealTimeContactAnalysisTranscriptItemRedaction { + s.CharacterOffsets = v + return s +} + +// Transcript representation containing Id and list of character intervals that +// are associated with analysis data. For example, this object within a RealTimeContactAnalysisPointOfInterest +// in Category.MatchedDetails would have character interval describing part +// of the text that matched category. +type RealTimeContactAnalysisTranscriptItemWithCharacterOffsets struct { + _ struct{} `type:"structure"` + + // List of character intervals within transcript content/text. + CharacterOffsets *RealTimeContactAnalysisCharacterInterval `type:"structure"` + + // Transcript identifier. Matches the identifier from one of the TranscriptSegments. + // + // Id is a required field + Id *string `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 RealTimeContactAnalysisTranscriptItemWithCharacterOffsets) 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 RealTimeContactAnalysisTranscriptItemWithCharacterOffsets) GoString() string { + return s.String() +} + +// SetCharacterOffsets sets the CharacterOffsets field's value. +func (s *RealTimeContactAnalysisTranscriptItemWithCharacterOffsets) SetCharacterOffsets(v *RealTimeContactAnalysisCharacterInterval) *RealTimeContactAnalysisTranscriptItemWithCharacterOffsets { + s.CharacterOffsets = v + return s +} + +// SetId sets the Id field's value. +func (s *RealTimeContactAnalysisTranscriptItemWithCharacterOffsets) SetId(v string) *RealTimeContactAnalysisTranscriptItemWithCharacterOffsets { + s.Id = &v + return s +} + +// Transcript representation containing Id, Content and list of character intervals +// that are associated with analysis data. For example, this object within an +// issue detected would describe both content that contains identified issue +// and intervals where that content is taken from. +type RealTimeContactAnalysisTranscriptItemWithContent struct { + _ struct{} `type:"structure"` + + // Begin and end offsets for a part of text. + CharacterOffsets *RealTimeContactAnalysisCharacterInterval `type:"structure"` + + // Part of the transcript content that contains identified issue. Can be redacted + Content *string `min:"1" type:"string"` + + // Transcript identifier. Matches the identifier from one of the TranscriptSegments. + // + // Id is a required field + Id *string `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 RealTimeContactAnalysisTranscriptItemWithContent) 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 RealTimeContactAnalysisTranscriptItemWithContent) GoString() string { + return s.String() +} + +// SetCharacterOffsets sets the CharacterOffsets field's value. +func (s *RealTimeContactAnalysisTranscriptItemWithContent) SetCharacterOffsets(v *RealTimeContactAnalysisCharacterInterval) *RealTimeContactAnalysisTranscriptItemWithContent { + s.CharacterOffsets = v + return s +} + +// SetContent sets the Content field's value. +func (s *RealTimeContactAnalysisTranscriptItemWithContent) SetContent(v string) *RealTimeContactAnalysisTranscriptItemWithContent { + s.Content = &v + return s +} + +// SetId sets the Id field's value. +func (s *RealTimeContactAnalysisTranscriptItemWithContent) SetId(v string) *RealTimeContactAnalysisTranscriptItemWithContent { + s.Id = &v + return s +} + +// An analyzed segment for a real-time analysis session. +type RealtimeContactAnalysisSegment struct { + _ struct{} `type:"structure"` + + // The analyzed attachments. + Attachments *RealTimeContactAnalysisSegmentAttachments `type:"structure"` + + // The matched category rules. + Categories *RealTimeContactAnalysisSegmentCategories `type:"structure"` + + // Segment type describing a contact event. + Event *RealTimeContactAnalysisSegmentEvent `type:"structure"` + + // Segment type containing a list of detected issues. + Issues *RealTimeContactAnalysisSegmentIssues `type:"structure"` + + // The analyzed transcript segment. + Transcript *RealTimeContactAnalysisSegmentTranscript `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 RealtimeContactAnalysisSegment) 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 RealtimeContactAnalysisSegment) GoString() string { + return s.String() +} + +// SetAttachments sets the Attachments field's value. +func (s *RealtimeContactAnalysisSegment) SetAttachments(v *RealTimeContactAnalysisSegmentAttachments) *RealtimeContactAnalysisSegment { + s.Attachments = v + return s +} + +// SetCategories sets the Categories field's value. +func (s *RealtimeContactAnalysisSegment) SetCategories(v *RealTimeContactAnalysisSegmentCategories) *RealtimeContactAnalysisSegment { + s.Categories = v + return s +} + +// SetEvent sets the Event field's value. +func (s *RealtimeContactAnalysisSegment) SetEvent(v *RealTimeContactAnalysisSegmentEvent) *RealtimeContactAnalysisSegment { + s.Event = v + return s +} + +// SetIssues sets the Issues field's value. +func (s *RealtimeContactAnalysisSegment) SetIssues(v *RealTimeContactAnalysisSegmentIssues) *RealtimeContactAnalysisSegment { + s.Issues = v + return s +} + +// SetTranscript sets the Transcript field's value. +func (s *RealtimeContactAnalysisSegment) SetTranscript(v *RealTimeContactAnalysisSegmentTranscript) *RealtimeContactAnalysisSegment { + s.Transcript = v + return s +} + // Well-formed data on a contact, used by agents to complete a contact request. // You can have up to 4,096 UTF-8 bytes across all references for a contact. type Reference struct { @@ -53740,22 +58191,22 @@ type RuleAction struct { // Information about the contact category action. // // Supported only for TriggerEventSource values: OnPostCallAnalysisAvailable - // | OnRealTimeCallAnalysisAvailable | OnPostChatAnalysisAvailable | OnZendeskTicketCreate - // | OnZendeskTicketStatusUpdate | OnSalesforceCaseCreate + // | OnRealTimeCallAnalysisAvailable | OnRealTimeChatAnalysisAvailable | OnPostChatAnalysisAvailable + // | OnZendeskTicketCreate | OnZendeskTicketStatusUpdate | OnSalesforceCaseCreate AssignContactCategoryAction *AssignContactCategoryActionDefinition `type:"structure"` // Information about the EventBridge action. // // Supported only for TriggerEventSource values: OnPostCallAnalysisAvailable - // | OnRealTimeCallAnalysisAvailable | OnPostChatAnalysisAvailable | OnContactEvaluationSubmit - // | OnMetricDataUpdate + // | OnRealTimeCallAnalysisAvailable | OnRealTimeChatAnalysisAvailable | OnPostChatAnalysisAvailable + // | OnContactEvaluationSubmit | OnMetricDataUpdate EventBridgeAction *EventBridgeActionDefinition `type:"structure"` // Information about the send notification action. // // Supported only for TriggerEventSource values: OnPostCallAnalysisAvailable - // | OnRealTimeCallAnalysisAvailable | OnPostChatAnalysisAvailable | OnContactEvaluationSubmit - // | OnMetricDataUpdate + // | OnRealTimeCallAnalysisAvailable | OnRealTimeChatAnalysisAvailable | OnPostChatAnalysisAvailable + // | OnContactEvaluationSubmit | OnMetricDataUpdate SendNotificationAction *SendNotificationActionDefinition `type:"structure"` // Information about the task action. This field is required if TriggerEventSource @@ -56009,6 +60460,168 @@ func (s *SegmentAttributeValue) SetValueString(v string) *SegmentAttributeValue return s } +type SendChatIntegrationEventInput struct { + _ struct{} `type:"structure"` + + // Chat system identifier, used in part to uniquely identify chat. This is associated + // with the Amazon Connect instance and flow to be used to start chats. For + // SMS, this is the phone number destination of inbound SMS messages represented + // by an Amazon Pinpoint phone number ARN. + // + // DestinationId is a required field + DestinationId *string `min:"1" type:"string" required:"true"` + + // Chat integration event payload + // + // Event is a required field + Event *ChatEvent `type:"structure" required:"true"` + + // Contact properties to apply when starting a new chat. If the integration + // event is handled with an existing chat, this is ignored. + NewSessionDetails *NewSessionDetails `type:"structure"` + + // External identifier of chat customer participant, used in part to uniquely + // identify a chat. For SMS, this is the E164 phone number of the chat customer + // participant. + // + // SourceId is a required field + SourceId *string `min:"1" type:"string" required:"true"` + + // Classification of a channel. This is used in part to uniquely identify chat. + // + // Valid value: ["connect:sms"] + Subtype *string `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 SendChatIntegrationEventInput) 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 SendChatIntegrationEventInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *SendChatIntegrationEventInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "SendChatIntegrationEventInput"} + if s.DestinationId == nil { + invalidParams.Add(request.NewErrParamRequired("DestinationId")) + } + if s.DestinationId != nil && len(*s.DestinationId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("DestinationId", 1)) + } + if s.Event == nil { + invalidParams.Add(request.NewErrParamRequired("Event")) + } + if s.SourceId == nil { + invalidParams.Add(request.NewErrParamRequired("SourceId")) + } + if s.SourceId != nil && len(*s.SourceId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("SourceId", 1)) + } + if s.Subtype != nil && len(*s.Subtype) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Subtype", 1)) + } + if s.Event != nil { + if err := s.Event.Validate(); err != nil { + invalidParams.AddNested("Event", err.(request.ErrInvalidParams)) + } + } + if s.NewSessionDetails != nil { + if err := s.NewSessionDetails.Validate(); err != nil { + invalidParams.AddNested("NewSessionDetails", err.(request.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetDestinationId sets the DestinationId field's value. +func (s *SendChatIntegrationEventInput) SetDestinationId(v string) *SendChatIntegrationEventInput { + s.DestinationId = &v + return s +} + +// SetEvent sets the Event field's value. +func (s *SendChatIntegrationEventInput) SetEvent(v *ChatEvent) *SendChatIntegrationEventInput { + s.Event = v + return s +} + +// SetNewSessionDetails sets the NewSessionDetails field's value. +func (s *SendChatIntegrationEventInput) SetNewSessionDetails(v *NewSessionDetails) *SendChatIntegrationEventInput { + s.NewSessionDetails = v + return s +} + +// SetSourceId sets the SourceId field's value. +func (s *SendChatIntegrationEventInput) SetSourceId(v string) *SendChatIntegrationEventInput { + s.SourceId = &v + return s +} + +// SetSubtype sets the Subtype field's value. +func (s *SendChatIntegrationEventInput) SetSubtype(v string) *SendChatIntegrationEventInput { + s.Subtype = &v + return s +} + +type SendChatIntegrationEventOutput struct { + _ struct{} `type:"structure"` + + // Identifier of chat contact used to handle integration event. This may be + // null if the integration event is not valid without an already existing chat + // contact. + InitialContactId *string `min:"1" type:"string"` + + // Whether handling the integration event resulted in creating a new chat or + // acting on existing chat. + NewChatCreated *bool `type:"boolean"` +} + +// 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 SendChatIntegrationEventOutput) 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 SendChatIntegrationEventOutput) GoString() string { + return s.String() +} + +// SetInitialContactId sets the InitialContactId field's value. +func (s *SendChatIntegrationEventOutput) SetInitialContactId(v string) *SendChatIntegrationEventOutput { + s.InitialContactId = &v + return s +} + +// SetNewChatCreated sets the NewChatCreated field's value. +func (s *SendChatIntegrationEventOutput) SetNewChatCreated(v bool) *SendChatIntegrationEventOutput { + s.NewChatCreated = &v + return s +} + // Information about the send notification action. type SendNotificationActionDefinition struct { _ struct{} `type:"structure"` @@ -56411,10 +61024,10 @@ type StartChatContactInput struct { ClientToken *string `type:"string" idempotencyToken:"true"` // The identifier of the flow for initiating the chat. To see the ContactFlowId - // in the Amazon Connect console user interface, on the navigation menu go to - // Routing, Contact Flows. Choose the flow. On the flow page, under the name - // of the flow, choose Show additional flow information. The ContactFlowId is - // the last part of the ARN, shown here in bold: + // in the Amazon Connect admin website, on the navigation menu go to Routing, + // Contact Flows. Choose the flow. On the flow page, under the name of the flow, + // choose Show additional flow information. The ContactFlowId is the last part + // of the ARN, shown here in bold: // // arn:aws:connect:us-west-2:xxxxxxxxxxxx:instance/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/contact-flow/846ec553-a005-41c0-8341-xxxxxxxxxxxx // @@ -57097,10 +61710,10 @@ type StartOutboundVoiceContactInput struct { ClientToken *string `type:"string" idempotencyToken:"true"` // The identifier of the flow for the outbound call. To see the ContactFlowId - // in the Amazon Connect console user interface, on the navigation menu go to - // Routing, Contact Flows. Choose the flow. On the flow page, under the name - // of the flow, choose Show additional flow information. The ContactFlowId is - // the last part of the ARN, shown here in bold: + // in the Amazon Connect admin website, on the navigation menu go to Routing, + // Contact Flows. Choose the flow. On the flow page, under the name of the flow, + // choose Show additional flow information. The ContactFlowId is the last part + // of the ARN, shown here in bold: // // arn:aws:connect:us-west-2:xxxxxxxxxxxx:instance/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/contact-flow/846ec553-a005-41c0-8341-xxxxxxxxxxxx // @@ -57288,10 +61901,10 @@ type StartTaskContactInput struct { ClientToken *string `type:"string" idempotencyToken:"true"` // The identifier of the flow for initiating the tasks. To see the ContactFlowId - // in the Amazon Connect console user interface, on the navigation menu go to - // Routing, Contact Flows. Choose the flow. On the flow page, under the name - // of the flow, choose Show additional flow information. The ContactFlowId is - // the last part of the ARN, shown here in bold: + // in the Amazon Connect admin website, on the navigation menu go to Routing, + // Contact Flows. Choose the flow. On the flow page, under the name of the flow, + // choose Show additional flow information. The ContactFlowId is the last part + // of the ARN, shown here in bold: // // arn:aws:connect:us-west-2:xxxxxxxxxxxx:instance/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/contact-flow/846ec553-a005-41c0-8341-xxxxxxxxxxxx ContactFlowId *string `type:"string"` @@ -57509,6 +62122,242 @@ func (s *StartTaskContactOutput) SetContactId(v string) *StartTaskContactOutput return s } +type StartWebRTCContactInput struct { + _ struct{} `type:"structure"` + + // Information about the video sharing capabilities of the participants (customer, + // agent). + AllowedCapabilities *AllowedCapabilities `type:"structure"` + + // A custom key-value pair using an attribute map. The attributes are standard + // Amazon Connect attributes, and can be accessed in flows just like any other + // contact attributes. + // + // There can be up to 32,768 UTF-8 bytes across all key-value pairs per contact. + // Attribute keys can include only alphanumeric, -, and _ characters. + Attributes map[string]*string `type:"map"` + + // 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/). + // + // The token is valid for 7 days after creation. If a contact is already started, + // the contact ID is returned. + ClientToken *string `type:"string" idempotencyToken:"true"` + + // The identifier of the flow for the call. To see the ContactFlowId in the + // Amazon Connect admin website, on the navigation menu go to Routing, Contact + // Flows. Choose the flow. On the flow page, under the name of the flow, choose + // Show additional flow information. The ContactFlowId is the last part of the + // ARN, shown here in bold: + // + // arn:aws:connect:us-west-2:xxxxxxxxxxxx:instance/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/contact-flow/846ec553-a005-41c0-8341-xxxxxxxxxxxx + // + // ContactFlowId is a required field + ContactFlowId *string `type:"string" required:"true"` + + // A description of the task that is shown to an agent in the Contact Control + // Panel (CCP). + Description *string `type:"string"` + + // The identifier of the Amazon Connect instance. You can find the instance + // ID (https://docs.aws.amazon.com/connect/latest/adminguide/find-instance-arn.html) + // in the Amazon Resource Name (ARN) of the instance. + // + // InstanceId is a required field + InstanceId *string `min:"1" type:"string" required:"true"` + + // The customer's details. + // + // ParticipantDetails is a required field + ParticipantDetails *ParticipantDetails `type:"structure" required:"true"` + + // A formatted URL that is shown to an agent in the Contact Control Panel (CCP). + // Tasks can have the following reference types at the time of creation: URL + // | NUMBER | STRING | DATE | EMAIL. ATTACHMENT is not a supported reference + // type during task creation. + References map[string]*Reference `type:"map"` + + // The unique identifier for an Amazon Connect contact. This identifier is related + // to the contact starting. + RelatedContactId *string `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 StartWebRTCContactInput) 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 StartWebRTCContactInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *StartWebRTCContactInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "StartWebRTCContactInput"} + if s.ContactFlowId == nil { + invalidParams.Add(request.NewErrParamRequired("ContactFlowId")) + } + if s.InstanceId == nil { + invalidParams.Add(request.NewErrParamRequired("InstanceId")) + } + if s.InstanceId != nil && len(*s.InstanceId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("InstanceId", 1)) + } + if s.ParticipantDetails == nil { + invalidParams.Add(request.NewErrParamRequired("ParticipantDetails")) + } + if s.RelatedContactId != nil && len(*s.RelatedContactId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("RelatedContactId", 1)) + } + if s.ParticipantDetails != nil { + if err := s.ParticipantDetails.Validate(); err != nil { + invalidParams.AddNested("ParticipantDetails", err.(request.ErrInvalidParams)) + } + } + if s.References != nil { + for i, v := range s.References { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "References", i), err.(request.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAllowedCapabilities sets the AllowedCapabilities field's value. +func (s *StartWebRTCContactInput) SetAllowedCapabilities(v *AllowedCapabilities) *StartWebRTCContactInput { + s.AllowedCapabilities = v + return s +} + +// SetAttributes sets the Attributes field's value. +func (s *StartWebRTCContactInput) SetAttributes(v map[string]*string) *StartWebRTCContactInput { + s.Attributes = v + return s +} + +// SetClientToken sets the ClientToken field's value. +func (s *StartWebRTCContactInput) SetClientToken(v string) *StartWebRTCContactInput { + s.ClientToken = &v + return s +} + +// SetContactFlowId sets the ContactFlowId field's value. +func (s *StartWebRTCContactInput) SetContactFlowId(v string) *StartWebRTCContactInput { + s.ContactFlowId = &v + return s +} + +// SetDescription sets the Description field's value. +func (s *StartWebRTCContactInput) SetDescription(v string) *StartWebRTCContactInput { + s.Description = &v + return s +} + +// SetInstanceId sets the InstanceId field's value. +func (s *StartWebRTCContactInput) SetInstanceId(v string) *StartWebRTCContactInput { + s.InstanceId = &v + return s +} + +// SetParticipantDetails sets the ParticipantDetails field's value. +func (s *StartWebRTCContactInput) SetParticipantDetails(v *ParticipantDetails) *StartWebRTCContactInput { + s.ParticipantDetails = v + return s +} + +// SetReferences sets the References field's value. +func (s *StartWebRTCContactInput) SetReferences(v map[string]*Reference) *StartWebRTCContactInput { + s.References = v + return s +} + +// SetRelatedContactId sets the RelatedContactId field's value. +func (s *StartWebRTCContactInput) SetRelatedContactId(v string) *StartWebRTCContactInput { + s.RelatedContactId = &v + return s +} + +type StartWebRTCContactOutput struct { + _ struct{} `type:"structure"` + + // Information required for the client application (mobile application or website) + // to connect to the call. + ConnectionData *ConnectionData `type:"structure"` + + // The identifier of the contact in this instance of Amazon Connect. + ContactId *string `min:"1" type:"string"` + + // The identifier for a contact participant. The ParticipantId for a contact + // participant is the same throughout the contact lifecycle. + ParticipantId *string `min:"1" type:"string"` + + // The token used by the contact participant to call the CreateParticipantConnection + // (https://docs.aws.amazon.com/connect-participant/latest/APIReference/API_CreateParticipantConnection.html) + // API. The participant token is valid for the lifetime of a contact participant. + ParticipantToken *string `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 StartWebRTCContactOutput) 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 StartWebRTCContactOutput) GoString() string { + return s.String() +} + +// SetConnectionData sets the ConnectionData field's value. +func (s *StartWebRTCContactOutput) SetConnectionData(v *ConnectionData) *StartWebRTCContactOutput { + s.ConnectionData = v + return s +} + +// SetContactId sets the ContactId field's value. +func (s *StartWebRTCContactOutput) SetContactId(v string) *StartWebRTCContactOutput { + s.ContactId = &v + return s +} + +// SetParticipantId sets the ParticipantId field's value. +func (s *StartWebRTCContactOutput) SetParticipantId(v string) *StartWebRTCContactOutput { + s.ParticipantId = &v + return s +} + +// SetParticipantToken sets the ParticipantToken field's value. +func (s *StartWebRTCContactOutput) SetParticipantToken(v string) *StartWebRTCContactOutput { + s.ParticipantToken = &v + return s +} + type StopContactInput struct { _ struct{} `type:"structure"` @@ -66897,6 +71746,26 @@ func AgentStatusType_Values() []string { } } +const ( + // ArtifactStatusApproved is a ArtifactStatus enum value + ArtifactStatusApproved = "APPROVED" + + // ArtifactStatusRejected is a ArtifactStatus enum value + ArtifactStatusRejected = "REJECTED" + + // ArtifactStatusInProgress is a ArtifactStatus enum value + ArtifactStatusInProgress = "IN_PROGRESS" +) + +// ArtifactStatus_Values returns all elements of the ArtifactStatus enum +func ArtifactStatus_Values() []string { + return []string{ + ArtifactStatusApproved, + ArtifactStatusRejected, + ArtifactStatusInProgress, + } +} + const ( // BehaviorTypeRouteCurrentChannelOnly is a BehaviorType enum value BehaviorTypeRouteCurrentChannelOnly = "ROUTE_CURRENT_CHANNEL_ONLY" @@ -66933,6 +71802,26 @@ func Channel_Values() []string { } } +const ( + // ChatEventTypeDisconnect is a ChatEventType enum value + ChatEventTypeDisconnect = "DISCONNECT" + + // ChatEventTypeMessage is a ChatEventType enum value + ChatEventTypeMessage = "MESSAGE" + + // ChatEventTypeEvent is a ChatEventType enum value + ChatEventTypeEvent = "EVENT" +) + +// ChatEventType_Values returns all elements of the ChatEventType enum +func ChatEventType_Values() []string { + return []string{ + ChatEventTypeDisconnect, + ChatEventTypeMessage, + ChatEventTypeEvent, + } +} + const ( // ComparisonLt is a Comparison enum value ComparisonLt = "LT" @@ -67345,6 +72234,9 @@ const ( // EventSourceNameOnRealTimeCallAnalysisAvailable is a EventSourceName enum value EventSourceNameOnRealTimeCallAnalysisAvailable = "OnRealTimeCallAnalysisAvailable" + // EventSourceNameOnRealTimeChatAnalysisAvailable is a EventSourceName enum value + EventSourceNameOnRealTimeChatAnalysisAvailable = "OnRealTimeChatAnalysisAvailable" + // EventSourceNameOnPostChatAnalysisAvailable is a EventSourceName enum value EventSourceNameOnPostChatAnalysisAvailable = "OnPostChatAnalysisAvailable" @@ -67369,6 +72261,7 @@ func EventSourceName_Values() []string { return []string{ EventSourceNameOnPostCallAnalysisAvailable, EventSourceNameOnRealTimeCallAnalysisAvailable, + EventSourceNameOnRealTimeChatAnalysisAvailable, EventSourceNameOnPostChatAnalysisAvailable, EventSourceNameOnZendeskTicketCreate, EventSourceNameOnZendeskTicketStatusUpdate, @@ -67426,6 +72319,18 @@ func FailureReasonCode_Values() []string { } } +const ( + // FlowAssociationResourceTypeSmsPhoneNumber is a FlowAssociationResourceType enum value + FlowAssociationResourceTypeSmsPhoneNumber = "SMS_PHONE_NUMBER" +) + +// FlowAssociationResourceType_Values returns all elements of the FlowAssociationResourceType enum +func FlowAssociationResourceType_Values() []string { + return []string{ + FlowAssociationResourceTypeSmsPhoneNumber, + } +} + const ( // GroupingQueue is a Grouping enum value GroupingQueue = "QUEUE" @@ -67827,6 +72732,22 @@ func ListFlowAssociationResourceType_Values() []string { } } +const ( + // MeetingFeatureStatusAvailable is a MeetingFeatureStatus enum value + MeetingFeatureStatusAvailable = "AVAILABLE" + + // MeetingFeatureStatusUnavailable is a MeetingFeatureStatus enum value + MeetingFeatureStatusUnavailable = "UNAVAILABLE" +) + +// MeetingFeatureStatus_Values returns all elements of the MeetingFeatureStatus enum +func MeetingFeatureStatus_Values() []string { + return []string{ + MeetingFeatureStatusAvailable, + MeetingFeatureStatusUnavailable, + } +} + const ( // MonitorCapabilitySilentMonitor is a MonitorCapability enum value MonitorCapabilitySilentMonitor = "SILENT_MONITOR" @@ -68933,6 +73854,9 @@ const ( // PhoneNumberTypeThirdPartyDid is a PhoneNumberType enum value PhoneNumberTypeThirdPartyDid = "THIRD_PARTY_DID" + + // PhoneNumberTypeShortCode is a PhoneNumberType enum value + PhoneNumberTypeShortCode = "SHORT_CODE" ) // PhoneNumberType_Values returns all elements of the PhoneNumberType enum @@ -68944,6 +73868,7 @@ func PhoneNumberType_Values() []string { PhoneNumberTypeShared, PhoneNumberTypeThirdPartyTf, PhoneNumberTypeThirdPartyDid, + PhoneNumberTypeShortCode, } } @@ -69067,6 +73992,106 @@ func QuickConnectType_Values() []string { } } +const ( + // RealTimeContactAnalysisOutputTypeRaw is a RealTimeContactAnalysisOutputType enum value + RealTimeContactAnalysisOutputTypeRaw = "Raw" + + // RealTimeContactAnalysisOutputTypeRedacted is a RealTimeContactAnalysisOutputType enum value + RealTimeContactAnalysisOutputTypeRedacted = "Redacted" +) + +// RealTimeContactAnalysisOutputType_Values returns all elements of the RealTimeContactAnalysisOutputType enum +func RealTimeContactAnalysisOutputType_Values() []string { + return []string{ + RealTimeContactAnalysisOutputTypeRaw, + RealTimeContactAnalysisOutputTypeRedacted, + } +} + +const ( + // RealTimeContactAnalysisSegmentTypeTranscript is a RealTimeContactAnalysisSegmentType enum value + RealTimeContactAnalysisSegmentTypeTranscript = "Transcript" + + // RealTimeContactAnalysisSegmentTypeCategories is a RealTimeContactAnalysisSegmentType enum value + RealTimeContactAnalysisSegmentTypeCategories = "Categories" + + // RealTimeContactAnalysisSegmentTypeIssues is a RealTimeContactAnalysisSegmentType enum value + RealTimeContactAnalysisSegmentTypeIssues = "Issues" + + // RealTimeContactAnalysisSegmentTypeEvent is a RealTimeContactAnalysisSegmentType enum value + RealTimeContactAnalysisSegmentTypeEvent = "Event" + + // RealTimeContactAnalysisSegmentTypeAttachments is a RealTimeContactAnalysisSegmentType enum value + RealTimeContactAnalysisSegmentTypeAttachments = "Attachments" +) + +// RealTimeContactAnalysisSegmentType_Values returns all elements of the RealTimeContactAnalysisSegmentType enum +func RealTimeContactAnalysisSegmentType_Values() []string { + return []string{ + RealTimeContactAnalysisSegmentTypeTranscript, + RealTimeContactAnalysisSegmentTypeCategories, + RealTimeContactAnalysisSegmentTypeIssues, + RealTimeContactAnalysisSegmentTypeEvent, + RealTimeContactAnalysisSegmentTypeAttachments, + } +} + +const ( + // RealTimeContactAnalysisSentimentLabelPositive is a RealTimeContactAnalysisSentimentLabel enum value + RealTimeContactAnalysisSentimentLabelPositive = "POSITIVE" + + // RealTimeContactAnalysisSentimentLabelNegative is a RealTimeContactAnalysisSentimentLabel enum value + RealTimeContactAnalysisSentimentLabelNegative = "NEGATIVE" + + // RealTimeContactAnalysisSentimentLabelNeutral is a RealTimeContactAnalysisSentimentLabel enum value + RealTimeContactAnalysisSentimentLabelNeutral = "NEUTRAL" +) + +// RealTimeContactAnalysisSentimentLabel_Values returns all elements of the RealTimeContactAnalysisSentimentLabel enum +func RealTimeContactAnalysisSentimentLabel_Values() []string { + return []string{ + RealTimeContactAnalysisSentimentLabelPositive, + RealTimeContactAnalysisSentimentLabelNegative, + RealTimeContactAnalysisSentimentLabelNeutral, + } +} + +const ( + // RealTimeContactAnalysisStatusInProgress is a RealTimeContactAnalysisStatus enum value + RealTimeContactAnalysisStatusInProgress = "IN_PROGRESS" + + // RealTimeContactAnalysisStatusFailed is a RealTimeContactAnalysisStatus enum value + RealTimeContactAnalysisStatusFailed = "FAILED" + + // RealTimeContactAnalysisStatusCompleted is a RealTimeContactAnalysisStatus enum value + RealTimeContactAnalysisStatusCompleted = "COMPLETED" +) + +// RealTimeContactAnalysisStatus_Values returns all elements of the RealTimeContactAnalysisStatus enum +func RealTimeContactAnalysisStatus_Values() []string { + return []string{ + RealTimeContactAnalysisStatusInProgress, + RealTimeContactAnalysisStatusFailed, + RealTimeContactAnalysisStatusCompleted, + } +} + +const ( + // RealTimeContactAnalysisSupportedChannelVoice is a RealTimeContactAnalysisSupportedChannel enum value + RealTimeContactAnalysisSupportedChannelVoice = "VOICE" + + // RealTimeContactAnalysisSupportedChannelChat is a RealTimeContactAnalysisSupportedChannel enum value + RealTimeContactAnalysisSupportedChannelChat = "CHAT" +) + +// RealTimeContactAnalysisSupportedChannel_Values returns all elements of the RealTimeContactAnalysisSupportedChannel enum +func RealTimeContactAnalysisSupportedChannel_Values() []string { + return []string{ + RealTimeContactAnalysisSupportedChannelVoice, + RealTimeContactAnalysisSupportedChannelChat, + } +} + const ( // ReferenceStatusApproved is a ReferenceStatus enum value ReferenceStatusApproved = "APPROVED" @@ -69152,6 +74177,9 @@ const ( // ResourceTypeUser is a ResourceType enum value ResourceTypeUser = "USER" + + // ResourceTypePhoneNumber is a ResourceType enum value + ResourceTypePhoneNumber = "PHONE_NUMBER" ) // ResourceType_Values returns all elements of the ResourceType enum @@ -69164,6 +74192,7 @@ func ResourceType_Values() []string { ResourceTypeHierarchyLevel, ResourceTypeHierarchyGroup, ResourceTypeUser, + ResourceTypePhoneNumber, } } @@ -69479,6 +74508,18 @@ func UseCaseType_Values() []string { } } +const ( + // VideoCapabilitySend is a VideoCapability enum value + VideoCapabilitySend = "SEND" +) + +// VideoCapability_Values returns all elements of the VideoCapability enum +func VideoCapability_Values() []string { + return []string{ + VideoCapabilitySend, + } +} + const ( // ViewStatusPublished is a ViewStatus enum value ViewStatusPublished = "PUBLISHED" diff --git a/service/connect/connectiface/interface.go b/service/connect/connectiface/interface.go index f06c36857c3..37f7ac4b387 100644 --- a/service/connect/connectiface/interface.go +++ b/service/connect/connectiface/interface.go @@ -64,6 +64,10 @@ type ConnectAPI interface { ActivateEvaluationFormWithContext(aws.Context, *connect.ActivateEvaluationFormInput, ...request.Option) (*connect.ActivateEvaluationFormOutput, error) ActivateEvaluationFormRequest(*connect.ActivateEvaluationFormInput) (*request.Request, *connect.ActivateEvaluationFormOutput) + AssociateAnalyticsDataSet(*connect.AssociateAnalyticsDataSetInput) (*connect.AssociateAnalyticsDataSetOutput, error) + AssociateAnalyticsDataSetWithContext(aws.Context, *connect.AssociateAnalyticsDataSetInput, ...request.Option) (*connect.AssociateAnalyticsDataSetOutput, error) + AssociateAnalyticsDataSetRequest(*connect.AssociateAnalyticsDataSetInput) (*request.Request, *connect.AssociateAnalyticsDataSetOutput) + AssociateApprovedOrigin(*connect.AssociateApprovedOriginInput) (*connect.AssociateApprovedOriginOutput, error) AssociateApprovedOriginWithContext(aws.Context, *connect.AssociateApprovedOriginInput, ...request.Option) (*connect.AssociateApprovedOriginOutput, error) AssociateApprovedOriginRequest(*connect.AssociateApprovedOriginInput) (*request.Request, *connect.AssociateApprovedOriginOutput) @@ -76,6 +80,10 @@ type ConnectAPI interface { AssociateDefaultVocabularyWithContext(aws.Context, *connect.AssociateDefaultVocabularyInput, ...request.Option) (*connect.AssociateDefaultVocabularyOutput, error) AssociateDefaultVocabularyRequest(*connect.AssociateDefaultVocabularyInput) (*request.Request, *connect.AssociateDefaultVocabularyOutput) + AssociateFlow(*connect.AssociateFlowInput) (*connect.AssociateFlowOutput, error) + AssociateFlowWithContext(aws.Context, *connect.AssociateFlowInput, ...request.Option) (*connect.AssociateFlowOutput, error) + AssociateFlowRequest(*connect.AssociateFlowInput) (*request.Request, *connect.AssociateFlowOutput) + AssociateInstanceStorageConfig(*connect.AssociateInstanceStorageConfigInput) (*connect.AssociateInstanceStorageConfigOutput, error) AssociateInstanceStorageConfigWithContext(aws.Context, *connect.AssociateInstanceStorageConfigInput, ...request.Option) (*connect.AssociateInstanceStorageConfigOutput, error) AssociateInstanceStorageConfigRequest(*connect.AssociateInstanceStorageConfigInput) (*request.Request, *connect.AssociateInstanceStorageConfigOutput) @@ -108,6 +116,14 @@ type ConnectAPI interface { AssociateTrafficDistributionGroupUserWithContext(aws.Context, *connect.AssociateTrafficDistributionGroupUserInput, ...request.Option) (*connect.AssociateTrafficDistributionGroupUserOutput, error) AssociateTrafficDistributionGroupUserRequest(*connect.AssociateTrafficDistributionGroupUserInput) (*request.Request, *connect.AssociateTrafficDistributionGroupUserOutput) + BatchAssociateAnalyticsDataSet(*connect.BatchAssociateAnalyticsDataSetInput) (*connect.BatchAssociateAnalyticsDataSetOutput, error) + BatchAssociateAnalyticsDataSetWithContext(aws.Context, *connect.BatchAssociateAnalyticsDataSetInput, ...request.Option) (*connect.BatchAssociateAnalyticsDataSetOutput, error) + BatchAssociateAnalyticsDataSetRequest(*connect.BatchAssociateAnalyticsDataSetInput) (*request.Request, *connect.BatchAssociateAnalyticsDataSetOutput) + + BatchDisassociateAnalyticsDataSet(*connect.BatchDisassociateAnalyticsDataSetInput) (*connect.BatchDisassociateAnalyticsDataSetOutput, error) + BatchDisassociateAnalyticsDataSetWithContext(aws.Context, *connect.BatchDisassociateAnalyticsDataSetInput, ...request.Option) (*connect.BatchDisassociateAnalyticsDataSetOutput, error) + BatchDisassociateAnalyticsDataSetRequest(*connect.BatchDisassociateAnalyticsDataSetInput) (*request.Request, *connect.BatchDisassociateAnalyticsDataSetOutput) + BatchGetFlowAssociation(*connect.BatchGetFlowAssociationInput) (*connect.BatchGetFlowAssociationOutput, error) BatchGetFlowAssociationWithContext(aws.Context, *connect.BatchGetFlowAssociationInput, ...request.Option) (*connect.BatchGetFlowAssociationOutput, error) BatchGetFlowAssociationRequest(*connect.BatchGetFlowAssociationInput) (*request.Request, *connect.BatchGetFlowAssociationOutput) @@ -392,6 +408,10 @@ type ConnectAPI interface { DescribeVocabularyWithContext(aws.Context, *connect.DescribeVocabularyInput, ...request.Option) (*connect.DescribeVocabularyOutput, error) DescribeVocabularyRequest(*connect.DescribeVocabularyInput) (*request.Request, *connect.DescribeVocabularyOutput) + DisassociateAnalyticsDataSet(*connect.DisassociateAnalyticsDataSetInput) (*connect.DisassociateAnalyticsDataSetOutput, error) + DisassociateAnalyticsDataSetWithContext(aws.Context, *connect.DisassociateAnalyticsDataSetInput, ...request.Option) (*connect.DisassociateAnalyticsDataSetOutput, error) + DisassociateAnalyticsDataSetRequest(*connect.DisassociateAnalyticsDataSetInput) (*request.Request, *connect.DisassociateAnalyticsDataSetOutput) + DisassociateApprovedOrigin(*connect.DisassociateApprovedOriginInput) (*connect.DisassociateApprovedOriginOutput, error) DisassociateApprovedOriginWithContext(aws.Context, *connect.DisassociateApprovedOriginInput, ...request.Option) (*connect.DisassociateApprovedOriginOutput, error) DisassociateApprovedOriginRequest(*connect.DisassociateApprovedOriginInput) (*request.Request, *connect.DisassociateApprovedOriginOutput) @@ -400,6 +420,10 @@ type ConnectAPI interface { DisassociateBotWithContext(aws.Context, *connect.DisassociateBotInput, ...request.Option) (*connect.DisassociateBotOutput, error) DisassociateBotRequest(*connect.DisassociateBotInput) (*request.Request, *connect.DisassociateBotOutput) + DisassociateFlow(*connect.DisassociateFlowInput) (*connect.DisassociateFlowOutput, error) + DisassociateFlowWithContext(aws.Context, *connect.DisassociateFlowInput, ...request.Option) (*connect.DisassociateFlowOutput, error) + DisassociateFlowRequest(*connect.DisassociateFlowInput) (*request.Request, *connect.DisassociateFlowOutput) + DisassociateInstanceStorageConfig(*connect.DisassociateInstanceStorageConfigInput) (*connect.DisassociateInstanceStorageConfigOutput, error) DisassociateInstanceStorageConfigWithContext(aws.Context, *connect.DisassociateInstanceStorageConfigInput, ...request.Option) (*connect.DisassociateInstanceStorageConfigOutput, error) DisassociateInstanceStorageConfigRequest(*connect.DisassociateInstanceStorageConfigInput) (*request.Request, *connect.DisassociateInstanceStorageConfigOutput) @@ -458,6 +482,10 @@ type ConnectAPI interface { GetFederationTokenWithContext(aws.Context, *connect.GetFederationTokenInput, ...request.Option) (*connect.GetFederationTokenOutput, error) GetFederationTokenRequest(*connect.GetFederationTokenInput) (*request.Request, *connect.GetFederationTokenOutput) + GetFlowAssociation(*connect.GetFlowAssociationInput) (*connect.GetFlowAssociationOutput, error) + GetFlowAssociationWithContext(aws.Context, *connect.GetFlowAssociationInput, ...request.Option) (*connect.GetFlowAssociationOutput, error) + GetFlowAssociationRequest(*connect.GetFlowAssociationInput) (*request.Request, *connect.GetFlowAssociationOutput) + GetMetricData(*connect.GetMetricDataInput) (*connect.GetMetricDataOutput, error) GetMetricDataWithContext(aws.Context, *connect.GetMetricDataInput, ...request.Option) (*connect.GetMetricDataOutput, error) GetMetricDataRequest(*connect.GetMetricDataInput) (*request.Request, *connect.GetMetricDataOutput) @@ -484,6 +512,10 @@ type ConnectAPI interface { GetTrafficDistributionWithContext(aws.Context, *connect.GetTrafficDistributionInput, ...request.Option) (*connect.GetTrafficDistributionOutput, error) GetTrafficDistributionRequest(*connect.GetTrafficDistributionInput) (*request.Request, *connect.GetTrafficDistributionOutput) + ImportPhoneNumber(*connect.ImportPhoneNumberInput) (*connect.ImportPhoneNumberOutput, error) + ImportPhoneNumberWithContext(aws.Context, *connect.ImportPhoneNumberInput, ...request.Option) (*connect.ImportPhoneNumberOutput, error) + ImportPhoneNumberRequest(*connect.ImportPhoneNumberInput) (*request.Request, *connect.ImportPhoneNumberOutput) + ListAgentStatuses(*connect.ListAgentStatusesInput) (*connect.ListAgentStatusesOutput, error) ListAgentStatusesWithContext(aws.Context, *connect.ListAgentStatusesInput, ...request.Option) (*connect.ListAgentStatusesOutput, error) ListAgentStatusesRequest(*connect.ListAgentStatusesInput) (*request.Request, *connect.ListAgentStatusesOutput) @@ -491,6 +523,10 @@ type ConnectAPI interface { ListAgentStatusesPages(*connect.ListAgentStatusesInput, func(*connect.ListAgentStatusesOutput, bool) bool) error ListAgentStatusesPagesWithContext(aws.Context, *connect.ListAgentStatusesInput, func(*connect.ListAgentStatusesOutput, bool) bool, ...request.Option) error + ListAnalyticsDataAssociations(*connect.ListAnalyticsDataAssociationsInput) (*connect.ListAnalyticsDataAssociationsOutput, error) + ListAnalyticsDataAssociationsWithContext(aws.Context, *connect.ListAnalyticsDataAssociationsInput, ...request.Option) (*connect.ListAnalyticsDataAssociationsOutput, error) + ListAnalyticsDataAssociationsRequest(*connect.ListAnalyticsDataAssociationsInput) (*request.Request, *connect.ListAnalyticsDataAssociationsOutput) + ListApprovedOrigins(*connect.ListApprovedOriginsInput) (*connect.ListApprovedOriginsOutput, error) ListApprovedOriginsWithContext(aws.Context, *connect.ListApprovedOriginsInput, ...request.Option) (*connect.ListApprovedOriginsOutput, error) ListApprovedOriginsRequest(*connect.ListApprovedOriginsInput) (*request.Request, *connect.ListApprovedOriginsOutput) @@ -554,6 +590,13 @@ type ConnectAPI interface { ListEvaluationFormsPages(*connect.ListEvaluationFormsInput, func(*connect.ListEvaluationFormsOutput, bool) bool) error ListEvaluationFormsPagesWithContext(aws.Context, *connect.ListEvaluationFormsInput, func(*connect.ListEvaluationFormsOutput, bool) bool, ...request.Option) error + ListFlowAssociations(*connect.ListFlowAssociationsInput) (*connect.ListFlowAssociationsOutput, error) + ListFlowAssociationsWithContext(aws.Context, *connect.ListFlowAssociationsInput, ...request.Option) (*connect.ListFlowAssociationsOutput, error) + ListFlowAssociationsRequest(*connect.ListFlowAssociationsInput) (*request.Request, *connect.ListFlowAssociationsOutput) + + ListFlowAssociationsPages(*connect.ListFlowAssociationsInput, func(*connect.ListFlowAssociationsOutput, bool) bool) error + ListFlowAssociationsPagesWithContext(aws.Context, *connect.ListFlowAssociationsInput, func(*connect.ListFlowAssociationsOutput, bool) bool, ...request.Option) error + ListHoursOfOperations(*connect.ListHoursOfOperationsInput) (*connect.ListHoursOfOperationsOutput, error) ListHoursOfOperationsWithContext(aws.Context, *connect.ListHoursOfOperationsInput, ...request.Option) (*connect.ListHoursOfOperationsOutput, error) ListHoursOfOperationsRequest(*connect.ListHoursOfOperationsInput) (*request.Request, *connect.ListHoursOfOperationsOutput) @@ -645,6 +688,13 @@ type ConnectAPI interface { ListQuickConnectsPages(*connect.ListQuickConnectsInput, func(*connect.ListQuickConnectsOutput, bool) bool) error ListQuickConnectsPagesWithContext(aws.Context, *connect.ListQuickConnectsInput, func(*connect.ListQuickConnectsOutput, bool) bool, ...request.Option) error + ListRealtimeContactAnalysisSegmentsV2(*connect.ListRealtimeContactAnalysisSegmentsV2Input) (*connect.ListRealtimeContactAnalysisSegmentsV2Output, error) + ListRealtimeContactAnalysisSegmentsV2WithContext(aws.Context, *connect.ListRealtimeContactAnalysisSegmentsV2Input, ...request.Option) (*connect.ListRealtimeContactAnalysisSegmentsV2Output, error) + ListRealtimeContactAnalysisSegmentsV2Request(*connect.ListRealtimeContactAnalysisSegmentsV2Input) (*request.Request, *connect.ListRealtimeContactAnalysisSegmentsV2Output) + + ListRealtimeContactAnalysisSegmentsV2Pages(*connect.ListRealtimeContactAnalysisSegmentsV2Input, func(*connect.ListRealtimeContactAnalysisSegmentsV2Output, bool) bool) error + ListRealtimeContactAnalysisSegmentsV2PagesWithContext(aws.Context, *connect.ListRealtimeContactAnalysisSegmentsV2Input, func(*connect.ListRealtimeContactAnalysisSegmentsV2Output, bool) bool, ...request.Option) error + ListRoutingProfileQueues(*connect.ListRoutingProfileQueuesInput) (*connect.ListRoutingProfileQueuesOutput, error) ListRoutingProfileQueuesWithContext(aws.Context, *connect.ListRoutingProfileQueuesInput, ...request.Option) (*connect.ListRoutingProfileQueuesOutput, error) ListRoutingProfileQueuesRequest(*connect.ListRoutingProfileQueuesInput) (*request.Request, *connect.ListRoutingProfileQueuesOutput) @@ -844,6 +894,10 @@ type ConnectAPI interface { SearchVocabulariesPages(*connect.SearchVocabulariesInput, func(*connect.SearchVocabulariesOutput, bool) bool) error SearchVocabulariesPagesWithContext(aws.Context, *connect.SearchVocabulariesInput, func(*connect.SearchVocabulariesOutput, bool) bool, ...request.Option) error + SendChatIntegrationEvent(*connect.SendChatIntegrationEventInput) (*connect.SendChatIntegrationEventOutput, error) + SendChatIntegrationEventWithContext(aws.Context, *connect.SendChatIntegrationEventInput, ...request.Option) (*connect.SendChatIntegrationEventOutput, error) + SendChatIntegrationEventRequest(*connect.SendChatIntegrationEventInput) (*request.Request, *connect.SendChatIntegrationEventOutput) + StartChatContact(*connect.StartChatContactInput) (*connect.StartChatContactOutput, error) StartChatContactWithContext(aws.Context, *connect.StartChatContactInput, ...request.Option) (*connect.StartChatContactOutput, error) StartChatContactRequest(*connect.StartChatContactInput) (*request.Request, *connect.StartChatContactOutput) @@ -868,6 +922,10 @@ type ConnectAPI interface { StartTaskContactWithContext(aws.Context, *connect.StartTaskContactInput, ...request.Option) (*connect.StartTaskContactOutput, error) StartTaskContactRequest(*connect.StartTaskContactInput) (*request.Request, *connect.StartTaskContactOutput) + StartWebRTCContact(*connect.StartWebRTCContactInput) (*connect.StartWebRTCContactOutput, error) + StartWebRTCContactWithContext(aws.Context, *connect.StartWebRTCContactInput, ...request.Option) (*connect.StartWebRTCContactOutput, error) + StartWebRTCContactRequest(*connect.StartWebRTCContactInput) (*request.Request, *connect.StartWebRTCContactOutput) + StopContact(*connect.StopContactInput) (*connect.StopContactOutput, error) StopContactWithContext(aws.Context, *connect.StopContactInput, ...request.Option) (*connect.StopContactOutput, error) StopContactRequest(*connect.StopContactInput) (*request.Request, *connect.StopContactOutput) diff --git a/service/connect/errors.go b/service/connect/errors.go index 0cfcf42c424..515f7a7b1a6 100644 --- a/service/connect/errors.go +++ b/service/connect/errors.go @@ -94,6 +94,14 @@ const ( // The contact is not permitted. ErrCodeOutboundContactNotPermittedException = "OutboundContactNotPermittedException" + // ErrCodeOutputTypeNotFoundException for service response error code + // "OutputTypeNotFoundException". + // + // Thrown for analyzed content when requested OutputType was not enabled for + // a given contact. For example, if an OutputType.Raw was requested for a contact + // that had `RedactedOnly` Redaction policy set in Contact flow. + ErrCodeOutputTypeNotFoundException = "OutputTypeNotFoundException" + // ErrCodePropertyValidationException for service response error code // "PropertyValidationException". // @@ -164,6 +172,7 @@ var exceptionFromCode = map[string]func(protocol.ResponseMetadata) error{ "LimitExceededException": newErrorLimitExceededException, "MaximumResultReturnedException": newErrorMaximumResultReturnedException, "OutboundContactNotPermittedException": newErrorOutboundContactNotPermittedException, + "OutputTypeNotFoundException": newErrorOutputTypeNotFoundException, "PropertyValidationException": newErrorPropertyValidationException, "ResourceConflictException": newErrorResourceConflictException, "ResourceInUseException": newErrorResourceInUseException, diff --git a/service/customerprofiles/api.go b/service/customerprofiles/api.go index dac17bc0b96..8d9763d2b75 100644 --- a/service/customerprofiles/api.go +++ b/service/customerprofiles/api.go @@ -1424,6 +1424,97 @@ func (c *CustomerProfiles) DeleteWorkflowWithContext(ctx aws.Context, input *Del return out, req.Send() } +const opDetectProfileObjectType = "DetectProfileObjectType" + +// DetectProfileObjectTypeRequest generates a "aws/request.Request" representing the +// client's request for the DetectProfileObjectType 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 DetectProfileObjectType for more information on using the DetectProfileObjectType +// 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 DetectProfileObjectTypeRequest method. +// req, resp := client.DetectProfileObjectTypeRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/customer-profiles-2020-08-15/DetectProfileObjectType +func (c *CustomerProfiles) DetectProfileObjectTypeRequest(input *DetectProfileObjectTypeInput) (req *request.Request, output *DetectProfileObjectTypeOutput) { + op := &request.Operation{ + Name: opDetectProfileObjectType, + HTTPMethod: "POST", + HTTPPath: "/domains/{DomainName}/detect/object-types", + } + + if input == nil { + input = &DetectProfileObjectTypeInput{} + } + + output = &DetectProfileObjectTypeOutput{} + req = c.newRequest(op, input, output) + return +} + +// DetectProfileObjectType API operation for Amazon Connect Customer Profiles. +// +// The process of detecting profile object type mapping by using given objects. +// +// 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 Connect Customer Profiles's +// API operation DetectProfileObjectType for usage and error information. +// +// Returned Error Types: +// +// - BadRequestException +// The input you provided is invalid. +// +// - ResourceNotFoundException +// The requested resource does not exist, or access was denied. +// +// - AccessDeniedException +// You do not have sufficient access to perform this action. +// +// - ThrottlingException +// You exceeded the maximum number of requests. +// +// - InternalServerException +// An internal service error occurred. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/customer-profiles-2020-08-15/DetectProfileObjectType +func (c *CustomerProfiles) DetectProfileObjectType(input *DetectProfileObjectTypeInput) (*DetectProfileObjectTypeOutput, error) { + req, out := c.DetectProfileObjectTypeRequest(input) + return out, req.Send() +} + +// DetectProfileObjectTypeWithContext is the same as DetectProfileObjectType with the addition of +// the ability to pass a context and additional request options. +// +// See DetectProfileObjectType 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 *CustomerProfiles) DetectProfileObjectTypeWithContext(ctx aws.Context, input *DetectProfileObjectTypeInput, opts ...request.Option) (*DetectProfileObjectTypeOutput, error) { + req, out := c.DetectProfileObjectTypeRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opGetAutoMergingPreview = "GetAutoMergingPreview" // GetAutoMergingPreviewRequest generates a "aws/request.Request" representing the @@ -8616,6 +8707,166 @@ func (s *DestinationSummary) SetUri(v string) *DestinationSummary { return s } +type DetectProfileObjectTypeInput struct { + _ struct{} `type:"structure"` + + // The unique name of the domain. + // + // DomainName is a required field + DomainName *string `location:"uri" locationName:"DomainName" min:"1" type:"string" required:"true"` + + // A string that is serialized from a JSON object. + // + // Objects is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by DetectProfileObjectTypeInput's + // String and GoString methods. + // + // Objects is a required field + Objects []*string `min:"1" type:"list" required:"true" 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 DetectProfileObjectTypeInput) 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 DetectProfileObjectTypeInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DetectProfileObjectTypeInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DetectProfileObjectTypeInput"} + if s.DomainName == nil { + invalidParams.Add(request.NewErrParamRequired("DomainName")) + } + if s.DomainName != nil && len(*s.DomainName) < 1 { + invalidParams.Add(request.NewErrParamMinLen("DomainName", 1)) + } + if s.Objects == nil { + invalidParams.Add(request.NewErrParamRequired("Objects")) + } + if s.Objects != nil && len(s.Objects) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Objects", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetDomainName sets the DomainName field's value. +func (s *DetectProfileObjectTypeInput) SetDomainName(v string) *DetectProfileObjectTypeInput { + s.DomainName = &v + return s +} + +// SetObjects sets the Objects field's value. +func (s *DetectProfileObjectTypeInput) SetObjects(v []*string) *DetectProfileObjectTypeInput { + s.Objects = v + return s +} + +type DetectProfileObjectTypeOutput struct { + _ struct{} `type:"structure"` + + // Detected ProfileObjectType mappings from given objects. A maximum of one + // mapping is supported. + DetectedProfileObjectTypes []*DetectedProfileObjectType `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 DetectProfileObjectTypeOutput) 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 DetectProfileObjectTypeOutput) GoString() string { + return s.String() +} + +// SetDetectedProfileObjectTypes sets the DetectedProfileObjectTypes field's value. +func (s *DetectProfileObjectTypeOutput) SetDetectedProfileObjectTypes(v []*DetectedProfileObjectType) *DetectProfileObjectTypeOutput { + s.DetectedProfileObjectTypes = v + return s +} + +// Contains ProfileObjectType mapping information from the model. +type DetectedProfileObjectType struct { + _ struct{} `type:"structure"` + + // A map of the name and the ObjectType field. + // + // Fields is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by DetectedProfileObjectType's + // String and GoString methods. + Fields map[string]*ObjectTypeField `type:"map" sensitive:"true"` + + // A list of unique keys that can be used to map data to a profile. + // + // Keys is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by DetectedProfileObjectType's + // String and GoString methods. + Keys map[string][]*ObjectTypeKey `type:"map" sensitive:"true"` + + // The format of sourceLastUpdatedTimestamp that was detected in fields. + SourceLastUpdatedTimestampFormat *string `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 DetectedProfileObjectType) 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 DetectedProfileObjectType) GoString() string { + return s.String() +} + +// SetFields sets the Fields field's value. +func (s *DetectedProfileObjectType) SetFields(v map[string]*ObjectTypeField) *DetectedProfileObjectType { + s.Fields = v + return s +} + +// SetKeys sets the Keys field's value. +func (s *DetectedProfileObjectType) SetKeys(v map[string][]*ObjectTypeKey) *DetectedProfileObjectType { + s.Keys = v + return s +} + +// SetSourceLastUpdatedTimestampFormat sets the SourceLastUpdatedTimestampFormat field's value. +func (s *DetectedProfileObjectType) SetSourceLastUpdatedTimestampFormat(v string) *DetectedProfileObjectType { + s.SourceLastUpdatedTimestampFormat = &v + return s +} + // Usage-specific statistics about the domain. type DomainStats struct { _ struct{} `type:"structure"` diff --git a/service/customerprofiles/customerprofilesiface/interface.go b/service/customerprofiles/customerprofilesiface/interface.go index f027762557f..2aac7d91a56 100644 --- a/service/customerprofiles/customerprofilesiface/interface.go +++ b/service/customerprofiles/customerprofilesiface/interface.go @@ -120,6 +120,10 @@ type CustomerProfilesAPI interface { DeleteWorkflowWithContext(aws.Context, *customerprofiles.DeleteWorkflowInput, ...request.Option) (*customerprofiles.DeleteWorkflowOutput, error) DeleteWorkflowRequest(*customerprofiles.DeleteWorkflowInput) (*request.Request, *customerprofiles.DeleteWorkflowOutput) + DetectProfileObjectType(*customerprofiles.DetectProfileObjectTypeInput) (*customerprofiles.DetectProfileObjectTypeOutput, error) + DetectProfileObjectTypeWithContext(aws.Context, *customerprofiles.DetectProfileObjectTypeInput, ...request.Option) (*customerprofiles.DetectProfileObjectTypeOutput, error) + DetectProfileObjectTypeRequest(*customerprofiles.DetectProfileObjectTypeInput) (*request.Request, *customerprofiles.DetectProfileObjectTypeOutput) + GetAutoMergingPreview(*customerprofiles.GetAutoMergingPreviewInput) (*customerprofiles.GetAutoMergingPreviewOutput, error) GetAutoMergingPreviewWithContext(aws.Context, *customerprofiles.GetAutoMergingPreviewInput, ...request.Option) (*customerprofiles.GetAutoMergingPreviewOutput, error) GetAutoMergingPreviewRequest(*customerprofiles.GetAutoMergingPreviewInput) (*request.Request, *customerprofiles.GetAutoMergingPreviewOutput) diff --git a/service/qbusiness/api.go b/service/qbusiness/api.go new file mode 100644 index 00000000000..cb4fbf02f97 --- /dev/null +++ b/service/qbusiness/api.go @@ -0,0 +1,19624 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package qbusiness + +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 opBatchDeleteDocument = "BatchDeleteDocument" + +// BatchDeleteDocumentRequest generates a "aws/request.Request" representing the +// client's request for the BatchDeleteDocument 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 BatchDeleteDocument for more information on using the BatchDeleteDocument +// 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 BatchDeleteDocumentRequest method. +// req, resp := client.BatchDeleteDocumentRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/qbusiness-2023-11-27/BatchDeleteDocument +func (c *QBusiness) BatchDeleteDocumentRequest(input *BatchDeleteDocumentInput) (req *request.Request, output *BatchDeleteDocumentOutput) { + op := &request.Operation{ + Name: opBatchDeleteDocument, + HTTPMethod: "POST", + HTTPPath: "/applications/{applicationId}/indices/{indexId}/documents/delete", + } + + if input == nil { + input = &BatchDeleteDocumentInput{} + } + + output = &BatchDeleteDocumentOutput{} + req = c.newRequest(op, input, output) + return +} + +// BatchDeleteDocument API operation for QBusiness. +// +// Asynchronously deletes one or more documents added using the BatchPutDocument +// API from an Amazon Q index. +// +// You can see the progress of the deletion, and any error messages related +// to the process, by using CloudWatch. +// +// 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 QBusiness's +// API operation BatchDeleteDocument for usage and error information. +// +// Returned Error Types: +// +// - ResourceNotFoundException +// The resource you want to use doesn’t exist. Make sure you have provided +// the correct resource and try again. +// +// - InternalServerException +// An issue occurred with the internal server used for your Amazon Q service. +// Wait some minutes and try again, or contact Support (http://aws.amazon.com/contact-us/) +// for help. +// +// - ConflictException +// You are trying to perform an action that conflicts with the current status +// of your resource. Fix any inconsistences with your resources and try again. +// +// - ThrottlingException +// The request was denied due to throttling. Reduce the number of requests and +// try again. +// +// - ValidationException +// The input doesn't meet the constraints set by the Amazon Q service. Provide +// the correct input and try again. +// +// - AccessDeniedException +// You don't have access to perform this action. Make sure you have the required +// permission policies and user accounts and try again. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/qbusiness-2023-11-27/BatchDeleteDocument +func (c *QBusiness) BatchDeleteDocument(input *BatchDeleteDocumentInput) (*BatchDeleteDocumentOutput, error) { + req, out := c.BatchDeleteDocumentRequest(input) + return out, req.Send() +} + +// BatchDeleteDocumentWithContext is the same as BatchDeleteDocument with the addition of +// the ability to pass a context and additional request options. +// +// See BatchDeleteDocument 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 *QBusiness) BatchDeleteDocumentWithContext(ctx aws.Context, input *BatchDeleteDocumentInput, opts ...request.Option) (*BatchDeleteDocumentOutput, error) { + req, out := c.BatchDeleteDocumentRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opBatchPutDocument = "BatchPutDocument" + +// BatchPutDocumentRequest generates a "aws/request.Request" representing the +// client's request for the BatchPutDocument 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 BatchPutDocument for more information on using the BatchPutDocument +// 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 BatchPutDocumentRequest method. +// req, resp := client.BatchPutDocumentRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/qbusiness-2023-11-27/BatchPutDocument +func (c *QBusiness) BatchPutDocumentRequest(input *BatchPutDocumentInput) (req *request.Request, output *BatchPutDocumentOutput) { + op := &request.Operation{ + Name: opBatchPutDocument, + HTTPMethod: "POST", + HTTPPath: "/applications/{applicationId}/indices/{indexId}/documents", + } + + if input == nil { + input = &BatchPutDocumentInput{} + } + + output = &BatchPutDocumentOutput{} + req = c.newRequest(op, input, output) + return +} + +// BatchPutDocument API operation for QBusiness. +// +// Adds one or more documents to an Amazon Q index. +// +// You use this API to: +// +// - ingest your structured and unstructured documents and documents stored +// in an Amazon S3 bucket into an Amazon Q index. +// +// - add custom attributes to documents in an Amazon Q index. +// +// - attach an access control list to the documents added to an Amazon Q +// index. +// +// You can see the progress of the deletion, and any error messages related +// to the process, by using CloudWatch. +// +// 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 QBusiness's +// API operation BatchPutDocument for usage and error information. +// +// Returned Error Types: +// +// - ResourceNotFoundException +// The resource you want to use doesn’t exist. Make sure you have provided +// the correct resource and try again. +// +// - InternalServerException +// An issue occurred with the internal server used for your Amazon Q service. +// Wait some minutes and try again, or contact Support (http://aws.amazon.com/contact-us/) +// for help. +// +// - ConflictException +// You are trying to perform an action that conflicts with the current status +// of your resource. Fix any inconsistences with your resources and try again. +// +// - ThrottlingException +// The request was denied due to throttling. Reduce the number of requests and +// try again. +// +// - ValidationException +// The input doesn't meet the constraints set by the Amazon Q service. Provide +// the correct input and try again. +// +// - AccessDeniedException +// You don't have access to perform this action. Make sure you have the required +// permission policies and user accounts and try again. +// +// - ServiceQuotaExceededException +// You have exceeded the set limits for your Amazon Q service. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/qbusiness-2023-11-27/BatchPutDocument +func (c *QBusiness) BatchPutDocument(input *BatchPutDocumentInput) (*BatchPutDocumentOutput, error) { + req, out := c.BatchPutDocumentRequest(input) + return out, req.Send() +} + +// BatchPutDocumentWithContext is the same as BatchPutDocument with the addition of +// the ability to pass a context and additional request options. +// +// See BatchPutDocument 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 *QBusiness) BatchPutDocumentWithContext(ctx aws.Context, input *BatchPutDocumentInput, opts ...request.Option) (*BatchPutDocumentOutput, error) { + req, out := c.BatchPutDocumentRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opChatSync = "ChatSync" + +// ChatSyncRequest generates a "aws/request.Request" representing the +// client's request for the ChatSync 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 ChatSync for more information on using the ChatSync +// 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 ChatSyncRequest method. +// req, resp := client.ChatSyncRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/qbusiness-2023-11-27/ChatSync +func (c *QBusiness) ChatSyncRequest(input *ChatSyncInput) (req *request.Request, output *ChatSyncOutput) { + op := &request.Operation{ + Name: opChatSync, + HTTPMethod: "POST", + HTTPPath: "/applications/{applicationId}/conversations?sync", + } + + if input == nil { + input = &ChatSyncInput{} + } + + output = &ChatSyncOutput{} + req = c.newRequest(op, input, output) + return +} + +// ChatSync API operation for QBusiness. +// +// Starts or continues a non-streaming Amazon Q conversation. +// +// 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 QBusiness's +// API operation ChatSync for usage and error information. +// +// Returned Error Types: +// +// - ResourceNotFoundException +// The resource you want to use doesn’t exist. Make sure you have provided +// the correct resource and try again. +// +// - InternalServerException +// An issue occurred with the internal server used for your Amazon Q service. +// Wait some minutes and try again, or contact Support (http://aws.amazon.com/contact-us/) +// for help. +// +// - LicenseNotFoundException +// You don't have permissions to perform the action because your license is +// inactive. Ask your admin to activate your license and try again after your +// licence is active. +// +// - ConflictException +// You are trying to perform an action that conflicts with the current status +// of your resource. Fix any inconsistences with your resources and try again. +// +// - ThrottlingException +// The request was denied due to throttling. Reduce the number of requests and +// try again. +// +// - ValidationException +// The input doesn't meet the constraints set by the Amazon Q service. Provide +// the correct input and try again. +// +// - AccessDeniedException +// You don't have access to perform this action. Make sure you have the required +// permission policies and user accounts and try again. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/qbusiness-2023-11-27/ChatSync +func (c *QBusiness) ChatSync(input *ChatSyncInput) (*ChatSyncOutput, error) { + req, out := c.ChatSyncRequest(input) + return out, req.Send() +} + +// ChatSyncWithContext is the same as ChatSync with the addition of +// the ability to pass a context and additional request options. +// +// See ChatSync 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 *QBusiness) ChatSyncWithContext(ctx aws.Context, input *ChatSyncInput, opts ...request.Option) (*ChatSyncOutput, error) { + req, out := c.ChatSyncRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opCreateApplication = "CreateApplication" + +// CreateApplicationRequest generates a "aws/request.Request" representing the +// client's request for the CreateApplication 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 CreateApplication for more information on using the CreateApplication +// 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 CreateApplicationRequest method. +// req, resp := client.CreateApplicationRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/qbusiness-2023-11-27/CreateApplication +func (c *QBusiness) CreateApplicationRequest(input *CreateApplicationInput) (req *request.Request, output *CreateApplicationOutput) { + op := &request.Operation{ + Name: opCreateApplication, + HTTPMethod: "POST", + HTTPPath: "/applications", + } + + if input == nil { + input = &CreateApplicationInput{} + } + + output = &CreateApplicationOutput{} + req = c.newRequest(op, input, output) + return +} + +// CreateApplication API operation for QBusiness. +// +// Creates an Amazon Q application. +// +// 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 QBusiness's +// API operation CreateApplication for usage and error information. +// +// Returned Error Types: +// +// - ResourceNotFoundException +// The resource you want to use doesn’t exist. Make sure you have provided +// the correct resource and try again. +// +// - InternalServerException +// An issue occurred with the internal server used for your Amazon Q service. +// Wait some minutes and try again, or contact Support (http://aws.amazon.com/contact-us/) +// for help. +// +// - ConflictException +// You are trying to perform an action that conflicts with the current status +// of your resource. Fix any inconsistences with your resources and try again. +// +// - ThrottlingException +// The request was denied due to throttling. Reduce the number of requests and +// try again. +// +// - ValidationException +// The input doesn't meet the constraints set by the Amazon Q service. Provide +// the correct input and try again. +// +// - AccessDeniedException +// You don't have access to perform this action. Make sure you have the required +// permission policies and user accounts and try again. +// +// - ServiceQuotaExceededException +// You have exceeded the set limits for your Amazon Q service. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/qbusiness-2023-11-27/CreateApplication +func (c *QBusiness) CreateApplication(input *CreateApplicationInput) (*CreateApplicationOutput, error) { + req, out := c.CreateApplicationRequest(input) + return out, req.Send() +} + +// CreateApplicationWithContext is the same as CreateApplication with the addition of +// the ability to pass a context and additional request options. +// +// See CreateApplication 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 *QBusiness) CreateApplicationWithContext(ctx aws.Context, input *CreateApplicationInput, opts ...request.Option) (*CreateApplicationOutput, error) { + req, out := c.CreateApplicationRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opCreateIndex = "CreateIndex" + +// CreateIndexRequest generates a "aws/request.Request" representing the +// client's request for the CreateIndex 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 CreateIndex for more information on using the CreateIndex +// 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 CreateIndexRequest method. +// req, resp := client.CreateIndexRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/qbusiness-2023-11-27/CreateIndex +func (c *QBusiness) CreateIndexRequest(input *CreateIndexInput) (req *request.Request, output *CreateIndexOutput) { + op := &request.Operation{ + Name: opCreateIndex, + HTTPMethod: "POST", + HTTPPath: "/applications/{applicationId}/indices", + } + + if input == nil { + input = &CreateIndexInput{} + } + + output = &CreateIndexOutput{} + req = c.newRequest(op, input, output) + return +} + +// CreateIndex API operation for QBusiness. +// +// Creates an Amazon Q index. +// +// To determine if index creation has completed, check the Status field returned +// from a call to DescribeIndex. The Status field is set to ACTIVE when the +// index is ready to use. +// +// Once the index is active, you can index your documents using the BatchPutDocument +// (https://docs.aws.amazon.com/enterpriseq/latest/APIReference/API_BatchPutDocument.html) +// API or the CreateDataSource (https://docs.aws.amazon.com/enterpriseq/latest/APIReference/API_CreateDataSource.html) +// API. +// +// 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 QBusiness's +// API operation CreateIndex for usage and error information. +// +// Returned Error Types: +// +// - ResourceNotFoundException +// The resource you want to use doesn’t exist. Make sure you have provided +// the correct resource and try again. +// +// - InternalServerException +// An issue occurred with the internal server used for your Amazon Q service. +// Wait some minutes and try again, or contact Support (http://aws.amazon.com/contact-us/) +// for help. +// +// - ConflictException +// You are trying to perform an action that conflicts with the current status +// of your resource. Fix any inconsistences with your resources and try again. +// +// - ThrottlingException +// The request was denied due to throttling. Reduce the number of requests and +// try again. +// +// - ValidationException +// The input doesn't meet the constraints set by the Amazon Q service. Provide +// the correct input and try again. +// +// - AccessDeniedException +// You don't have access to perform this action. Make sure you have the required +// permission policies and user accounts and try again. +// +// - ServiceQuotaExceededException +// You have exceeded the set limits for your Amazon Q service. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/qbusiness-2023-11-27/CreateIndex +func (c *QBusiness) CreateIndex(input *CreateIndexInput) (*CreateIndexOutput, error) { + req, out := c.CreateIndexRequest(input) + return out, req.Send() +} + +// CreateIndexWithContext is the same as CreateIndex with the addition of +// the ability to pass a context and additional request options. +// +// See CreateIndex 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 *QBusiness) CreateIndexWithContext(ctx aws.Context, input *CreateIndexInput, opts ...request.Option) (*CreateIndexOutput, error) { + req, out := c.CreateIndexRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opCreatePlugin = "CreatePlugin" + +// CreatePluginRequest generates a "aws/request.Request" representing the +// client's request for the CreatePlugin 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 CreatePlugin for more information on using the CreatePlugin +// 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 CreatePluginRequest method. +// req, resp := client.CreatePluginRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/qbusiness-2023-11-27/CreatePlugin +func (c *QBusiness) CreatePluginRequest(input *CreatePluginInput) (req *request.Request, output *CreatePluginOutput) { + op := &request.Operation{ + Name: opCreatePlugin, + HTTPMethod: "POST", + HTTPPath: "/applications/{applicationId}/plugins", + } + + if input == nil { + input = &CreatePluginInput{} + } + + output = &CreatePluginOutput{} + req = c.newRequest(op, input, output) + return +} + +// CreatePlugin API operation for QBusiness. +// +// Creates an Amazon Q plugin. +// +// 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 QBusiness's +// API operation CreatePlugin for usage and error information. +// +// Returned Error Types: +// +// - ResourceNotFoundException +// The resource you want to use doesn’t exist. Make sure you have provided +// the correct resource and try again. +// +// - InternalServerException +// An issue occurred with the internal server used for your Amazon Q service. +// Wait some minutes and try again, or contact Support (http://aws.amazon.com/contact-us/) +// for help. +// +// - ConflictException +// You are trying to perform an action that conflicts with the current status +// of your resource. Fix any inconsistences with your resources and try again. +// +// - ThrottlingException +// The request was denied due to throttling. Reduce the number of requests and +// try again. +// +// - ValidationException +// The input doesn't meet the constraints set by the Amazon Q service. Provide +// the correct input and try again. +// +// - AccessDeniedException +// You don't have access to perform this action. Make sure you have the required +// permission policies and user accounts and try again. +// +// - ServiceQuotaExceededException +// You have exceeded the set limits for your Amazon Q service. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/qbusiness-2023-11-27/CreatePlugin +func (c *QBusiness) CreatePlugin(input *CreatePluginInput) (*CreatePluginOutput, error) { + req, out := c.CreatePluginRequest(input) + return out, req.Send() +} + +// CreatePluginWithContext is the same as CreatePlugin with the addition of +// the ability to pass a context and additional request options. +// +// See CreatePlugin 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 *QBusiness) CreatePluginWithContext(ctx aws.Context, input *CreatePluginInput, opts ...request.Option) (*CreatePluginOutput, error) { + req, out := c.CreatePluginRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opCreateRetriever = "CreateRetriever" + +// CreateRetrieverRequest generates a "aws/request.Request" representing the +// client's request for the CreateRetriever 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 CreateRetriever for more information on using the CreateRetriever +// 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 CreateRetrieverRequest method. +// req, resp := client.CreateRetrieverRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/qbusiness-2023-11-27/CreateRetriever +func (c *QBusiness) CreateRetrieverRequest(input *CreateRetrieverInput) (req *request.Request, output *CreateRetrieverOutput) { + op := &request.Operation{ + Name: opCreateRetriever, + HTTPMethod: "POST", + HTTPPath: "/applications/{applicationId}/retrievers", + } + + if input == nil { + input = &CreateRetrieverInput{} + } + + output = &CreateRetrieverOutput{} + req = c.newRequest(op, input, output) + return +} + +// CreateRetriever API operation for QBusiness. +// +// Adds a retriever to your Amazon Q application. +// +// 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 QBusiness's +// API operation CreateRetriever for usage and error information. +// +// Returned Error Types: +// +// - ResourceNotFoundException +// The resource you want to use doesn’t exist. Make sure you have provided +// the correct resource and try again. +// +// - InternalServerException +// An issue occurred with the internal server used for your Amazon Q service. +// Wait some minutes and try again, or contact Support (http://aws.amazon.com/contact-us/) +// for help. +// +// - ConflictException +// You are trying to perform an action that conflicts with the current status +// of your resource. Fix any inconsistences with your resources and try again. +// +// - ThrottlingException +// The request was denied due to throttling. Reduce the number of requests and +// try again. +// +// - ValidationException +// The input doesn't meet the constraints set by the Amazon Q service. Provide +// the correct input and try again. +// +// - AccessDeniedException +// You don't have access to perform this action. Make sure you have the required +// permission policies and user accounts and try again. +// +// - ServiceQuotaExceededException +// You have exceeded the set limits for your Amazon Q service. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/qbusiness-2023-11-27/CreateRetriever +func (c *QBusiness) CreateRetriever(input *CreateRetrieverInput) (*CreateRetrieverOutput, error) { + req, out := c.CreateRetrieverRequest(input) + return out, req.Send() +} + +// CreateRetrieverWithContext is the same as CreateRetriever with the addition of +// the ability to pass a context and additional request options. +// +// See CreateRetriever 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 *QBusiness) CreateRetrieverWithContext(ctx aws.Context, input *CreateRetrieverInput, opts ...request.Option) (*CreateRetrieverOutput, error) { + req, out := c.CreateRetrieverRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opCreateUser = "CreateUser" + +// CreateUserRequest generates a "aws/request.Request" representing the +// client's request for the CreateUser 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 CreateUser for more information on using the CreateUser +// 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 CreateUserRequest method. +// req, resp := client.CreateUserRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/qbusiness-2023-11-27/CreateUser +func (c *QBusiness) CreateUserRequest(input *CreateUserInput) (req *request.Request, output *CreateUserOutput) { + op := &request.Operation{ + Name: opCreateUser, + HTTPMethod: "POST", + HTTPPath: "/applications/{applicationId}/users", + } + + if input == nil { + input = &CreateUserInput{} + } + + output = &CreateUserOutput{} + req = c.newRequest(op, input, output) + req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) + return +} + +// CreateUser API operation for QBusiness. +// +// Creates a universally unique identifier (UUID) mapped to a list of local +// user ids within an application. +// +// 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 QBusiness's +// API operation CreateUser for usage and error information. +// +// Returned Error Types: +// +// - ResourceNotFoundException +// The resource you want to use doesn’t exist. Make sure you have provided +// the correct resource and try again. +// +// - InternalServerException +// An issue occurred with the internal server used for your Amazon Q service. +// Wait some minutes and try again, or contact Support (http://aws.amazon.com/contact-us/) +// for help. +// +// - ConflictException +// You are trying to perform an action that conflicts with the current status +// of your resource. Fix any inconsistences with your resources and try again. +// +// - ThrottlingException +// The request was denied due to throttling. Reduce the number of requests and +// try again. +// +// - ValidationException +// The input doesn't meet the constraints set by the Amazon Q service. Provide +// the correct input and try again. +// +// - AccessDeniedException +// You don't have access to perform this action. Make sure you have the required +// permission policies and user accounts and try again. +// +// - ServiceQuotaExceededException +// You have exceeded the set limits for your Amazon Q service. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/qbusiness-2023-11-27/CreateUser +func (c *QBusiness) CreateUser(input *CreateUserInput) (*CreateUserOutput, error) { + req, out := c.CreateUserRequest(input) + return out, req.Send() +} + +// CreateUserWithContext is the same as CreateUser with the addition of +// the ability to pass a context and additional request options. +// +// See CreateUser 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 *QBusiness) CreateUserWithContext(ctx aws.Context, input *CreateUserInput, opts ...request.Option) (*CreateUserOutput, error) { + req, out := c.CreateUserRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opCreateWebExperience = "CreateWebExperience" + +// CreateWebExperienceRequest generates a "aws/request.Request" representing the +// client's request for the CreateWebExperience 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 CreateWebExperience for more information on using the CreateWebExperience +// 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 CreateWebExperienceRequest method. +// req, resp := client.CreateWebExperienceRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/qbusiness-2023-11-27/CreateWebExperience +func (c *QBusiness) CreateWebExperienceRequest(input *CreateWebExperienceInput) (req *request.Request, output *CreateWebExperienceOutput) { + op := &request.Operation{ + Name: opCreateWebExperience, + HTTPMethod: "POST", + HTTPPath: "/applications/{applicationId}/experiences", + } + + if input == nil { + input = &CreateWebExperienceInput{} + } + + output = &CreateWebExperienceOutput{} + req = c.newRequest(op, input, output) + return +} + +// CreateWebExperience API operation for QBusiness. +// +// Creates an Amazon Q web experience. +// +// 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 QBusiness's +// API operation CreateWebExperience for usage and error information. +// +// Returned Error Types: +// +// - ResourceNotFoundException +// The resource you want to use doesn’t exist. Make sure you have provided +// the correct resource and try again. +// +// - InternalServerException +// An issue occurred with the internal server used for your Amazon Q service. +// Wait some minutes and try again, or contact Support (http://aws.amazon.com/contact-us/) +// for help. +// +// - ConflictException +// You are trying to perform an action that conflicts with the current status +// of your resource. Fix any inconsistences with your resources and try again. +// +// - ThrottlingException +// The request was denied due to throttling. Reduce the number of requests and +// try again. +// +// - ValidationException +// The input doesn't meet the constraints set by the Amazon Q service. Provide +// the correct input and try again. +// +// - AccessDeniedException +// You don't have access to perform this action. Make sure you have the required +// permission policies and user accounts and try again. +// +// - ServiceQuotaExceededException +// You have exceeded the set limits for your Amazon Q service. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/qbusiness-2023-11-27/CreateWebExperience +func (c *QBusiness) CreateWebExperience(input *CreateWebExperienceInput) (*CreateWebExperienceOutput, error) { + req, out := c.CreateWebExperienceRequest(input) + return out, req.Send() +} + +// CreateWebExperienceWithContext is the same as CreateWebExperience with the addition of +// the ability to pass a context and additional request options. +// +// See CreateWebExperience 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 *QBusiness) CreateWebExperienceWithContext(ctx aws.Context, input *CreateWebExperienceInput, opts ...request.Option) (*CreateWebExperienceOutput, error) { + req, out := c.CreateWebExperienceRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opDeleteApplication = "DeleteApplication" + +// DeleteApplicationRequest generates a "aws/request.Request" representing the +// client's request for the DeleteApplication 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 DeleteApplication for more information on using the DeleteApplication +// 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 DeleteApplicationRequest method. +// req, resp := client.DeleteApplicationRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/qbusiness-2023-11-27/DeleteApplication +func (c *QBusiness) DeleteApplicationRequest(input *DeleteApplicationInput) (req *request.Request, output *DeleteApplicationOutput) { + op := &request.Operation{ + Name: opDeleteApplication, + HTTPMethod: "DELETE", + HTTPPath: "/applications/{applicationId}", + } + + if input == nil { + input = &DeleteApplicationInput{} + } + + output = &DeleteApplicationOutput{} + req = c.newRequest(op, input, output) + req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) + return +} + +// DeleteApplication API operation for QBusiness. +// +// Deletes an Amazon Q application. +// +// 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 QBusiness's +// API operation DeleteApplication for usage and error information. +// +// Returned Error Types: +// +// - ResourceNotFoundException +// The resource you want to use doesn’t exist. Make sure you have provided +// the correct resource and try again. +// +// - InternalServerException +// An issue occurred with the internal server used for your Amazon Q service. +// Wait some minutes and try again, or contact Support (http://aws.amazon.com/contact-us/) +// for help. +// +// - ConflictException +// You are trying to perform an action that conflicts with the current status +// of your resource. Fix any inconsistences with your resources and try again. +// +// - ThrottlingException +// The request was denied due to throttling. Reduce the number of requests and +// try again. +// +// - ValidationException +// The input doesn't meet the constraints set by the Amazon Q service. Provide +// the correct input and try again. +// +// - AccessDeniedException +// You don't have access to perform this action. Make sure you have the required +// permission policies and user accounts and try again. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/qbusiness-2023-11-27/DeleteApplication +func (c *QBusiness) DeleteApplication(input *DeleteApplicationInput) (*DeleteApplicationOutput, error) { + req, out := c.DeleteApplicationRequest(input) + return out, req.Send() +} + +// DeleteApplicationWithContext is the same as DeleteApplication with the addition of +// the ability to pass a context and additional request options. +// +// See DeleteApplication 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 *QBusiness) DeleteApplicationWithContext(ctx aws.Context, input *DeleteApplicationInput, opts ...request.Option) (*DeleteApplicationOutput, error) { + req, out := c.DeleteApplicationRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opDeleteChatControlsConfiguration = "DeleteChatControlsConfiguration" + +// DeleteChatControlsConfigurationRequest generates a "aws/request.Request" representing the +// client's request for the DeleteChatControlsConfiguration 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 DeleteChatControlsConfiguration for more information on using the DeleteChatControlsConfiguration +// 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 DeleteChatControlsConfigurationRequest method. +// req, resp := client.DeleteChatControlsConfigurationRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/qbusiness-2023-11-27/DeleteChatControlsConfiguration +func (c *QBusiness) DeleteChatControlsConfigurationRequest(input *DeleteChatControlsConfigurationInput) (req *request.Request, output *DeleteChatControlsConfigurationOutput) { + op := &request.Operation{ + Name: opDeleteChatControlsConfiguration, + HTTPMethod: "DELETE", + HTTPPath: "/applications/{applicationId}/chatcontrols", + } + + if input == nil { + input = &DeleteChatControlsConfigurationInput{} + } + + output = &DeleteChatControlsConfigurationOutput{} + req = c.newRequest(op, input, output) + req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) + return +} + +// DeleteChatControlsConfiguration API operation for QBusiness. +// +// Deletes chat controls configured for an existing Amazon Q application. +// +// 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 QBusiness's +// API operation DeleteChatControlsConfiguration for usage and error information. +// +// Returned Error Types: +// +// - ResourceNotFoundException +// The resource you want to use doesn’t exist. Make sure you have provided +// the correct resource and try again. +// +// - InternalServerException +// An issue occurred with the internal server used for your Amazon Q service. +// Wait some minutes and try again, or contact Support (http://aws.amazon.com/contact-us/) +// for help. +// +// - ThrottlingException +// The request was denied due to throttling. Reduce the number of requests and +// try again. +// +// - ValidationException +// The input doesn't meet the constraints set by the Amazon Q service. Provide +// the correct input and try again. +// +// - AccessDeniedException +// You don't have access to perform this action. Make sure you have the required +// permission policies and user accounts and try again. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/qbusiness-2023-11-27/DeleteChatControlsConfiguration +func (c *QBusiness) DeleteChatControlsConfiguration(input *DeleteChatControlsConfigurationInput) (*DeleteChatControlsConfigurationOutput, error) { + req, out := c.DeleteChatControlsConfigurationRequest(input) + return out, req.Send() +} + +// DeleteChatControlsConfigurationWithContext is the same as DeleteChatControlsConfiguration with the addition of +// the ability to pass a context and additional request options. +// +// See DeleteChatControlsConfiguration 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 *QBusiness) DeleteChatControlsConfigurationWithContext(ctx aws.Context, input *DeleteChatControlsConfigurationInput, opts ...request.Option) (*DeleteChatControlsConfigurationOutput, error) { + req, out := c.DeleteChatControlsConfigurationRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opDeleteConversation = "DeleteConversation" + +// DeleteConversationRequest generates a "aws/request.Request" representing the +// client's request for the DeleteConversation 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 DeleteConversation for more information on using the DeleteConversation +// 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 DeleteConversationRequest method. +// req, resp := client.DeleteConversationRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/qbusiness-2023-11-27/DeleteConversation +func (c *QBusiness) DeleteConversationRequest(input *DeleteConversationInput) (req *request.Request, output *DeleteConversationOutput) { + op := &request.Operation{ + Name: opDeleteConversation, + HTTPMethod: "DELETE", + HTTPPath: "/applications/{applicationId}/conversations/{conversationId}", + } + + if input == nil { + input = &DeleteConversationInput{} + } + + output = &DeleteConversationOutput{} + req = c.newRequest(op, input, output) + req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) + return +} + +// DeleteConversation API operation for QBusiness. +// +// Deletes an Amazon Q web experience conversation. +// +// 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 QBusiness's +// API operation DeleteConversation for usage and error information. +// +// Returned Error Types: +// +// - ResourceNotFoundException +// The resource you want to use doesn’t exist. Make sure you have provided +// the correct resource and try again. +// +// - InternalServerException +// An issue occurred with the internal server used for your Amazon Q service. +// Wait some minutes and try again, or contact Support (http://aws.amazon.com/contact-us/) +// for help. +// +// - LicenseNotFoundException +// You don't have permissions to perform the action because your license is +// inactive. Ask your admin to activate your license and try again after your +// licence is active. +// +// - ThrottlingException +// The request was denied due to throttling. Reduce the number of requests and +// try again. +// +// - ValidationException +// The input doesn't meet the constraints set by the Amazon Q service. Provide +// the correct input and try again. +// +// - AccessDeniedException +// You don't have access to perform this action. Make sure you have the required +// permission policies and user accounts and try again. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/qbusiness-2023-11-27/DeleteConversation +func (c *QBusiness) DeleteConversation(input *DeleteConversationInput) (*DeleteConversationOutput, error) { + req, out := c.DeleteConversationRequest(input) + return out, req.Send() +} + +// DeleteConversationWithContext is the same as DeleteConversation with the addition of +// the ability to pass a context and additional request options. +// +// See DeleteConversation 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 *QBusiness) DeleteConversationWithContext(ctx aws.Context, input *DeleteConversationInput, opts ...request.Option) (*DeleteConversationOutput, error) { + req, out := c.DeleteConversationRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opDeleteDataSource = "DeleteDataSource" + +// DeleteDataSourceRequest generates a "aws/request.Request" representing the +// client's request for the DeleteDataSource 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 DeleteDataSource for more information on using the DeleteDataSource +// 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 DeleteDataSourceRequest method. +// req, resp := client.DeleteDataSourceRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/qbusiness-2023-11-27/DeleteDataSource +func (c *QBusiness) DeleteDataSourceRequest(input *DeleteDataSourceInput) (req *request.Request, output *DeleteDataSourceOutput) { + op := &request.Operation{ + Name: opDeleteDataSource, + HTTPMethod: "DELETE", + HTTPPath: "/applications/{applicationId}/indices/{indexId}/datasources/{dataSourceId}", + } + + if input == nil { + input = &DeleteDataSourceInput{} + } + + output = &DeleteDataSourceOutput{} + req = c.newRequest(op, input, output) + req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) + return +} + +// DeleteDataSource API operation for QBusiness. +// +// Deletes an Amazon Q data source connector. While the data source is being +// deleted, the Status field returned by a call to the DescribeDataSource API +// is set to DELETING. +// +// 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 QBusiness's +// API operation DeleteDataSource for usage and error information. +// +// Returned Error Types: +// +// - ResourceNotFoundException +// The resource you want to use doesn’t exist. Make sure you have provided +// the correct resource and try again. +// +// - InternalServerException +// An issue occurred with the internal server used for your Amazon Q service. +// Wait some minutes and try again, or contact Support (http://aws.amazon.com/contact-us/) +// for help. +// +// - ConflictException +// You are trying to perform an action that conflicts with the current status +// of your resource. Fix any inconsistences with your resources and try again. +// +// - ThrottlingException +// The request was denied due to throttling. Reduce the number of requests and +// try again. +// +// - ValidationException +// The input doesn't meet the constraints set by the Amazon Q service. Provide +// the correct input and try again. +// +// - AccessDeniedException +// You don't have access to perform this action. Make sure you have the required +// permission policies and user accounts and try again. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/qbusiness-2023-11-27/DeleteDataSource +func (c *QBusiness) DeleteDataSource(input *DeleteDataSourceInput) (*DeleteDataSourceOutput, error) { + req, out := c.DeleteDataSourceRequest(input) + return out, req.Send() +} + +// DeleteDataSourceWithContext is the same as DeleteDataSource with the addition of +// the ability to pass a context and additional request options. +// +// See DeleteDataSource 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 *QBusiness) DeleteDataSourceWithContext(ctx aws.Context, input *DeleteDataSourceInput, opts ...request.Option) (*DeleteDataSourceOutput, error) { + req, out := c.DeleteDataSourceRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opDeleteGroup = "DeleteGroup" + +// DeleteGroupRequest generates a "aws/request.Request" representing the +// client's request for the DeleteGroup 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 DeleteGroup for more information on using the DeleteGroup +// 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 DeleteGroupRequest method. +// req, resp := client.DeleteGroupRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/qbusiness-2023-11-27/DeleteGroup +func (c *QBusiness) DeleteGroupRequest(input *DeleteGroupInput) (req *request.Request, output *DeleteGroupOutput) { + op := &request.Operation{ + Name: opDeleteGroup, + HTTPMethod: "DELETE", + HTTPPath: "/applications/{applicationId}/indices/{indexId}/groups/{groupName}", + } + + if input == nil { + input = &DeleteGroupInput{} + } + + output = &DeleteGroupOutput{} + req = c.newRequest(op, input, output) + req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) + return +} + +// DeleteGroup API operation for QBusiness. +// +// Deletes a group so that all users and sub groups that belong to the group +// can no longer access documents only available to that group. For example, +// after deleting the group "Summer Interns", all interns who belonged to that +// group no longer see intern-only documents in their chat results. +// +// If you want to delete, update, or replace users or sub groups of a group, +// you need to use the PutGroup operation. For example, if a user in the group +// "Engineering" leaves the engineering team and another user takes their place, +// you provide an updated list of users or sub groups that belong to the "Engineering" +// group when calling PutGroup. +// +// 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 QBusiness's +// API operation DeleteGroup for usage and error information. +// +// Returned Error Types: +// +// - ResourceNotFoundException +// The resource you want to use doesn’t exist. Make sure you have provided +// the correct resource and try again. +// +// - InternalServerException +// An issue occurred with the internal server used for your Amazon Q service. +// Wait some minutes and try again, or contact Support (http://aws.amazon.com/contact-us/) +// for help. +// +// - ConflictException +// You are trying to perform an action that conflicts with the current status +// of your resource. Fix any inconsistences with your resources and try again. +// +// - ThrottlingException +// The request was denied due to throttling. Reduce the number of requests and +// try again. +// +// - ValidationException +// The input doesn't meet the constraints set by the Amazon Q service. Provide +// the correct input and try again. +// +// - AccessDeniedException +// You don't have access to perform this action. Make sure you have the required +// permission policies and user accounts and try again. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/qbusiness-2023-11-27/DeleteGroup +func (c *QBusiness) DeleteGroup(input *DeleteGroupInput) (*DeleteGroupOutput, error) { + req, out := c.DeleteGroupRequest(input) + return out, req.Send() +} + +// DeleteGroupWithContext is the same as DeleteGroup with the addition of +// the ability to pass a context and additional request options. +// +// See DeleteGroup 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 *QBusiness) DeleteGroupWithContext(ctx aws.Context, input *DeleteGroupInput, opts ...request.Option) (*DeleteGroupOutput, error) { + req, out := c.DeleteGroupRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opDeleteIndex = "DeleteIndex" + +// DeleteIndexRequest generates a "aws/request.Request" representing the +// client's request for the DeleteIndex 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 DeleteIndex for more information on using the DeleteIndex +// 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 DeleteIndexRequest method. +// req, resp := client.DeleteIndexRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/qbusiness-2023-11-27/DeleteIndex +func (c *QBusiness) DeleteIndexRequest(input *DeleteIndexInput) (req *request.Request, output *DeleteIndexOutput) { + op := &request.Operation{ + Name: opDeleteIndex, + HTTPMethod: "DELETE", + HTTPPath: "/applications/{applicationId}/indices/{indexId}", + } + + if input == nil { + input = &DeleteIndexInput{} + } + + output = &DeleteIndexOutput{} + req = c.newRequest(op, input, output) + req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) + return +} + +// DeleteIndex API operation for QBusiness. +// +// Deletes an Amazon Q index. +// +// 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 QBusiness's +// API operation DeleteIndex for usage and error information. +// +// Returned Error Types: +// +// - ResourceNotFoundException +// The resource you want to use doesn’t exist. Make sure you have provided +// the correct resource and try again. +// +// - InternalServerException +// An issue occurred with the internal server used for your Amazon Q service. +// Wait some minutes and try again, or contact Support (http://aws.amazon.com/contact-us/) +// for help. +// +// - ConflictException +// You are trying to perform an action that conflicts with the current status +// of your resource. Fix any inconsistences with your resources and try again. +// +// - ThrottlingException +// The request was denied due to throttling. Reduce the number of requests and +// try again. +// +// - ValidationException +// The input doesn't meet the constraints set by the Amazon Q service. Provide +// the correct input and try again. +// +// - AccessDeniedException +// You don't have access to perform this action. Make sure you have the required +// permission policies and user accounts and try again. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/qbusiness-2023-11-27/DeleteIndex +func (c *QBusiness) DeleteIndex(input *DeleteIndexInput) (*DeleteIndexOutput, error) { + req, out := c.DeleteIndexRequest(input) + return out, req.Send() +} + +// DeleteIndexWithContext is the same as DeleteIndex with the addition of +// the ability to pass a context and additional request options. +// +// See DeleteIndex 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 *QBusiness) DeleteIndexWithContext(ctx aws.Context, input *DeleteIndexInput, opts ...request.Option) (*DeleteIndexOutput, error) { + req, out := c.DeleteIndexRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opDeletePlugin = "DeletePlugin" + +// DeletePluginRequest generates a "aws/request.Request" representing the +// client's request for the DeletePlugin 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 DeletePlugin for more information on using the DeletePlugin +// 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 DeletePluginRequest method. +// req, resp := client.DeletePluginRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/qbusiness-2023-11-27/DeletePlugin +func (c *QBusiness) DeletePluginRequest(input *DeletePluginInput) (req *request.Request, output *DeletePluginOutput) { + op := &request.Operation{ + Name: opDeletePlugin, + HTTPMethod: "DELETE", + HTTPPath: "/applications/{applicationId}/plugins/{pluginId}", + } + + if input == nil { + input = &DeletePluginInput{} + } + + output = &DeletePluginOutput{} + req = c.newRequest(op, input, output) + req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) + return +} + +// DeletePlugin API operation for QBusiness. +// +// Deletes an Amazon Q plugin. +// +// 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 QBusiness's +// API operation DeletePlugin for usage and error information. +// +// Returned Error Types: +// +// - ResourceNotFoundException +// The resource you want to use doesn’t exist. Make sure you have provided +// the correct resource and try again. +// +// - InternalServerException +// An issue occurred with the internal server used for your Amazon Q service. +// Wait some minutes and try again, or contact Support (http://aws.amazon.com/contact-us/) +// for help. +// +// - ConflictException +// You are trying to perform an action that conflicts with the current status +// of your resource. Fix any inconsistences with your resources and try again. +// +// - ThrottlingException +// The request was denied due to throttling. Reduce the number of requests and +// try again. +// +// - ValidationException +// The input doesn't meet the constraints set by the Amazon Q service. Provide +// the correct input and try again. +// +// - AccessDeniedException +// You don't have access to perform this action. Make sure you have the required +// permission policies and user accounts and try again. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/qbusiness-2023-11-27/DeletePlugin +func (c *QBusiness) DeletePlugin(input *DeletePluginInput) (*DeletePluginOutput, error) { + req, out := c.DeletePluginRequest(input) + return out, req.Send() +} + +// DeletePluginWithContext is the same as DeletePlugin with the addition of +// the ability to pass a context and additional request options. +// +// See DeletePlugin 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 *QBusiness) DeletePluginWithContext(ctx aws.Context, input *DeletePluginInput, opts ...request.Option) (*DeletePluginOutput, error) { + req, out := c.DeletePluginRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opDeleteRetriever = "DeleteRetriever" + +// DeleteRetrieverRequest generates a "aws/request.Request" representing the +// client's request for the DeleteRetriever 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 DeleteRetriever for more information on using the DeleteRetriever +// 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 DeleteRetrieverRequest method. +// req, resp := client.DeleteRetrieverRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/qbusiness-2023-11-27/DeleteRetriever +func (c *QBusiness) DeleteRetrieverRequest(input *DeleteRetrieverInput) (req *request.Request, output *DeleteRetrieverOutput) { + op := &request.Operation{ + Name: opDeleteRetriever, + HTTPMethod: "DELETE", + HTTPPath: "/applications/{applicationId}/retrievers/{retrieverId}", + } + + if input == nil { + input = &DeleteRetrieverInput{} + } + + output = &DeleteRetrieverOutput{} + req = c.newRequest(op, input, output) + req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) + return +} + +// DeleteRetriever API operation for QBusiness. +// +// Deletes the retriever used by an Amazon Q application. +// +// 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 QBusiness's +// API operation DeleteRetriever for usage and error information. +// +// Returned Error Types: +// +// - ResourceNotFoundException +// The resource you want to use doesn’t exist. Make sure you have provided +// the correct resource and try again. +// +// - InternalServerException +// An issue occurred with the internal server used for your Amazon Q service. +// Wait some minutes and try again, or contact Support (http://aws.amazon.com/contact-us/) +// for help. +// +// - ConflictException +// You are trying to perform an action that conflicts with the current status +// of your resource. Fix any inconsistences with your resources and try again. +// +// - ThrottlingException +// The request was denied due to throttling. Reduce the number of requests and +// try again. +// +// - ValidationException +// The input doesn't meet the constraints set by the Amazon Q service. Provide +// the correct input and try again. +// +// - AccessDeniedException +// You don't have access to perform this action. Make sure you have the required +// permission policies and user accounts and try again. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/qbusiness-2023-11-27/DeleteRetriever +func (c *QBusiness) DeleteRetriever(input *DeleteRetrieverInput) (*DeleteRetrieverOutput, error) { + req, out := c.DeleteRetrieverRequest(input) + return out, req.Send() +} + +// DeleteRetrieverWithContext is the same as DeleteRetriever with the addition of +// the ability to pass a context and additional request options. +// +// See DeleteRetriever 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 *QBusiness) DeleteRetrieverWithContext(ctx aws.Context, input *DeleteRetrieverInput, opts ...request.Option) (*DeleteRetrieverOutput, error) { + req, out := c.DeleteRetrieverRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opDeleteUser = "DeleteUser" + +// DeleteUserRequest generates a "aws/request.Request" representing the +// client's request for the DeleteUser 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 DeleteUser for more information on using the DeleteUser +// 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 DeleteUserRequest method. +// req, resp := client.DeleteUserRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/qbusiness-2023-11-27/DeleteUser +func (c *QBusiness) DeleteUserRequest(input *DeleteUserInput) (req *request.Request, output *DeleteUserOutput) { + op := &request.Operation{ + Name: opDeleteUser, + HTTPMethod: "DELETE", + HTTPPath: "/applications/{applicationId}/users/{userId}", + } + + if input == nil { + input = &DeleteUserInput{} + } + + output = &DeleteUserOutput{} + req = c.newRequest(op, input, output) + req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) + return +} + +// DeleteUser API operation for QBusiness. +// +// Deletes a user by email id. +// +// 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 QBusiness's +// API operation DeleteUser for usage and error information. +// +// Returned Error Types: +// +// - ResourceNotFoundException +// The resource you want to use doesn’t exist. Make sure you have provided +// the correct resource and try again. +// +// - InternalServerException +// An issue occurred with the internal server used for your Amazon Q service. +// Wait some minutes and try again, or contact Support (http://aws.amazon.com/contact-us/) +// for help. +// +// - ConflictException +// You are trying to perform an action that conflicts with the current status +// of your resource. Fix any inconsistences with your resources and try again. +// +// - ThrottlingException +// The request was denied due to throttling. Reduce the number of requests and +// try again. +// +// - ValidationException +// The input doesn't meet the constraints set by the Amazon Q service. Provide +// the correct input and try again. +// +// - AccessDeniedException +// You don't have access to perform this action. Make sure you have the required +// permission policies and user accounts and try again. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/qbusiness-2023-11-27/DeleteUser +func (c *QBusiness) DeleteUser(input *DeleteUserInput) (*DeleteUserOutput, error) { + req, out := c.DeleteUserRequest(input) + return out, req.Send() +} + +// DeleteUserWithContext is the same as DeleteUser with the addition of +// the ability to pass a context and additional request options. +// +// See DeleteUser 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 *QBusiness) DeleteUserWithContext(ctx aws.Context, input *DeleteUserInput, opts ...request.Option) (*DeleteUserOutput, error) { + req, out := c.DeleteUserRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opDeleteWebExperience = "DeleteWebExperience" + +// DeleteWebExperienceRequest generates a "aws/request.Request" representing the +// client's request for the DeleteWebExperience 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 DeleteWebExperience for more information on using the DeleteWebExperience +// 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 DeleteWebExperienceRequest method. +// req, resp := client.DeleteWebExperienceRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/qbusiness-2023-11-27/DeleteWebExperience +func (c *QBusiness) DeleteWebExperienceRequest(input *DeleteWebExperienceInput) (req *request.Request, output *DeleteWebExperienceOutput) { + op := &request.Operation{ + Name: opDeleteWebExperience, + HTTPMethod: "DELETE", + HTTPPath: "/applications/{applicationId}/experiences/{webExperienceId}", + } + + if input == nil { + input = &DeleteWebExperienceInput{} + } + + output = &DeleteWebExperienceOutput{} + req = c.newRequest(op, input, output) + req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) + return +} + +// DeleteWebExperience API operation for QBusiness. +// +// Deletes an Amazon Q web experience. +// +// 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 QBusiness's +// API operation DeleteWebExperience for usage and error information. +// +// Returned Error Types: +// +// - ResourceNotFoundException +// The resource you want to use doesn’t exist. Make sure you have provided +// the correct resource and try again. +// +// - InternalServerException +// An issue occurred with the internal server used for your Amazon Q service. +// Wait some minutes and try again, or contact Support (http://aws.amazon.com/contact-us/) +// for help. +// +// - ConflictException +// You are trying to perform an action that conflicts with the current status +// of your resource. Fix any inconsistences with your resources and try again. +// +// - ThrottlingException +// The request was denied due to throttling. Reduce the number of requests and +// try again. +// +// - ValidationException +// The input doesn't meet the constraints set by the Amazon Q service. Provide +// the correct input and try again. +// +// - AccessDeniedException +// You don't have access to perform this action. Make sure you have the required +// permission policies and user accounts and try again. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/qbusiness-2023-11-27/DeleteWebExperience +func (c *QBusiness) DeleteWebExperience(input *DeleteWebExperienceInput) (*DeleteWebExperienceOutput, error) { + req, out := c.DeleteWebExperienceRequest(input) + return out, req.Send() +} + +// DeleteWebExperienceWithContext is the same as DeleteWebExperience with the addition of +// the ability to pass a context and additional request options. +// +// See DeleteWebExperience 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 *QBusiness) DeleteWebExperienceWithContext(ctx aws.Context, input *DeleteWebExperienceInput, opts ...request.Option) (*DeleteWebExperienceOutput, error) { + req, out := c.DeleteWebExperienceRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opGetApplication = "GetApplication" + +// GetApplicationRequest generates a "aws/request.Request" representing the +// client's request for the GetApplication 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 GetApplication for more information on using the GetApplication +// 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 GetApplicationRequest method. +// req, resp := client.GetApplicationRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/qbusiness-2023-11-27/GetApplication +func (c *QBusiness) GetApplicationRequest(input *GetApplicationInput) (req *request.Request, output *GetApplicationOutput) { + op := &request.Operation{ + Name: opGetApplication, + HTTPMethod: "GET", + HTTPPath: "/applications/{applicationId}", + } + + if input == nil { + input = &GetApplicationInput{} + } + + output = &GetApplicationOutput{} + req = c.newRequest(op, input, output) + return +} + +// GetApplication API operation for QBusiness. +// +// Gets information about an existing Amazon Q application. +// +// 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 QBusiness's +// API operation GetApplication for usage and error information. +// +// Returned Error Types: +// +// - ResourceNotFoundException +// The resource you want to use doesn’t exist. Make sure you have provided +// the correct resource and try again. +// +// - InternalServerException +// An issue occurred with the internal server used for your Amazon Q service. +// Wait some minutes and try again, or contact Support (http://aws.amazon.com/contact-us/) +// for help. +// +// - ThrottlingException +// The request was denied due to throttling. Reduce the number of requests and +// try again. +// +// - ValidationException +// The input doesn't meet the constraints set by the Amazon Q service. Provide +// the correct input and try again. +// +// - AccessDeniedException +// You don't have access to perform this action. Make sure you have the required +// permission policies and user accounts and try again. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/qbusiness-2023-11-27/GetApplication +func (c *QBusiness) GetApplication(input *GetApplicationInput) (*GetApplicationOutput, error) { + req, out := c.GetApplicationRequest(input) + return out, req.Send() +} + +// GetApplicationWithContext is the same as GetApplication with the addition of +// the ability to pass a context and additional request options. +// +// See GetApplication 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 *QBusiness) GetApplicationWithContext(ctx aws.Context, input *GetApplicationInput, opts ...request.Option) (*GetApplicationOutput, error) { + req, out := c.GetApplicationRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opGetChatControlsConfiguration = "GetChatControlsConfiguration" + +// GetChatControlsConfigurationRequest generates a "aws/request.Request" representing the +// client's request for the GetChatControlsConfiguration 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 GetChatControlsConfiguration for more information on using the GetChatControlsConfiguration +// 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 GetChatControlsConfigurationRequest method. +// req, resp := client.GetChatControlsConfigurationRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/qbusiness-2023-11-27/GetChatControlsConfiguration +func (c *QBusiness) GetChatControlsConfigurationRequest(input *GetChatControlsConfigurationInput) (req *request.Request, output *GetChatControlsConfigurationOutput) { + op := &request.Operation{ + Name: opGetChatControlsConfiguration, + HTTPMethod: "GET", + HTTPPath: "/applications/{applicationId}/chatcontrols", + Paginator: &request.Paginator{ + InputTokens: []string{"nextToken"}, + OutputTokens: []string{"nextToken"}, + LimitToken: "maxResults", + TruncationToken: "", + }, + } + + if input == nil { + input = &GetChatControlsConfigurationInput{} + } + + output = &GetChatControlsConfigurationOutput{} + req = c.newRequest(op, input, output) + return +} + +// GetChatControlsConfiguration API operation for QBusiness. +// +// Gets information about an chat controls configured for an existing Amazon +// Q application. +// +// 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 QBusiness's +// API operation GetChatControlsConfiguration for usage and error information. +// +// Returned Error Types: +// +// - ResourceNotFoundException +// The resource you want to use doesn’t exist. Make sure you have provided +// the correct resource and try again. +// +// - InternalServerException +// An issue occurred with the internal server used for your Amazon Q service. +// Wait some minutes and try again, or contact Support (http://aws.amazon.com/contact-us/) +// for help. +// +// - ThrottlingException +// The request was denied due to throttling. Reduce the number of requests and +// try again. +// +// - ValidationException +// The input doesn't meet the constraints set by the Amazon Q service. Provide +// the correct input and try again. +// +// - AccessDeniedException +// You don't have access to perform this action. Make sure you have the required +// permission policies and user accounts and try again. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/qbusiness-2023-11-27/GetChatControlsConfiguration +func (c *QBusiness) GetChatControlsConfiguration(input *GetChatControlsConfigurationInput) (*GetChatControlsConfigurationOutput, error) { + req, out := c.GetChatControlsConfigurationRequest(input) + return out, req.Send() +} + +// GetChatControlsConfigurationWithContext is the same as GetChatControlsConfiguration with the addition of +// the ability to pass a context and additional request options. +// +// See GetChatControlsConfiguration 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 *QBusiness) GetChatControlsConfigurationWithContext(ctx aws.Context, input *GetChatControlsConfigurationInput, opts ...request.Option) (*GetChatControlsConfigurationOutput, error) { + req, out := c.GetChatControlsConfigurationRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +// GetChatControlsConfigurationPages iterates over the pages of a GetChatControlsConfiguration operation, +// calling the "fn" function with the response data for each page. To stop +// iterating, return false from the fn function. +// +// See GetChatControlsConfiguration 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 GetChatControlsConfiguration operation. +// pageNum := 0 +// err := client.GetChatControlsConfigurationPages(params, +// func(page *qbusiness.GetChatControlsConfigurationOutput, lastPage bool) bool { +// pageNum++ +// fmt.Println(page) +// return pageNum <= 3 +// }) +func (c *QBusiness) GetChatControlsConfigurationPages(input *GetChatControlsConfigurationInput, fn func(*GetChatControlsConfigurationOutput, bool) bool) error { + return c.GetChatControlsConfigurationPagesWithContext(aws.BackgroundContext(), input, fn) +} + +// GetChatControlsConfigurationPagesWithContext same as GetChatControlsConfigurationPages 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 *QBusiness) GetChatControlsConfigurationPagesWithContext(ctx aws.Context, input *GetChatControlsConfigurationInput, fn func(*GetChatControlsConfigurationOutput, bool) bool, opts ...request.Option) error { + p := request.Pagination{ + NewRequest: func() (*request.Request, error) { + var inCpy *GetChatControlsConfigurationInput + if input != nil { + tmp := *input + inCpy = &tmp + } + req, _ := c.GetChatControlsConfigurationRequest(inCpy) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return req, nil + }, + } + + for p.Next() { + if !fn(p.Page().(*GetChatControlsConfigurationOutput), !p.HasNextPage()) { + break + } + } + + return p.Err() +} + +const opGetDataSource = "GetDataSource" + +// GetDataSourceRequest generates a "aws/request.Request" representing the +// client's request for the GetDataSource 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 GetDataSource for more information on using the GetDataSource +// 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 GetDataSourceRequest method. +// req, resp := client.GetDataSourceRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/qbusiness-2023-11-27/GetDataSource +func (c *QBusiness) GetDataSourceRequest(input *GetDataSourceInput) (req *request.Request, output *GetDataSourceOutput) { + op := &request.Operation{ + Name: opGetDataSource, + HTTPMethod: "GET", + HTTPPath: "/applications/{applicationId}/indices/{indexId}/datasources/{dataSourceId}", + } + + if input == nil { + input = &GetDataSourceInput{} + } + + output = &GetDataSourceOutput{} + req = c.newRequest(op, input, output) + return +} + +// GetDataSource API operation for QBusiness. +// +// Gets information about an existing Amazon Q data source connector. +// +// 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 QBusiness's +// API operation GetDataSource for usage and error information. +// +// Returned Error Types: +// +// - ResourceNotFoundException +// The resource you want to use doesn’t exist. Make sure you have provided +// the correct resource and try again. +// +// - InternalServerException +// An issue occurred with the internal server used for your Amazon Q service. +// Wait some minutes and try again, or contact Support (http://aws.amazon.com/contact-us/) +// for help. +// +// - ThrottlingException +// The request was denied due to throttling. Reduce the number of requests and +// try again. +// +// - ValidationException +// The input doesn't meet the constraints set by the Amazon Q service. Provide +// the correct input and try again. +// +// - AccessDeniedException +// You don't have access to perform this action. Make sure you have the required +// permission policies and user accounts and try again. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/qbusiness-2023-11-27/GetDataSource +func (c *QBusiness) GetDataSource(input *GetDataSourceInput) (*GetDataSourceOutput, error) { + req, out := c.GetDataSourceRequest(input) + return out, req.Send() +} + +// GetDataSourceWithContext is the same as GetDataSource with the addition of +// the ability to pass a context and additional request options. +// +// See GetDataSource 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 *QBusiness) GetDataSourceWithContext(ctx aws.Context, input *GetDataSourceInput, opts ...request.Option) (*GetDataSourceOutput, error) { + req, out := c.GetDataSourceRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opGetGroup = "GetGroup" + +// GetGroupRequest generates a "aws/request.Request" representing the +// client's request for the GetGroup 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 GetGroup for more information on using the GetGroup +// 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 GetGroupRequest method. +// req, resp := client.GetGroupRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/qbusiness-2023-11-27/GetGroup +func (c *QBusiness) GetGroupRequest(input *GetGroupInput) (req *request.Request, output *GetGroupOutput) { + op := &request.Operation{ + Name: opGetGroup, + HTTPMethod: "GET", + HTTPPath: "/applications/{applicationId}/indices/{indexId}/groups/{groupName}", + } + + if input == nil { + input = &GetGroupInput{} + } + + output = &GetGroupOutput{} + req = c.newRequest(op, input, output) + return +} + +// GetGroup API operation for QBusiness. +// +// Describes a group by group 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 QBusiness's +// API operation GetGroup for usage and error information. +// +// Returned Error Types: +// +// - ResourceNotFoundException +// The resource you want to use doesn’t exist. Make sure you have provided +// the correct resource and try again. +// +// - InternalServerException +// An issue occurred with the internal server used for your Amazon Q service. +// Wait some minutes and try again, or contact Support (http://aws.amazon.com/contact-us/) +// for help. +// +// - ConflictException +// You are trying to perform an action that conflicts with the current status +// of your resource. Fix any inconsistences with your resources and try again. +// +// - ThrottlingException +// The request was denied due to throttling. Reduce the number of requests and +// try again. +// +// - ValidationException +// The input doesn't meet the constraints set by the Amazon Q service. Provide +// the correct input and try again. +// +// - AccessDeniedException +// You don't have access to perform this action. Make sure you have the required +// permission policies and user accounts and try again. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/qbusiness-2023-11-27/GetGroup +func (c *QBusiness) GetGroup(input *GetGroupInput) (*GetGroupOutput, error) { + req, out := c.GetGroupRequest(input) + return out, req.Send() +} + +// GetGroupWithContext is the same as GetGroup with the addition of +// the ability to pass a context and additional request options. +// +// See GetGroup 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 *QBusiness) GetGroupWithContext(ctx aws.Context, input *GetGroupInput, opts ...request.Option) (*GetGroupOutput, error) { + req, out := c.GetGroupRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opGetIndex = "GetIndex" + +// GetIndexRequest generates a "aws/request.Request" representing the +// client's request for the GetIndex 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 GetIndex for more information on using the GetIndex +// 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 GetIndexRequest method. +// req, resp := client.GetIndexRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/qbusiness-2023-11-27/GetIndex +func (c *QBusiness) GetIndexRequest(input *GetIndexInput) (req *request.Request, output *GetIndexOutput) { + op := &request.Operation{ + Name: opGetIndex, + HTTPMethod: "GET", + HTTPPath: "/applications/{applicationId}/indices/{indexId}", + } + + if input == nil { + input = &GetIndexInput{} + } + + output = &GetIndexOutput{} + req = c.newRequest(op, input, output) + return +} + +// GetIndex API operation for QBusiness. +// +// Gets information about an existing Amazon Q index. +// +// 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 QBusiness's +// API operation GetIndex for usage and error information. +// +// Returned Error Types: +// +// - ResourceNotFoundException +// The resource you want to use doesn’t exist. Make sure you have provided +// the correct resource and try again. +// +// - InternalServerException +// An issue occurred with the internal server used for your Amazon Q service. +// Wait some minutes and try again, or contact Support (http://aws.amazon.com/contact-us/) +// for help. +// +// - ThrottlingException +// The request was denied due to throttling. Reduce the number of requests and +// try again. +// +// - ValidationException +// The input doesn't meet the constraints set by the Amazon Q service. Provide +// the correct input and try again. +// +// - AccessDeniedException +// You don't have access to perform this action. Make sure you have the required +// permission policies and user accounts and try again. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/qbusiness-2023-11-27/GetIndex +func (c *QBusiness) GetIndex(input *GetIndexInput) (*GetIndexOutput, error) { + req, out := c.GetIndexRequest(input) + return out, req.Send() +} + +// GetIndexWithContext is the same as GetIndex with the addition of +// the ability to pass a context and additional request options. +// +// See GetIndex 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 *QBusiness) GetIndexWithContext(ctx aws.Context, input *GetIndexInput, opts ...request.Option) (*GetIndexOutput, error) { + req, out := c.GetIndexRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opGetPlugin = "GetPlugin" + +// GetPluginRequest generates a "aws/request.Request" representing the +// client's request for the GetPlugin 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 GetPlugin for more information on using the GetPlugin +// 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 GetPluginRequest method. +// req, resp := client.GetPluginRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/qbusiness-2023-11-27/GetPlugin +func (c *QBusiness) GetPluginRequest(input *GetPluginInput) (req *request.Request, output *GetPluginOutput) { + op := &request.Operation{ + Name: opGetPlugin, + HTTPMethod: "GET", + HTTPPath: "/applications/{applicationId}/plugins/{pluginId}", + } + + if input == nil { + input = &GetPluginInput{} + } + + output = &GetPluginOutput{} + req = c.newRequest(op, input, output) + return +} + +// GetPlugin API operation for QBusiness. +// +// Gets information about an existing Amazon Q plugin. +// +// 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 QBusiness's +// API operation GetPlugin for usage and error information. +// +// Returned Error Types: +// +// - ResourceNotFoundException +// The resource you want to use doesn’t exist. Make sure you have provided +// the correct resource and try again. +// +// - InternalServerException +// An issue occurred with the internal server used for your Amazon Q service. +// Wait some minutes and try again, or contact Support (http://aws.amazon.com/contact-us/) +// for help. +// +// - ThrottlingException +// The request was denied due to throttling. Reduce the number of requests and +// try again. +// +// - ValidationException +// The input doesn't meet the constraints set by the Amazon Q service. Provide +// the correct input and try again. +// +// - AccessDeniedException +// You don't have access to perform this action. Make sure you have the required +// permission policies and user accounts and try again. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/qbusiness-2023-11-27/GetPlugin +func (c *QBusiness) GetPlugin(input *GetPluginInput) (*GetPluginOutput, error) { + req, out := c.GetPluginRequest(input) + return out, req.Send() +} + +// GetPluginWithContext is the same as GetPlugin with the addition of +// the ability to pass a context and additional request options. +// +// See GetPlugin 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 *QBusiness) GetPluginWithContext(ctx aws.Context, input *GetPluginInput, opts ...request.Option) (*GetPluginOutput, error) { + req, out := c.GetPluginRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opGetRetriever = "GetRetriever" + +// GetRetrieverRequest generates a "aws/request.Request" representing the +// client's request for the GetRetriever 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 GetRetriever for more information on using the GetRetriever +// 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 GetRetrieverRequest method. +// req, resp := client.GetRetrieverRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/qbusiness-2023-11-27/GetRetriever +func (c *QBusiness) GetRetrieverRequest(input *GetRetrieverInput) (req *request.Request, output *GetRetrieverOutput) { + op := &request.Operation{ + Name: opGetRetriever, + HTTPMethod: "GET", + HTTPPath: "/applications/{applicationId}/retrievers/{retrieverId}", + } + + if input == nil { + input = &GetRetrieverInput{} + } + + output = &GetRetrieverOutput{} + req = c.newRequest(op, input, output) + return +} + +// GetRetriever API operation for QBusiness. +// +// Gets information about an existing retriever used by an Amazon Q application. +// +// 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 QBusiness's +// API operation GetRetriever for usage and error information. +// +// Returned Error Types: +// +// - ResourceNotFoundException +// The resource you want to use doesn’t exist. Make sure you have provided +// the correct resource and try again. +// +// - InternalServerException +// An issue occurred with the internal server used for your Amazon Q service. +// Wait some minutes and try again, or contact Support (http://aws.amazon.com/contact-us/) +// for help. +// +// - ThrottlingException +// The request was denied due to throttling. Reduce the number of requests and +// try again. +// +// - ValidationException +// The input doesn't meet the constraints set by the Amazon Q service. Provide +// the correct input and try again. +// +// - AccessDeniedException +// You don't have access to perform this action. Make sure you have the required +// permission policies and user accounts and try again. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/qbusiness-2023-11-27/GetRetriever +func (c *QBusiness) GetRetriever(input *GetRetrieverInput) (*GetRetrieverOutput, error) { + req, out := c.GetRetrieverRequest(input) + return out, req.Send() +} + +// GetRetrieverWithContext is the same as GetRetriever with the addition of +// the ability to pass a context and additional request options. +// +// See GetRetriever 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 *QBusiness) GetRetrieverWithContext(ctx aws.Context, input *GetRetrieverInput, opts ...request.Option) (*GetRetrieverOutput, error) { + req, out := c.GetRetrieverRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opGetUser = "GetUser" + +// GetUserRequest generates a "aws/request.Request" representing the +// client's request for the GetUser 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 GetUser for more information on using the GetUser +// 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 GetUserRequest method. +// req, resp := client.GetUserRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/qbusiness-2023-11-27/GetUser +func (c *QBusiness) GetUserRequest(input *GetUserInput) (req *request.Request, output *GetUserOutput) { + op := &request.Operation{ + Name: opGetUser, + HTTPMethod: "GET", + HTTPPath: "/applications/{applicationId}/users/{userId}", + } + + if input == nil { + input = &GetUserInput{} + } + + output = &GetUserOutput{} + req = c.newRequest(op, input, output) + return +} + +// GetUser API operation for QBusiness. +// +// Describes the universally unique identifier (UUID) associated with a local +// user in a data source. +// +// 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 QBusiness's +// API operation GetUser for usage and error information. +// +// Returned Error Types: +// +// - ResourceNotFoundException +// The resource you want to use doesn’t exist. Make sure you have provided +// the correct resource and try again. +// +// - InternalServerException +// An issue occurred with the internal server used for your Amazon Q service. +// Wait some minutes and try again, or contact Support (http://aws.amazon.com/contact-us/) +// for help. +// +// - ConflictException +// You are trying to perform an action that conflicts with the current status +// of your resource. Fix any inconsistences with your resources and try again. +// +// - ThrottlingException +// The request was denied due to throttling. Reduce the number of requests and +// try again. +// +// - ValidationException +// The input doesn't meet the constraints set by the Amazon Q service. Provide +// the correct input and try again. +// +// - AccessDeniedException +// You don't have access to perform this action. Make sure you have the required +// permission policies and user accounts and try again. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/qbusiness-2023-11-27/GetUser +func (c *QBusiness) GetUser(input *GetUserInput) (*GetUserOutput, error) { + req, out := c.GetUserRequest(input) + return out, req.Send() +} + +// GetUserWithContext is the same as GetUser with the addition of +// the ability to pass a context and additional request options. +// +// See GetUser 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 *QBusiness) GetUserWithContext(ctx aws.Context, input *GetUserInput, opts ...request.Option) (*GetUserOutput, error) { + req, out := c.GetUserRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opGetWebExperience = "GetWebExperience" + +// GetWebExperienceRequest generates a "aws/request.Request" representing the +// client's request for the GetWebExperience 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 GetWebExperience for more information on using the GetWebExperience +// 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 GetWebExperienceRequest method. +// req, resp := client.GetWebExperienceRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/qbusiness-2023-11-27/GetWebExperience +func (c *QBusiness) GetWebExperienceRequest(input *GetWebExperienceInput) (req *request.Request, output *GetWebExperienceOutput) { + op := &request.Operation{ + Name: opGetWebExperience, + HTTPMethod: "GET", + HTTPPath: "/applications/{applicationId}/experiences/{webExperienceId}", + } + + if input == nil { + input = &GetWebExperienceInput{} + } + + output = &GetWebExperienceOutput{} + req = c.newRequest(op, input, output) + return +} + +// GetWebExperience API operation for QBusiness. +// +// Gets information about an existing Amazon Q web experience. +// +// 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 QBusiness's +// API operation GetWebExperience for usage and error information. +// +// Returned Error Types: +// +// - ResourceNotFoundException +// The resource you want to use doesn’t exist. Make sure you have provided +// the correct resource and try again. +// +// - InternalServerException +// An issue occurred with the internal server used for your Amazon Q service. +// Wait some minutes and try again, or contact Support (http://aws.amazon.com/contact-us/) +// for help. +// +// - ThrottlingException +// The request was denied due to throttling. Reduce the number of requests and +// try again. +// +// - ValidationException +// The input doesn't meet the constraints set by the Amazon Q service. Provide +// the correct input and try again. +// +// - AccessDeniedException +// You don't have access to perform this action. Make sure you have the required +// permission policies and user accounts and try again. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/qbusiness-2023-11-27/GetWebExperience +func (c *QBusiness) GetWebExperience(input *GetWebExperienceInput) (*GetWebExperienceOutput, error) { + req, out := c.GetWebExperienceRequest(input) + return out, req.Send() +} + +// GetWebExperienceWithContext is the same as GetWebExperience with the addition of +// the ability to pass a context and additional request options. +// +// See GetWebExperience 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 *QBusiness) GetWebExperienceWithContext(ctx aws.Context, input *GetWebExperienceInput, opts ...request.Option) (*GetWebExperienceOutput, error) { + req, out := c.GetWebExperienceRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opListApplications = "ListApplications" + +// ListApplicationsRequest generates a "aws/request.Request" representing the +// client's request for the ListApplications 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 ListApplications for more information on using the ListApplications +// 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 ListApplicationsRequest method. +// req, resp := client.ListApplicationsRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/qbusiness-2023-11-27/ListApplications +func (c *QBusiness) ListApplicationsRequest(input *ListApplicationsInput) (req *request.Request, output *ListApplicationsOutput) { + op := &request.Operation{ + Name: opListApplications, + HTTPMethod: "GET", + HTTPPath: "/applications", + Paginator: &request.Paginator{ + InputTokens: []string{"nextToken"}, + OutputTokens: []string{"nextToken"}, + LimitToken: "maxResults", + TruncationToken: "", + }, + } + + if input == nil { + input = &ListApplicationsInput{} + } + + output = &ListApplicationsOutput{} + req = c.newRequest(op, input, output) + return +} + +// ListApplications API operation for QBusiness. +// +// Lists Amazon Q applications. +// +// 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 QBusiness's +// API operation ListApplications for usage and error information. +// +// Returned Error Types: +// +// - InternalServerException +// An issue occurred with the internal server used for your Amazon Q service. +// Wait some minutes and try again, or contact Support (http://aws.amazon.com/contact-us/) +// for help. +// +// - ThrottlingException +// The request was denied due to throttling. Reduce the number of requests and +// try again. +// +// - ValidationException +// The input doesn't meet the constraints set by the Amazon Q service. Provide +// the correct input and try again. +// +// - AccessDeniedException +// You don't have access to perform this action. Make sure you have the required +// permission policies and user accounts and try again. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/qbusiness-2023-11-27/ListApplications +func (c *QBusiness) ListApplications(input *ListApplicationsInput) (*ListApplicationsOutput, error) { + req, out := c.ListApplicationsRequest(input) + return out, req.Send() +} + +// ListApplicationsWithContext is the same as ListApplications with the addition of +// the ability to pass a context and additional request options. +// +// See ListApplications 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 *QBusiness) ListApplicationsWithContext(ctx aws.Context, input *ListApplicationsInput, opts ...request.Option) (*ListApplicationsOutput, error) { + req, out := c.ListApplicationsRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +// ListApplicationsPages iterates over the pages of a ListApplications operation, +// calling the "fn" function with the response data for each page. To stop +// iterating, return false from the fn function. +// +// See ListApplications 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 ListApplications operation. +// pageNum := 0 +// err := client.ListApplicationsPages(params, +// func(page *qbusiness.ListApplicationsOutput, lastPage bool) bool { +// pageNum++ +// fmt.Println(page) +// return pageNum <= 3 +// }) +func (c *QBusiness) ListApplicationsPages(input *ListApplicationsInput, fn func(*ListApplicationsOutput, bool) bool) error { + return c.ListApplicationsPagesWithContext(aws.BackgroundContext(), input, fn) +} + +// ListApplicationsPagesWithContext same as ListApplicationsPages 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 *QBusiness) ListApplicationsPagesWithContext(ctx aws.Context, input *ListApplicationsInput, fn func(*ListApplicationsOutput, bool) bool, opts ...request.Option) error { + p := request.Pagination{ + NewRequest: func() (*request.Request, error) { + var inCpy *ListApplicationsInput + if input != nil { + tmp := *input + inCpy = &tmp + } + req, _ := c.ListApplicationsRequest(inCpy) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return req, nil + }, + } + + for p.Next() { + if !fn(p.Page().(*ListApplicationsOutput), !p.HasNextPage()) { + break + } + } + + return p.Err() +} + +const opListConversations = "ListConversations" + +// ListConversationsRequest generates a "aws/request.Request" representing the +// client's request for the ListConversations 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 ListConversations for more information on using the ListConversations +// 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 ListConversationsRequest method. +// req, resp := client.ListConversationsRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/qbusiness-2023-11-27/ListConversations +func (c *QBusiness) ListConversationsRequest(input *ListConversationsInput) (req *request.Request, output *ListConversationsOutput) { + op := &request.Operation{ + Name: opListConversations, + HTTPMethod: "GET", + HTTPPath: "/applications/{applicationId}/conversations", + Paginator: &request.Paginator{ + InputTokens: []string{"nextToken"}, + OutputTokens: []string{"nextToken"}, + LimitToken: "maxResults", + TruncationToken: "", + }, + } + + if input == nil { + input = &ListConversationsInput{} + } + + output = &ListConversationsOutput{} + req = c.newRequest(op, input, output) + return +} + +// ListConversations API operation for QBusiness. +// +// Lists one or more Amazon Q conversations. +// +// 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 QBusiness's +// API operation ListConversations for usage and error information. +// +// Returned Error Types: +// +// - ResourceNotFoundException +// The resource you want to use doesn’t exist. Make sure you have provided +// the correct resource and try again. +// +// - InternalServerException +// An issue occurred with the internal server used for your Amazon Q service. +// Wait some minutes and try again, or contact Support (http://aws.amazon.com/contact-us/) +// for help. +// +// - LicenseNotFoundException +// You don't have permissions to perform the action because your license is +// inactive. Ask your admin to activate your license and try again after your +// licence is active. +// +// - ThrottlingException +// The request was denied due to throttling. Reduce the number of requests and +// try again. +// +// - ValidationException +// The input doesn't meet the constraints set by the Amazon Q service. Provide +// the correct input and try again. +// +// - AccessDeniedException +// You don't have access to perform this action. Make sure you have the required +// permission policies and user accounts and try again. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/qbusiness-2023-11-27/ListConversations +func (c *QBusiness) ListConversations(input *ListConversationsInput) (*ListConversationsOutput, error) { + req, out := c.ListConversationsRequest(input) + return out, req.Send() +} + +// ListConversationsWithContext is the same as ListConversations with the addition of +// the ability to pass a context and additional request options. +// +// See ListConversations 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 *QBusiness) ListConversationsWithContext(ctx aws.Context, input *ListConversationsInput, opts ...request.Option) (*ListConversationsOutput, error) { + req, out := c.ListConversationsRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +// ListConversationsPages iterates over the pages of a ListConversations operation, +// calling the "fn" function with the response data for each page. To stop +// iterating, return false from the fn function. +// +// See ListConversations 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 ListConversations operation. +// pageNum := 0 +// err := client.ListConversationsPages(params, +// func(page *qbusiness.ListConversationsOutput, lastPage bool) bool { +// pageNum++ +// fmt.Println(page) +// return pageNum <= 3 +// }) +func (c *QBusiness) ListConversationsPages(input *ListConversationsInput, fn func(*ListConversationsOutput, bool) bool) error { + return c.ListConversationsPagesWithContext(aws.BackgroundContext(), input, fn) +} + +// ListConversationsPagesWithContext same as ListConversationsPages 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 *QBusiness) ListConversationsPagesWithContext(ctx aws.Context, input *ListConversationsInput, fn func(*ListConversationsOutput, bool) bool, opts ...request.Option) error { + p := request.Pagination{ + NewRequest: func() (*request.Request, error) { + var inCpy *ListConversationsInput + if input != nil { + tmp := *input + inCpy = &tmp + } + req, _ := c.ListConversationsRequest(inCpy) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return req, nil + }, + } + + for p.Next() { + if !fn(p.Page().(*ListConversationsOutput), !p.HasNextPage()) { + break + } + } + + return p.Err() +} + +const opListDataSourceSyncJobs = "ListDataSourceSyncJobs" + +// ListDataSourceSyncJobsRequest generates a "aws/request.Request" representing the +// client's request for the ListDataSourceSyncJobs 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 ListDataSourceSyncJobs for more information on using the ListDataSourceSyncJobs +// 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 ListDataSourceSyncJobsRequest method. +// req, resp := client.ListDataSourceSyncJobsRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/qbusiness-2023-11-27/ListDataSourceSyncJobs +func (c *QBusiness) ListDataSourceSyncJobsRequest(input *ListDataSourceSyncJobsInput) (req *request.Request, output *ListDataSourceSyncJobsOutput) { + op := &request.Operation{ + Name: opListDataSourceSyncJobs, + HTTPMethod: "GET", + HTTPPath: "/applications/{applicationId}/indices/{indexId}/datasources/{dataSourceId}/syncjobs", + Paginator: &request.Paginator{ + InputTokens: []string{"nextToken"}, + OutputTokens: []string{"nextToken"}, + LimitToken: "maxResults", + TruncationToken: "", + }, + } + + if input == nil { + input = &ListDataSourceSyncJobsInput{} + } + + output = &ListDataSourceSyncJobsOutput{} + req = c.newRequest(op, input, output) + return +} + +// ListDataSourceSyncJobs API operation for QBusiness. +// +// Get information about an Amazon Q data source connector synchronization. +// +// 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 QBusiness's +// API operation ListDataSourceSyncJobs for usage and error information. +// +// Returned Error Types: +// +// - ResourceNotFoundException +// The resource you want to use doesn’t exist. Make sure you have provided +// the correct resource and try again. +// +// - InternalServerException +// An issue occurred with the internal server used for your Amazon Q service. +// Wait some minutes and try again, or contact Support (http://aws.amazon.com/contact-us/) +// for help. +// +// - ThrottlingException +// The request was denied due to throttling. Reduce the number of requests and +// try again. +// +// - ValidationException +// The input doesn't meet the constraints set by the Amazon Q service. Provide +// the correct input and try again. +// +// - AccessDeniedException +// You don't have access to perform this action. Make sure you have the required +// permission policies and user accounts and try again. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/qbusiness-2023-11-27/ListDataSourceSyncJobs +func (c *QBusiness) ListDataSourceSyncJobs(input *ListDataSourceSyncJobsInput) (*ListDataSourceSyncJobsOutput, error) { + req, out := c.ListDataSourceSyncJobsRequest(input) + return out, req.Send() +} + +// ListDataSourceSyncJobsWithContext is the same as ListDataSourceSyncJobs with the addition of +// the ability to pass a context and additional request options. +// +// See ListDataSourceSyncJobs 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 *QBusiness) ListDataSourceSyncJobsWithContext(ctx aws.Context, input *ListDataSourceSyncJobsInput, opts ...request.Option) (*ListDataSourceSyncJobsOutput, error) { + req, out := c.ListDataSourceSyncJobsRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +// ListDataSourceSyncJobsPages iterates over the pages of a ListDataSourceSyncJobs operation, +// calling the "fn" function with the response data for each page. To stop +// iterating, return false from the fn function. +// +// See ListDataSourceSyncJobs 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 ListDataSourceSyncJobs operation. +// pageNum := 0 +// err := client.ListDataSourceSyncJobsPages(params, +// func(page *qbusiness.ListDataSourceSyncJobsOutput, lastPage bool) bool { +// pageNum++ +// fmt.Println(page) +// return pageNum <= 3 +// }) +func (c *QBusiness) ListDataSourceSyncJobsPages(input *ListDataSourceSyncJobsInput, fn func(*ListDataSourceSyncJobsOutput, bool) bool) error { + return c.ListDataSourceSyncJobsPagesWithContext(aws.BackgroundContext(), input, fn) +} + +// ListDataSourceSyncJobsPagesWithContext same as ListDataSourceSyncJobsPages 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 *QBusiness) ListDataSourceSyncJobsPagesWithContext(ctx aws.Context, input *ListDataSourceSyncJobsInput, fn func(*ListDataSourceSyncJobsOutput, bool) bool, opts ...request.Option) error { + p := request.Pagination{ + NewRequest: func() (*request.Request, error) { + var inCpy *ListDataSourceSyncJobsInput + if input != nil { + tmp := *input + inCpy = &tmp + } + req, _ := c.ListDataSourceSyncJobsRequest(inCpy) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return req, nil + }, + } + + for p.Next() { + if !fn(p.Page().(*ListDataSourceSyncJobsOutput), !p.HasNextPage()) { + break + } + } + + return p.Err() +} + +const opListDataSources = "ListDataSources" + +// ListDataSourcesRequest generates a "aws/request.Request" representing the +// client's request for the ListDataSources 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 ListDataSources for more information on using the ListDataSources +// 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 ListDataSourcesRequest method. +// req, resp := client.ListDataSourcesRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/qbusiness-2023-11-27/ListDataSources +func (c *QBusiness) ListDataSourcesRequest(input *ListDataSourcesInput) (req *request.Request, output *ListDataSourcesOutput) { + op := &request.Operation{ + Name: opListDataSources, + HTTPMethod: "GET", + HTTPPath: "/applications/{applicationId}/indices/{indexId}/datasources", + Paginator: &request.Paginator{ + InputTokens: []string{"nextToken"}, + OutputTokens: []string{"nextToken"}, + LimitToken: "maxResults", + TruncationToken: "", + }, + } + + if input == nil { + input = &ListDataSourcesInput{} + } + + output = &ListDataSourcesOutput{} + req = c.newRequest(op, input, output) + return +} + +// ListDataSources API operation for QBusiness. +// +// Lists the Amazon Q data source connectors that you have created. +// +// 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 QBusiness's +// API operation ListDataSources for usage and error information. +// +// Returned Error Types: +// +// - ResourceNotFoundException +// The resource you want to use doesn’t exist. Make sure you have provided +// the correct resource and try again. +// +// - InternalServerException +// An issue occurred with the internal server used for your Amazon Q service. +// Wait some minutes and try again, or contact Support (http://aws.amazon.com/contact-us/) +// for help. +// +// - ThrottlingException +// The request was denied due to throttling. Reduce the number of requests and +// try again. +// +// - ValidationException +// The input doesn't meet the constraints set by the Amazon Q service. Provide +// the correct input and try again. +// +// - AccessDeniedException +// You don't have access to perform this action. Make sure you have the required +// permission policies and user accounts and try again. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/qbusiness-2023-11-27/ListDataSources +func (c *QBusiness) ListDataSources(input *ListDataSourcesInput) (*ListDataSourcesOutput, error) { + req, out := c.ListDataSourcesRequest(input) + return out, req.Send() +} + +// ListDataSourcesWithContext is the same as ListDataSources with the addition of +// the ability to pass a context and additional request options. +// +// See ListDataSources 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 *QBusiness) ListDataSourcesWithContext(ctx aws.Context, input *ListDataSourcesInput, opts ...request.Option) (*ListDataSourcesOutput, error) { + req, out := c.ListDataSourcesRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +// ListDataSourcesPages iterates over the pages of a ListDataSources operation, +// calling the "fn" function with the response data for each page. To stop +// iterating, return false from the fn function. +// +// See ListDataSources 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 ListDataSources operation. +// pageNum := 0 +// err := client.ListDataSourcesPages(params, +// func(page *qbusiness.ListDataSourcesOutput, lastPage bool) bool { +// pageNum++ +// fmt.Println(page) +// return pageNum <= 3 +// }) +func (c *QBusiness) ListDataSourcesPages(input *ListDataSourcesInput, fn func(*ListDataSourcesOutput, bool) bool) error { + return c.ListDataSourcesPagesWithContext(aws.BackgroundContext(), input, fn) +} + +// ListDataSourcesPagesWithContext same as ListDataSourcesPages 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 *QBusiness) ListDataSourcesPagesWithContext(ctx aws.Context, input *ListDataSourcesInput, fn func(*ListDataSourcesOutput, bool) bool, opts ...request.Option) error { + p := request.Pagination{ + NewRequest: func() (*request.Request, error) { + var inCpy *ListDataSourcesInput + if input != nil { + tmp := *input + inCpy = &tmp + } + req, _ := c.ListDataSourcesRequest(inCpy) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return req, nil + }, + } + + for p.Next() { + if !fn(p.Page().(*ListDataSourcesOutput), !p.HasNextPage()) { + break + } + } + + return p.Err() +} + +const opListDocuments = "ListDocuments" + +// ListDocumentsRequest generates a "aws/request.Request" representing the +// client's request for the ListDocuments 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 ListDocuments for more information on using the ListDocuments +// 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 ListDocumentsRequest method. +// req, resp := client.ListDocumentsRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/qbusiness-2023-11-27/ListDocuments +func (c *QBusiness) ListDocumentsRequest(input *ListDocumentsInput) (req *request.Request, output *ListDocumentsOutput) { + op := &request.Operation{ + Name: opListDocuments, + HTTPMethod: "GET", + HTTPPath: "/applications/{applicationId}/index/{indexId}/documents", + Paginator: &request.Paginator{ + InputTokens: []string{"nextToken"}, + OutputTokens: []string{"nextToken"}, + LimitToken: "maxResults", + TruncationToken: "", + }, + } + + if input == nil { + input = &ListDocumentsInput{} + } + + output = &ListDocumentsOutput{} + req = c.newRequest(op, input, output) + return +} + +// ListDocuments API operation for QBusiness. +// +// A list of documents attached to an index. +// +// 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 QBusiness's +// API operation ListDocuments for usage and error information. +// +// Returned Error Types: +// +// - ResourceNotFoundException +// The resource you want to use doesn’t exist. Make sure you have provided +// the correct resource and try again. +// +// - InternalServerException +// An issue occurred with the internal server used for your Amazon Q service. +// Wait some minutes and try again, or contact Support (http://aws.amazon.com/contact-us/) +// for help. +// +// - ThrottlingException +// The request was denied due to throttling. Reduce the number of requests and +// try again. +// +// - ValidationException +// The input doesn't meet the constraints set by the Amazon Q service. Provide +// the correct input and try again. +// +// - AccessDeniedException +// You don't have access to perform this action. Make sure you have the required +// permission policies and user accounts and try again. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/qbusiness-2023-11-27/ListDocuments +func (c *QBusiness) ListDocuments(input *ListDocumentsInput) (*ListDocumentsOutput, error) { + req, out := c.ListDocumentsRequest(input) + return out, req.Send() +} + +// ListDocumentsWithContext is the same as ListDocuments with the addition of +// the ability to pass a context and additional request options. +// +// See ListDocuments 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 *QBusiness) ListDocumentsWithContext(ctx aws.Context, input *ListDocumentsInput, opts ...request.Option) (*ListDocumentsOutput, error) { + req, out := c.ListDocumentsRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +// ListDocumentsPages iterates over the pages of a ListDocuments operation, +// calling the "fn" function with the response data for each page. To stop +// iterating, return false from the fn function. +// +// See ListDocuments 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 ListDocuments operation. +// pageNum := 0 +// err := client.ListDocumentsPages(params, +// func(page *qbusiness.ListDocumentsOutput, lastPage bool) bool { +// pageNum++ +// fmt.Println(page) +// return pageNum <= 3 +// }) +func (c *QBusiness) ListDocumentsPages(input *ListDocumentsInput, fn func(*ListDocumentsOutput, bool) bool) error { + return c.ListDocumentsPagesWithContext(aws.BackgroundContext(), input, fn) +} + +// ListDocumentsPagesWithContext same as ListDocumentsPages 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 *QBusiness) ListDocumentsPagesWithContext(ctx aws.Context, input *ListDocumentsInput, fn func(*ListDocumentsOutput, bool) bool, opts ...request.Option) error { + p := request.Pagination{ + NewRequest: func() (*request.Request, error) { + var inCpy *ListDocumentsInput + if input != nil { + tmp := *input + inCpy = &tmp + } + req, _ := c.ListDocumentsRequest(inCpy) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return req, nil + }, + } + + for p.Next() { + if !fn(p.Page().(*ListDocumentsOutput), !p.HasNextPage()) { + break + } + } + + return p.Err() +} + +const opListGroups = "ListGroups" + +// ListGroupsRequest generates a "aws/request.Request" representing the +// client's request for the ListGroups 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 ListGroups for more information on using the ListGroups +// 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 ListGroupsRequest method. +// req, resp := client.ListGroupsRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/qbusiness-2023-11-27/ListGroups +func (c *QBusiness) ListGroupsRequest(input *ListGroupsInput) (req *request.Request, output *ListGroupsOutput) { + op := &request.Operation{ + Name: opListGroups, + HTTPMethod: "GET", + HTTPPath: "/applications/{applicationId}/indices/{indexId}/groups", + Paginator: &request.Paginator{ + InputTokens: []string{"nextToken"}, + OutputTokens: []string{"nextToken"}, + LimitToken: "maxResults", + TruncationToken: "", + }, + } + + if input == nil { + input = &ListGroupsInput{} + } + + output = &ListGroupsOutput{} + req = c.newRequest(op, input, output) + return +} + +// ListGroups API operation for QBusiness. +// +// Provides a list of groups that are mapped to users. +// +// 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 QBusiness's +// API operation ListGroups for usage and error information. +// +// Returned Error Types: +// +// - ResourceNotFoundException +// The resource you want to use doesn’t exist. Make sure you have provided +// the correct resource and try again. +// +// - InternalServerException +// An issue occurred with the internal server used for your Amazon Q service. +// Wait some minutes and try again, or contact Support (http://aws.amazon.com/contact-us/) +// for help. +// +// - ConflictException +// You are trying to perform an action that conflicts with the current status +// of your resource. Fix any inconsistences with your resources and try again. +// +// - ThrottlingException +// The request was denied due to throttling. Reduce the number of requests and +// try again. +// +// - ValidationException +// The input doesn't meet the constraints set by the Amazon Q service. Provide +// the correct input and try again. +// +// - AccessDeniedException +// You don't have access to perform this action. Make sure you have the required +// permission policies and user accounts and try again. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/qbusiness-2023-11-27/ListGroups +func (c *QBusiness) ListGroups(input *ListGroupsInput) (*ListGroupsOutput, error) { + req, out := c.ListGroupsRequest(input) + return out, req.Send() +} + +// ListGroupsWithContext is the same as ListGroups with the addition of +// the ability to pass a context and additional request options. +// +// See ListGroups 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 *QBusiness) ListGroupsWithContext(ctx aws.Context, input *ListGroupsInput, opts ...request.Option) (*ListGroupsOutput, error) { + req, out := c.ListGroupsRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +// ListGroupsPages iterates over the pages of a ListGroups operation, +// calling the "fn" function with the response data for each page. To stop +// iterating, return false from the fn function. +// +// See ListGroups 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 ListGroups operation. +// pageNum := 0 +// err := client.ListGroupsPages(params, +// func(page *qbusiness.ListGroupsOutput, lastPage bool) bool { +// pageNum++ +// fmt.Println(page) +// return pageNum <= 3 +// }) +func (c *QBusiness) ListGroupsPages(input *ListGroupsInput, fn func(*ListGroupsOutput, bool) bool) error { + return c.ListGroupsPagesWithContext(aws.BackgroundContext(), input, fn) +} + +// ListGroupsPagesWithContext same as ListGroupsPages 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 *QBusiness) ListGroupsPagesWithContext(ctx aws.Context, input *ListGroupsInput, fn func(*ListGroupsOutput, bool) bool, opts ...request.Option) error { + p := request.Pagination{ + NewRequest: func() (*request.Request, error) { + var inCpy *ListGroupsInput + if input != nil { + tmp := *input + inCpy = &tmp + } + req, _ := c.ListGroupsRequest(inCpy) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return req, nil + }, + } + + for p.Next() { + if !fn(p.Page().(*ListGroupsOutput), !p.HasNextPage()) { + break + } + } + + return p.Err() +} + +const opListIndices = "ListIndices" + +// ListIndicesRequest generates a "aws/request.Request" representing the +// client's request for the ListIndices 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 ListIndices for more information on using the ListIndices +// 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 ListIndicesRequest method. +// req, resp := client.ListIndicesRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/qbusiness-2023-11-27/ListIndices +func (c *QBusiness) ListIndicesRequest(input *ListIndicesInput) (req *request.Request, output *ListIndicesOutput) { + op := &request.Operation{ + Name: opListIndices, + HTTPMethod: "GET", + HTTPPath: "/applications/{applicationId}/indices", + Paginator: &request.Paginator{ + InputTokens: []string{"nextToken"}, + OutputTokens: []string{"nextToken"}, + LimitToken: "maxResults", + TruncationToken: "", + }, + } + + if input == nil { + input = &ListIndicesInput{} + } + + output = &ListIndicesOutput{} + req = c.newRequest(op, input, output) + return +} + +// ListIndices API operation for QBusiness. +// +// Lists the Amazon Q indices you have created. +// +// 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 QBusiness's +// API operation ListIndices for usage and error information. +// +// Returned Error Types: +// +// - ResourceNotFoundException +// The resource you want to use doesn’t exist. Make sure you have provided +// the correct resource and try again. +// +// - InternalServerException +// An issue occurred with the internal server used for your Amazon Q service. +// Wait some minutes and try again, or contact Support (http://aws.amazon.com/contact-us/) +// for help. +// +// - ThrottlingException +// The request was denied due to throttling. Reduce the number of requests and +// try again. +// +// - ValidationException +// The input doesn't meet the constraints set by the Amazon Q service. Provide +// the correct input and try again. +// +// - AccessDeniedException +// You don't have access to perform this action. Make sure you have the required +// permission policies and user accounts and try again. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/qbusiness-2023-11-27/ListIndices +func (c *QBusiness) ListIndices(input *ListIndicesInput) (*ListIndicesOutput, error) { + req, out := c.ListIndicesRequest(input) + return out, req.Send() +} + +// ListIndicesWithContext is the same as ListIndices with the addition of +// the ability to pass a context and additional request options. +// +// See ListIndices 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 *QBusiness) ListIndicesWithContext(ctx aws.Context, input *ListIndicesInput, opts ...request.Option) (*ListIndicesOutput, error) { + req, out := c.ListIndicesRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +// ListIndicesPages iterates over the pages of a ListIndices operation, +// calling the "fn" function with the response data for each page. To stop +// iterating, return false from the fn function. +// +// See ListIndices 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 ListIndices operation. +// pageNum := 0 +// err := client.ListIndicesPages(params, +// func(page *qbusiness.ListIndicesOutput, lastPage bool) bool { +// pageNum++ +// fmt.Println(page) +// return pageNum <= 3 +// }) +func (c *QBusiness) ListIndicesPages(input *ListIndicesInput, fn func(*ListIndicesOutput, bool) bool) error { + return c.ListIndicesPagesWithContext(aws.BackgroundContext(), input, fn) +} + +// ListIndicesPagesWithContext same as ListIndicesPages 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 *QBusiness) ListIndicesPagesWithContext(ctx aws.Context, input *ListIndicesInput, fn func(*ListIndicesOutput, bool) bool, opts ...request.Option) error { + p := request.Pagination{ + NewRequest: func() (*request.Request, error) { + var inCpy *ListIndicesInput + if input != nil { + tmp := *input + inCpy = &tmp + } + req, _ := c.ListIndicesRequest(inCpy) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return req, nil + }, + } + + for p.Next() { + if !fn(p.Page().(*ListIndicesOutput), !p.HasNextPage()) { + break + } + } + + return p.Err() +} + +const opListMessages = "ListMessages" + +// ListMessagesRequest generates a "aws/request.Request" representing the +// client's request for the ListMessages 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 ListMessages for more information on using the ListMessages +// 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 ListMessagesRequest method. +// req, resp := client.ListMessagesRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/qbusiness-2023-11-27/ListMessages +func (c *QBusiness) ListMessagesRequest(input *ListMessagesInput) (req *request.Request, output *ListMessagesOutput) { + op := &request.Operation{ + Name: opListMessages, + HTTPMethod: "GET", + HTTPPath: "/applications/{applicationId}/conversations/{conversationId}", + Paginator: &request.Paginator{ + InputTokens: []string{"nextToken"}, + OutputTokens: []string{"nextToken"}, + LimitToken: "maxResults", + TruncationToken: "", + }, + } + + if input == nil { + input = &ListMessagesInput{} + } + + output = &ListMessagesOutput{} + req = c.newRequest(op, input, output) + return +} + +// ListMessages API operation for QBusiness. +// +// Gets a list of messages associated with an Amazon Q web experience. +// +// 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 QBusiness's +// API operation ListMessages for usage and error information. +// +// Returned Error Types: +// +// - ResourceNotFoundException +// The resource you want to use doesn’t exist. Make sure you have provided +// the correct resource and try again. +// +// - InternalServerException +// An issue occurred with the internal server used for your Amazon Q service. +// Wait some minutes and try again, or contact Support (http://aws.amazon.com/contact-us/) +// for help. +// +// - LicenseNotFoundException +// You don't have permissions to perform the action because your license is +// inactive. Ask your admin to activate your license and try again after your +// licence is active. +// +// - ThrottlingException +// The request was denied due to throttling. Reduce the number of requests and +// try again. +// +// - ValidationException +// The input doesn't meet the constraints set by the Amazon Q service. Provide +// the correct input and try again. +// +// - AccessDeniedException +// You don't have access to perform this action. Make sure you have the required +// permission policies and user accounts and try again. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/qbusiness-2023-11-27/ListMessages +func (c *QBusiness) ListMessages(input *ListMessagesInput) (*ListMessagesOutput, error) { + req, out := c.ListMessagesRequest(input) + return out, req.Send() +} + +// ListMessagesWithContext is the same as ListMessages with the addition of +// the ability to pass a context and additional request options. +// +// See ListMessages 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 *QBusiness) ListMessagesWithContext(ctx aws.Context, input *ListMessagesInput, opts ...request.Option) (*ListMessagesOutput, error) { + req, out := c.ListMessagesRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +// ListMessagesPages iterates over the pages of a ListMessages operation, +// calling the "fn" function with the response data for each page. To stop +// iterating, return false from the fn function. +// +// See ListMessages 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 ListMessages operation. +// pageNum := 0 +// err := client.ListMessagesPages(params, +// func(page *qbusiness.ListMessagesOutput, lastPage bool) bool { +// pageNum++ +// fmt.Println(page) +// return pageNum <= 3 +// }) +func (c *QBusiness) ListMessagesPages(input *ListMessagesInput, fn func(*ListMessagesOutput, bool) bool) error { + return c.ListMessagesPagesWithContext(aws.BackgroundContext(), input, fn) +} + +// ListMessagesPagesWithContext same as ListMessagesPages 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 *QBusiness) ListMessagesPagesWithContext(ctx aws.Context, input *ListMessagesInput, fn func(*ListMessagesOutput, bool) bool, opts ...request.Option) error { + p := request.Pagination{ + NewRequest: func() (*request.Request, error) { + var inCpy *ListMessagesInput + if input != nil { + tmp := *input + inCpy = &tmp + } + req, _ := c.ListMessagesRequest(inCpy) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return req, nil + }, + } + + for p.Next() { + if !fn(p.Page().(*ListMessagesOutput), !p.HasNextPage()) { + break + } + } + + return p.Err() +} + +const opListPlugins = "ListPlugins" + +// ListPluginsRequest generates a "aws/request.Request" representing the +// client's request for the ListPlugins 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 ListPlugins for more information on using the ListPlugins +// 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 ListPluginsRequest method. +// req, resp := client.ListPluginsRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/qbusiness-2023-11-27/ListPlugins +func (c *QBusiness) ListPluginsRequest(input *ListPluginsInput) (req *request.Request, output *ListPluginsOutput) { + op := &request.Operation{ + Name: opListPlugins, + HTTPMethod: "GET", + HTTPPath: "/applications/{applicationId}/plugins", + Paginator: &request.Paginator{ + InputTokens: []string{"nextToken"}, + OutputTokens: []string{"nextToken"}, + LimitToken: "maxResults", + TruncationToken: "", + }, + } + + if input == nil { + input = &ListPluginsInput{} + } + + output = &ListPluginsOutput{} + req = c.newRequest(op, input, output) + return +} + +// ListPlugins API operation for QBusiness. +// +// Lists configured Amazon Q plugins. +// +// 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 QBusiness's +// API operation ListPlugins for usage and error information. +// +// Returned Error Types: +// +// - ResourceNotFoundException +// The resource you want to use doesn’t exist. Make sure you have provided +// the correct resource and try again. +// +// - InternalServerException +// An issue occurred with the internal server used for your Amazon Q service. +// Wait some minutes and try again, or contact Support (http://aws.amazon.com/contact-us/) +// for help. +// +// - ThrottlingException +// The request was denied due to throttling. Reduce the number of requests and +// try again. +// +// - ValidationException +// The input doesn't meet the constraints set by the Amazon Q service. Provide +// the correct input and try again. +// +// - AccessDeniedException +// You don't have access to perform this action. Make sure you have the required +// permission policies and user accounts and try again. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/qbusiness-2023-11-27/ListPlugins +func (c *QBusiness) ListPlugins(input *ListPluginsInput) (*ListPluginsOutput, error) { + req, out := c.ListPluginsRequest(input) + return out, req.Send() +} + +// ListPluginsWithContext is the same as ListPlugins with the addition of +// the ability to pass a context and additional request options. +// +// See ListPlugins 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 *QBusiness) ListPluginsWithContext(ctx aws.Context, input *ListPluginsInput, opts ...request.Option) (*ListPluginsOutput, error) { + req, out := c.ListPluginsRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +// ListPluginsPages iterates over the pages of a ListPlugins operation, +// calling the "fn" function with the response data for each page. To stop +// iterating, return false from the fn function. +// +// See ListPlugins 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 ListPlugins operation. +// pageNum := 0 +// err := client.ListPluginsPages(params, +// func(page *qbusiness.ListPluginsOutput, lastPage bool) bool { +// pageNum++ +// fmt.Println(page) +// return pageNum <= 3 +// }) +func (c *QBusiness) ListPluginsPages(input *ListPluginsInput, fn func(*ListPluginsOutput, bool) bool) error { + return c.ListPluginsPagesWithContext(aws.BackgroundContext(), input, fn) +} + +// ListPluginsPagesWithContext same as ListPluginsPages 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 *QBusiness) ListPluginsPagesWithContext(ctx aws.Context, input *ListPluginsInput, fn func(*ListPluginsOutput, bool) bool, opts ...request.Option) error { + p := request.Pagination{ + NewRequest: func() (*request.Request, error) { + var inCpy *ListPluginsInput + if input != nil { + tmp := *input + inCpy = &tmp + } + req, _ := c.ListPluginsRequest(inCpy) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return req, nil + }, + } + + for p.Next() { + if !fn(p.Page().(*ListPluginsOutput), !p.HasNextPage()) { + break + } + } + + return p.Err() +} + +const opListRetrievers = "ListRetrievers" + +// ListRetrieversRequest generates a "aws/request.Request" representing the +// client's request for the ListRetrievers 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 ListRetrievers for more information on using the ListRetrievers +// 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 ListRetrieversRequest method. +// req, resp := client.ListRetrieversRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/qbusiness-2023-11-27/ListRetrievers +func (c *QBusiness) ListRetrieversRequest(input *ListRetrieversInput) (req *request.Request, output *ListRetrieversOutput) { + op := &request.Operation{ + Name: opListRetrievers, + HTTPMethod: "GET", + HTTPPath: "/applications/{applicationId}/retrievers", + Paginator: &request.Paginator{ + InputTokens: []string{"nextToken"}, + OutputTokens: []string{"nextToken"}, + LimitToken: "maxResults", + TruncationToken: "", + }, + } + + if input == nil { + input = &ListRetrieversInput{} + } + + output = &ListRetrieversOutput{} + req = c.newRequest(op, input, output) + return +} + +// ListRetrievers API operation for QBusiness. +// +// Lists the retriever used by an Amazon Q application. +// +// 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 QBusiness's +// API operation ListRetrievers for usage and error information. +// +// Returned Error Types: +// +// - ResourceNotFoundException +// The resource you want to use doesn’t exist. Make sure you have provided +// the correct resource and try again. +// +// - InternalServerException +// An issue occurred with the internal server used for your Amazon Q service. +// Wait some minutes and try again, or contact Support (http://aws.amazon.com/contact-us/) +// for help. +// +// - ThrottlingException +// The request was denied due to throttling. Reduce the number of requests and +// try again. +// +// - ValidationException +// The input doesn't meet the constraints set by the Amazon Q service. Provide +// the correct input and try again. +// +// - AccessDeniedException +// You don't have access to perform this action. Make sure you have the required +// permission policies and user accounts and try again. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/qbusiness-2023-11-27/ListRetrievers +func (c *QBusiness) ListRetrievers(input *ListRetrieversInput) (*ListRetrieversOutput, error) { + req, out := c.ListRetrieversRequest(input) + return out, req.Send() +} + +// ListRetrieversWithContext is the same as ListRetrievers with the addition of +// the ability to pass a context and additional request options. +// +// See ListRetrievers 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 *QBusiness) ListRetrieversWithContext(ctx aws.Context, input *ListRetrieversInput, opts ...request.Option) (*ListRetrieversOutput, error) { + req, out := c.ListRetrieversRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +// ListRetrieversPages iterates over the pages of a ListRetrievers operation, +// calling the "fn" function with the response data for each page. To stop +// iterating, return false from the fn function. +// +// See ListRetrievers 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 ListRetrievers operation. +// pageNum := 0 +// err := client.ListRetrieversPages(params, +// func(page *qbusiness.ListRetrieversOutput, lastPage bool) bool { +// pageNum++ +// fmt.Println(page) +// return pageNum <= 3 +// }) +func (c *QBusiness) ListRetrieversPages(input *ListRetrieversInput, fn func(*ListRetrieversOutput, bool) bool) error { + return c.ListRetrieversPagesWithContext(aws.BackgroundContext(), input, fn) +} + +// ListRetrieversPagesWithContext same as ListRetrieversPages 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 *QBusiness) ListRetrieversPagesWithContext(ctx aws.Context, input *ListRetrieversInput, fn func(*ListRetrieversOutput, bool) bool, opts ...request.Option) error { + p := request.Pagination{ + NewRequest: func() (*request.Request, error) { + var inCpy *ListRetrieversInput + if input != nil { + tmp := *input + inCpy = &tmp + } + req, _ := c.ListRetrieversRequest(inCpy) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return req, nil + }, + } + + for p.Next() { + if !fn(p.Page().(*ListRetrieversOutput), !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/qbusiness-2023-11-27/ListTagsForResource +func (c *QBusiness) ListTagsForResourceRequest(input *ListTagsForResourceInput) (req *request.Request, output *ListTagsForResourceOutput) { + op := &request.Operation{ + Name: opListTagsForResource, + HTTPMethod: "GET", + HTTPPath: "/v1/tags/{resourceARN}", + } + + if input == nil { + input = &ListTagsForResourceInput{} + } + + output = &ListTagsForResourceOutput{} + req = c.newRequest(op, input, output) + return +} + +// ListTagsForResource API operation for QBusiness. +// +// Gets a list of tags associated with a specified resource. Amazon Q applications +// and data sources can have tags associated with them. +// +// 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 QBusiness's +// API operation ListTagsForResource for usage and error information. +// +// Returned Error Types: +// +// - ResourceNotFoundException +// The resource you want to use doesn’t exist. Make sure you have provided +// the correct resource and try again. +// +// - InternalServerException +// An issue occurred with the internal server used for your Amazon Q service. +// Wait some minutes and try again, or contact Support (http://aws.amazon.com/contact-us/) +// for help. +// +// - ThrottlingException +// The request was denied due to throttling. Reduce the number of requests and +// try again. +// +// - ValidationException +// The input doesn't meet the constraints set by the Amazon Q service. Provide +// the correct input and try again. +// +// - AccessDeniedException +// You don't have access to perform this action. Make sure you have the required +// permission policies and user accounts and try again. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/qbusiness-2023-11-27/ListTagsForResource +func (c *QBusiness) 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 *QBusiness) 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 opListWebExperiences = "ListWebExperiences" + +// ListWebExperiencesRequest generates a "aws/request.Request" representing the +// client's request for the ListWebExperiences 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 ListWebExperiences for more information on using the ListWebExperiences +// 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 ListWebExperiencesRequest method. +// req, resp := client.ListWebExperiencesRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/qbusiness-2023-11-27/ListWebExperiences +func (c *QBusiness) ListWebExperiencesRequest(input *ListWebExperiencesInput) (req *request.Request, output *ListWebExperiencesOutput) { + op := &request.Operation{ + Name: opListWebExperiences, + HTTPMethod: "GET", + HTTPPath: "/applications/{applicationId}/experiences", + Paginator: &request.Paginator{ + InputTokens: []string{"nextToken"}, + OutputTokens: []string{"nextToken"}, + LimitToken: "maxResults", + TruncationToken: "", + }, + } + + if input == nil { + input = &ListWebExperiencesInput{} + } + + output = &ListWebExperiencesOutput{} + req = c.newRequest(op, input, output) + return +} + +// ListWebExperiences API operation for QBusiness. +// +// Lists one or more Amazon Q Web Experiences. +// +// 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 QBusiness's +// API operation ListWebExperiences for usage and error information. +// +// Returned Error Types: +// +// - ResourceNotFoundException +// The resource you want to use doesn’t exist. Make sure you have provided +// the correct resource and try again. +// +// - InternalServerException +// An issue occurred with the internal server used for your Amazon Q service. +// Wait some minutes and try again, or contact Support (http://aws.amazon.com/contact-us/) +// for help. +// +// - ThrottlingException +// The request was denied due to throttling. Reduce the number of requests and +// try again. +// +// - ValidationException +// The input doesn't meet the constraints set by the Amazon Q service. Provide +// the correct input and try again. +// +// - AccessDeniedException +// You don't have access to perform this action. Make sure you have the required +// permission policies and user accounts and try again. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/qbusiness-2023-11-27/ListWebExperiences +func (c *QBusiness) ListWebExperiences(input *ListWebExperiencesInput) (*ListWebExperiencesOutput, error) { + req, out := c.ListWebExperiencesRequest(input) + return out, req.Send() +} + +// ListWebExperiencesWithContext is the same as ListWebExperiences with the addition of +// the ability to pass a context and additional request options. +// +// See ListWebExperiences 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 *QBusiness) ListWebExperiencesWithContext(ctx aws.Context, input *ListWebExperiencesInput, opts ...request.Option) (*ListWebExperiencesOutput, error) { + req, out := c.ListWebExperiencesRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +// ListWebExperiencesPages iterates over the pages of a ListWebExperiences operation, +// calling the "fn" function with the response data for each page. To stop +// iterating, return false from the fn function. +// +// See ListWebExperiences 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 ListWebExperiences operation. +// pageNum := 0 +// err := client.ListWebExperiencesPages(params, +// func(page *qbusiness.ListWebExperiencesOutput, lastPage bool) bool { +// pageNum++ +// fmt.Println(page) +// return pageNum <= 3 +// }) +func (c *QBusiness) ListWebExperiencesPages(input *ListWebExperiencesInput, fn func(*ListWebExperiencesOutput, bool) bool) error { + return c.ListWebExperiencesPagesWithContext(aws.BackgroundContext(), input, fn) +} + +// ListWebExperiencesPagesWithContext same as ListWebExperiencesPages 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 *QBusiness) ListWebExperiencesPagesWithContext(ctx aws.Context, input *ListWebExperiencesInput, fn func(*ListWebExperiencesOutput, bool) bool, opts ...request.Option) error { + p := request.Pagination{ + NewRequest: func() (*request.Request, error) { + var inCpy *ListWebExperiencesInput + if input != nil { + tmp := *input + inCpy = &tmp + } + req, _ := c.ListWebExperiencesRequest(inCpy) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return req, nil + }, + } + + for p.Next() { + if !fn(p.Page().(*ListWebExperiencesOutput), !p.HasNextPage()) { + break + } + } + + return p.Err() +} + +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/qbusiness-2023-11-27/PutFeedback +func (c *QBusiness) PutFeedbackRequest(input *PutFeedbackInput) (req *request.Request, output *PutFeedbackOutput) { + op := &request.Operation{ + Name: opPutFeedback, + HTTPMethod: "POST", + HTTPPath: "/applications/{applicationId}/conversations/{conversationId}/messages/{messageId}/feedback", + } + + if input == nil { + input = &PutFeedbackInput{} + } + + output = &PutFeedbackOutput{} + req = c.newRequest(op, input, output) + req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) + return +} + +// PutFeedback API operation for QBusiness. +// +// Enables your end user to to provide feedback on their Amazon Q generated +// chat responses. +// +// 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 QBusiness's +// API operation PutFeedback for usage and error information. +// +// Returned Error Types: +// +// - ResourceNotFoundException +// The resource you want to use doesn’t exist. Make sure you have provided +// the correct resource and try again. +// +// - InternalServerException +// An issue occurred with the internal server used for your Amazon Q service. +// Wait some minutes and try again, or contact Support (http://aws.amazon.com/contact-us/) +// for help. +// +// - ThrottlingException +// The request was denied due to throttling. Reduce the number of requests and +// try again. +// +// - ValidationException +// The input doesn't meet the constraints set by the Amazon Q service. Provide +// the correct input and try again. +// +// - AccessDeniedException +// You don't have access to perform this action. Make sure you have the required +// permission policies and user accounts and try again. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/qbusiness-2023-11-27/PutFeedback +func (c *QBusiness) 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 *QBusiness) 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 opPutGroup = "PutGroup" + +// PutGroupRequest generates a "aws/request.Request" representing the +// client's request for the PutGroup 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 PutGroup for more information on using the PutGroup +// 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 PutGroupRequest method. +// req, resp := client.PutGroupRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/qbusiness-2023-11-27/PutGroup +func (c *QBusiness) PutGroupRequest(input *PutGroupInput) (req *request.Request, output *PutGroupOutput) { + op := &request.Operation{ + Name: opPutGroup, + HTTPMethod: "PUT", + HTTPPath: "/applications/{applicationId}/indices/{indexId}/groups", + } + + if input == nil { + input = &PutGroupInput{} + } + + output = &PutGroupOutput{} + req = c.newRequest(op, input, output) + req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) + return +} + +// PutGroup API operation for QBusiness. +// +// Create, or updates, a mapping of users—who have access to a document—to +// groups. +// +// You can also map sub groups to groups. For example, the group "Company Intellectual +// Property Teams" includes sub groups "Research" and "Engineering". These sub +// groups include their own list of users or people who work in these teams. +// Only users who work in research and engineering, and therefore belong in +// the intellectual property group, can see top-secret company documents in +// their Amazon Q chat results. +// +// 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 QBusiness's +// API operation PutGroup for usage and error information. +// +// Returned Error Types: +// +// - ResourceNotFoundException +// The resource you want to use doesn’t exist. Make sure you have provided +// the correct resource and try again. +// +// - InternalServerException +// An issue occurred with the internal server used for your Amazon Q service. +// Wait some minutes and try again, or contact Support (http://aws.amazon.com/contact-us/) +// for help. +// +// - ConflictException +// You are trying to perform an action that conflicts with the current status +// of your resource. Fix any inconsistences with your resources and try again. +// +// - ThrottlingException +// The request was denied due to throttling. Reduce the number of requests and +// try again. +// +// - ValidationException +// The input doesn't meet the constraints set by the Amazon Q service. Provide +// the correct input and try again. +// +// - AccessDeniedException +// You don't have access to perform this action. Make sure you have the required +// permission policies and user accounts and try again. +// +// - ServiceQuotaExceededException +// You have exceeded the set limits for your Amazon Q service. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/qbusiness-2023-11-27/PutGroup +func (c *QBusiness) PutGroup(input *PutGroupInput) (*PutGroupOutput, error) { + req, out := c.PutGroupRequest(input) + return out, req.Send() +} + +// PutGroupWithContext is the same as PutGroup with the addition of +// the ability to pass a context and additional request options. +// +// See PutGroup 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 *QBusiness) PutGroupWithContext(ctx aws.Context, input *PutGroupInput, opts ...request.Option) (*PutGroupOutput, error) { + req, out := c.PutGroupRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opStartDataSourceSyncJob = "StartDataSourceSyncJob" + +// StartDataSourceSyncJobRequest generates a "aws/request.Request" representing the +// client's request for the StartDataSourceSyncJob 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 StartDataSourceSyncJob for more information on using the StartDataSourceSyncJob +// 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 StartDataSourceSyncJobRequest method. +// req, resp := client.StartDataSourceSyncJobRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/qbusiness-2023-11-27/StartDataSourceSyncJob +func (c *QBusiness) StartDataSourceSyncJobRequest(input *StartDataSourceSyncJobInput) (req *request.Request, output *StartDataSourceSyncJobOutput) { + op := &request.Operation{ + Name: opStartDataSourceSyncJob, + HTTPMethod: "POST", + HTTPPath: "/applications/{applicationId}/indices/{indexId}/datasources/{dataSourceId}/startsync", + } + + if input == nil { + input = &StartDataSourceSyncJobInput{} + } + + output = &StartDataSourceSyncJobOutput{} + req = c.newRequest(op, input, output) + return +} + +// StartDataSourceSyncJob API operation for QBusiness. +// +// Starts a data source connector synchronization job. If a synchronization +// job is already in progress, Amazon Q returns a ConflictException. +// +// 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 QBusiness's +// API operation StartDataSourceSyncJob for usage and error information. +// +// Returned Error Types: +// +// - ResourceNotFoundException +// The resource you want to use doesn’t exist. Make sure you have provided +// the correct resource and try again. +// +// - InternalServerException +// An issue occurred with the internal server used for your Amazon Q service. +// Wait some minutes and try again, or contact Support (http://aws.amazon.com/contact-us/) +// for help. +// +// - ConflictException +// You are trying to perform an action that conflicts with the current status +// of your resource. Fix any inconsistences with your resources and try again. +// +// - ThrottlingException +// The request was denied due to throttling. Reduce the number of requests and +// try again. +// +// - ValidationException +// The input doesn't meet the constraints set by the Amazon Q service. Provide +// the correct input and try again. +// +// - AccessDeniedException +// You don't have access to perform this action. Make sure you have the required +// permission policies and user accounts and try again. +// +// - ServiceQuotaExceededException +// You have exceeded the set limits for your Amazon Q service. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/qbusiness-2023-11-27/StartDataSourceSyncJob +func (c *QBusiness) StartDataSourceSyncJob(input *StartDataSourceSyncJobInput) (*StartDataSourceSyncJobOutput, error) { + req, out := c.StartDataSourceSyncJobRequest(input) + return out, req.Send() +} + +// StartDataSourceSyncJobWithContext is the same as StartDataSourceSyncJob with the addition of +// the ability to pass a context and additional request options. +// +// See StartDataSourceSyncJob 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 *QBusiness) StartDataSourceSyncJobWithContext(ctx aws.Context, input *StartDataSourceSyncJobInput, opts ...request.Option) (*StartDataSourceSyncJobOutput, error) { + req, out := c.StartDataSourceSyncJobRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opStopDataSourceSyncJob = "StopDataSourceSyncJob" + +// StopDataSourceSyncJobRequest generates a "aws/request.Request" representing the +// client's request for the StopDataSourceSyncJob 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 StopDataSourceSyncJob for more information on using the StopDataSourceSyncJob +// 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 StopDataSourceSyncJobRequest method. +// req, resp := client.StopDataSourceSyncJobRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/qbusiness-2023-11-27/StopDataSourceSyncJob +func (c *QBusiness) StopDataSourceSyncJobRequest(input *StopDataSourceSyncJobInput) (req *request.Request, output *StopDataSourceSyncJobOutput) { + op := &request.Operation{ + Name: opStopDataSourceSyncJob, + HTTPMethod: "POST", + HTTPPath: "/applications/{applicationId}/indices/{indexId}/datasources/{dataSourceId}/stopsync", + } + + if input == nil { + input = &StopDataSourceSyncJobInput{} + } + + output = &StopDataSourceSyncJobOutput{} + req = c.newRequest(op, input, output) + req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) + return +} + +// StopDataSourceSyncJob API operation for QBusiness. +// +// Stops an Amazon Q data source connector synchronization job already in progress. +// +// 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 QBusiness's +// API operation StopDataSourceSyncJob for usage and error information. +// +// Returned Error Types: +// +// - ResourceNotFoundException +// The resource you want to use doesn’t exist. Make sure you have provided +// the correct resource and try again. +// +// - InternalServerException +// An issue occurred with the internal server used for your Amazon Q service. +// Wait some minutes and try again, or contact Support (http://aws.amazon.com/contact-us/) +// for help. +// +// - ThrottlingException +// The request was denied due to throttling. Reduce the number of requests and +// try again. +// +// - ValidationException +// The input doesn't meet the constraints set by the Amazon Q service. Provide +// the correct input and try again. +// +// - AccessDeniedException +// You don't have access to perform this action. Make sure you have the required +// permission policies and user accounts and try again. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/qbusiness-2023-11-27/StopDataSourceSyncJob +func (c *QBusiness) StopDataSourceSyncJob(input *StopDataSourceSyncJobInput) (*StopDataSourceSyncJobOutput, error) { + req, out := c.StopDataSourceSyncJobRequest(input) + return out, req.Send() +} + +// StopDataSourceSyncJobWithContext is the same as StopDataSourceSyncJob with the addition of +// the ability to pass a context and additional request options. +// +// See StopDataSourceSyncJob 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 *QBusiness) StopDataSourceSyncJobWithContext(ctx aws.Context, input *StopDataSourceSyncJobInput, opts ...request.Option) (*StopDataSourceSyncJobOutput, error) { + req, out := c.StopDataSourceSyncJobRequest(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/qbusiness-2023-11-27/TagResource +func (c *QBusiness) TagResourceRequest(input *TagResourceInput) (req *request.Request, output *TagResourceOutput) { + op := &request.Operation{ + Name: opTagResource, + HTTPMethod: "POST", + HTTPPath: "/v1/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 QBusiness. +// +// Adds the specified tag to the specified Amazon Q application or data source +// resource. If the tag already exists, the existing value is replaced with +// the new value. +// +// 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 QBusiness's +// API operation TagResource for usage and error information. +// +// Returned Error Types: +// +// - ResourceNotFoundException +// The resource you want to use doesn’t exist. Make sure you have provided +// the correct resource and try again. +// +// - InternalServerException +// An issue occurred with the internal server used for your Amazon Q service. +// Wait some minutes and try again, or contact Support (http://aws.amazon.com/contact-us/) +// for help. +// +// - ConflictException +// You are trying to perform an action that conflicts with the current status +// of your resource. Fix any inconsistences with your resources and try again. +// +// - ThrottlingException +// The request was denied due to throttling. Reduce the number of requests and +// try again. +// +// - ValidationException +// The input doesn't meet the constraints set by the Amazon Q service. Provide +// the correct input and try again. +// +// - AccessDeniedException +// You don't have access to perform this action. Make sure you have the required +// permission policies and user accounts and try again. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/qbusiness-2023-11-27/TagResource +func (c *QBusiness) 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 *QBusiness) 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/qbusiness-2023-11-27/UntagResource +func (c *QBusiness) UntagResourceRequest(input *UntagResourceInput) (req *request.Request, output *UntagResourceOutput) { + op := &request.Operation{ + Name: opUntagResource, + HTTPMethod: "DELETE", + HTTPPath: "/v1/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 QBusiness. +// +// Removes a tag from an Amazon Q application or a data source. +// +// 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 QBusiness's +// API operation UntagResource for usage and error information. +// +// Returned Error Types: +// +// - ResourceNotFoundException +// The resource you want to use doesn’t exist. Make sure you have provided +// the correct resource and try again. +// +// - InternalServerException +// An issue occurred with the internal server used for your Amazon Q service. +// Wait some minutes and try again, or contact Support (http://aws.amazon.com/contact-us/) +// for help. +// +// - ThrottlingException +// The request was denied due to throttling. Reduce the number of requests and +// try again. +// +// - ValidationException +// The input doesn't meet the constraints set by the Amazon Q service. Provide +// the correct input and try again. +// +// - AccessDeniedException +// You don't have access to perform this action. Make sure you have the required +// permission policies and user accounts and try again. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/qbusiness-2023-11-27/UntagResource +func (c *QBusiness) 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 *QBusiness) 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 opUpdateApplication = "UpdateApplication" + +// UpdateApplicationRequest generates a "aws/request.Request" representing the +// client's request for the UpdateApplication 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 UpdateApplication for more information on using the UpdateApplication +// 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 UpdateApplicationRequest method. +// req, resp := client.UpdateApplicationRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/qbusiness-2023-11-27/UpdateApplication +func (c *QBusiness) UpdateApplicationRequest(input *UpdateApplicationInput) (req *request.Request, output *UpdateApplicationOutput) { + op := &request.Operation{ + Name: opUpdateApplication, + HTTPMethod: "PUT", + HTTPPath: "/applications/{applicationId}", + } + + if input == nil { + input = &UpdateApplicationInput{} + } + + output = &UpdateApplicationOutput{} + req = c.newRequest(op, input, output) + req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) + return +} + +// UpdateApplication API operation for QBusiness. +// +// Updates an existing Amazon Q application. +// +// 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 QBusiness's +// API operation UpdateApplication for usage and error information. +// +// Returned Error Types: +// +// - ResourceNotFoundException +// The resource you want to use doesn’t exist. Make sure you have provided +// the correct resource and try again. +// +// - InternalServerException +// An issue occurred with the internal server used for your Amazon Q service. +// Wait some minutes and try again, or contact Support (http://aws.amazon.com/contact-us/) +// for help. +// +// - ConflictException +// You are trying to perform an action that conflicts with the current status +// of your resource. Fix any inconsistences with your resources and try again. +// +// - ThrottlingException +// The request was denied due to throttling. Reduce the number of requests and +// try again. +// +// - ValidationException +// The input doesn't meet the constraints set by the Amazon Q service. Provide +// the correct input and try again. +// +// - AccessDeniedException +// You don't have access to perform this action. Make sure you have the required +// permission policies and user accounts and try again. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/qbusiness-2023-11-27/UpdateApplication +func (c *QBusiness) UpdateApplication(input *UpdateApplicationInput) (*UpdateApplicationOutput, error) { + req, out := c.UpdateApplicationRequest(input) + return out, req.Send() +} + +// UpdateApplicationWithContext is the same as UpdateApplication with the addition of +// the ability to pass a context and additional request options. +// +// See UpdateApplication 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 *QBusiness) UpdateApplicationWithContext(ctx aws.Context, input *UpdateApplicationInput, opts ...request.Option) (*UpdateApplicationOutput, error) { + req, out := c.UpdateApplicationRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opUpdateChatControlsConfiguration = "UpdateChatControlsConfiguration" + +// UpdateChatControlsConfigurationRequest generates a "aws/request.Request" representing the +// client's request for the UpdateChatControlsConfiguration 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 UpdateChatControlsConfiguration for more information on using the UpdateChatControlsConfiguration +// 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 UpdateChatControlsConfigurationRequest method. +// req, resp := client.UpdateChatControlsConfigurationRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/qbusiness-2023-11-27/UpdateChatControlsConfiguration +func (c *QBusiness) UpdateChatControlsConfigurationRequest(input *UpdateChatControlsConfigurationInput) (req *request.Request, output *UpdateChatControlsConfigurationOutput) { + op := &request.Operation{ + Name: opUpdateChatControlsConfiguration, + HTTPMethod: "PATCH", + HTTPPath: "/applications/{applicationId}/chatcontrols", + } + + if input == nil { + input = &UpdateChatControlsConfigurationInput{} + } + + output = &UpdateChatControlsConfigurationOutput{} + req = c.newRequest(op, input, output) + req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) + return +} + +// UpdateChatControlsConfiguration API operation for QBusiness. +// +// Updates an set of chat controls configured for an existing Amazon Q application. +// +// 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 QBusiness's +// API operation UpdateChatControlsConfiguration for usage and error information. +// +// Returned Error Types: +// +// - ResourceNotFoundException +// The resource you want to use doesn’t exist. Make sure you have provided +// the correct resource and try again. +// +// - InternalServerException +// An issue occurred with the internal server used for your Amazon Q service. +// Wait some minutes and try again, or contact Support (http://aws.amazon.com/contact-us/) +// for help. +// +// - ConflictException +// You are trying to perform an action that conflicts with the current status +// of your resource. Fix any inconsistences with your resources and try again. +// +// - ThrottlingException +// The request was denied due to throttling. Reduce the number of requests and +// try again. +// +// - ValidationException +// The input doesn't meet the constraints set by the Amazon Q service. Provide +// the correct input and try again. +// +// - AccessDeniedException +// You don't have access to perform this action. Make sure you have the required +// permission policies and user accounts and try again. +// +// - ServiceQuotaExceededException +// You have exceeded the set limits for your Amazon Q service. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/qbusiness-2023-11-27/UpdateChatControlsConfiguration +func (c *QBusiness) UpdateChatControlsConfiguration(input *UpdateChatControlsConfigurationInput) (*UpdateChatControlsConfigurationOutput, error) { + req, out := c.UpdateChatControlsConfigurationRequest(input) + return out, req.Send() +} + +// UpdateChatControlsConfigurationWithContext is the same as UpdateChatControlsConfiguration with the addition of +// the ability to pass a context and additional request options. +// +// See UpdateChatControlsConfiguration 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 *QBusiness) UpdateChatControlsConfigurationWithContext(ctx aws.Context, input *UpdateChatControlsConfigurationInput, opts ...request.Option) (*UpdateChatControlsConfigurationOutput, error) { + req, out := c.UpdateChatControlsConfigurationRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opUpdateDataSource = "UpdateDataSource" + +// UpdateDataSourceRequest generates a "aws/request.Request" representing the +// client's request for the UpdateDataSource 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 UpdateDataSource for more information on using the UpdateDataSource +// 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 UpdateDataSourceRequest method. +// req, resp := client.UpdateDataSourceRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/qbusiness-2023-11-27/UpdateDataSource +func (c *QBusiness) UpdateDataSourceRequest(input *UpdateDataSourceInput) (req *request.Request, output *UpdateDataSourceOutput) { + op := &request.Operation{ + Name: opUpdateDataSource, + HTTPMethod: "PUT", + HTTPPath: "/applications/{applicationId}/indices/{indexId}/datasources/{dataSourceId}", + } + + if input == nil { + input = &UpdateDataSourceInput{} + } + + output = &UpdateDataSourceOutput{} + req = c.newRequest(op, input, output) + req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) + return +} + +// UpdateDataSource API operation for QBusiness. +// +// Updates an existing Amazon Q data source connector. +// +// 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 QBusiness's +// API operation UpdateDataSource for usage and error information. +// +// Returned Error Types: +// +// - ResourceNotFoundException +// The resource you want to use doesn’t exist. Make sure you have provided +// the correct resource and try again. +// +// - InternalServerException +// An issue occurred with the internal server used for your Amazon Q service. +// Wait some minutes and try again, or contact Support (http://aws.amazon.com/contact-us/) +// for help. +// +// - ConflictException +// You are trying to perform an action that conflicts with the current status +// of your resource. Fix any inconsistences with your resources and try again. +// +// - ThrottlingException +// The request was denied due to throttling. Reduce the number of requests and +// try again. +// +// - ValidationException +// The input doesn't meet the constraints set by the Amazon Q service. Provide +// the correct input and try again. +// +// - AccessDeniedException +// You don't have access to perform this action. Make sure you have the required +// permission policies and user accounts and try again. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/qbusiness-2023-11-27/UpdateDataSource +func (c *QBusiness) UpdateDataSource(input *UpdateDataSourceInput) (*UpdateDataSourceOutput, error) { + req, out := c.UpdateDataSourceRequest(input) + return out, req.Send() +} + +// UpdateDataSourceWithContext is the same as UpdateDataSource with the addition of +// the ability to pass a context and additional request options. +// +// See UpdateDataSource 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 *QBusiness) UpdateDataSourceWithContext(ctx aws.Context, input *UpdateDataSourceInput, opts ...request.Option) (*UpdateDataSourceOutput, error) { + req, out := c.UpdateDataSourceRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opUpdateIndex = "UpdateIndex" + +// UpdateIndexRequest generates a "aws/request.Request" representing the +// client's request for the UpdateIndex 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 UpdateIndex for more information on using the UpdateIndex +// 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 UpdateIndexRequest method. +// req, resp := client.UpdateIndexRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/qbusiness-2023-11-27/UpdateIndex +func (c *QBusiness) UpdateIndexRequest(input *UpdateIndexInput) (req *request.Request, output *UpdateIndexOutput) { + op := &request.Operation{ + Name: opUpdateIndex, + HTTPMethod: "PUT", + HTTPPath: "/applications/{applicationId}/indices/{indexId}", + } + + if input == nil { + input = &UpdateIndexInput{} + } + + output = &UpdateIndexOutput{} + req = c.newRequest(op, input, output) + req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) + return +} + +// UpdateIndex API operation for QBusiness. +// +// Updates an Amazon Q index. +// +// 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 QBusiness's +// API operation UpdateIndex for usage and error information. +// +// Returned Error Types: +// +// - ResourceNotFoundException +// The resource you want to use doesn’t exist. Make sure you have provided +// the correct resource and try again. +// +// - InternalServerException +// An issue occurred with the internal server used for your Amazon Q service. +// Wait some minutes and try again, or contact Support (http://aws.amazon.com/contact-us/) +// for help. +// +// - ConflictException +// You are trying to perform an action that conflicts with the current status +// of your resource. Fix any inconsistences with your resources and try again. +// +// - ThrottlingException +// The request was denied due to throttling. Reduce the number of requests and +// try again. +// +// - ValidationException +// The input doesn't meet the constraints set by the Amazon Q service. Provide +// the correct input and try again. +// +// - AccessDeniedException +// You don't have access to perform this action. Make sure you have the required +// permission policies and user accounts and try again. +// +// - ServiceQuotaExceededException +// You have exceeded the set limits for your Amazon Q service. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/qbusiness-2023-11-27/UpdateIndex +func (c *QBusiness) UpdateIndex(input *UpdateIndexInput) (*UpdateIndexOutput, error) { + req, out := c.UpdateIndexRequest(input) + return out, req.Send() +} + +// UpdateIndexWithContext is the same as UpdateIndex with the addition of +// the ability to pass a context and additional request options. +// +// See UpdateIndex 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 *QBusiness) UpdateIndexWithContext(ctx aws.Context, input *UpdateIndexInput, opts ...request.Option) (*UpdateIndexOutput, error) { + req, out := c.UpdateIndexRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opUpdatePlugin = "UpdatePlugin" + +// UpdatePluginRequest generates a "aws/request.Request" representing the +// client's request for the UpdatePlugin 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 UpdatePlugin for more information on using the UpdatePlugin +// 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 UpdatePluginRequest method. +// req, resp := client.UpdatePluginRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/qbusiness-2023-11-27/UpdatePlugin +func (c *QBusiness) UpdatePluginRequest(input *UpdatePluginInput) (req *request.Request, output *UpdatePluginOutput) { + op := &request.Operation{ + Name: opUpdatePlugin, + HTTPMethod: "PUT", + HTTPPath: "/applications/{applicationId}/plugins/{pluginId}", + } + + if input == nil { + input = &UpdatePluginInput{} + } + + output = &UpdatePluginOutput{} + req = c.newRequest(op, input, output) + req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) + return +} + +// UpdatePlugin API operation for QBusiness. +// +// Updates an Amazon Q plugin. +// +// 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 QBusiness's +// API operation UpdatePlugin for usage and error information. +// +// Returned Error Types: +// +// - ResourceNotFoundException +// The resource you want to use doesn’t exist. Make sure you have provided +// the correct resource and try again. +// +// - InternalServerException +// An issue occurred with the internal server used for your Amazon Q service. +// Wait some minutes and try again, or contact Support (http://aws.amazon.com/contact-us/) +// for help. +// +// - ConflictException +// You are trying to perform an action that conflicts with the current status +// of your resource. Fix any inconsistences with your resources and try again. +// +// - ThrottlingException +// The request was denied due to throttling. Reduce the number of requests and +// try again. +// +// - ValidationException +// The input doesn't meet the constraints set by the Amazon Q service. Provide +// the correct input and try again. +// +// - AccessDeniedException +// You don't have access to perform this action. Make sure you have the required +// permission policies and user accounts and try again. +// +// - ServiceQuotaExceededException +// You have exceeded the set limits for your Amazon Q service. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/qbusiness-2023-11-27/UpdatePlugin +func (c *QBusiness) UpdatePlugin(input *UpdatePluginInput) (*UpdatePluginOutput, error) { + req, out := c.UpdatePluginRequest(input) + return out, req.Send() +} + +// UpdatePluginWithContext is the same as UpdatePlugin with the addition of +// the ability to pass a context and additional request options. +// +// See UpdatePlugin 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 *QBusiness) UpdatePluginWithContext(ctx aws.Context, input *UpdatePluginInput, opts ...request.Option) (*UpdatePluginOutput, error) { + req, out := c.UpdatePluginRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opUpdateRetriever = "UpdateRetriever" + +// UpdateRetrieverRequest generates a "aws/request.Request" representing the +// client's request for the UpdateRetriever 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 UpdateRetriever for more information on using the UpdateRetriever +// 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 UpdateRetrieverRequest method. +// req, resp := client.UpdateRetrieverRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/qbusiness-2023-11-27/UpdateRetriever +func (c *QBusiness) UpdateRetrieverRequest(input *UpdateRetrieverInput) (req *request.Request, output *UpdateRetrieverOutput) { + op := &request.Operation{ + Name: opUpdateRetriever, + HTTPMethod: "PUT", + HTTPPath: "/applications/{applicationId}/retrievers/{retrieverId}", + } + + if input == nil { + input = &UpdateRetrieverInput{} + } + + output = &UpdateRetrieverOutput{} + req = c.newRequest(op, input, output) + req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) + return +} + +// UpdateRetriever API operation for QBusiness. +// +// Updates the retriever used for your Amazon Q application. +// +// 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 QBusiness's +// API operation UpdateRetriever for usage and error information. +// +// Returned Error Types: +// +// - ResourceNotFoundException +// The resource you want to use doesn’t exist. Make sure you have provided +// the correct resource and try again. +// +// - InternalServerException +// An issue occurred with the internal server used for your Amazon Q service. +// Wait some minutes and try again, or contact Support (http://aws.amazon.com/contact-us/) +// for help. +// +// - ConflictException +// You are trying to perform an action that conflicts with the current status +// of your resource. Fix any inconsistences with your resources and try again. +// +// - ThrottlingException +// The request was denied due to throttling. Reduce the number of requests and +// try again. +// +// - ValidationException +// The input doesn't meet the constraints set by the Amazon Q service. Provide +// the correct input and try again. +// +// - AccessDeniedException +// You don't have access to perform this action. Make sure you have the required +// permission policies and user accounts and try again. +// +// - ServiceQuotaExceededException +// You have exceeded the set limits for your Amazon Q service. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/qbusiness-2023-11-27/UpdateRetriever +func (c *QBusiness) UpdateRetriever(input *UpdateRetrieverInput) (*UpdateRetrieverOutput, error) { + req, out := c.UpdateRetrieverRequest(input) + return out, req.Send() +} + +// UpdateRetrieverWithContext is the same as UpdateRetriever with the addition of +// the ability to pass a context and additional request options. +// +// See UpdateRetriever 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 *QBusiness) UpdateRetrieverWithContext(ctx aws.Context, input *UpdateRetrieverInput, opts ...request.Option) (*UpdateRetrieverOutput, error) { + req, out := c.UpdateRetrieverRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opUpdateUser = "UpdateUser" + +// UpdateUserRequest generates a "aws/request.Request" representing the +// client's request for the UpdateUser 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 UpdateUser for more information on using the UpdateUser +// 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 UpdateUserRequest method. +// req, resp := client.UpdateUserRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/qbusiness-2023-11-27/UpdateUser +func (c *QBusiness) UpdateUserRequest(input *UpdateUserInput) (req *request.Request, output *UpdateUserOutput) { + op := &request.Operation{ + Name: opUpdateUser, + HTTPMethod: "PUT", + HTTPPath: "/applications/{applicationId}/users/{userId}", + } + + if input == nil { + input = &UpdateUserInput{} + } + + output = &UpdateUserOutput{} + req = c.newRequest(op, input, output) + return +} + +// UpdateUser API operation for QBusiness. +// +// Updates a information associated with a user id. +// +// 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 QBusiness's +// API operation UpdateUser for usage and error information. +// +// Returned Error Types: +// +// - ResourceNotFoundException +// The resource you want to use doesn’t exist. Make sure you have provided +// the correct resource and try again. +// +// - InternalServerException +// An issue occurred with the internal server used for your Amazon Q service. +// Wait some minutes and try again, or contact Support (http://aws.amazon.com/contact-us/) +// for help. +// +// - ThrottlingException +// The request was denied due to throttling. Reduce the number of requests and +// try again. +// +// - ValidationException +// The input doesn't meet the constraints set by the Amazon Q service. Provide +// the correct input and try again. +// +// - AccessDeniedException +// You don't have access to perform this action. Make sure you have the required +// permission policies and user accounts and try again. +// +// - ServiceQuotaExceededException +// You have exceeded the set limits for your Amazon Q service. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/qbusiness-2023-11-27/UpdateUser +func (c *QBusiness) UpdateUser(input *UpdateUserInput) (*UpdateUserOutput, error) { + req, out := c.UpdateUserRequest(input) + return out, req.Send() +} + +// UpdateUserWithContext is the same as UpdateUser with the addition of +// the ability to pass a context and additional request options. +// +// See UpdateUser 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 *QBusiness) UpdateUserWithContext(ctx aws.Context, input *UpdateUserInput, opts ...request.Option) (*UpdateUserOutput, error) { + req, out := c.UpdateUserRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opUpdateWebExperience = "UpdateWebExperience" + +// UpdateWebExperienceRequest generates a "aws/request.Request" representing the +// client's request for the UpdateWebExperience 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 UpdateWebExperience for more information on using the UpdateWebExperience +// 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 UpdateWebExperienceRequest method. +// req, resp := client.UpdateWebExperienceRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/qbusiness-2023-11-27/UpdateWebExperience +func (c *QBusiness) UpdateWebExperienceRequest(input *UpdateWebExperienceInput) (req *request.Request, output *UpdateWebExperienceOutput) { + op := &request.Operation{ + Name: opUpdateWebExperience, + HTTPMethod: "PUT", + HTTPPath: "/applications/{applicationId}/experiences/{webExperienceId}", + } + + if input == nil { + input = &UpdateWebExperienceInput{} + } + + output = &UpdateWebExperienceOutput{} + req = c.newRequest(op, input, output) + req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) + return +} + +// UpdateWebExperience API operation for QBusiness. +// +// Updates an Amazon Q web experience. +// +// 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 QBusiness's +// API operation UpdateWebExperience for usage and error information. +// +// Returned Error Types: +// +// - ResourceNotFoundException +// The resource you want to use doesn’t exist. Make sure you have provided +// the correct resource and try again. +// +// - InternalServerException +// An issue occurred with the internal server used for your Amazon Q service. +// Wait some minutes and try again, or contact Support (http://aws.amazon.com/contact-us/) +// for help. +// +// - ConflictException +// You are trying to perform an action that conflicts with the current status +// of your resource. Fix any inconsistences with your resources and try again. +// +// - ThrottlingException +// The request was denied due to throttling. Reduce the number of requests and +// try again. +// +// - ValidationException +// The input doesn't meet the constraints set by the Amazon Q service. Provide +// the correct input and try again. +// +// - AccessDeniedException +// You don't have access to perform this action. Make sure you have the required +// permission policies and user accounts and try again. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/qbusiness-2023-11-27/UpdateWebExperience +func (c *QBusiness) UpdateWebExperience(input *UpdateWebExperienceInput) (*UpdateWebExperienceOutput, error) { + req, out := c.UpdateWebExperienceRequest(input) + return out, req.Send() +} + +// UpdateWebExperienceWithContext is the same as UpdateWebExperience with the addition of +// the ability to pass a context and additional request options. +// +// See UpdateWebExperience 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 *QBusiness) UpdateWebExperienceWithContext(ctx aws.Context, input *UpdateWebExperienceInput, opts ...request.Option) (*UpdateWebExperienceOutput, error) { + req, out := c.UpdateWebExperienceRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +// Used to configure access permissions for a document. +type AccessConfiguration struct { + _ struct{} `type:"structure"` + + // A list of AccessControlList objects. + // + // AccessControls is a required field + AccessControls []*AccessControl `locationName:"accessControls" type:"list" required:"true"` + + // Describes the member relation within the AccessControlList object. + MemberRelation *string `locationName:"memberRelation" type:"string" enum:"MemberRelation"` +} + +// 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 AccessConfiguration) 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 AccessConfiguration) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *AccessConfiguration) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "AccessConfiguration"} + if s.AccessControls == nil { + invalidParams.Add(request.NewErrParamRequired("AccessControls")) + } + if s.AccessControls != nil { + for i, v := range s.AccessControls { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "AccessControls", i), err.(request.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAccessControls sets the AccessControls field's value. +func (s *AccessConfiguration) SetAccessControls(v []*AccessControl) *AccessConfiguration { + s.AccessControls = v + return s +} + +// SetMemberRelation sets the MemberRelation field's value. +func (s *AccessConfiguration) SetMemberRelation(v string) *AccessConfiguration { + s.MemberRelation = &v + return s +} + +// A list of principals. Each principal can be either a USER or a GROUP and +// can be designated document access permissions of either ALLOW or DENY. +type AccessControl struct { + _ struct{} `type:"structure"` + + // Describes the member relation within a principal list. + MemberRelation *string `locationName:"memberRelation" type:"string" enum:"MemberRelation"` + + // Contains a list of principals, where a principal can be either a USER or + // a GROUP. Each principal can be have the following type of document access: + // ALLOW or DENY. + // + // Principals is a required field + Principals []*Principal `locationName:"principals" 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 AccessControl) 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 AccessControl) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *AccessControl) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "AccessControl"} + if s.Principals == nil { + invalidParams.Add(request.NewErrParamRequired("Principals")) + } + if s.Principals != nil { + for i, v := range s.Principals { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Principals", i), err.(request.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetMemberRelation sets the MemberRelation field's value. +func (s *AccessControl) SetMemberRelation(v string) *AccessControl { + s.MemberRelation = &v + return s +} + +// SetPrincipals sets the Principals field's value. +func (s *AccessControl) SetPrincipals(v []*Principal) *AccessControl { + s.Principals = v + return s +} + +// You don't have access to perform this action. Make sure you have the required +// permission policies and user accounts and try again. +type AccessDeniedException struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + + Message_ *string `locationName:"message" 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 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 +} + +// An output event that Amazon Q returns to an user who wants to perform a plugin +// action during a non-streaming chat conversation. It contains information +// about the selected action with a list of possible user input fields, some +// pre-populated by Amazon Q. +type ActionReview struct { + _ struct{} `type:"structure"` + + // Field values that an end user needs to provide to Amazon Q for Amazon Q to + // perform the requested plugin action. + Payload map[string]*ActionReviewPayloadField `locationName:"payload" type:"map"` + + // A string used to retain information about the hierarchical contexts within + // an action review payload. + PayloadFieldNameSeparator *string `locationName:"payloadFieldNameSeparator" min:"1" type:"string"` + + // The identifier of the plugin associated with the action review. + PluginId *string `locationName:"pluginId" min:"36" type:"string"` + + // The type of plugin. + PluginType *string `locationName:"pluginType" type:"string" enum:"PluginType"` +} + +// 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 ActionReview) 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 ActionReview) GoString() string { + return s.String() +} + +// SetPayload sets the Payload field's value. +func (s *ActionReview) SetPayload(v map[string]*ActionReviewPayloadField) *ActionReview { + s.Payload = v + return s +} + +// SetPayloadFieldNameSeparator sets the PayloadFieldNameSeparator field's value. +func (s *ActionReview) SetPayloadFieldNameSeparator(v string) *ActionReview { + s.PayloadFieldNameSeparator = &v + return s +} + +// SetPluginId sets the PluginId field's value. +func (s *ActionReview) SetPluginId(v string) *ActionReview { + s.PluginId = &v + return s +} + +// SetPluginType sets the PluginType field's value. +func (s *ActionReview) SetPluginType(v string) *ActionReview { + s.PluginType = &v + return s +} + +// A user input field in an plugin action review payload. +type ActionReviewPayloadField struct { + _ struct{} `type:"structure"` + + // Information about the field values that an end user can use to provide to + // Amazon Q for Amazon Q to perform the requested plugin action. + AllowedValues []*ActionReviewPayloadFieldAllowedValue `locationName:"allowedValues" type:"list"` + + // The name of the field. + DisplayName *string `locationName:"displayName" min:"1" type:"string"` + + // The display order of fields in a payload. + DisplayOrder *int64 `locationName:"displayOrder" type:"integer"` + + // Information about whether the field is required. + Required *bool `locationName:"required" type:"boolean"` + + // The type of field. + Type *string `locationName:"type" type:"string" enum:"ActionPayloadFieldType"` +} + +// 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 ActionReviewPayloadField) 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 ActionReviewPayloadField) GoString() string { + return s.String() +} + +// SetAllowedValues sets the AllowedValues field's value. +func (s *ActionReviewPayloadField) SetAllowedValues(v []*ActionReviewPayloadFieldAllowedValue) *ActionReviewPayloadField { + s.AllowedValues = v + return s +} + +// SetDisplayName sets the DisplayName field's value. +func (s *ActionReviewPayloadField) SetDisplayName(v string) *ActionReviewPayloadField { + s.DisplayName = &v + return s +} + +// SetDisplayOrder sets the DisplayOrder field's value. +func (s *ActionReviewPayloadField) SetDisplayOrder(v int64) *ActionReviewPayloadField { + s.DisplayOrder = &v + return s +} + +// SetRequired sets the Required field's value. +func (s *ActionReviewPayloadField) SetRequired(v bool) *ActionReviewPayloadField { + s.Required = &v + return s +} + +// SetType sets the Type field's value. +func (s *ActionReviewPayloadField) SetType(v string) *ActionReviewPayloadField { + s.Type = &v + return s +} + +// Information about the field values that an end user can use to provide to +// Amazon Q for Amazon Q to perform the requested plugin action. +type ActionReviewPayloadFieldAllowedValue 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 ActionReviewPayloadFieldAllowedValue) 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 ActionReviewPayloadFieldAllowedValue) GoString() string { + return s.String() +} + +// Summary information for an Amazon Q application. +type Application struct { + _ struct{} `type:"structure"` + + // The identifier for the Amazon Q application. + ApplicationId *string `locationName:"applicationId" min:"36" type:"string"` + + // The Unix timestamp when the Amazon Q application was created. + CreatedAt *time.Time `locationName:"createdAt" type:"timestamp"` + + // The name of the Amazon Q application. + DisplayName *string `locationName:"displayName" min:"1" type:"string"` + + // The status of the Amazon Q application. The application is ready to use when + // the status is ACTIVE. + Status *string `locationName:"status" type:"string" enum:"ApplicationStatus"` + + // The Unix timestamp when the Amazon Q application was last updated. + UpdatedAt *time.Time `locationName:"updatedAt" type:"timestamp"` +} + +// 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 Application) 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 Application) GoString() string { + return s.String() +} + +// SetApplicationId sets the ApplicationId field's value. +func (s *Application) SetApplicationId(v string) *Application { + s.ApplicationId = &v + return s +} + +// SetCreatedAt sets the CreatedAt field's value. +func (s *Application) SetCreatedAt(v time.Time) *Application { + s.CreatedAt = &v + return s +} + +// SetDisplayName sets the DisplayName field's value. +func (s *Application) SetDisplayName(v string) *Application { + s.DisplayName = &v + return s +} + +// SetStatus sets the Status field's value. +func (s *Application) SetStatus(v string) *Application { + s.Status = &v + return s +} + +// SetUpdatedAt sets the UpdatedAt field's value. +func (s *Application) SetUpdatedAt(v time.Time) *Application { + s.UpdatedAt = &v + return s +} + +// Configuration information about the file upload during chat feature for your +// application. +type AppliedAttachmentsConfiguration struct { + _ struct{} `type:"structure"` + + // Information about whether file upload during chat functionality is activated + // for your application. + AttachmentsControlMode *string `locationName:"attachmentsControlMode" type:"string" enum:"AttachmentsControlMode"` +} + +// 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 AppliedAttachmentsConfiguration) 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 AppliedAttachmentsConfiguration) GoString() string { + return s.String() +} + +// SetAttachmentsControlMode sets the AttachmentsControlMode field's value. +func (s *AppliedAttachmentsConfiguration) SetAttachmentsControlMode(v string) *AppliedAttachmentsConfiguration { + s.AttachmentsControlMode = &v + return s +} + +// A file directly uploaded into a web experience chat. +type AttachmentInput_ struct { + _ struct{} `type:"structure"` + + // The data contained within the uploaded file. + // Data is automatically base64 encoded/decoded by the SDK. + // + // Data is a required field + Data []byte `locationName:"data" type:"blob" required:"true"` + + // The name of the file. + // + // Name is a required field + Name *string `locationName:"name" 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 AttachmentInput_) 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 AttachmentInput_) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *AttachmentInput_) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "AttachmentInput_"} + if s.Data == nil { + invalidParams.Add(request.NewErrParamRequired("Data")) + } + 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 +} + +// SetData sets the Data field's value. +func (s *AttachmentInput_) SetData(v []byte) *AttachmentInput_ { + s.Data = v + return s +} + +// SetName sets the Name field's value. +func (s *AttachmentInput_) SetName(v string) *AttachmentInput_ { + s.Name = &v + return s +} + +// The details of a file uploaded during chat. +type AttachmentOutput_ struct { + _ struct{} `type:"structure"` + + // An error associated with a file uploaded during chat. + Error *ErrorDetail `locationName:"error" type:"structure"` + + // The name of a file uploaded during chat. + Name *string `locationName:"name" min:"1" type:"string"` + + // The status of a file uploaded during chat. + Status *string `locationName:"status" type:"string" enum:"AttachmentStatus"` +} + +// 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 AttachmentOutput_) 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 AttachmentOutput_) GoString() string { + return s.String() +} + +// SetError sets the Error field's value. +func (s *AttachmentOutput_) SetError(v *ErrorDetail) *AttachmentOutput_ { + s.Error = v + return s +} + +// SetName sets the Name field's value. +func (s *AttachmentOutput_) SetName(v string) *AttachmentOutput_ { + s.Name = &v + return s +} + +// SetStatus sets the Status field's value. +func (s *AttachmentOutput_) SetStatus(v string) *AttachmentOutput_ { + s.Status = &v + return s +} + +// Configuration information for the file upload during chat feature. +type AttachmentsConfiguration struct { + _ struct{} `type:"structure"` + + // Status information about whether file upload functionality is activated or + // deactivated for your end user. + // + // AttachmentsControlMode is a required field + AttachmentsControlMode *string `locationName:"attachmentsControlMode" type:"string" required:"true" enum:"AttachmentsControlMode"` +} + +// 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 AttachmentsConfiguration) 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 AttachmentsConfiguration) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *AttachmentsConfiguration) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "AttachmentsConfiguration"} + if s.AttachmentsControlMode == nil { + invalidParams.Add(request.NewErrParamRequired("AttachmentsControlMode")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAttachmentsControlMode sets the AttachmentsControlMode field's value. +func (s *AttachmentsConfiguration) SetAttachmentsControlMode(v string) *AttachmentsConfiguration { + s.AttachmentsControlMode = &v + return s +} + +// Enables filtering of Amazon Q web experience responses based on document +// attributes or metadata fields. +type AttributeFilter struct { + _ struct{} `type:"structure"` + + // Performs a logical AND operation on all supplied filters. + AndAllFilters []*AttributeFilter `locationName:"andAllFilters" type:"list"` + + // Returns true when a document contains all the specified document attributes + // or metadata fields. + ContainsAll *DocumentAttribute `locationName:"containsAll" type:"structure"` + + // Returns true when a document contains any of the specified document attributes + // or metadata fields. + ContainsAny *DocumentAttribute `locationName:"containsAny" type:"structure"` + + // Performs an equals operation on two document attributes or metadata fields. + EqualsTo *DocumentAttribute `locationName:"equalsTo" type:"structure"` + + // Performs a greater than operation on two document attributes or metadata + // fields. Use with a document attribute of type Date or Long. + GreaterThan *DocumentAttribute `locationName:"greaterThan" type:"structure"` + + // Performs a greater or equals than operation on two document attributes or + // metadata fields. Use with a document attribute of type Date or Long. + GreaterThanOrEquals *DocumentAttribute `locationName:"greaterThanOrEquals" type:"structure"` + + // Performs a less than operation on two document attributes or metadata fields. + // Use with a document attribute of type Date or Long. + LessThan *DocumentAttribute `locationName:"lessThan" type:"structure"` + + // Performs a less than or equals operation on two document attributes or metadata + // fields. Use with a document attribute of type Date or Long. + LessThanOrEquals *DocumentAttribute `locationName:"lessThanOrEquals" type:"structure"` + + // Performs a logical NOT operation on all supplied filters. + NotFilter *AttributeFilter `locationName:"notFilter" type:"structure"` + + // Performs a logical OR operation on all supplied filters. + OrAllFilters []*AttributeFilter `locationName:"orAllFilters" 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 AttributeFilter) 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 AttributeFilter) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *AttributeFilter) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "AttributeFilter"} + if s.ContainsAll != nil { + if err := s.ContainsAll.Validate(); err != nil { + invalidParams.AddNested("ContainsAll", err.(request.ErrInvalidParams)) + } + } + if s.ContainsAny != nil { + if err := s.ContainsAny.Validate(); err != nil { + invalidParams.AddNested("ContainsAny", err.(request.ErrInvalidParams)) + } + } + if s.EqualsTo != nil { + if err := s.EqualsTo.Validate(); err != nil { + invalidParams.AddNested("EqualsTo", err.(request.ErrInvalidParams)) + } + } + if s.GreaterThan != nil { + if err := s.GreaterThan.Validate(); err != nil { + invalidParams.AddNested("GreaterThan", err.(request.ErrInvalidParams)) + } + } + if s.GreaterThanOrEquals != nil { + if err := s.GreaterThanOrEquals.Validate(); err != nil { + invalidParams.AddNested("GreaterThanOrEquals", err.(request.ErrInvalidParams)) + } + } + if s.LessThan != nil { + if err := s.LessThan.Validate(); err != nil { + invalidParams.AddNested("LessThan", err.(request.ErrInvalidParams)) + } + } + if s.LessThanOrEquals != nil { + if err := s.LessThanOrEquals.Validate(); err != nil { + invalidParams.AddNested("LessThanOrEquals", err.(request.ErrInvalidParams)) + } + } + if s.NotFilter != nil { + if err := s.NotFilter.Validate(); err != nil { + invalidParams.AddNested("NotFilter", err.(request.ErrInvalidParams)) + } + } + if s.OrAllFilters != nil { + for i, v := range s.OrAllFilters { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "OrAllFilters", i), err.(request.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAndAllFilters sets the AndAllFilters field's value. +func (s *AttributeFilter) SetAndAllFilters(v []*AttributeFilter) *AttributeFilter { + s.AndAllFilters = v + return s +} + +// SetContainsAll sets the ContainsAll field's value. +func (s *AttributeFilter) SetContainsAll(v *DocumentAttribute) *AttributeFilter { + s.ContainsAll = v + return s +} + +// SetContainsAny sets the ContainsAny field's value. +func (s *AttributeFilter) SetContainsAny(v *DocumentAttribute) *AttributeFilter { + s.ContainsAny = v + return s +} + +// SetEqualsTo sets the EqualsTo field's value. +func (s *AttributeFilter) SetEqualsTo(v *DocumentAttribute) *AttributeFilter { + s.EqualsTo = v + return s +} + +// SetGreaterThan sets the GreaterThan field's value. +func (s *AttributeFilter) SetGreaterThan(v *DocumentAttribute) *AttributeFilter { + s.GreaterThan = v + return s +} + +// SetGreaterThanOrEquals sets the GreaterThanOrEquals field's value. +func (s *AttributeFilter) SetGreaterThanOrEquals(v *DocumentAttribute) *AttributeFilter { + s.GreaterThanOrEquals = v + return s +} + +// SetLessThan sets the LessThan field's value. +func (s *AttributeFilter) SetLessThan(v *DocumentAttribute) *AttributeFilter { + s.LessThan = v + return s +} + +// SetLessThanOrEquals sets the LessThanOrEquals field's value. +func (s *AttributeFilter) SetLessThanOrEquals(v *DocumentAttribute) *AttributeFilter { + s.LessThanOrEquals = v + return s +} + +// SetNotFilter sets the NotFilter field's value. +func (s *AttributeFilter) SetNotFilter(v *AttributeFilter) *AttributeFilter { + s.NotFilter = v + return s +} + +// SetOrAllFilters sets the OrAllFilters field's value. +func (s *AttributeFilter) SetOrAllFilters(v []*AttributeFilter) *AttributeFilter { + s.OrAllFilters = v + return s +} + +// Information about the basic authentication credentials used to configure +// a plugin. +type BasicAuthConfiguration struct { + _ struct{} `type:"structure"` + + // The ARN of an IAM role used by Amazon Q to access the basic authentication + // credentials stored in a Secrets Manager secret. + // + // RoleArn is a required field + RoleArn *string `locationName:"roleArn" type:"string" required:"true"` + + // The ARN of the Secrets Manager secret that stores the basic authentication + // credentials used for plugin configuration.. + // + // SecretArn is a required field + SecretArn *string `locationName:"secretArn" 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 BasicAuthConfiguration) 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 BasicAuthConfiguration) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *BasicAuthConfiguration) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "BasicAuthConfiguration"} + if s.RoleArn == nil { + invalidParams.Add(request.NewErrParamRequired("RoleArn")) + } + if s.SecretArn == nil { + invalidParams.Add(request.NewErrParamRequired("SecretArn")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetRoleArn sets the RoleArn field's value. +func (s *BasicAuthConfiguration) SetRoleArn(v string) *BasicAuthConfiguration { + s.RoleArn = &v + return s +} + +// SetSecretArn sets the SecretArn field's value. +func (s *BasicAuthConfiguration) SetSecretArn(v string) *BasicAuthConfiguration { + s.SecretArn = &v + return s +} + +type BatchDeleteDocumentInput struct { + _ struct{} `type:"structure"` + + // The identifier of the Amazon Q application. + // + // ApplicationId is a required field + ApplicationId *string `location:"uri" locationName:"applicationId" min:"36" type:"string" required:"true"` + + // The identifier of the data source sync during which the documents were deleted. + DataSourceSyncId *string `locationName:"dataSourceSyncId" min:"36" type:"string"` + + // Documents deleted from the Amazon Q index. + // + // Documents is a required field + Documents []*DeleteDocument `locationName:"documents" type:"list" required:"true"` + + // The identifier of the Amazon Q index that contains the documents to delete. + // + // IndexId is a required field + IndexId *string `location:"uri" locationName:"indexId" min:"36" 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 BatchDeleteDocumentInput) 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 BatchDeleteDocumentInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *BatchDeleteDocumentInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "BatchDeleteDocumentInput"} + if s.ApplicationId == nil { + invalidParams.Add(request.NewErrParamRequired("ApplicationId")) + } + if s.ApplicationId != nil && len(*s.ApplicationId) < 36 { + invalidParams.Add(request.NewErrParamMinLen("ApplicationId", 36)) + } + if s.DataSourceSyncId != nil && len(*s.DataSourceSyncId) < 36 { + invalidParams.Add(request.NewErrParamMinLen("DataSourceSyncId", 36)) + } + if s.Documents == nil { + invalidParams.Add(request.NewErrParamRequired("Documents")) + } + if s.IndexId == nil { + invalidParams.Add(request.NewErrParamRequired("IndexId")) + } + if s.IndexId != nil && len(*s.IndexId) < 36 { + invalidParams.Add(request.NewErrParamMinLen("IndexId", 36)) + } + if s.Documents != nil { + for i, v := range s.Documents { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Documents", i), err.(request.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetApplicationId sets the ApplicationId field's value. +func (s *BatchDeleteDocumentInput) SetApplicationId(v string) *BatchDeleteDocumentInput { + s.ApplicationId = &v + return s +} + +// SetDataSourceSyncId sets the DataSourceSyncId field's value. +func (s *BatchDeleteDocumentInput) SetDataSourceSyncId(v string) *BatchDeleteDocumentInput { + s.DataSourceSyncId = &v + return s +} + +// SetDocuments sets the Documents field's value. +func (s *BatchDeleteDocumentInput) SetDocuments(v []*DeleteDocument) *BatchDeleteDocumentInput { + s.Documents = v + return s +} + +// SetIndexId sets the IndexId field's value. +func (s *BatchDeleteDocumentInput) SetIndexId(v string) *BatchDeleteDocumentInput { + s.IndexId = &v + return s +} + +type BatchDeleteDocumentOutput struct { + _ struct{} `type:"structure"` + + // A list of documents that couldn't be removed from the Amazon Q index. Each + // entry contains an error message that indicates why the document couldn't + // be removed from the index. + FailedDocuments []*FailedDocument `locationName:"failedDocuments" 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 BatchDeleteDocumentOutput) 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 BatchDeleteDocumentOutput) GoString() string { + return s.String() +} + +// SetFailedDocuments sets the FailedDocuments field's value. +func (s *BatchDeleteDocumentOutput) SetFailedDocuments(v []*FailedDocument) *BatchDeleteDocumentOutput { + s.FailedDocuments = v + return s +} + +type BatchPutDocumentInput struct { + _ struct{} `type:"structure"` + + // The identifier of the Amazon Q application. + // + // ApplicationId is a required field + ApplicationId *string `location:"uri" locationName:"applicationId" min:"36" type:"string" required:"true"` + + // The identifier of the data source sync during which the documents were added. + DataSourceSyncId *string `locationName:"dataSourceSyncId" min:"36" type:"string"` + + // One or more documents to add to the index. + // + // Documents is a required field + Documents []*Document `locationName:"documents" min:"1" type:"list" required:"true"` + + // The identifier of the Amazon Q index to add the documents to. + // + // IndexId is a required field + IndexId *string `location:"uri" locationName:"indexId" min:"36" type:"string" required:"true"` + + // The Amazon Resource Name (ARN) of an IAM role with permission to access your + // S3 bucket. + RoleArn *string `locationName:"roleArn" 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 BatchPutDocumentInput) 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 BatchPutDocumentInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *BatchPutDocumentInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "BatchPutDocumentInput"} + if s.ApplicationId == nil { + invalidParams.Add(request.NewErrParamRequired("ApplicationId")) + } + if s.ApplicationId != nil && len(*s.ApplicationId) < 36 { + invalidParams.Add(request.NewErrParamMinLen("ApplicationId", 36)) + } + if s.DataSourceSyncId != nil && len(*s.DataSourceSyncId) < 36 { + invalidParams.Add(request.NewErrParamMinLen("DataSourceSyncId", 36)) + } + if s.Documents == nil { + invalidParams.Add(request.NewErrParamRequired("Documents")) + } + if s.Documents != nil && len(s.Documents) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Documents", 1)) + } + if s.IndexId == nil { + invalidParams.Add(request.NewErrParamRequired("IndexId")) + } + if s.IndexId != nil && len(*s.IndexId) < 36 { + invalidParams.Add(request.NewErrParamMinLen("IndexId", 36)) + } + if s.Documents != nil { + for i, v := range s.Documents { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Documents", i), err.(request.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetApplicationId sets the ApplicationId field's value. +func (s *BatchPutDocumentInput) SetApplicationId(v string) *BatchPutDocumentInput { + s.ApplicationId = &v + return s +} + +// SetDataSourceSyncId sets the DataSourceSyncId field's value. +func (s *BatchPutDocumentInput) SetDataSourceSyncId(v string) *BatchPutDocumentInput { + s.DataSourceSyncId = &v + return s +} + +// SetDocuments sets the Documents field's value. +func (s *BatchPutDocumentInput) SetDocuments(v []*Document) *BatchPutDocumentInput { + s.Documents = v + return s +} + +// SetIndexId sets the IndexId field's value. +func (s *BatchPutDocumentInput) SetIndexId(v string) *BatchPutDocumentInput { + s.IndexId = &v + return s +} + +// SetRoleArn sets the RoleArn field's value. +func (s *BatchPutDocumentInput) SetRoleArn(v string) *BatchPutDocumentInput { + s.RoleArn = &v + return s +} + +type BatchPutDocumentOutput struct { + _ struct{} `type:"structure"` + + // A list of documents that were not added to the Amazon Q index because the + // document failed a validation check. Each document contains an error message + // that indicates why the document couldn't be added to the index. + FailedDocuments []*FailedDocument `locationName:"failedDocuments" 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 BatchPutDocumentOutput) 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 BatchPutDocumentOutput) GoString() string { + return s.String() +} + +// SetFailedDocuments sets the FailedDocuments field's value. +func (s *BatchPutDocumentOutput) SetFailedDocuments(v []*FailedDocument) *BatchPutDocumentOutput { + s.FailedDocuments = v + return s +} + +// Provides information about the phrases blocked from chat by your chat control +// configuration. +type BlockedPhrasesConfiguration struct { + _ struct{} `type:"structure"` + + // A list of phrases blocked from a Amazon Q web experience chat. + BlockedPhrases []*string `locationName:"blockedPhrases" type:"list"` + + // The configured custom message displayed to an end user informing them that + // they've used a blocked phrase during chat. + SystemMessageOverride *string `locationName:"systemMessageOverride" 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 BlockedPhrasesConfiguration) 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 BlockedPhrasesConfiguration) GoString() string { + return s.String() +} + +// SetBlockedPhrases sets the BlockedPhrases field's value. +func (s *BlockedPhrasesConfiguration) SetBlockedPhrases(v []*string) *BlockedPhrasesConfiguration { + s.BlockedPhrases = v + return s +} + +// SetSystemMessageOverride sets the SystemMessageOverride field's value. +func (s *BlockedPhrasesConfiguration) SetSystemMessageOverride(v string) *BlockedPhrasesConfiguration { + s.SystemMessageOverride = &v + return s +} + +// Updates a blocked phrases configuration in your Amazon Q application. +type BlockedPhrasesConfigurationUpdate struct { + _ struct{} `type:"structure"` + + // Creates or updates a blocked phrases configuration in your Amazon Q application. + BlockedPhrasesToCreateOrUpdate []*string `locationName:"blockedPhrasesToCreateOrUpdate" type:"list"` + + // Deletes a blocked phrases configuration in your Amazon Q application. + BlockedPhrasesToDelete []*string `locationName:"blockedPhrasesToDelete" type:"list"` + + // The configured custom message displayed to your end user when they use blocked + // phrase during chat. + SystemMessageOverride *string `locationName:"systemMessageOverride" 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 BlockedPhrasesConfigurationUpdate) 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 BlockedPhrasesConfigurationUpdate) GoString() string { + return s.String() +} + +// SetBlockedPhrasesToCreateOrUpdate sets the BlockedPhrasesToCreateOrUpdate field's value. +func (s *BlockedPhrasesConfigurationUpdate) SetBlockedPhrasesToCreateOrUpdate(v []*string) *BlockedPhrasesConfigurationUpdate { + s.BlockedPhrasesToCreateOrUpdate = v + return s +} + +// SetBlockedPhrasesToDelete sets the BlockedPhrasesToDelete field's value. +func (s *BlockedPhrasesConfigurationUpdate) SetBlockedPhrasesToDelete(v []*string) *BlockedPhrasesConfigurationUpdate { + s.BlockedPhrasesToDelete = v + return s +} + +// SetSystemMessageOverride sets the SystemMessageOverride field's value. +func (s *BlockedPhrasesConfigurationUpdate) SetSystemMessageOverride(v string) *BlockedPhrasesConfigurationUpdate { + s.SystemMessageOverride = &v + return s +} + +type ChatSyncInput struct { + _ struct{} `type:"structure"` + + // The identifier of the Amazon Q application linked to the Amazon Q conversation. + // + // ApplicationId is a required field + ApplicationId *string `location:"uri" locationName:"applicationId" min:"36" type:"string" required:"true"` + + // A list of files uploaded directly during chat. You can upload a maximum of + // 5 files of upto 10 MB each. + Attachments []*AttachmentInput_ `locationName:"attachments" min:"1" type:"list"` + + // Enables filtering of Amazon Q web experience responses based on document + // attributes or metadata fields. + AttributeFilter *AttributeFilter `locationName:"attributeFilter" type:"structure"` + + // A token that you provide to identify a chat request. + ClientToken *string `locationName:"clientToken" min:"1" type:"string" idempotencyToken:"true"` + + // The identifier of the Amazon Q conversation. + ConversationId *string `locationName:"conversationId" min:"36" type:"string"` + + // The identifier of the previous end user text input message in a conversation. + ParentMessageId *string `locationName:"parentMessageId" min:"36" type:"string"` + + // The groups that a user associated with the chat input belongs to. + UserGroups []*string `location:"querystring" locationName:"userGroups" type:"list"` + + // The identifier of the user attached to the chat input. + // + // UserId is a required field + UserId *string `location:"querystring" locationName:"userId" min:"1" type:"string" required:"true"` + + // A end user message in a conversation. + UserMessage *string `locationName:"userMessage" 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 ChatSyncInput) 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 ChatSyncInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ChatSyncInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ChatSyncInput"} + if s.ApplicationId == nil { + invalidParams.Add(request.NewErrParamRequired("ApplicationId")) + } + if s.ApplicationId != nil && len(*s.ApplicationId) < 36 { + invalidParams.Add(request.NewErrParamMinLen("ApplicationId", 36)) + } + if s.Attachments != nil && len(s.Attachments) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Attachments", 1)) + } + if s.ClientToken != nil && len(*s.ClientToken) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ClientToken", 1)) + } + if s.ConversationId != nil && len(*s.ConversationId) < 36 { + invalidParams.Add(request.NewErrParamMinLen("ConversationId", 36)) + } + if s.ParentMessageId != nil && len(*s.ParentMessageId) < 36 { + invalidParams.Add(request.NewErrParamMinLen("ParentMessageId", 36)) + } + if s.UserId == nil { + invalidParams.Add(request.NewErrParamRequired("UserId")) + } + if s.UserId != nil && len(*s.UserId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("UserId", 1)) + } + if s.UserMessage != nil && len(*s.UserMessage) < 1 { + invalidParams.Add(request.NewErrParamMinLen("UserMessage", 1)) + } + if s.Attachments != nil { + for i, v := range s.Attachments { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Attachments", i), err.(request.ErrInvalidParams)) + } + } + } + if s.AttributeFilter != nil { + if err := s.AttributeFilter.Validate(); err != nil { + invalidParams.AddNested("AttributeFilter", err.(request.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetApplicationId sets the ApplicationId field's value. +func (s *ChatSyncInput) SetApplicationId(v string) *ChatSyncInput { + s.ApplicationId = &v + return s +} + +// SetAttachments sets the Attachments field's value. +func (s *ChatSyncInput) SetAttachments(v []*AttachmentInput_) *ChatSyncInput { + s.Attachments = v + return s +} + +// SetAttributeFilter sets the AttributeFilter field's value. +func (s *ChatSyncInput) SetAttributeFilter(v *AttributeFilter) *ChatSyncInput { + s.AttributeFilter = v + return s +} + +// SetClientToken sets the ClientToken field's value. +func (s *ChatSyncInput) SetClientToken(v string) *ChatSyncInput { + s.ClientToken = &v + return s +} + +// SetConversationId sets the ConversationId field's value. +func (s *ChatSyncInput) SetConversationId(v string) *ChatSyncInput { + s.ConversationId = &v + return s +} + +// SetParentMessageId sets the ParentMessageId field's value. +func (s *ChatSyncInput) SetParentMessageId(v string) *ChatSyncInput { + s.ParentMessageId = &v + return s +} + +// SetUserGroups sets the UserGroups field's value. +func (s *ChatSyncInput) SetUserGroups(v []*string) *ChatSyncInput { + s.UserGroups = v + return s +} + +// SetUserId sets the UserId field's value. +func (s *ChatSyncInput) SetUserId(v string) *ChatSyncInput { + s.UserId = &v + return s +} + +// SetUserMessage sets the UserMessage field's value. +func (s *ChatSyncInput) SetUserMessage(v string) *ChatSyncInput { + s.UserMessage = &v + return s +} + +type ChatSyncOutput struct { + _ struct{} `type:"structure"` + + // A request from Amazon Q to the end user for information Amazon Q needs to + // successfully complete a requested plugin action. + ActionReview *ActionReview `locationName:"actionReview" type:"structure"` + + // The identifier of the Amazon Q conversation. + ConversationId *string `locationName:"conversationId" min:"36" type:"string"` + + // A list of files which failed to upload during chat. + FailedAttachments []*AttachmentOutput_ `locationName:"failedAttachments" type:"list"` + + // The source documents used to generate the conversation response. + SourceAttributions []*SourceAttribution `locationName:"sourceAttributions" type:"list"` + + // An AI-generated message in a conversation. + SystemMessage *string `locationName:"systemMessage" min:"1" type:"string"` + + // The identifier of an Amazon Q AI generated message within the conversation. + SystemMessageId *string `locationName:"systemMessageId" min:"36" type:"string"` + + // The identifier of an Amazon Q end user text input message within the conversation. + UserMessageId *string `locationName:"userMessageId" min:"36" 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 ChatSyncOutput) 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 ChatSyncOutput) GoString() string { + return s.String() +} + +// SetActionReview sets the ActionReview field's value. +func (s *ChatSyncOutput) SetActionReview(v *ActionReview) *ChatSyncOutput { + s.ActionReview = v + return s +} + +// SetConversationId sets the ConversationId field's value. +func (s *ChatSyncOutput) SetConversationId(v string) *ChatSyncOutput { + s.ConversationId = &v + return s +} + +// SetFailedAttachments sets the FailedAttachments field's value. +func (s *ChatSyncOutput) SetFailedAttachments(v []*AttachmentOutput_) *ChatSyncOutput { + s.FailedAttachments = v + return s +} + +// SetSourceAttributions sets the SourceAttributions field's value. +func (s *ChatSyncOutput) SetSourceAttributions(v []*SourceAttribution) *ChatSyncOutput { + s.SourceAttributions = v + return s +} + +// SetSystemMessage sets the SystemMessage field's value. +func (s *ChatSyncOutput) SetSystemMessage(v string) *ChatSyncOutput { + s.SystemMessage = &v + return s +} + +// SetSystemMessageId sets the SystemMessageId field's value. +func (s *ChatSyncOutput) SetSystemMessageId(v string) *ChatSyncOutput { + s.SystemMessageId = &v + return s +} + +// SetUserMessageId sets the UserMessageId field's value. +func (s *ChatSyncOutput) SetUserMessageId(v string) *ChatSyncOutput { + s.UserMessageId = &v + return s +} + +// You are trying to perform an action that conflicts with the current status +// of your resource. Fix any inconsistences with your resources and try again. +type ConflictException struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + + // The message describing a ConflictException. + Message_ *string `locationName:"message" min:"1" type:"string"` + + // The identifier of the resource affected. + // + // ResourceId is a required field + ResourceId *string `locationName:"resourceId" min:"1" type:"string" required:"true"` + + // The type of the resource affected. + // + // ResourceType is a required field + ResourceType *string `locationName:"resourceType" 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 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\n%s", s.Code(), s.Message(), s.String()) +} + +// 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 +} + +// A rule for configuring how Amazon Q responds when it encounters a a blocked +// topic. You can configure a custom message to inform your end users that they +// have asked about a restricted topic and suggest any next steps they should +// take. +type ContentBlockerRule struct { + _ struct{} `type:"structure"` + + // The configured custom message displayed to an end user informing them that + // they've used a blocked phrase during chat. + SystemMessageOverride *string `locationName:"systemMessageOverride" 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 ContentBlockerRule) 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 ContentBlockerRule) GoString() string { + return s.String() +} + +// SetSystemMessageOverride sets the SystemMessageOverride field's value. +func (s *ContentBlockerRule) SetSystemMessageOverride(v string) *ContentBlockerRule { + s.SystemMessageOverride = &v + return s +} + +// Rules for retrieving content from data sources connected to a Amazon Q application +// for a specific topic control configuration. +type ContentRetrievalRule struct { + _ struct{} `type:"structure"` + + // Specifies data sources in a Amazon Q application to use for content generation. + EligibleDataSources []*EligibleDataSource `locationName:"eligibleDataSources" 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 ContentRetrievalRule) 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 ContentRetrievalRule) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ContentRetrievalRule) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ContentRetrievalRule"} + if s.EligibleDataSources != nil { + for i, v := range s.EligibleDataSources { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "EligibleDataSources", i), err.(request.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetEligibleDataSources sets the EligibleDataSources field's value. +func (s *ContentRetrievalRule) SetEligibleDataSources(v []*EligibleDataSource) *ContentRetrievalRule { + s.EligibleDataSources = v + return s +} + +// A conversation in an Amazon Q application. +type Conversation struct { + _ struct{} `type:"structure"` + + // The identifier of the Amazon Q conversation. + ConversationId *string `locationName:"conversationId" min:"36" type:"string"` + + // The start time of the conversation. + StartTime *time.Time `locationName:"startTime" type:"timestamp"` + + // The title of the conversation. + Title *string `locationName:"title" 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 Conversation) 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 Conversation) GoString() string { + return s.String() +} + +// SetConversationId sets the ConversationId field's value. +func (s *Conversation) SetConversationId(v string) *Conversation { + s.ConversationId = &v + return s +} + +// SetStartTime sets the StartTime field's value. +func (s *Conversation) SetStartTime(v time.Time) *Conversation { + s.StartTime = &v + return s +} + +// SetTitle sets the Title field's value. +func (s *Conversation) SetTitle(v string) *Conversation { + s.Title = &v + return s +} + +type CreateApplicationInput struct { + _ struct{} `type:"structure"` + + // An option to allow end users to upload files directly during chat. + AttachmentsConfiguration *AttachmentsConfiguration `locationName:"attachmentsConfiguration" type:"structure"` + + // A token that you provide to identify the request to create your Amazon Q + // application. + ClientToken *string `locationName:"clientToken" min:"1" type:"string" idempotencyToken:"true"` + + // A description for the Amazon Q application. + Description *string `locationName:"description" type:"string"` + + // A name for the Amazon Q application. + // + // DisplayName is a required field + DisplayName *string `locationName:"displayName" min:"1" type:"string" required:"true"` + + // The identifier of the KMS key that is used to encrypt your data. Amazon Q + // doesn't support asymmetric keys. + EncryptionConfiguration *EncryptionConfiguration `locationName:"encryptionConfiguration" type:"structure"` + + // The Amazon Resource Name (ARN) of an IAM role with permissions to access + // your Amazon CloudWatch logs and metrics. + // + // RoleArn is a required field + RoleArn *string `locationName:"roleArn" type:"string" required:"true"` + + // A list of key-value pairs that identify or categorize your Amazon Q application. + // You can also use tags to help control access to the application. Tag keys + // and values can consist of Unicode letters, digits, white space, and any of + // the following symbols: _ . : / = + - @. + Tags []*Tag `locationName:"tags" 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 CreateApplicationInput) 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 CreateApplicationInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CreateApplicationInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "CreateApplicationInput"} + if s.ClientToken != nil && len(*s.ClientToken) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ClientToken", 1)) + } + if s.DisplayName == nil { + invalidParams.Add(request.NewErrParamRequired("DisplayName")) + } + if s.DisplayName != nil && len(*s.DisplayName) < 1 { + invalidParams.Add(request.NewErrParamMinLen("DisplayName", 1)) + } + if s.RoleArn == nil { + invalidParams.Add(request.NewErrParamRequired("RoleArn")) + } + if s.AttachmentsConfiguration != nil { + if err := s.AttachmentsConfiguration.Validate(); err != nil { + invalidParams.AddNested("AttachmentsConfiguration", err.(request.ErrInvalidParams)) + } + } + if s.EncryptionConfiguration != nil { + if err := s.EncryptionConfiguration.Validate(); err != nil { + invalidParams.AddNested("EncryptionConfiguration", err.(request.ErrInvalidParams)) + } + } + if s.Tags != nil { + for i, v := range s.Tags { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAttachmentsConfiguration sets the AttachmentsConfiguration field's value. +func (s *CreateApplicationInput) SetAttachmentsConfiguration(v *AttachmentsConfiguration) *CreateApplicationInput { + s.AttachmentsConfiguration = v + return s +} + +// SetClientToken sets the ClientToken field's value. +func (s *CreateApplicationInput) SetClientToken(v string) *CreateApplicationInput { + s.ClientToken = &v + return s +} + +// SetDescription sets the Description field's value. +func (s *CreateApplicationInput) SetDescription(v string) *CreateApplicationInput { + s.Description = &v + return s +} + +// SetDisplayName sets the DisplayName field's value. +func (s *CreateApplicationInput) SetDisplayName(v string) *CreateApplicationInput { + s.DisplayName = &v + return s +} + +// SetEncryptionConfiguration sets the EncryptionConfiguration field's value. +func (s *CreateApplicationInput) SetEncryptionConfiguration(v *EncryptionConfiguration) *CreateApplicationInput { + s.EncryptionConfiguration = v + return s +} + +// SetRoleArn sets the RoleArn field's value. +func (s *CreateApplicationInput) SetRoleArn(v string) *CreateApplicationInput { + s.RoleArn = &v + return s +} + +// SetTags sets the Tags field's value. +func (s *CreateApplicationInput) SetTags(v []*Tag) *CreateApplicationInput { + s.Tags = v + return s +} + +type CreateApplicationOutput struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the Amazon Q application. + ApplicationArn *string `locationName:"applicationArn" type:"string"` + + // The identifier of the Amazon Q application. + ApplicationId *string `locationName:"applicationId" min:"36" 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 CreateApplicationOutput) 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 CreateApplicationOutput) GoString() string { + return s.String() +} + +// SetApplicationArn sets the ApplicationArn field's value. +func (s *CreateApplicationOutput) SetApplicationArn(v string) *CreateApplicationOutput { + s.ApplicationArn = &v + return s +} + +// SetApplicationId sets the ApplicationId field's value. +func (s *CreateApplicationOutput) SetApplicationId(v string) *CreateApplicationOutput { + s.ApplicationId = &v + return s +} + +type CreateIndexInput struct { + _ struct{} `type:"structure"` + + // The identifier of the Amazon Q application using the index. + // + // ApplicationId is a required field + ApplicationId *string `location:"uri" locationName:"applicationId" min:"36" type:"string" required:"true"` + + // The capacity units you want to provision for your index. You can add and + // remove capacity to fit your usage needs. + CapacityConfiguration *IndexCapacityConfiguration `locationName:"capacityConfiguration" type:"structure"` + + // A token that you provide to identify the request to create an index. Multiple + // calls to the CreateIndex API with the same client token will create only + // one index. + ClientToken *string `locationName:"clientToken" min:"1" type:"string" idempotencyToken:"true"` + + // A description for the Amazon Q index. + Description *string `locationName:"description" type:"string"` + + // A name for the Amazon Q index. + // + // DisplayName is a required field + DisplayName *string `locationName:"displayName" min:"1" type:"string" required:"true"` + + // A list of key-value pairs that identify or categorize the index. You can + // also use tags to help control access to the index. Tag keys and values can + // consist of Unicode letters, digits, white space, and any of the following + // symbols: _ . : / = + - @. + Tags []*Tag `locationName:"tags" 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 CreateIndexInput) 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 CreateIndexInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CreateIndexInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "CreateIndexInput"} + if s.ApplicationId == nil { + invalidParams.Add(request.NewErrParamRequired("ApplicationId")) + } + if s.ApplicationId != nil && len(*s.ApplicationId) < 36 { + invalidParams.Add(request.NewErrParamMinLen("ApplicationId", 36)) + } + if s.ClientToken != nil && len(*s.ClientToken) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ClientToken", 1)) + } + if s.DisplayName == nil { + invalidParams.Add(request.NewErrParamRequired("DisplayName")) + } + if s.DisplayName != nil && len(*s.DisplayName) < 1 { + invalidParams.Add(request.NewErrParamMinLen("DisplayName", 1)) + } + if s.CapacityConfiguration != nil { + if err := s.CapacityConfiguration.Validate(); err != nil { + invalidParams.AddNested("CapacityConfiguration", err.(request.ErrInvalidParams)) + } + } + if s.Tags != nil { + for i, v := range s.Tags { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetApplicationId sets the ApplicationId field's value. +func (s *CreateIndexInput) SetApplicationId(v string) *CreateIndexInput { + s.ApplicationId = &v + return s +} + +// SetCapacityConfiguration sets the CapacityConfiguration field's value. +func (s *CreateIndexInput) SetCapacityConfiguration(v *IndexCapacityConfiguration) *CreateIndexInput { + s.CapacityConfiguration = v + return s +} + +// SetClientToken sets the ClientToken field's value. +func (s *CreateIndexInput) SetClientToken(v string) *CreateIndexInput { + s.ClientToken = &v + return s +} + +// SetDescription sets the Description field's value. +func (s *CreateIndexInput) SetDescription(v string) *CreateIndexInput { + s.Description = &v + return s +} + +// SetDisplayName sets the DisplayName field's value. +func (s *CreateIndexInput) SetDisplayName(v string) *CreateIndexInput { + s.DisplayName = &v + return s +} + +// SetTags sets the Tags field's value. +func (s *CreateIndexInput) SetTags(v []*Tag) *CreateIndexInput { + s.Tags = v + return s +} + +type CreateIndexOutput struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of an Amazon Q index. + IndexArn *string `locationName:"indexArn" type:"string"` + + // The identifier for the Amazon Q index. + IndexId *string `locationName:"indexId" min:"36" 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 CreateIndexOutput) 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 CreateIndexOutput) GoString() string { + return s.String() +} + +// SetIndexArn sets the IndexArn field's value. +func (s *CreateIndexOutput) SetIndexArn(v string) *CreateIndexOutput { + s.IndexArn = &v + return s +} + +// SetIndexId sets the IndexId field's value. +func (s *CreateIndexOutput) SetIndexId(v string) *CreateIndexOutput { + s.IndexId = &v + return s +} + +type CreatePluginInput struct { + _ struct{} `type:"structure"` + + // The identifier of the application that will contain the plugin. + // + // ApplicationId is a required field + ApplicationId *string `location:"uri" locationName:"applicationId" min:"36" type:"string" required:"true"` + + // Authentication configuration information for an Amazon Q plugin. + // + // AuthConfiguration is a required field + AuthConfiguration *PluginAuthConfiguration `locationName:"authConfiguration" type:"structure" required:"true"` + + // A token that you provide to identify the request to create your Amazon Q + // plugin. + ClientToken *string `locationName:"clientToken" min:"1" type:"string" idempotencyToken:"true"` + + // A the name for your plugin. + // + // DisplayName is a required field + DisplayName *string `locationName:"displayName" min:"1" type:"string" required:"true"` + + // The source URL used for plugin configuration. + // + // ServerUrl is a required field + ServerUrl *string `locationName:"serverUrl" min:"1" type:"string" required:"true"` + + // A list of key-value pairs that identify or categorize the data source connector. + // You can also use tags to help control access to the data source connector. + // Tag keys and values can consist of Unicode letters, digits, white space, + // and any of the following symbols: _ . : / = + - @. + Tags []*Tag `locationName:"tags" type:"list"` + + // The type of plugin you want to create. + // + // Type is a required field + Type *string `locationName:"type" type:"string" required:"true" enum:"PluginType"` +} + +// 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 CreatePluginInput) 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 CreatePluginInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CreatePluginInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "CreatePluginInput"} + if s.ApplicationId == nil { + invalidParams.Add(request.NewErrParamRequired("ApplicationId")) + } + if s.ApplicationId != nil && len(*s.ApplicationId) < 36 { + invalidParams.Add(request.NewErrParamMinLen("ApplicationId", 36)) + } + if s.AuthConfiguration == nil { + invalidParams.Add(request.NewErrParamRequired("AuthConfiguration")) + } + if s.ClientToken != nil && len(*s.ClientToken) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ClientToken", 1)) + } + if s.DisplayName == nil { + invalidParams.Add(request.NewErrParamRequired("DisplayName")) + } + if s.DisplayName != nil && len(*s.DisplayName) < 1 { + invalidParams.Add(request.NewErrParamMinLen("DisplayName", 1)) + } + if s.ServerUrl == nil { + invalidParams.Add(request.NewErrParamRequired("ServerUrl")) + } + if s.ServerUrl != nil && len(*s.ServerUrl) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ServerUrl", 1)) + } + if s.Type == nil { + invalidParams.Add(request.NewErrParamRequired("Type")) + } + if s.AuthConfiguration != nil { + if err := s.AuthConfiguration.Validate(); err != nil { + invalidParams.AddNested("AuthConfiguration", err.(request.ErrInvalidParams)) + } + } + if s.Tags != nil { + for i, v := range s.Tags { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetApplicationId sets the ApplicationId field's value. +func (s *CreatePluginInput) SetApplicationId(v string) *CreatePluginInput { + s.ApplicationId = &v + return s +} + +// SetAuthConfiguration sets the AuthConfiguration field's value. +func (s *CreatePluginInput) SetAuthConfiguration(v *PluginAuthConfiguration) *CreatePluginInput { + s.AuthConfiguration = v + return s +} + +// SetClientToken sets the ClientToken field's value. +func (s *CreatePluginInput) SetClientToken(v string) *CreatePluginInput { + s.ClientToken = &v + return s +} + +// SetDisplayName sets the DisplayName field's value. +func (s *CreatePluginInput) SetDisplayName(v string) *CreatePluginInput { + s.DisplayName = &v + return s +} + +// SetServerUrl sets the ServerUrl field's value. +func (s *CreatePluginInput) SetServerUrl(v string) *CreatePluginInput { + s.ServerUrl = &v + return s +} + +// SetTags sets the Tags field's value. +func (s *CreatePluginInput) SetTags(v []*Tag) *CreatePluginInput { + s.Tags = v + return s +} + +// SetType sets the Type field's value. +func (s *CreatePluginInput) SetType(v string) *CreatePluginInput { + s.Type = &v + return s +} + +type CreatePluginOutput struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of a plugin. + PluginArn *string `locationName:"pluginArn" type:"string"` + + // The identifier of the plugin created. + PluginId *string `locationName:"pluginId" min:"36" 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 CreatePluginOutput) 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 CreatePluginOutput) GoString() string { + return s.String() +} + +// SetPluginArn sets the PluginArn field's value. +func (s *CreatePluginOutput) SetPluginArn(v string) *CreatePluginOutput { + s.PluginArn = &v + return s +} + +// SetPluginId sets the PluginId field's value. +func (s *CreatePluginOutput) SetPluginId(v string) *CreatePluginOutput { + s.PluginId = &v + return s +} + +type CreateRetrieverInput struct { + _ struct{} `type:"structure"` + + // The identifier of your Amazon Q application. + // + // ApplicationId is a required field + ApplicationId *string `location:"uri" locationName:"applicationId" min:"36" type:"string" required:"true"` + + // A token that you provide to identify the request to create your Amazon Q + // application retriever. + ClientToken *string `locationName:"clientToken" min:"1" type:"string" idempotencyToken:"true"` + + // Provides information on how the retriever used for your Amazon Q application + // is configured. + // + // Configuration is a required field + Configuration *RetrieverConfiguration `locationName:"configuration" type:"structure" required:"true"` + + // The name of your retriever. + // + // DisplayName is a required field + DisplayName *string `locationName:"displayName" min:"1" type:"string" required:"true"` + + // The ARN of an IAM role used by Amazon Q to access the basic authentication + // credentials stored in a Secrets Manager secret. + RoleArn *string `locationName:"roleArn" type:"string"` + + // A list of key-value pairs that identify or categorize the retriever. You + // can also use tags to help control access to the retriever. Tag keys and values + // can consist of Unicode letters, digits, white space, and any of the following + // symbols: _ . : / = + - @. + Tags []*Tag `locationName:"tags" type:"list"` + + // The type of retriever you are using. + // + // Type is a required field + Type *string `locationName:"type" type:"string" required:"true" enum:"RetrieverType"` +} + +// 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 CreateRetrieverInput) 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 CreateRetrieverInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CreateRetrieverInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "CreateRetrieverInput"} + if s.ApplicationId == nil { + invalidParams.Add(request.NewErrParamRequired("ApplicationId")) + } + if s.ApplicationId != nil && len(*s.ApplicationId) < 36 { + invalidParams.Add(request.NewErrParamMinLen("ApplicationId", 36)) + } + if s.ClientToken != nil && len(*s.ClientToken) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ClientToken", 1)) + } + if s.Configuration == nil { + invalidParams.Add(request.NewErrParamRequired("Configuration")) + } + if s.DisplayName == nil { + invalidParams.Add(request.NewErrParamRequired("DisplayName")) + } + if s.DisplayName != nil && len(*s.DisplayName) < 1 { + invalidParams.Add(request.NewErrParamMinLen("DisplayName", 1)) + } + if s.Type == nil { + invalidParams.Add(request.NewErrParamRequired("Type")) + } + if s.Configuration != nil { + if err := s.Configuration.Validate(); err != nil { + invalidParams.AddNested("Configuration", err.(request.ErrInvalidParams)) + } + } + if s.Tags != nil { + for i, v := range s.Tags { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetApplicationId sets the ApplicationId field's value. +func (s *CreateRetrieverInput) SetApplicationId(v string) *CreateRetrieverInput { + s.ApplicationId = &v + return s +} + +// SetClientToken sets the ClientToken field's value. +func (s *CreateRetrieverInput) SetClientToken(v string) *CreateRetrieverInput { + s.ClientToken = &v + return s +} + +// SetConfiguration sets the Configuration field's value. +func (s *CreateRetrieverInput) SetConfiguration(v *RetrieverConfiguration) *CreateRetrieverInput { + s.Configuration = v + return s +} + +// SetDisplayName sets the DisplayName field's value. +func (s *CreateRetrieverInput) SetDisplayName(v string) *CreateRetrieverInput { + s.DisplayName = &v + return s +} + +// SetRoleArn sets the RoleArn field's value. +func (s *CreateRetrieverInput) SetRoleArn(v string) *CreateRetrieverInput { + s.RoleArn = &v + return s +} + +// SetTags sets the Tags field's value. +func (s *CreateRetrieverInput) SetTags(v []*Tag) *CreateRetrieverInput { + s.Tags = v + return s +} + +// SetType sets the Type field's value. +func (s *CreateRetrieverInput) SetType(v string) *CreateRetrieverInput { + s.Type = &v + return s +} + +type CreateRetrieverOutput struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of an IAM role associated with a retriever. + RetrieverArn *string `locationName:"retrieverArn" type:"string"` + + // The identifier of the retriever you are using. + RetrieverId *string `locationName:"retrieverId" min:"36" 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 CreateRetrieverOutput) 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 CreateRetrieverOutput) GoString() string { + return s.String() +} + +// SetRetrieverArn sets the RetrieverArn field's value. +func (s *CreateRetrieverOutput) SetRetrieverArn(v string) *CreateRetrieverOutput { + s.RetrieverArn = &v + return s +} + +// SetRetrieverId sets the RetrieverId field's value. +func (s *CreateRetrieverOutput) SetRetrieverId(v string) *CreateRetrieverOutput { + s.RetrieverId = &v + return s +} + +type CreateUserInput struct { + _ struct{} `type:"structure"` + + // The identifier of the application for which the user mapping will be created. + // + // ApplicationId is a required field + ApplicationId *string `location:"uri" locationName:"applicationId" min:"36" type:"string" required:"true"` + + // A token that you provide to identify the request to create your Amazon Q + // user mapping. + ClientToken *string `locationName:"clientToken" min:"1" type:"string" idempotencyToken:"true"` + + // The list of user aliases in the mapping. + UserAliases []*UserAlias `locationName:"userAliases" type:"list"` + + // The user emails attached to a user mapping. + // + // UserId is a required field + UserId *string `locationName:"userId" 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 CreateUserInput) 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 CreateUserInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CreateUserInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "CreateUserInput"} + if s.ApplicationId == nil { + invalidParams.Add(request.NewErrParamRequired("ApplicationId")) + } + if s.ApplicationId != nil && len(*s.ApplicationId) < 36 { + invalidParams.Add(request.NewErrParamMinLen("ApplicationId", 36)) + } + if s.ClientToken != nil && len(*s.ClientToken) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ClientToken", 1)) + } + if s.UserId == nil { + invalidParams.Add(request.NewErrParamRequired("UserId")) + } + if s.UserId != nil && len(*s.UserId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("UserId", 1)) + } + if s.UserAliases != nil { + for i, v := range s.UserAliases { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "UserAliases", i), err.(request.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetApplicationId sets the ApplicationId field's value. +func (s *CreateUserInput) SetApplicationId(v string) *CreateUserInput { + s.ApplicationId = &v + return s +} + +// SetClientToken sets the ClientToken field's value. +func (s *CreateUserInput) SetClientToken(v string) *CreateUserInput { + s.ClientToken = &v + return s +} + +// SetUserAliases sets the UserAliases field's value. +func (s *CreateUserInput) SetUserAliases(v []*UserAlias) *CreateUserInput { + s.UserAliases = v + return s +} + +// SetUserId sets the UserId field's value. +func (s *CreateUserInput) SetUserId(v string) *CreateUserInput { + s.UserId = &v + return s +} + +type CreateUserOutput 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 CreateUserOutput) 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 CreateUserOutput) GoString() string { + return s.String() +} + +type CreateWebExperienceInput struct { + _ struct{} `type:"structure"` + + // The identifier of the Amazon Q web experience. + // + // ApplicationId is a required field + ApplicationId *string `location:"uri" locationName:"applicationId" min:"36" type:"string" required:"true"` + + // A token you provide to identify a request to create an Amazon Q web experience. + ClientToken *string `locationName:"clientToken" min:"1" type:"string" idempotencyToken:"true"` + + // Determines whether sample prompts are enabled in the web experience for an + // end user. + SamplePromptsControlMode *string `locationName:"samplePromptsControlMode" type:"string" enum:"WebExperienceSamplePromptsControlMode"` + + // A subtitle to personalize your Amazon Q web experience. + Subtitle *string `locationName:"subtitle" type:"string"` + + // A list of key-value pairs that identify or categorize your Amazon Q web experience. + // You can also use tags to help control access to the web experience. Tag keys + // and values can consist of Unicode letters, digits, white space, and any of + // the following symbols: _ . : / = + - @. + Tags []*Tag `locationName:"tags" type:"list"` + + // The title for your Amazon Q web experience. + Title *string `locationName:"title" type:"string"` + + // The customized welcome message for end users of an Amazon Q web experience. + WelcomeMessage *string `locationName:"welcomeMessage" 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 CreateWebExperienceInput) 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 CreateWebExperienceInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CreateWebExperienceInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "CreateWebExperienceInput"} + if s.ApplicationId == nil { + invalidParams.Add(request.NewErrParamRequired("ApplicationId")) + } + if s.ApplicationId != nil && len(*s.ApplicationId) < 36 { + invalidParams.Add(request.NewErrParamMinLen("ApplicationId", 36)) + } + if s.ClientToken != nil && len(*s.ClientToken) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ClientToken", 1)) + } + if s.Tags != nil { + for i, v := range s.Tags { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetApplicationId sets the ApplicationId field's value. +func (s *CreateWebExperienceInput) SetApplicationId(v string) *CreateWebExperienceInput { + s.ApplicationId = &v + return s +} + +// SetClientToken sets the ClientToken field's value. +func (s *CreateWebExperienceInput) SetClientToken(v string) *CreateWebExperienceInput { + s.ClientToken = &v + return s +} + +// SetSamplePromptsControlMode sets the SamplePromptsControlMode field's value. +func (s *CreateWebExperienceInput) SetSamplePromptsControlMode(v string) *CreateWebExperienceInput { + s.SamplePromptsControlMode = &v + return s +} + +// SetSubtitle sets the Subtitle field's value. +func (s *CreateWebExperienceInput) SetSubtitle(v string) *CreateWebExperienceInput { + s.Subtitle = &v + return s +} + +// SetTags sets the Tags field's value. +func (s *CreateWebExperienceInput) SetTags(v []*Tag) *CreateWebExperienceInput { + s.Tags = v + return s +} + +// SetTitle sets the Title field's value. +func (s *CreateWebExperienceInput) SetTitle(v string) *CreateWebExperienceInput { + s.Title = &v + return s +} + +// SetWelcomeMessage sets the WelcomeMessage field's value. +func (s *CreateWebExperienceInput) SetWelcomeMessage(v string) *CreateWebExperienceInput { + s.WelcomeMessage = &v + return s +} + +type CreateWebExperienceOutput struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of an Amazon Q web experience. + WebExperienceArn *string `locationName:"webExperienceArn" type:"string"` + + // The identifier of the Amazon Q web experience. + WebExperienceId *string `locationName:"webExperienceId" min:"36" 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 CreateWebExperienceOutput) 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 CreateWebExperienceOutput) GoString() string { + return s.String() +} + +// SetWebExperienceArn sets the WebExperienceArn field's value. +func (s *CreateWebExperienceOutput) SetWebExperienceArn(v string) *CreateWebExperienceOutput { + s.WebExperienceArn = &v + return s +} + +// SetWebExperienceId sets the WebExperienceId field's value. +func (s *CreateWebExperienceOutput) SetWebExperienceId(v string) *CreateWebExperienceOutput { + s.WebExperienceId = &v + return s +} + +// A data source in an Amazon Q application. +type DataSource struct { + _ struct{} `type:"structure"` + + // The Unix timestamp when the Amazon Q data source was created. + CreatedAt *time.Time `locationName:"createdAt" type:"timestamp"` + + // The identifier of the Amazon Q data source. + DataSourceId *string `locationName:"dataSourceId" min:"36" type:"string"` + + // The name of the Amazon Q data source. + DisplayName *string `locationName:"displayName" min:"1" type:"string"` + + // The status of the Amazon Q data source. + Status *string `locationName:"status" type:"string" enum:"DataSourceStatus"` + + // The type of the Amazon Q data source. + Type *string `locationName:"type" min:"1" type:"string"` + + // The Unix timestamp when the Amazon Q data source was last updated. + UpdatedAt *time.Time `locationName:"updatedAt" type:"timestamp"` +} + +// 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 DataSource) 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 DataSource) GoString() string { + return s.String() +} + +// SetCreatedAt sets the CreatedAt field's value. +func (s *DataSource) SetCreatedAt(v time.Time) *DataSource { + s.CreatedAt = &v + return s +} + +// SetDataSourceId sets the DataSourceId field's value. +func (s *DataSource) SetDataSourceId(v string) *DataSource { + s.DataSourceId = &v + return s +} + +// SetDisplayName sets the DisplayName field's value. +func (s *DataSource) SetDisplayName(v string) *DataSource { + s.DisplayName = &v + return s +} + +// SetStatus sets the Status field's value. +func (s *DataSource) SetStatus(v string) *DataSource { + s.Status = &v + return s +} + +// SetType sets the Type field's value. +func (s *DataSource) SetType(v string) *DataSource { + s.Type = &v + return s +} + +// SetUpdatedAt sets the UpdatedAt field's value. +func (s *DataSource) SetUpdatedAt(v time.Time) *DataSource { + s.UpdatedAt = &v + return s +} + +// Provides information about an Amazon Q data source connector synchronization +// job. +type DataSourceSyncJob struct { + _ struct{} `type:"structure"` + + // If the reason that the synchronization failed is due to an error with the + // underlying data source, this field contains a code that identifies the error. + DataSourceErrorCode *string `locationName:"dataSourceErrorCode" min:"1" type:"string"` + + // The Unix timestamp when the synchronization job completed. + EndTime *time.Time `locationName:"endTime" type:"timestamp"` + + // If the Status field is set to FAILED, the ErrorCode field indicates the reason + // the synchronization failed. + Error *ErrorDetail `locationName:"error" type:"structure"` + + // The identifier of a data source synchronization job. + ExecutionId *string `locationName:"executionId" min:"36" type:"string"` + + // Maps a batch delete document request to a specific data source sync job. + // This is optional and should only be supplied when documents are deleted by + // a data source connector. + Metrics *DataSourceSyncJobMetrics `locationName:"metrics" type:"structure"` + + // The Unix time stamp when the data source synchronization job started. + StartTime *time.Time `locationName:"startTime" type:"timestamp"` + + // The status of the synchronization job. When the Status field is set to SUCCEEDED, + // the synchronization job is done. If the status code is FAILED, the ErrorCode + // and ErrorMessage fields give you the reason for the failure. + Status *string `locationName:"status" type:"string" enum:"DataSourceSyncJobStatus"` +} + +// 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 DataSourceSyncJob) 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 DataSourceSyncJob) GoString() string { + return s.String() +} + +// SetDataSourceErrorCode sets the DataSourceErrorCode field's value. +func (s *DataSourceSyncJob) SetDataSourceErrorCode(v string) *DataSourceSyncJob { + s.DataSourceErrorCode = &v + return s +} + +// SetEndTime sets the EndTime field's value. +func (s *DataSourceSyncJob) SetEndTime(v time.Time) *DataSourceSyncJob { + s.EndTime = &v + return s +} + +// SetError sets the Error field's value. +func (s *DataSourceSyncJob) SetError(v *ErrorDetail) *DataSourceSyncJob { + s.Error = v + return s +} + +// SetExecutionId sets the ExecutionId field's value. +func (s *DataSourceSyncJob) SetExecutionId(v string) *DataSourceSyncJob { + s.ExecutionId = &v + return s +} + +// SetMetrics sets the Metrics field's value. +func (s *DataSourceSyncJob) SetMetrics(v *DataSourceSyncJobMetrics) *DataSourceSyncJob { + s.Metrics = v + return s +} + +// SetStartTime sets the StartTime field's value. +func (s *DataSourceSyncJob) SetStartTime(v time.Time) *DataSourceSyncJob { + s.StartTime = &v + return s +} + +// SetStatus sets the Status field's value. +func (s *DataSourceSyncJob) SetStatus(v string) *DataSourceSyncJob { + s.Status = &v + return s +} + +// Maps a batch delete document request to a specific Amazon Q data source connector +// sync job. +type DataSourceSyncJobMetrics struct { + _ struct{} `type:"structure"` + + // The current count of documents added from the data source during the data + // source sync. + DocumentsAdded *string `locationName:"documentsAdded" type:"string"` + + // The current count of documents deleted from the data source during the data + // source sync. + DocumentsDeleted *string `locationName:"documentsDeleted" type:"string"` + + // The current count of documents that failed to sync from the data source during + // the data source sync. + DocumentsFailed *string `locationName:"documentsFailed" type:"string"` + + // The current count of documents modified in the data source during the data + // source sync. + DocumentsModified *string `locationName:"documentsModified" type:"string"` + + // The current count of documents crawled by the ongoing sync job in the data + // source. + DocumentsScanned *string `locationName:"documentsScanned" 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 DataSourceSyncJobMetrics) 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 DataSourceSyncJobMetrics) GoString() string { + return s.String() +} + +// SetDocumentsAdded sets the DocumentsAdded field's value. +func (s *DataSourceSyncJobMetrics) SetDocumentsAdded(v string) *DataSourceSyncJobMetrics { + s.DocumentsAdded = &v + return s +} + +// SetDocumentsDeleted sets the DocumentsDeleted field's value. +func (s *DataSourceSyncJobMetrics) SetDocumentsDeleted(v string) *DataSourceSyncJobMetrics { + s.DocumentsDeleted = &v + return s +} + +// SetDocumentsFailed sets the DocumentsFailed field's value. +func (s *DataSourceSyncJobMetrics) SetDocumentsFailed(v string) *DataSourceSyncJobMetrics { + s.DocumentsFailed = &v + return s +} + +// SetDocumentsModified sets the DocumentsModified field's value. +func (s *DataSourceSyncJobMetrics) SetDocumentsModified(v string) *DataSourceSyncJobMetrics { + s.DocumentsModified = &v + return s +} + +// SetDocumentsScanned sets the DocumentsScanned field's value. +func (s *DataSourceSyncJobMetrics) SetDocumentsScanned(v string) *DataSourceSyncJobMetrics { + s.DocumentsScanned = &v + return s +} + +// Provides configuration information needed to connect to an Amazon VPC (Virtual +// Private Cloud). +type DataSourceVpcConfiguration struct { + _ struct{} `type:"structure"` + + // A list of identifiers of security groups within your Amazon VPC. The security + // groups should enable Amazon Q to connect to the data source. + // + // SecurityGroupIds is a required field + SecurityGroupIds []*string `locationName:"securityGroupIds" min:"1" type:"list" required:"true"` + + // A list of identifiers for subnets within your Amazon VPC. The subnets should + // be able to connect to each other in the VPC, and they should have outgoing + // access to the Internet through a NAT device. + // + // SubnetIds is a required field + SubnetIds []*string `locationName:"subnetIds" 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 DataSourceVpcConfiguration) 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 DataSourceVpcConfiguration) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DataSourceVpcConfiguration) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DataSourceVpcConfiguration"} + if s.SecurityGroupIds == nil { + invalidParams.Add(request.NewErrParamRequired("SecurityGroupIds")) + } + if s.SecurityGroupIds != nil && len(s.SecurityGroupIds) < 1 { + invalidParams.Add(request.NewErrParamMinLen("SecurityGroupIds", 1)) + } + if s.SubnetIds == nil { + invalidParams.Add(request.NewErrParamRequired("SubnetIds")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetSecurityGroupIds sets the SecurityGroupIds field's value. +func (s *DataSourceVpcConfiguration) SetSecurityGroupIds(v []*string) *DataSourceVpcConfiguration { + s.SecurityGroupIds = v + return s +} + +// SetSubnetIds sets the SubnetIds field's value. +func (s *DataSourceVpcConfiguration) SetSubnetIds(v []*string) *DataSourceVpcConfiguration { + s.SubnetIds = v + return s +} + +type DeleteApplicationInput struct { + _ struct{} `type:"structure" nopayload:"true"` + + // The identifier of the Amazon Q application. + // + // ApplicationId is a required field + ApplicationId *string `location:"uri" locationName:"applicationId" min:"36" 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 DeleteApplicationInput) 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 DeleteApplicationInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteApplicationInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DeleteApplicationInput"} + if s.ApplicationId == nil { + invalidParams.Add(request.NewErrParamRequired("ApplicationId")) + } + if s.ApplicationId != nil && len(*s.ApplicationId) < 36 { + invalidParams.Add(request.NewErrParamMinLen("ApplicationId", 36)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetApplicationId sets the ApplicationId field's value. +func (s *DeleteApplicationInput) SetApplicationId(v string) *DeleteApplicationInput { + s.ApplicationId = &v + return s +} + +type DeleteApplicationOutput 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 DeleteApplicationOutput) 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 DeleteApplicationOutput) GoString() string { + return s.String() +} + +type DeleteChatControlsConfigurationInput struct { + _ struct{} `type:"structure" nopayload:"true"` + + // The identifier of the application the chat controls have been configured + // for. + // + // ApplicationId is a required field + ApplicationId *string `location:"uri" locationName:"applicationId" min:"36" 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 DeleteChatControlsConfigurationInput) 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 DeleteChatControlsConfigurationInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteChatControlsConfigurationInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DeleteChatControlsConfigurationInput"} + if s.ApplicationId == nil { + invalidParams.Add(request.NewErrParamRequired("ApplicationId")) + } + if s.ApplicationId != nil && len(*s.ApplicationId) < 36 { + invalidParams.Add(request.NewErrParamMinLen("ApplicationId", 36)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetApplicationId sets the ApplicationId field's value. +func (s *DeleteChatControlsConfigurationInput) SetApplicationId(v string) *DeleteChatControlsConfigurationInput { + s.ApplicationId = &v + return s +} + +type DeleteChatControlsConfigurationOutput 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 DeleteChatControlsConfigurationOutput) 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 DeleteChatControlsConfigurationOutput) GoString() string { + return s.String() +} + +type DeleteConversationInput struct { + _ struct{} `type:"structure" nopayload:"true"` + + // The identifier of the Amazon Q application associated with the conversation. + // + // ApplicationId is a required field + ApplicationId *string `location:"uri" locationName:"applicationId" min:"36" type:"string" required:"true"` + + // The identifier of the Amazon Q web experience conversation being deleted. + // + // ConversationId is a required field + ConversationId *string `location:"uri" locationName:"conversationId" min:"36" type:"string" required:"true"` + + // The identifier of the user who is deleting the conversation. + // + // UserId is a required field + UserId *string `location:"querystring" locationName:"userId" 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 DeleteConversationInput) 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 DeleteConversationInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteConversationInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DeleteConversationInput"} + if s.ApplicationId == nil { + invalidParams.Add(request.NewErrParamRequired("ApplicationId")) + } + if s.ApplicationId != nil && len(*s.ApplicationId) < 36 { + invalidParams.Add(request.NewErrParamMinLen("ApplicationId", 36)) + } + if s.ConversationId == nil { + invalidParams.Add(request.NewErrParamRequired("ConversationId")) + } + if s.ConversationId != nil && len(*s.ConversationId) < 36 { + invalidParams.Add(request.NewErrParamMinLen("ConversationId", 36)) + } + if s.UserId == nil { + invalidParams.Add(request.NewErrParamRequired("UserId")) + } + if s.UserId != nil && len(*s.UserId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("UserId", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetApplicationId sets the ApplicationId field's value. +func (s *DeleteConversationInput) SetApplicationId(v string) *DeleteConversationInput { + s.ApplicationId = &v + return s +} + +// SetConversationId sets the ConversationId field's value. +func (s *DeleteConversationInput) SetConversationId(v string) *DeleteConversationInput { + s.ConversationId = &v + return s +} + +// SetUserId sets the UserId field's value. +func (s *DeleteConversationInput) SetUserId(v string) *DeleteConversationInput { + s.UserId = &v + return s +} + +type DeleteConversationOutput 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 DeleteConversationOutput) 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 DeleteConversationOutput) GoString() string { + return s.String() +} + +type DeleteDataSourceInput struct { + _ struct{} `type:"structure" nopayload:"true"` + + // The identifier of the Amazon Q application used with the data source connector. + // + // ApplicationId is a required field + ApplicationId *string `location:"uri" locationName:"applicationId" min:"36" type:"string" required:"true"` + + // The identifier of the data source connector that you want to delete. + // + // DataSourceId is a required field + DataSourceId *string `location:"uri" locationName:"dataSourceId" min:"36" type:"string" required:"true"` + + // The identifier of the index used with the data source connector. + // + // IndexId is a required field + IndexId *string `location:"uri" locationName:"indexId" min:"36" 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 DeleteDataSourceInput) 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 DeleteDataSourceInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteDataSourceInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DeleteDataSourceInput"} + if s.ApplicationId == nil { + invalidParams.Add(request.NewErrParamRequired("ApplicationId")) + } + if s.ApplicationId != nil && len(*s.ApplicationId) < 36 { + invalidParams.Add(request.NewErrParamMinLen("ApplicationId", 36)) + } + if s.DataSourceId == nil { + invalidParams.Add(request.NewErrParamRequired("DataSourceId")) + } + if s.DataSourceId != nil && len(*s.DataSourceId) < 36 { + invalidParams.Add(request.NewErrParamMinLen("DataSourceId", 36)) + } + if s.IndexId == nil { + invalidParams.Add(request.NewErrParamRequired("IndexId")) + } + if s.IndexId != nil && len(*s.IndexId) < 36 { + invalidParams.Add(request.NewErrParamMinLen("IndexId", 36)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetApplicationId sets the ApplicationId field's value. +func (s *DeleteDataSourceInput) SetApplicationId(v string) *DeleteDataSourceInput { + s.ApplicationId = &v + return s +} + +// SetDataSourceId sets the DataSourceId field's value. +func (s *DeleteDataSourceInput) SetDataSourceId(v string) *DeleteDataSourceInput { + s.DataSourceId = &v + return s +} + +// SetIndexId sets the IndexId field's value. +func (s *DeleteDataSourceInput) SetIndexId(v string) *DeleteDataSourceInput { + s.IndexId = &v + return s +} + +type DeleteDataSourceOutput 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 DeleteDataSourceOutput) 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 DeleteDataSourceOutput) GoString() string { + return s.String() +} + +// A document deleted from an Amazon Q data source connector. +type DeleteDocument struct { + _ struct{} `type:"structure"` + + // The identifier of the deleted document. + // + // DocumentId is a required field + DocumentId *string `locationName:"documentId" 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 DeleteDocument) 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 DeleteDocument) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteDocument) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DeleteDocument"} + if s.DocumentId == nil { + invalidParams.Add(request.NewErrParamRequired("DocumentId")) + } + if s.DocumentId != nil && len(*s.DocumentId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("DocumentId", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetDocumentId sets the DocumentId field's value. +func (s *DeleteDocument) SetDocumentId(v string) *DeleteDocument { + s.DocumentId = &v + return s +} + +type DeleteGroupInput struct { + _ struct{} `type:"structure" nopayload:"true"` + + // The identifier of the application in which the group mapping belongs. + // + // ApplicationId is a required field + ApplicationId *string `location:"uri" locationName:"applicationId" min:"36" type:"string" required:"true"` + + // The identifier of the data source linked to the group + // + // A group can be tied to multiple data sources. You can delete a group from + // accessing documents in a certain data source. For example, the groups "Research", + // "Engineering", and "Sales and Marketing" are all tied to the company's documents + // stored in the data sources Confluence and Salesforce. You want to delete + // "Research" and "Engineering" groups from Salesforce, so that these groups + // cannot access customer-related documents stored in Salesforce. Only "Sales + // and Marketing" should access documents in the Salesforce data source. + DataSourceId *string `location:"querystring" locationName:"dataSourceId" min:"36" type:"string"` + + // The name of the group you want to delete. + // + // GroupName is a required field + GroupName *string `location:"uri" locationName:"groupName" min:"1" type:"string" required:"true"` + + // The identifier of the index you want to delete the group from. + // + // IndexId is a required field + IndexId *string `location:"uri" locationName:"indexId" min:"36" 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 DeleteGroupInput) 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 DeleteGroupInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteGroupInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DeleteGroupInput"} + if s.ApplicationId == nil { + invalidParams.Add(request.NewErrParamRequired("ApplicationId")) + } + if s.ApplicationId != nil && len(*s.ApplicationId) < 36 { + invalidParams.Add(request.NewErrParamMinLen("ApplicationId", 36)) + } + if s.DataSourceId != nil && len(*s.DataSourceId) < 36 { + invalidParams.Add(request.NewErrParamMinLen("DataSourceId", 36)) + } + if s.GroupName == nil { + invalidParams.Add(request.NewErrParamRequired("GroupName")) + } + if s.GroupName != nil && len(*s.GroupName) < 1 { + invalidParams.Add(request.NewErrParamMinLen("GroupName", 1)) + } + if s.IndexId == nil { + invalidParams.Add(request.NewErrParamRequired("IndexId")) + } + if s.IndexId != nil && len(*s.IndexId) < 36 { + invalidParams.Add(request.NewErrParamMinLen("IndexId", 36)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetApplicationId sets the ApplicationId field's value. +func (s *DeleteGroupInput) SetApplicationId(v string) *DeleteGroupInput { + s.ApplicationId = &v + return s +} + +// SetDataSourceId sets the DataSourceId field's value. +func (s *DeleteGroupInput) SetDataSourceId(v string) *DeleteGroupInput { + s.DataSourceId = &v + return s +} + +// SetGroupName sets the GroupName field's value. +func (s *DeleteGroupInput) SetGroupName(v string) *DeleteGroupInput { + s.GroupName = &v + return s +} + +// SetIndexId sets the IndexId field's value. +func (s *DeleteGroupInput) SetIndexId(v string) *DeleteGroupInput { + s.IndexId = &v + return s +} + +type DeleteGroupOutput 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 DeleteGroupOutput) 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 DeleteGroupOutput) GoString() string { + return s.String() +} + +type DeleteIndexInput struct { + _ struct{} `type:"structure" nopayload:"true"` + + // The identifier of the Amazon Q application the Amazon Q index is linked to. + // + // ApplicationId is a required field + ApplicationId *string `location:"uri" locationName:"applicationId" min:"36" type:"string" required:"true"` + + // The identifier of the Amazon Q index. + // + // IndexId is a required field + IndexId *string `location:"uri" locationName:"indexId" min:"36" 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 DeleteIndexInput) 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 DeleteIndexInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteIndexInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DeleteIndexInput"} + if s.ApplicationId == nil { + invalidParams.Add(request.NewErrParamRequired("ApplicationId")) + } + if s.ApplicationId != nil && len(*s.ApplicationId) < 36 { + invalidParams.Add(request.NewErrParamMinLen("ApplicationId", 36)) + } + if s.IndexId == nil { + invalidParams.Add(request.NewErrParamRequired("IndexId")) + } + if s.IndexId != nil && len(*s.IndexId) < 36 { + invalidParams.Add(request.NewErrParamMinLen("IndexId", 36)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetApplicationId sets the ApplicationId field's value. +func (s *DeleteIndexInput) SetApplicationId(v string) *DeleteIndexInput { + s.ApplicationId = &v + return s +} + +// SetIndexId sets the IndexId field's value. +func (s *DeleteIndexInput) SetIndexId(v string) *DeleteIndexInput { + s.IndexId = &v + return s +} + +type DeleteIndexOutput 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 DeleteIndexOutput) 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 DeleteIndexOutput) GoString() string { + return s.String() +} + +type DeletePluginInput struct { + _ struct{} `type:"structure" nopayload:"true"` + + // The identifier the application attached to the Amazon Q plugin. + // + // ApplicationId is a required field + ApplicationId *string `location:"uri" locationName:"applicationId" min:"36" type:"string" required:"true"` + + // The identifier of the plugin being deleted. + // + // PluginId is a required field + PluginId *string `location:"uri" locationName:"pluginId" min:"36" 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 DeletePluginInput) 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 DeletePluginInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeletePluginInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DeletePluginInput"} + if s.ApplicationId == nil { + invalidParams.Add(request.NewErrParamRequired("ApplicationId")) + } + if s.ApplicationId != nil && len(*s.ApplicationId) < 36 { + invalidParams.Add(request.NewErrParamMinLen("ApplicationId", 36)) + } + if s.PluginId == nil { + invalidParams.Add(request.NewErrParamRequired("PluginId")) + } + if s.PluginId != nil && len(*s.PluginId) < 36 { + invalidParams.Add(request.NewErrParamMinLen("PluginId", 36)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetApplicationId sets the ApplicationId field's value. +func (s *DeletePluginInput) SetApplicationId(v string) *DeletePluginInput { + s.ApplicationId = &v + return s +} + +// SetPluginId sets the PluginId field's value. +func (s *DeletePluginInput) SetPluginId(v string) *DeletePluginInput { + s.PluginId = &v + return s +} + +type DeletePluginOutput 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 DeletePluginOutput) 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 DeletePluginOutput) GoString() string { + return s.String() +} + +type DeleteRetrieverInput struct { + _ struct{} `type:"structure" nopayload:"true"` + + // The identifier of the Amazon Q application using the retriever. + // + // ApplicationId is a required field + ApplicationId *string `location:"uri" locationName:"applicationId" min:"36" type:"string" required:"true"` + + // The identifier of the retriever being deleted. + // + // RetrieverId is a required field + RetrieverId *string `location:"uri" locationName:"retrieverId" min:"36" 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 DeleteRetrieverInput) 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 DeleteRetrieverInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteRetrieverInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DeleteRetrieverInput"} + if s.ApplicationId == nil { + invalidParams.Add(request.NewErrParamRequired("ApplicationId")) + } + if s.ApplicationId != nil && len(*s.ApplicationId) < 36 { + invalidParams.Add(request.NewErrParamMinLen("ApplicationId", 36)) + } + if s.RetrieverId == nil { + invalidParams.Add(request.NewErrParamRequired("RetrieverId")) + } + if s.RetrieverId != nil && len(*s.RetrieverId) < 36 { + invalidParams.Add(request.NewErrParamMinLen("RetrieverId", 36)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetApplicationId sets the ApplicationId field's value. +func (s *DeleteRetrieverInput) SetApplicationId(v string) *DeleteRetrieverInput { + s.ApplicationId = &v + return s +} + +// SetRetrieverId sets the RetrieverId field's value. +func (s *DeleteRetrieverInput) SetRetrieverId(v string) *DeleteRetrieverInput { + s.RetrieverId = &v + return s +} + +type DeleteRetrieverOutput 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 DeleteRetrieverOutput) 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 DeleteRetrieverOutput) GoString() string { + return s.String() +} + +type DeleteUserInput struct { + _ struct{} `type:"structure" nopayload:"true"` + + // The identifier of the application from which the user is being deleted. + // + // ApplicationId is a required field + ApplicationId *string `location:"uri" locationName:"applicationId" min:"36" type:"string" required:"true"` + + // The user email being deleted. + // + // UserId is a required field + UserId *string `location:"uri" locationName:"userId" 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 DeleteUserInput) 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 DeleteUserInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteUserInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DeleteUserInput"} + if s.ApplicationId == nil { + invalidParams.Add(request.NewErrParamRequired("ApplicationId")) + } + if s.ApplicationId != nil && len(*s.ApplicationId) < 36 { + invalidParams.Add(request.NewErrParamMinLen("ApplicationId", 36)) + } + if s.UserId == nil { + invalidParams.Add(request.NewErrParamRequired("UserId")) + } + if s.UserId != nil && len(*s.UserId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("UserId", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetApplicationId sets the ApplicationId field's value. +func (s *DeleteUserInput) SetApplicationId(v string) *DeleteUserInput { + s.ApplicationId = &v + return s +} + +// SetUserId sets the UserId field's value. +func (s *DeleteUserInput) SetUserId(v string) *DeleteUserInput { + s.UserId = &v + return s +} + +type DeleteUserOutput 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 DeleteUserOutput) 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 DeleteUserOutput) GoString() string { + return s.String() +} + +type DeleteWebExperienceInput struct { + _ struct{} `type:"structure" nopayload:"true"` + + // The identifier of the Amazon Q application linked to the Amazon Q web experience. + // + // ApplicationId is a required field + ApplicationId *string `location:"uri" locationName:"applicationId" min:"36" type:"string" required:"true"` + + // The identifier of the Amazon Q web experience being deleted. + // + // WebExperienceId is a required field + WebExperienceId *string `location:"uri" locationName:"webExperienceId" min:"36" 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 DeleteWebExperienceInput) 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 DeleteWebExperienceInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteWebExperienceInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DeleteWebExperienceInput"} + if s.ApplicationId == nil { + invalidParams.Add(request.NewErrParamRequired("ApplicationId")) + } + if s.ApplicationId != nil && len(*s.ApplicationId) < 36 { + invalidParams.Add(request.NewErrParamMinLen("ApplicationId", 36)) + } + if s.WebExperienceId == nil { + invalidParams.Add(request.NewErrParamRequired("WebExperienceId")) + } + if s.WebExperienceId != nil && len(*s.WebExperienceId) < 36 { + invalidParams.Add(request.NewErrParamMinLen("WebExperienceId", 36)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetApplicationId sets the ApplicationId field's value. +func (s *DeleteWebExperienceInput) SetApplicationId(v string) *DeleteWebExperienceInput { + s.ApplicationId = &v + return s +} + +// SetWebExperienceId sets the WebExperienceId field's value. +func (s *DeleteWebExperienceInput) SetWebExperienceId(v string) *DeleteWebExperienceInput { + s.WebExperienceId = &v + return s +} + +type DeleteWebExperienceOutput 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 DeleteWebExperienceOutput) 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 DeleteWebExperienceOutput) GoString() string { + return s.String() +} + +// A document in an Amazon Q application. +type Document struct { + _ struct{} `type:"structure"` + + // Configuration information for access permission to a document. + AccessConfiguration *AccessConfiguration `locationName:"accessConfiguration" type:"structure"` + + // Custom attributes to apply to the document for refining Amazon Q web experience + // responses. + Attributes []*DocumentAttribute `locationName:"attributes" min:"1" type:"list"` + + // The contents of the document. + Content *DocumentContent `locationName:"content" type:"structure"` + + // The file type of the document in the Blob field. + // + // If you want to index snippets or subsets of HTML documents instead of the + // entirety of the HTML documents, you add the HTML start and closing tags (content) + // around the content. + ContentType *string `locationName:"contentType" type:"string" enum:"ContentType"` + + // The configuration information for altering document metadata and content + // during the document ingestion process. + DocumentEnrichmentConfiguration *DocumentEnrichmentConfiguration `locationName:"documentEnrichmentConfiguration" type:"structure"` + + // The identifier of the document. + // + // Id is a required field + Id *string `locationName:"id" min:"1" type:"string" required:"true"` + + // The title of the document. + Title *string `locationName:"title" 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 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() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *Document) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "Document"} + if s.Attributes != nil && len(s.Attributes) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Attributes", 1)) + } + if s.Id == nil { + invalidParams.Add(request.NewErrParamRequired("Id")) + } + if s.Id != nil && len(*s.Id) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Id", 1)) + } + if s.Title != nil && len(*s.Title) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Title", 1)) + } + if s.AccessConfiguration != nil { + if err := s.AccessConfiguration.Validate(); err != nil { + invalidParams.AddNested("AccessConfiguration", err.(request.ErrInvalidParams)) + } + } + if s.Attributes != nil { + for i, v := range s.Attributes { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Attributes", i), err.(request.ErrInvalidParams)) + } + } + } + if s.Content != nil { + if err := s.Content.Validate(); err != nil { + invalidParams.AddNested("Content", err.(request.ErrInvalidParams)) + } + } + if s.DocumentEnrichmentConfiguration != nil { + if err := s.DocumentEnrichmentConfiguration.Validate(); err != nil { + invalidParams.AddNested("DocumentEnrichmentConfiguration", err.(request.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAccessConfiguration sets the AccessConfiguration field's value. +func (s *Document) SetAccessConfiguration(v *AccessConfiguration) *Document { + s.AccessConfiguration = v + return s +} + +// SetAttributes sets the Attributes field's value. +func (s *Document) SetAttributes(v []*DocumentAttribute) *Document { + s.Attributes = v + return s +} + +// SetContent sets the Content field's value. +func (s *Document) SetContent(v *DocumentContent) *Document { + s.Content = v + return s +} + +// SetContentType sets the ContentType field's value. +func (s *Document) SetContentType(v string) *Document { + s.ContentType = &v + return s +} + +// SetDocumentEnrichmentConfiguration sets the DocumentEnrichmentConfiguration field's value. +func (s *Document) SetDocumentEnrichmentConfiguration(v *DocumentEnrichmentConfiguration) *Document { + s.DocumentEnrichmentConfiguration = v + return s +} + +// SetId sets the Id field's value. +func (s *Document) SetId(v string) *Document { + s.Id = &v + return s +} + +// SetTitle sets the Title field's value. +func (s *Document) SetTitle(v string) *Document { + s.Title = &v + return s +} + +// A document attribute or metadata field. +type DocumentAttribute struct { + _ struct{} `type:"structure"` + + // The identifier for the attribute. + // + // Name is a required field + Name *string `locationName:"name" min:"1" type:"string" required:"true"` + + // The value of the attribute. + // + // Value is a required field + Value *DocumentAttributeValue `locationName:"value" 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 DocumentAttribute) 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 DocumentAttribute) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DocumentAttribute) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DocumentAttribute"} + 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.Value == nil { + invalidParams.Add(request.NewErrParamRequired("Value")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetName sets the Name field's value. +func (s *DocumentAttribute) SetName(v string) *DocumentAttribute { + s.Name = &v + return s +} + +// SetValue sets the Value field's value. +func (s *DocumentAttribute) SetValue(v *DocumentAttributeValue) *DocumentAttribute { + s.Value = v + return s +} + +// The condition used for the target document attribute or metadata field when +// ingesting documents into Amazon Q. You use this with DocumentAttributeTarget +// (https://docs.aws.amazon.com/enterpriseq/latest/APIReference/API_DocumentAttributeTarget.html) +// to apply the condition. +// +// For example, you can create the 'Department' target field and have it prefill +// department names associated with the documents based on information in the +// 'Source_URI' field. Set the condition that if the 'Source_URI' field contains +// 'financial' in its URI value, then prefill the target field 'Department' +// with the target value 'Finance' for the document. +// +// Amazon Q can't create a target field if it has not already been created as +// an index field. After you create your index field, you can create a document +// metadata field using DocumentAttributeTarget. Amazon Q then will map your +// newly created metadata field to your index field. +type DocumentAttributeCondition struct { + _ struct{} `type:"structure"` + + // The identifier of the document attribute used for the condition. + // + // For example, 'Source_URI' could be an identifier for the attribute or metadata + // field that contains source URIs associated with the documents. + // + // Amazon Q currently doesn't support _document_body as an attribute key used + // for the condition. + // + // Key is a required field + Key *string `locationName:"key" min:"1" type:"string" required:"true"` + + // The identifier of the document attribute used for the condition. + // + // For example, 'Source_URI' could be an identifier for the attribute or metadata + // field that contains source URIs associated with the documents. + // + // Amazon Kendra currently does not support _document_body as an attribute key + // used for the condition. + // + // Operator is a required field + Operator *string `locationName:"operator" type:"string" required:"true" enum:"DocumentEnrichmentConditionOperator"` + + // The value of a document attribute. You can only provide one value for a document + // attribute. + Value *DocumentAttributeValue `locationName:"value" 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 DocumentAttributeCondition) 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 DocumentAttributeCondition) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DocumentAttributeCondition) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DocumentAttributeCondition"} + if s.Key == nil { + invalidParams.Add(request.NewErrParamRequired("Key")) + } + if s.Key != nil && len(*s.Key) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Key", 1)) + } + if s.Operator == nil { + invalidParams.Add(request.NewErrParamRequired("Operator")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetKey sets the Key field's value. +func (s *DocumentAttributeCondition) SetKey(v string) *DocumentAttributeCondition { + s.Key = &v + return s +} + +// SetOperator sets the Operator field's value. +func (s *DocumentAttributeCondition) SetOperator(v string) *DocumentAttributeCondition { + s.Operator = &v + return s +} + +// SetValue sets the Value field's value. +func (s *DocumentAttributeCondition) SetValue(v *DocumentAttributeValue) *DocumentAttributeCondition { + s.Value = v + return s +} + +// Configuration information for document attributes. Document attributes are +// metadata or fields associated with your documents. For example, the company +// department name associated with each document. +// +// For more information, see Understanding document attributes (https://docs.aws.amazon.com/amazonq/latest/business-use-dg/doc-attributes.html). +type DocumentAttributeConfiguration struct { + _ struct{} `type:"structure"` + + // The name of the document attribute. + Name *string `locationName:"name" min:"1" type:"string"` + + // Information about whether the document attribute can be used by an end user + // to search for information on their web experience. + Search *string `locationName:"search" type:"string" enum:"Status"` + + // The type of document attribute. + Type *string `locationName:"type" type:"string" enum:"AttributeType"` +} + +// 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 DocumentAttributeConfiguration) 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 DocumentAttributeConfiguration) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DocumentAttributeConfiguration) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DocumentAttributeConfiguration"} + 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 *DocumentAttributeConfiguration) SetName(v string) *DocumentAttributeConfiguration { + s.Name = &v + return s +} + +// SetSearch sets the Search field's value. +func (s *DocumentAttributeConfiguration) SetSearch(v string) *DocumentAttributeConfiguration { + s.Search = &v + return s +} + +// SetType sets the Type field's value. +func (s *DocumentAttributeConfiguration) SetType(v string) *DocumentAttributeConfiguration { + s.Type = &v + return s +} + +// The target document attribute or metadata field you want to alter when ingesting +// documents into Amazon Q. +// +// For example, you can delete all customer identification numbers associated +// with the documents, stored in the document metadata field called 'Customer_ID' +// by setting the target key as 'Customer_ID' and the deletion flag to TRUE. +// This removes all customer ID values in the field 'Customer_ID'. This would +// scrub personally identifiable information from each document's metadata. +// +// Amazon Q can't create a target field if it has not already been created as +// an index field. After you create your index field, you can create a document +// metadata field using DocumentAttributeTarget (https://docs.aws.amazon.com/enterpriseq/latest/APIReference/API_DocumentAttributeTarget.html). +// Amazon Q will then map your newly created document attribute to your index +// field. +// +// You can also use this with DocumentAttributeCondition (https://docs.aws.amazon.com/enterpriseq/latest/APIReference/API_DocumentAttributeCondition.html). +type DocumentAttributeTarget struct { + _ struct{} `type:"structure"` + + // TRUE to delete the existing target value for your specified target attribute + // key. You cannot create a target value and set this to TRUE. + AttributeValueOperator *string `locationName:"attributeValueOperator" type:"string" enum:"AttributeValueOperator"` + + // The identifier of the target document attribute or metadata field. For example, + // 'Department' could be an identifier for the target attribute or metadata + // field that includes the department names associated with the documents. + // + // Key is a required field + Key *string `locationName:"key" min:"1" type:"string" required:"true"` + + // The value of a document attribute. You can only provide one value for a document + // attribute. + Value *DocumentAttributeValue `locationName:"value" 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 DocumentAttributeTarget) 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 DocumentAttributeTarget) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DocumentAttributeTarget) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DocumentAttributeTarget"} + if s.Key == nil { + invalidParams.Add(request.NewErrParamRequired("Key")) + } + if s.Key != nil && len(*s.Key) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Key", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAttributeValueOperator sets the AttributeValueOperator field's value. +func (s *DocumentAttributeTarget) SetAttributeValueOperator(v string) *DocumentAttributeTarget { + s.AttributeValueOperator = &v + return s +} + +// SetKey sets the Key field's value. +func (s *DocumentAttributeTarget) SetKey(v string) *DocumentAttributeTarget { + s.Key = &v + return s +} + +// SetValue sets the Value field's value. +func (s *DocumentAttributeTarget) SetValue(v *DocumentAttributeValue) *DocumentAttributeTarget { + s.Value = v + return s +} + +// The value of a document attribute. You can only provide one value for a document +// attribute. +type DocumentAttributeValue struct { + _ struct{} `type:"structure"` + + // A date expressed as an ISO 8601 string. + // + // It's important for the time zone to be included in the ISO 8601 date-time + // format. For example, 2012-03-25T12:30:10+01:00 is the ISO 8601 date-time + // format for March 25th 2012 at 12:30PM (plus 10 seconds) in Central European + // Time. + DateValue *time.Time `locationName:"dateValue" type:"timestamp"` + + // A long integer value. + LongValue *int64 `locationName:"longValue" type:"long"` + + // A list of strings. + StringListValue []*string `locationName:"stringListValue" type:"list"` + + // A string. + StringValue *string `locationName:"stringValue" 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 DocumentAttributeValue) 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 DocumentAttributeValue) GoString() string { + return s.String() +} + +// SetDateValue sets the DateValue field's value. +func (s *DocumentAttributeValue) SetDateValue(v time.Time) *DocumentAttributeValue { + s.DateValue = &v + return s +} + +// SetLongValue sets the LongValue field's value. +func (s *DocumentAttributeValue) SetLongValue(v int64) *DocumentAttributeValue { + s.LongValue = &v + return s +} + +// SetStringListValue sets the StringListValue field's value. +func (s *DocumentAttributeValue) SetStringListValue(v []*string) *DocumentAttributeValue { + s.StringListValue = v + return s +} + +// SetStringValue sets the StringValue field's value. +func (s *DocumentAttributeValue) SetStringValue(v string) *DocumentAttributeValue { + s.StringValue = &v + return s +} + +// The contents of a document. +type DocumentContent struct { + _ struct{} `type:"structure"` + + // The contents of the document. Documents passed to the blob parameter must + // be base64 encoded. Your code might not need to encode the document file bytes + // if you're using an Amazon Web Services SDK to call Amazon Q APIs. If you + // are calling the Amazon Q endpoint directly using REST, you must base64 encode + // the contents before sending. + // Blob is automatically base64 encoded/decoded by the SDK. + Blob []byte `locationName:"blob" type:"blob"` + + // The path to the document in an Amazon S3 bucket. + S3 *S3 `locationName:"s3" 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 DocumentContent) 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 DocumentContent) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DocumentContent) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DocumentContent"} + if s.S3 != nil { + if err := s.S3.Validate(); err != nil { + invalidParams.AddNested("S3", err.(request.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetBlob sets the Blob field's value. +func (s *DocumentContent) SetBlob(v []byte) *DocumentContent { + s.Blob = v + return s +} + +// SetS3 sets the S3 field's value. +func (s *DocumentContent) SetS3(v *S3) *DocumentContent { + s.S3 = v + return s +} + +// The details of a document within an Amazon Q index. +type DocumentDetails struct { + _ struct{} `type:"structure"` + + // The timestamp for when the document was created. + CreatedAt *time.Time `locationName:"createdAt" type:"timestamp"` + + // The identifier of the document. + DocumentId *string `locationName:"documentId" min:"1" type:"string"` + + // An error message associated with the document. + Error *ErrorDetail `locationName:"error" type:"structure"` + + // The current status of the document. + Status *string `locationName:"status" type:"string" enum:"DocumentStatus"` + + // The timestamp for when the document was last updated. + UpdatedAt *time.Time `locationName:"updatedAt" type:"timestamp"` +} + +// 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 DocumentDetails) 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 DocumentDetails) GoString() string { + return s.String() +} + +// SetCreatedAt sets the CreatedAt field's value. +func (s *DocumentDetails) SetCreatedAt(v time.Time) *DocumentDetails { + s.CreatedAt = &v + return s +} + +// SetDocumentId sets the DocumentId field's value. +func (s *DocumentDetails) SetDocumentId(v string) *DocumentDetails { + s.DocumentId = &v + return s +} + +// SetError sets the Error field's value. +func (s *DocumentDetails) SetError(v *ErrorDetail) *DocumentDetails { + s.Error = v + return s +} + +// SetStatus sets the Status field's value. +func (s *DocumentDetails) SetStatus(v string) *DocumentDetails { + s.Status = &v + return s +} + +// SetUpdatedAt sets the UpdatedAt field's value. +func (s *DocumentDetails) SetUpdatedAt(v time.Time) *DocumentDetails { + s.UpdatedAt = &v + return s +} + +// Provides the configuration information for altering document metadata and +// content during the document ingestion process. +// +// For more information, see Custom document enrichment (https://docs.aws.amazon.com/amazonq/latest/business-use-dg/custom-document-enrichment.html). +type DocumentEnrichmentConfiguration struct { + _ struct{} `type:"structure"` + + // Configuration information to alter document attributes or metadata fields + // and content when ingesting documents into Amazon Q. + InlineConfigurations []*InlineDocumentEnrichmentConfiguration `locationName:"inlineConfigurations" min:"1" type:"list"` + + // Provides the configuration information for invoking a Lambda function in + // Lambda to alter document metadata and content when ingesting documents into + // Amazon Q. + // + // You can configure your Lambda function using PreExtractionHookConfiguration + // (https://docs.aws.amazon.com/enterpriseq/latest/APIReference/API_CustomDocumentEnrichmentConfiguration.html) + // if you want to apply advanced alterations on the original or raw documents. + // + // If you want to apply advanced alterations on the Amazon Q structured documents, + // you must configure your Lambda function using PostExtractionHookConfiguration + // (https://docs.aws.amazon.com/enterpriseq/latest/APIReference/API_CustomDocumentEnrichmentConfiguration.html). + // + // You can only invoke one Lambda function. However, this function can invoke + // other functions it requires. + // + // For more information, see Custom document enrichment (https://docs.aws.amazon.com/amazonq/latest/business-use-dg/custom-document-enrichment.html). + PostExtractionHookConfiguration *HookConfiguration `locationName:"postExtractionHookConfiguration" type:"structure"` + + // Provides the configuration information for invoking a Lambda function in + // Lambda to alter document metadata and content when ingesting documents into + // Amazon Q. + // + // You can configure your Lambda function using PreExtractionHookConfiguration + // (https://docs.aws.amazon.com/enterpriseq/latest/APIReference/API_CustomDocumentEnrichmentConfiguration.html) + // if you want to apply advanced alterations on the original or raw documents. + // + // If you want to apply advanced alterations on the Amazon Q structured documents, + // you must configure your Lambda function using PostExtractionHookConfiguration + // (https://docs.aws.amazon.com/enterpriseq/latest/APIReference/API_CustomDocumentEnrichmentConfiguration.html). + // + // You can only invoke one Lambda function. However, this function can invoke + // other functions it requires. + // + // For more information, see Custom document enrichment (https://docs.aws.amazon.com/amazonq/latest/business-use-dg/custom-document-enrichment.html). + PreExtractionHookConfiguration *HookConfiguration `locationName:"preExtractionHookConfiguration" 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 DocumentEnrichmentConfiguration) 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 DocumentEnrichmentConfiguration) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DocumentEnrichmentConfiguration) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DocumentEnrichmentConfiguration"} + if s.InlineConfigurations != nil && len(s.InlineConfigurations) < 1 { + invalidParams.Add(request.NewErrParamMinLen("InlineConfigurations", 1)) + } + if s.InlineConfigurations != nil { + for i, v := range s.InlineConfigurations { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "InlineConfigurations", i), err.(request.ErrInvalidParams)) + } + } + } + if s.PostExtractionHookConfiguration != nil { + if err := s.PostExtractionHookConfiguration.Validate(); err != nil { + invalidParams.AddNested("PostExtractionHookConfiguration", err.(request.ErrInvalidParams)) + } + } + if s.PreExtractionHookConfiguration != nil { + if err := s.PreExtractionHookConfiguration.Validate(); err != nil { + invalidParams.AddNested("PreExtractionHookConfiguration", err.(request.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetInlineConfigurations sets the InlineConfigurations field's value. +func (s *DocumentEnrichmentConfiguration) SetInlineConfigurations(v []*InlineDocumentEnrichmentConfiguration) *DocumentEnrichmentConfiguration { + s.InlineConfigurations = v + return s +} + +// SetPostExtractionHookConfiguration sets the PostExtractionHookConfiguration field's value. +func (s *DocumentEnrichmentConfiguration) SetPostExtractionHookConfiguration(v *HookConfiguration) *DocumentEnrichmentConfiguration { + s.PostExtractionHookConfiguration = v + return s +} + +// SetPreExtractionHookConfiguration sets the PreExtractionHookConfiguration field's value. +func (s *DocumentEnrichmentConfiguration) SetPreExtractionHookConfiguration(v *HookConfiguration) *DocumentEnrichmentConfiguration { + s.PreExtractionHookConfiguration = v + return s +} + +// The identifier of the data source Amazon Q will generate responses from. +type EligibleDataSource struct { + _ struct{} `type:"structure"` + + // The identifier of the data source. + DataSourceId *string `locationName:"dataSourceId" min:"36" type:"string"` + + // The identifier of the index the data source is attached to. + IndexId *string `locationName:"indexId" min:"36" 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 EligibleDataSource) 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 EligibleDataSource) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *EligibleDataSource) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "EligibleDataSource"} + if s.DataSourceId != nil && len(*s.DataSourceId) < 36 { + invalidParams.Add(request.NewErrParamMinLen("DataSourceId", 36)) + } + if s.IndexId != nil && len(*s.IndexId) < 36 { + invalidParams.Add(request.NewErrParamMinLen("IndexId", 36)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetDataSourceId sets the DataSourceId field's value. +func (s *EligibleDataSource) SetDataSourceId(v string) *EligibleDataSource { + s.DataSourceId = &v + return s +} + +// SetIndexId sets the IndexId field's value. +func (s *EligibleDataSource) SetIndexId(v string) *EligibleDataSource { + s.IndexId = &v + return s +} + +// Provides the identifier of the KMS key used to encrypt data indexed by Amazon +// Q. Amazon Q doesn't support asymmetric keys. +type EncryptionConfiguration struct { + _ struct{} `type:"structure"` + + // The identifier of the KMS key. Amazon Q doesn't support asymmetric keys. + // + // KmsKeyId is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by EncryptionConfiguration's + // String and GoString methods. + KmsKeyId *string `locationName:"kmsKeyId" 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 EncryptionConfiguration) 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 EncryptionConfiguration) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *EncryptionConfiguration) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "EncryptionConfiguration"} + 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 *EncryptionConfiguration) SetKmsKeyId(v string) *EncryptionConfiguration { + s.KmsKeyId = &v + return s +} + +// Provides information about a data source sync error. +type ErrorDetail struct { + _ struct{} `type:"structure"` + + // The code associated with the data source sync error. + ErrorCode *string `locationName:"errorCode" type:"string" enum:"ErrorCode"` + + // The message explaining the data source sync error. + ErrorMessage *string `locationName:"errorMessage" 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 ErrorDetail) 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 ErrorDetail) GoString() string { + return s.String() +} + +// SetErrorCode sets the ErrorCode field's value. +func (s *ErrorDetail) SetErrorCode(v string) *ErrorDetail { + s.ErrorCode = &v + return s +} + +// SetErrorMessage sets the ErrorMessage field's value. +func (s *ErrorDetail) SetErrorMessage(v string) *ErrorDetail { + s.ErrorMessage = &v + return s +} + +// A list of documents that could not be removed from an Amazon Q index. Each +// entry contains an error message that indicates why the document couldn't +// be removed from the index. +type FailedDocument struct { + _ struct{} `type:"structure"` + + // The identifier of the Amazon Q data source connector that contains the failed + // document. + DataSourceId *string `locationName:"dataSourceId" min:"36" type:"string"` + + // An explanation for why the document couldn't be removed from the index. + Error *ErrorDetail `locationName:"error" type:"structure"` + + // The identifier of the document that couldn't be removed from the Amazon Q + // index. + Id *string `locationName:"id" 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 FailedDocument) 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 FailedDocument) GoString() string { + return s.String() +} + +// SetDataSourceId sets the DataSourceId field's value. +func (s *FailedDocument) SetDataSourceId(v string) *FailedDocument { + s.DataSourceId = &v + return s +} + +// SetError sets the Error field's value. +func (s *FailedDocument) SetError(v *ErrorDetail) *FailedDocument { + s.Error = v + return s +} + +// SetId sets the Id field's value. +func (s *FailedDocument) SetId(v string) *FailedDocument { + s.Id = &v + return s +} + +type GetApplicationInput struct { + _ struct{} `type:"structure" nopayload:"true"` + + // The identifier of the Amazon Q application. + // + // ApplicationId is a required field + ApplicationId *string `location:"uri" locationName:"applicationId" min:"36" 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 GetApplicationInput) 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 GetApplicationInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GetApplicationInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "GetApplicationInput"} + if s.ApplicationId == nil { + invalidParams.Add(request.NewErrParamRequired("ApplicationId")) + } + if s.ApplicationId != nil && len(*s.ApplicationId) < 36 { + invalidParams.Add(request.NewErrParamMinLen("ApplicationId", 36)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetApplicationId sets the ApplicationId field's value. +func (s *GetApplicationInput) SetApplicationId(v string) *GetApplicationInput { + s.ApplicationId = &v + return s +} + +type GetApplicationOutput struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the Amazon Q application. + ApplicationArn *string `locationName:"applicationArn" type:"string"` + + // The identifier of the Amazon Q application. + ApplicationId *string `locationName:"applicationId" min:"36" type:"string"` + + // Settings for whether end users can upload files directly during chat. + AttachmentsConfiguration *AppliedAttachmentsConfiguration `locationName:"attachmentsConfiguration" type:"structure"` + + // The Unix timestamp when the Amazon Q application was last updated. + CreatedAt *time.Time `locationName:"createdAt" type:"timestamp"` + + // A description for the Amazon Q application. + Description *string `locationName:"description" type:"string"` + + // The name of the Amazon Q application. + DisplayName *string `locationName:"displayName" min:"1" type:"string"` + + // The identifier of the Amazon Web Services KMS key that is used to encrypt + // your data. Amazon Q doesn't support asymmetric keys. + EncryptionConfiguration *EncryptionConfiguration `locationName:"encryptionConfiguration" type:"structure"` + + // If the Status field is set to ERROR, the ErrorMessage field contains a description + // of the error that caused the synchronization to fail. + Error *ErrorDetail `locationName:"error" type:"structure"` + + // The Amazon Resource Name (ARN) of the IAM with permissions to access your + // CloudWatch logs and metrics. + RoleArn *string `locationName:"roleArn" type:"string"` + + // The status of the Amazon Q application. + Status *string `locationName:"status" type:"string" enum:"ApplicationStatus"` + + // The Unix timestamp when the Amazon Q application was last updated. + UpdatedAt *time.Time `locationName:"updatedAt" type:"timestamp"` +} + +// 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 GetApplicationOutput) 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 GetApplicationOutput) GoString() string { + return s.String() +} + +// SetApplicationArn sets the ApplicationArn field's value. +func (s *GetApplicationOutput) SetApplicationArn(v string) *GetApplicationOutput { + s.ApplicationArn = &v + return s +} + +// SetApplicationId sets the ApplicationId field's value. +func (s *GetApplicationOutput) SetApplicationId(v string) *GetApplicationOutput { + s.ApplicationId = &v + return s +} + +// SetAttachmentsConfiguration sets the AttachmentsConfiguration field's value. +func (s *GetApplicationOutput) SetAttachmentsConfiguration(v *AppliedAttachmentsConfiguration) *GetApplicationOutput { + s.AttachmentsConfiguration = v + return s +} + +// SetCreatedAt sets the CreatedAt field's value. +func (s *GetApplicationOutput) SetCreatedAt(v time.Time) *GetApplicationOutput { + s.CreatedAt = &v + return s +} + +// SetDescription sets the Description field's value. +func (s *GetApplicationOutput) SetDescription(v string) *GetApplicationOutput { + s.Description = &v + return s +} + +// SetDisplayName sets the DisplayName field's value. +func (s *GetApplicationOutput) SetDisplayName(v string) *GetApplicationOutput { + s.DisplayName = &v + return s +} + +// SetEncryptionConfiguration sets the EncryptionConfiguration field's value. +func (s *GetApplicationOutput) SetEncryptionConfiguration(v *EncryptionConfiguration) *GetApplicationOutput { + s.EncryptionConfiguration = v + return s +} + +// SetError sets the Error field's value. +func (s *GetApplicationOutput) SetError(v *ErrorDetail) *GetApplicationOutput { + s.Error = v + return s +} + +// SetRoleArn sets the RoleArn field's value. +func (s *GetApplicationOutput) SetRoleArn(v string) *GetApplicationOutput { + s.RoleArn = &v + return s +} + +// SetStatus sets the Status field's value. +func (s *GetApplicationOutput) SetStatus(v string) *GetApplicationOutput { + s.Status = &v + return s +} + +// SetUpdatedAt sets the UpdatedAt field's value. +func (s *GetApplicationOutput) SetUpdatedAt(v time.Time) *GetApplicationOutput { + s.UpdatedAt = &v + return s +} + +type GetChatControlsConfigurationInput struct { + _ struct{} `type:"structure" nopayload:"true"` + + // The identifier of the application for which the chat controls are configured. + // + // ApplicationId is a required field + ApplicationId *string `location:"uri" locationName:"applicationId" min:"36" type:"string" required:"true"` + + // The maximum number of configured chat controls to return. + MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"` + + // If the maxResults response was incomplete because there is more data to retrieve, + // Amazon Q returns a pagination token in the response. You can use this pagination + // token to retrieve the next set of Amazon Q chat controls configured. + 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 GetChatControlsConfigurationInput) 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 GetChatControlsConfigurationInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GetChatControlsConfigurationInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "GetChatControlsConfigurationInput"} + if s.ApplicationId == nil { + invalidParams.Add(request.NewErrParamRequired("ApplicationId")) + } + if s.ApplicationId != nil && len(*s.ApplicationId) < 36 { + invalidParams.Add(request.NewErrParamMinLen("ApplicationId", 36)) + } + 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 +} + +// SetApplicationId sets the ApplicationId field's value. +func (s *GetChatControlsConfigurationInput) SetApplicationId(v string) *GetChatControlsConfigurationInput { + s.ApplicationId = &v + return s +} + +// SetMaxResults sets the MaxResults field's value. +func (s *GetChatControlsConfigurationInput) SetMaxResults(v int64) *GetChatControlsConfigurationInput { + s.MaxResults = &v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *GetChatControlsConfigurationInput) SetNextToken(v string) *GetChatControlsConfigurationInput { + s.NextToken = &v + return s +} + +type GetChatControlsConfigurationOutput struct { + _ struct{} `type:"structure"` + + // The phrases blocked from chat by your chat control configuration. + BlockedPhrases *BlockedPhrasesConfiguration `locationName:"blockedPhrases" type:"structure"` + + // If the maxResults response was incomplete because there is more data to retrieve, + // Amazon Q returns a pagination token in the response. You can use this pagination + // token to retrieve the next set of Amazon Q chat controls configured. + NextToken *string `locationName:"nextToken" min:"1" type:"string"` + + // The response scope configured for a Amazon Q application. This determines + // whether your application uses its retrieval augmented generation (RAG) system + // to generate answers only from your enterprise data, or also uses the large + // language models (LLM) knowledge to respons to end user questions in chat. + ResponseScope *string `locationName:"responseScope" type:"string" enum:"ResponseScope"` + + // The topic specific controls configured for a Amazon Q application. + TopicConfigurations []*TopicConfiguration `locationName:"topicConfigurations" 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 GetChatControlsConfigurationOutput) 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 GetChatControlsConfigurationOutput) GoString() string { + return s.String() +} + +// SetBlockedPhrases sets the BlockedPhrases field's value. +func (s *GetChatControlsConfigurationOutput) SetBlockedPhrases(v *BlockedPhrasesConfiguration) *GetChatControlsConfigurationOutput { + s.BlockedPhrases = v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *GetChatControlsConfigurationOutput) SetNextToken(v string) *GetChatControlsConfigurationOutput { + s.NextToken = &v + return s +} + +// SetResponseScope sets the ResponseScope field's value. +func (s *GetChatControlsConfigurationOutput) SetResponseScope(v string) *GetChatControlsConfigurationOutput { + s.ResponseScope = &v + return s +} + +// SetTopicConfigurations sets the TopicConfigurations field's value. +func (s *GetChatControlsConfigurationOutput) SetTopicConfigurations(v []*TopicConfiguration) *GetChatControlsConfigurationOutput { + s.TopicConfigurations = v + return s +} + +type GetDataSourceInput struct { + _ struct{} `type:"structure" nopayload:"true"` + + // The identifier of the Amazon Q application. + // + // ApplicationId is a required field + ApplicationId *string `location:"uri" locationName:"applicationId" min:"36" type:"string" required:"true"` + + // The identifier of the data source connector. + // + // DataSourceId is a required field + DataSourceId *string `location:"uri" locationName:"dataSourceId" min:"36" type:"string" required:"true"` + + // The identfier of the index used with the data source connector. + // + // IndexId is a required field + IndexId *string `location:"uri" locationName:"indexId" min:"36" 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 GetDataSourceInput) 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 GetDataSourceInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GetDataSourceInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "GetDataSourceInput"} + if s.ApplicationId == nil { + invalidParams.Add(request.NewErrParamRequired("ApplicationId")) + } + if s.ApplicationId != nil && len(*s.ApplicationId) < 36 { + invalidParams.Add(request.NewErrParamMinLen("ApplicationId", 36)) + } + if s.DataSourceId == nil { + invalidParams.Add(request.NewErrParamRequired("DataSourceId")) + } + if s.DataSourceId != nil && len(*s.DataSourceId) < 36 { + invalidParams.Add(request.NewErrParamMinLen("DataSourceId", 36)) + } + if s.IndexId == nil { + invalidParams.Add(request.NewErrParamRequired("IndexId")) + } + if s.IndexId != nil && len(*s.IndexId) < 36 { + invalidParams.Add(request.NewErrParamMinLen("IndexId", 36)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetApplicationId sets the ApplicationId field's value. +func (s *GetDataSourceInput) SetApplicationId(v string) *GetDataSourceInput { + s.ApplicationId = &v + return s +} + +// SetDataSourceId sets the DataSourceId field's value. +func (s *GetDataSourceInput) SetDataSourceId(v string) *GetDataSourceInput { + s.DataSourceId = &v + return s +} + +// SetIndexId sets the IndexId field's value. +func (s *GetDataSourceInput) SetIndexId(v string) *GetDataSourceInput { + s.IndexId = &v + return s +} + +type GetDataSourceOutput struct { + _ struct{} `type:"structure"` + + // The identifier of the Amazon Q application. + ApplicationId *string `locationName:"applicationId" min:"36" type:"string"` + + // The Unix timestamp when the data source connector was created. + CreatedAt *time.Time `locationName:"createdAt" type:"timestamp"` + + // The Amazon Resource Name (ARN) of the data source. + DataSourceArn *string `locationName:"dataSourceArn" type:"string"` + + // The identifier of the data source connector. + DataSourceId *string `locationName:"dataSourceId" min:"36" type:"string"` + + // The description for the data source connector. + Description *string `locationName:"description" type:"string"` + + // The name for the data source connector. + DisplayName *string `locationName:"displayName" min:"1" type:"string"` + + // Provides the configuration information for altering document metadata and + // content during the document ingestion process. + // + // For more information, see Custom document enrichment (https://docs.aws.amazon.com/amazonq/latest/business-use-dg/custom-document-enrichment.html). + DocumentEnrichmentConfiguration *DocumentEnrichmentConfiguration `locationName:"documentEnrichmentConfiguration" type:"structure"` + + // When the Status field value is FAILED, the ErrorMessage field contains a + // description of the error that caused the data source connector to fail. + Error *ErrorDetail `locationName:"error" type:"structure"` + + // The identifier of the index linked to the data source connector. + IndexId *string `locationName:"indexId" min:"36" type:"string"` + + // The Amazon Resource Name (ARN) of the role with permission to access the + // data source and required resources. + RoleArn *string `locationName:"roleArn" type:"string"` + + // The current status of the data source connector. When the Status field value + // is FAILED, the ErrorMessage field contains a description of the error that + // caused the data source connector to fail. + Status *string `locationName:"status" type:"string" enum:"DataSourceStatus"` + + // The schedule for Amazon Q to update the index. + SyncSchedule *string `locationName:"syncSchedule" type:"string"` + + // The type of the data source connector. For example, S3. + Type *string `locationName:"type" min:"1" type:"string"` + + // The Unix timestamp when the data source connector was last updated. + UpdatedAt *time.Time `locationName:"updatedAt" type:"timestamp"` + + // Configuration information for an Amazon VPC (Virtual Private Cloud) to connect + // to your data source. + VpcConfiguration *DataSourceVpcConfiguration `locationName:"vpcConfiguration" 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 GetDataSourceOutput) 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 GetDataSourceOutput) GoString() string { + return s.String() +} + +// SetApplicationId sets the ApplicationId field's value. +func (s *GetDataSourceOutput) SetApplicationId(v string) *GetDataSourceOutput { + s.ApplicationId = &v + return s +} + +// SetCreatedAt sets the CreatedAt field's value. +func (s *GetDataSourceOutput) SetCreatedAt(v time.Time) *GetDataSourceOutput { + s.CreatedAt = &v + return s +} + +// SetDataSourceArn sets the DataSourceArn field's value. +func (s *GetDataSourceOutput) SetDataSourceArn(v string) *GetDataSourceOutput { + s.DataSourceArn = &v + return s +} + +// SetDataSourceId sets the DataSourceId field's value. +func (s *GetDataSourceOutput) SetDataSourceId(v string) *GetDataSourceOutput { + s.DataSourceId = &v + return s +} + +// SetDescription sets the Description field's value. +func (s *GetDataSourceOutput) SetDescription(v string) *GetDataSourceOutput { + s.Description = &v + return s +} + +// SetDisplayName sets the DisplayName field's value. +func (s *GetDataSourceOutput) SetDisplayName(v string) *GetDataSourceOutput { + s.DisplayName = &v + return s +} + +// SetDocumentEnrichmentConfiguration sets the DocumentEnrichmentConfiguration field's value. +func (s *GetDataSourceOutput) SetDocumentEnrichmentConfiguration(v *DocumentEnrichmentConfiguration) *GetDataSourceOutput { + s.DocumentEnrichmentConfiguration = v + return s +} + +// SetError sets the Error field's value. +func (s *GetDataSourceOutput) SetError(v *ErrorDetail) *GetDataSourceOutput { + s.Error = v + return s +} + +// SetIndexId sets the IndexId field's value. +func (s *GetDataSourceOutput) SetIndexId(v string) *GetDataSourceOutput { + s.IndexId = &v + return s +} + +// SetRoleArn sets the RoleArn field's value. +func (s *GetDataSourceOutput) SetRoleArn(v string) *GetDataSourceOutput { + s.RoleArn = &v + return s +} + +// SetStatus sets the Status field's value. +func (s *GetDataSourceOutput) SetStatus(v string) *GetDataSourceOutput { + s.Status = &v + return s +} + +// SetSyncSchedule sets the SyncSchedule field's value. +func (s *GetDataSourceOutput) SetSyncSchedule(v string) *GetDataSourceOutput { + s.SyncSchedule = &v + return s +} + +// SetType sets the Type field's value. +func (s *GetDataSourceOutput) SetType(v string) *GetDataSourceOutput { + s.Type = &v + return s +} + +// SetUpdatedAt sets the UpdatedAt field's value. +func (s *GetDataSourceOutput) SetUpdatedAt(v time.Time) *GetDataSourceOutput { + s.UpdatedAt = &v + return s +} + +// SetVpcConfiguration sets the VpcConfiguration field's value. +func (s *GetDataSourceOutput) SetVpcConfiguration(v *DataSourceVpcConfiguration) *GetDataSourceOutput { + s.VpcConfiguration = v + return s +} + +type GetGroupInput struct { + _ struct{} `type:"structure" nopayload:"true"` + + // The identifier of the application id the group is attached to. + // + // ApplicationId is a required field + ApplicationId *string `location:"uri" locationName:"applicationId" min:"36" type:"string" required:"true"` + + // The identifier of the data source the group is attached to. + DataSourceId *string `location:"querystring" locationName:"dataSourceId" min:"36" type:"string"` + + // The name of the group. + // + // GroupName is a required field + GroupName *string `location:"uri" locationName:"groupName" min:"1" type:"string" required:"true"` + + // The identifier of the index the group is attached to. + // + // IndexId is a required field + IndexId *string `location:"uri" locationName:"indexId" min:"36" 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 GetGroupInput) 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 GetGroupInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GetGroupInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "GetGroupInput"} + if s.ApplicationId == nil { + invalidParams.Add(request.NewErrParamRequired("ApplicationId")) + } + if s.ApplicationId != nil && len(*s.ApplicationId) < 36 { + invalidParams.Add(request.NewErrParamMinLen("ApplicationId", 36)) + } + if s.DataSourceId != nil && len(*s.DataSourceId) < 36 { + invalidParams.Add(request.NewErrParamMinLen("DataSourceId", 36)) + } + if s.GroupName == nil { + invalidParams.Add(request.NewErrParamRequired("GroupName")) + } + if s.GroupName != nil && len(*s.GroupName) < 1 { + invalidParams.Add(request.NewErrParamMinLen("GroupName", 1)) + } + if s.IndexId == nil { + invalidParams.Add(request.NewErrParamRequired("IndexId")) + } + if s.IndexId != nil && len(*s.IndexId) < 36 { + invalidParams.Add(request.NewErrParamMinLen("IndexId", 36)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetApplicationId sets the ApplicationId field's value. +func (s *GetGroupInput) SetApplicationId(v string) *GetGroupInput { + s.ApplicationId = &v + return s +} + +// SetDataSourceId sets the DataSourceId field's value. +func (s *GetGroupInput) SetDataSourceId(v string) *GetGroupInput { + s.DataSourceId = &v + return s +} + +// SetGroupName sets the GroupName field's value. +func (s *GetGroupInput) SetGroupName(v string) *GetGroupInput { + s.GroupName = &v + return s +} + +// SetIndexId sets the IndexId field's value. +func (s *GetGroupInput) SetIndexId(v string) *GetGroupInput { + s.IndexId = &v + return s +} + +type GetGroupOutput struct { + _ struct{} `type:"structure"` + + // The current status of the group. + Status *GroupStatusDetail `locationName:"status" type:"structure"` + + // The status history of the group. + StatusHistory []*GroupStatusDetail `locationName:"statusHistory" 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 GetGroupOutput) 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 GetGroupOutput) GoString() string { + return s.String() +} + +// SetStatus sets the Status field's value. +func (s *GetGroupOutput) SetStatus(v *GroupStatusDetail) *GetGroupOutput { + s.Status = v + return s +} + +// SetStatusHistory sets the StatusHistory field's value. +func (s *GetGroupOutput) SetStatusHistory(v []*GroupStatusDetail) *GetGroupOutput { + s.StatusHistory = v + return s +} + +type GetIndexInput struct { + _ struct{} `type:"structure" nopayload:"true"` + + // The identifier of the Amazon Q application connected to the index. + // + // ApplicationId is a required field + ApplicationId *string `location:"uri" locationName:"applicationId" min:"36" type:"string" required:"true"` + + // The identifier of the Amazon Q index you want information on. + // + // IndexId is a required field + IndexId *string `location:"uri" locationName:"indexId" min:"36" 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 GetIndexInput) 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 GetIndexInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GetIndexInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "GetIndexInput"} + if s.ApplicationId == nil { + invalidParams.Add(request.NewErrParamRequired("ApplicationId")) + } + if s.ApplicationId != nil && len(*s.ApplicationId) < 36 { + invalidParams.Add(request.NewErrParamMinLen("ApplicationId", 36)) + } + if s.IndexId == nil { + invalidParams.Add(request.NewErrParamRequired("IndexId")) + } + if s.IndexId != nil && len(*s.IndexId) < 36 { + invalidParams.Add(request.NewErrParamMinLen("IndexId", 36)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetApplicationId sets the ApplicationId field's value. +func (s *GetIndexInput) SetApplicationId(v string) *GetIndexInput { + s.ApplicationId = &v + return s +} + +// SetIndexId sets the IndexId field's value. +func (s *GetIndexInput) SetIndexId(v string) *GetIndexInput { + s.IndexId = &v + return s +} + +type GetIndexOutput struct { + _ struct{} `type:"structure"` + + // The identifier of the Amazon Q application associated with the index. + ApplicationId *string `locationName:"applicationId" min:"36" type:"string"` + + // The storage capacity units chosen for your Amazon Q index. + CapacityConfiguration *IndexCapacityConfiguration `locationName:"capacityConfiguration" type:"structure"` + + // The Unix timestamp when the Amazon Q index was created. + CreatedAt *time.Time `locationName:"createdAt" type:"timestamp"` + + // The description for the Amazon Q index. + Description *string `locationName:"description" type:"string"` + + // The name of the Amazon Q index. + DisplayName *string `locationName:"displayName" min:"1" type:"string"` + + // Configuration information for document attributes or metadata. Document metadata + // are fields associated with your documents. For example, the company department + // name associated with each document. For more information, see Understanding + // document attributes (https://docs.aws.amazon.com/amazonq/latest/business-use-dg/doc-attributes-types.html#doc-attributes). + DocumentAttributeConfigurations []*DocumentAttributeConfiguration `locationName:"documentAttributeConfigurations" min:"1" type:"list"` + + // When the Status field value is FAILED, the ErrorMessage field contains a + // message that explains why. + Error *ErrorDetail `locationName:"error" type:"structure"` + + // The Amazon Resource Name (ARN) of the Amazon Q index. + IndexArn *string `locationName:"indexArn" type:"string"` + + // The identifier of the Amazon Q index. + IndexId *string `locationName:"indexId" min:"36" type:"string"` + + // Provides information about the number of documents indexed. + IndexStatistics *IndexStatistics `locationName:"indexStatistics" type:"structure"` + + // The current status of the index. When the value is ACTIVE, the index is ready + // for use. If the Status field value is FAILED, the ErrorMessage field contains + // a message that explains why. + Status *string `locationName:"status" type:"string" enum:"IndexStatus"` + + // The Unix timestamp when the Amazon Q index was last updated. + UpdatedAt *time.Time `locationName:"updatedAt" type:"timestamp"` +} + +// 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 GetIndexOutput) 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 GetIndexOutput) GoString() string { + return s.String() +} + +// SetApplicationId sets the ApplicationId field's value. +func (s *GetIndexOutput) SetApplicationId(v string) *GetIndexOutput { + s.ApplicationId = &v + return s +} + +// SetCapacityConfiguration sets the CapacityConfiguration field's value. +func (s *GetIndexOutput) SetCapacityConfiguration(v *IndexCapacityConfiguration) *GetIndexOutput { + s.CapacityConfiguration = v + return s +} + +// SetCreatedAt sets the CreatedAt field's value. +func (s *GetIndexOutput) SetCreatedAt(v time.Time) *GetIndexOutput { + s.CreatedAt = &v + return s +} + +// SetDescription sets the Description field's value. +func (s *GetIndexOutput) SetDescription(v string) *GetIndexOutput { + s.Description = &v + return s +} + +// SetDisplayName sets the DisplayName field's value. +func (s *GetIndexOutput) SetDisplayName(v string) *GetIndexOutput { + s.DisplayName = &v + return s +} + +// SetDocumentAttributeConfigurations sets the DocumentAttributeConfigurations field's value. +func (s *GetIndexOutput) SetDocumentAttributeConfigurations(v []*DocumentAttributeConfiguration) *GetIndexOutput { + s.DocumentAttributeConfigurations = v + return s +} + +// SetError sets the Error field's value. +func (s *GetIndexOutput) SetError(v *ErrorDetail) *GetIndexOutput { + s.Error = v + return s +} + +// SetIndexArn sets the IndexArn field's value. +func (s *GetIndexOutput) SetIndexArn(v string) *GetIndexOutput { + s.IndexArn = &v + return s +} + +// SetIndexId sets the IndexId field's value. +func (s *GetIndexOutput) SetIndexId(v string) *GetIndexOutput { + s.IndexId = &v + return s +} + +// SetIndexStatistics sets the IndexStatistics field's value. +func (s *GetIndexOutput) SetIndexStatistics(v *IndexStatistics) *GetIndexOutput { + s.IndexStatistics = v + return s +} + +// SetStatus sets the Status field's value. +func (s *GetIndexOutput) SetStatus(v string) *GetIndexOutput { + s.Status = &v + return s +} + +// SetUpdatedAt sets the UpdatedAt field's value. +func (s *GetIndexOutput) SetUpdatedAt(v time.Time) *GetIndexOutput { + s.UpdatedAt = &v + return s +} + +type GetPluginInput struct { + _ struct{} `type:"structure" nopayload:"true"` + + // The identifier of the application which contains the plugin. + // + // ApplicationId is a required field + ApplicationId *string `location:"uri" locationName:"applicationId" min:"36" type:"string" required:"true"` + + // The identifier of the plugin. + // + // PluginId is a required field + PluginId *string `location:"uri" locationName:"pluginId" min:"36" 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 GetPluginInput) 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 GetPluginInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GetPluginInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "GetPluginInput"} + if s.ApplicationId == nil { + invalidParams.Add(request.NewErrParamRequired("ApplicationId")) + } + if s.ApplicationId != nil && len(*s.ApplicationId) < 36 { + invalidParams.Add(request.NewErrParamMinLen("ApplicationId", 36)) + } + if s.PluginId == nil { + invalidParams.Add(request.NewErrParamRequired("PluginId")) + } + if s.PluginId != nil && len(*s.PluginId) < 36 { + invalidParams.Add(request.NewErrParamMinLen("PluginId", 36)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetApplicationId sets the ApplicationId field's value. +func (s *GetPluginInput) SetApplicationId(v string) *GetPluginInput { + s.ApplicationId = &v + return s +} + +// SetPluginId sets the PluginId field's value. +func (s *GetPluginInput) SetPluginId(v string) *GetPluginInput { + s.PluginId = &v + return s +} + +type GetPluginOutput struct { + _ struct{} `type:"structure"` + + // The identifier of the application which contains the plugin. + ApplicationId *string `locationName:"applicationId" min:"36" type:"string"` + + // Authentication configuration information for an Amazon Q plugin. + AuthConfiguration *PluginAuthConfiguration `locationName:"authConfiguration" type:"structure"` + + // The timestamp for when the plugin was created. + CreatedAt *time.Time `locationName:"createdAt" type:"timestamp"` + + // The name of the plugin. + DisplayName *string `locationName:"displayName" min:"1" type:"string"` + + // The Amazon Resource Name (ARN) of the role with permission to access resources + // needed to create the plugin. + PluginArn *string `locationName:"pluginArn" type:"string"` + + // The identifier of the plugin. + PluginId *string `locationName:"pluginId" min:"36" type:"string"` + + // The source URL used for plugin configuration. + ServerUrl *string `locationName:"serverUrl" min:"1" type:"string"` + + // The current state of the plugin. + State *string `locationName:"state" type:"string" enum:"PluginState"` + + // The type of the plugin. + Type *string `locationName:"type" type:"string" enum:"PluginType"` + + // The timestamp for when the plugin was last updated. + UpdatedAt *time.Time `locationName:"updatedAt" type:"timestamp"` +} + +// 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 GetPluginOutput) 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 GetPluginOutput) GoString() string { + return s.String() +} + +// SetApplicationId sets the ApplicationId field's value. +func (s *GetPluginOutput) SetApplicationId(v string) *GetPluginOutput { + s.ApplicationId = &v + return s +} + +// SetAuthConfiguration sets the AuthConfiguration field's value. +func (s *GetPluginOutput) SetAuthConfiguration(v *PluginAuthConfiguration) *GetPluginOutput { + s.AuthConfiguration = v + return s +} + +// SetCreatedAt sets the CreatedAt field's value. +func (s *GetPluginOutput) SetCreatedAt(v time.Time) *GetPluginOutput { + s.CreatedAt = &v + return s +} + +// SetDisplayName sets the DisplayName field's value. +func (s *GetPluginOutput) SetDisplayName(v string) *GetPluginOutput { + s.DisplayName = &v + return s +} + +// SetPluginArn sets the PluginArn field's value. +func (s *GetPluginOutput) SetPluginArn(v string) *GetPluginOutput { + s.PluginArn = &v + return s +} + +// SetPluginId sets the PluginId field's value. +func (s *GetPluginOutput) SetPluginId(v string) *GetPluginOutput { + s.PluginId = &v + return s +} + +// SetServerUrl sets the ServerUrl field's value. +func (s *GetPluginOutput) SetServerUrl(v string) *GetPluginOutput { + s.ServerUrl = &v + return s +} + +// SetState sets the State field's value. +func (s *GetPluginOutput) SetState(v string) *GetPluginOutput { + s.State = &v + return s +} + +// SetType sets the Type field's value. +func (s *GetPluginOutput) SetType(v string) *GetPluginOutput { + s.Type = &v + return s +} + +// SetUpdatedAt sets the UpdatedAt field's value. +func (s *GetPluginOutput) SetUpdatedAt(v time.Time) *GetPluginOutput { + s.UpdatedAt = &v + return s +} + +type GetRetrieverInput struct { + _ struct{} `type:"structure" nopayload:"true"` + + // The identifier of the Amazon Q application using the retriever. + // + // ApplicationId is a required field + ApplicationId *string `location:"uri" locationName:"applicationId" min:"36" type:"string" required:"true"` + + // The identifier of the retriever. + // + // RetrieverId is a required field + RetrieverId *string `location:"uri" locationName:"retrieverId" min:"36" 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 GetRetrieverInput) 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 GetRetrieverInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GetRetrieverInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "GetRetrieverInput"} + if s.ApplicationId == nil { + invalidParams.Add(request.NewErrParamRequired("ApplicationId")) + } + if s.ApplicationId != nil && len(*s.ApplicationId) < 36 { + invalidParams.Add(request.NewErrParamMinLen("ApplicationId", 36)) + } + if s.RetrieverId == nil { + invalidParams.Add(request.NewErrParamRequired("RetrieverId")) + } + if s.RetrieverId != nil && len(*s.RetrieverId) < 36 { + invalidParams.Add(request.NewErrParamMinLen("RetrieverId", 36)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetApplicationId sets the ApplicationId field's value. +func (s *GetRetrieverInput) SetApplicationId(v string) *GetRetrieverInput { + s.ApplicationId = &v + return s +} + +// SetRetrieverId sets the RetrieverId field's value. +func (s *GetRetrieverInput) SetRetrieverId(v string) *GetRetrieverInput { + s.RetrieverId = &v + return s +} + +type GetRetrieverOutput struct { + _ struct{} `type:"structure"` + + // The identifier of the Amazon Q application using the retriever. + ApplicationId *string `locationName:"applicationId" min:"36" type:"string"` + + // Provides information on how the retriever used for your Amazon Q application + // is configured. + Configuration *RetrieverConfiguration `locationName:"configuration" type:"structure"` + + // The Unix timestamp when the retriever was created. + CreatedAt *time.Time `locationName:"createdAt" type:"timestamp"` + + // The name of the retriever. + DisplayName *string `locationName:"displayName" min:"1" type:"string"` + + // The Amazon Resource Name (ARN) of the IAM role associated with the retriever. + RetrieverArn *string `locationName:"retrieverArn" type:"string"` + + // The identifier of the retriever. + RetrieverId *string `locationName:"retrieverId" min:"36" type:"string"` + + // The Amazon Resource Name (ARN) of the role with the permission to access + // the retriever and required resources. + RoleArn *string `locationName:"roleArn" type:"string"` + + // The status of the retriever. + Status *string `locationName:"status" type:"string" enum:"RetrieverStatus"` + + // The type of the retriever. + Type *string `locationName:"type" type:"string" enum:"RetrieverType"` + + // The Unix timestamp when the retriever was last updated. + UpdatedAt *time.Time `locationName:"updatedAt" type:"timestamp"` +} + +// 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 GetRetrieverOutput) 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 GetRetrieverOutput) GoString() string { + return s.String() +} + +// SetApplicationId sets the ApplicationId field's value. +func (s *GetRetrieverOutput) SetApplicationId(v string) *GetRetrieverOutput { + s.ApplicationId = &v + return s +} + +// SetConfiguration sets the Configuration field's value. +func (s *GetRetrieverOutput) SetConfiguration(v *RetrieverConfiguration) *GetRetrieverOutput { + s.Configuration = v + return s +} + +// SetCreatedAt sets the CreatedAt field's value. +func (s *GetRetrieverOutput) SetCreatedAt(v time.Time) *GetRetrieverOutput { + s.CreatedAt = &v + return s +} + +// SetDisplayName sets the DisplayName field's value. +func (s *GetRetrieverOutput) SetDisplayName(v string) *GetRetrieverOutput { + s.DisplayName = &v + return s +} + +// SetRetrieverArn sets the RetrieverArn field's value. +func (s *GetRetrieverOutput) SetRetrieverArn(v string) *GetRetrieverOutput { + s.RetrieverArn = &v + return s +} + +// SetRetrieverId sets the RetrieverId field's value. +func (s *GetRetrieverOutput) SetRetrieverId(v string) *GetRetrieverOutput { + s.RetrieverId = &v + return s +} + +// SetRoleArn sets the RoleArn field's value. +func (s *GetRetrieverOutput) SetRoleArn(v string) *GetRetrieverOutput { + s.RoleArn = &v + return s +} + +// SetStatus sets the Status field's value. +func (s *GetRetrieverOutput) SetStatus(v string) *GetRetrieverOutput { + s.Status = &v + return s +} + +// SetType sets the Type field's value. +func (s *GetRetrieverOutput) SetType(v string) *GetRetrieverOutput { + s.Type = &v + return s +} + +// SetUpdatedAt sets the UpdatedAt field's value. +func (s *GetRetrieverOutput) SetUpdatedAt(v time.Time) *GetRetrieverOutput { + s.UpdatedAt = &v + return s +} + +type GetUserInput struct { + _ struct{} `type:"structure" nopayload:"true"` + + // The identifier of the application connected to the user. + // + // ApplicationId is a required field + ApplicationId *string `location:"uri" locationName:"applicationId" min:"36" type:"string" required:"true"` + + // The user email address attached to the user. + // + // UserId is a required field + UserId *string `location:"uri" locationName:"userId" 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 GetUserInput) 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 GetUserInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GetUserInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "GetUserInput"} + if s.ApplicationId == nil { + invalidParams.Add(request.NewErrParamRequired("ApplicationId")) + } + if s.ApplicationId != nil && len(*s.ApplicationId) < 36 { + invalidParams.Add(request.NewErrParamMinLen("ApplicationId", 36)) + } + if s.UserId == nil { + invalidParams.Add(request.NewErrParamRequired("UserId")) + } + if s.UserId != nil && len(*s.UserId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("UserId", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetApplicationId sets the ApplicationId field's value. +func (s *GetUserInput) SetApplicationId(v string) *GetUserInput { + s.ApplicationId = &v + return s +} + +// SetUserId sets the UserId field's value. +func (s *GetUserInput) SetUserId(v string) *GetUserInput { + s.UserId = &v + return s +} + +type GetUserOutput struct { + _ struct{} `type:"structure"` + + // A list of user aliases attached to a user. + UserAliases []*UserAlias `locationName:"userAliases" 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 GetUserOutput) 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 GetUserOutput) GoString() string { + return s.String() +} + +// SetUserAliases sets the UserAliases field's value. +func (s *GetUserOutput) SetUserAliases(v []*UserAlias) *GetUserOutput { + s.UserAliases = v + return s +} + +type GetWebExperienceInput struct { + _ struct{} `type:"structure" nopayload:"true"` + + // The identifier of the Amazon Q application linked to the web experience. + // + // ApplicationId is a required field + ApplicationId *string `location:"uri" locationName:"applicationId" min:"36" type:"string" required:"true"` + + // The identifier of the Amazon Q web experience. + // + // WebExperienceId is a required field + WebExperienceId *string `location:"uri" locationName:"webExperienceId" min:"36" 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 GetWebExperienceInput) 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 GetWebExperienceInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GetWebExperienceInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "GetWebExperienceInput"} + if s.ApplicationId == nil { + invalidParams.Add(request.NewErrParamRequired("ApplicationId")) + } + if s.ApplicationId != nil && len(*s.ApplicationId) < 36 { + invalidParams.Add(request.NewErrParamMinLen("ApplicationId", 36)) + } + if s.WebExperienceId == nil { + invalidParams.Add(request.NewErrParamRequired("WebExperienceId")) + } + if s.WebExperienceId != nil && len(*s.WebExperienceId) < 36 { + invalidParams.Add(request.NewErrParamMinLen("WebExperienceId", 36)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetApplicationId sets the ApplicationId field's value. +func (s *GetWebExperienceInput) SetApplicationId(v string) *GetWebExperienceInput { + s.ApplicationId = &v + return s +} + +// SetWebExperienceId sets the WebExperienceId field's value. +func (s *GetWebExperienceInput) SetWebExperienceId(v string) *GetWebExperienceInput { + s.WebExperienceId = &v + return s +} + +type GetWebExperienceOutput struct { + _ struct{} `type:"structure"` + + // The identifier of the Amazon Q application linked to the web experience. + ApplicationId *string `locationName:"applicationId" min:"36" type:"string"` + + // The authentication configuration information for your Amazon Q web experience. + AuthenticationConfiguration *WebExperienceAuthConfiguration `locationName:"authenticationConfiguration" type:"structure"` + + // The Unix timestamp when the retriever was created. + CreatedAt *time.Time `locationName:"createdAt" type:"timestamp"` + + // The endpoint of your Amazon Q web experience. + DefaultEndpoint *string `locationName:"defaultEndpoint" min:"1" type:"string"` + + // When the Status field value is FAILED, the ErrorMessage field contains a + // description of the error that caused the data source connector to fail. + Error *ErrorDetail `locationName:"error" type:"structure"` + + // Determines whether sample prompts are enabled in the web experience for an + // end user. + SamplePromptsControlMode *string `locationName:"samplePromptsControlMode" type:"string" enum:"WebExperienceSamplePromptsControlMode"` + + // The current status of the Amazon Q web experience. When the Status field + // value is FAILED, the ErrorMessage field contains a description of the error + // that caused the data source connector to fail. + Status *string `locationName:"status" type:"string" enum:"WebExperienceStatus"` + + // The subtitle for your Amazon Q web experience. + Subtitle *string `locationName:"subtitle" type:"string"` + + // The title for your Amazon Q web experience. + Title *string `locationName:"title" type:"string"` + + // The Unix timestamp when the data source connector was last updated. + UpdatedAt *time.Time `locationName:"updatedAt" type:"timestamp"` + + // The Amazon Resource Name (ARN) of the role with the permission to access + // the Amazon Q web experience and required resources. + WebExperienceArn *string `locationName:"webExperienceArn" type:"string"` + + // The identifier of the Amazon Q web experience. + WebExperienceId *string `locationName:"webExperienceId" min:"36" type:"string"` + + // The customized welcome message for end users of an Amazon Q web experience. + WelcomeMessage *string `locationName:"welcomeMessage" 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 GetWebExperienceOutput) 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 GetWebExperienceOutput) GoString() string { + return s.String() +} + +// SetApplicationId sets the ApplicationId field's value. +func (s *GetWebExperienceOutput) SetApplicationId(v string) *GetWebExperienceOutput { + s.ApplicationId = &v + return s +} + +// SetAuthenticationConfiguration sets the AuthenticationConfiguration field's value. +func (s *GetWebExperienceOutput) SetAuthenticationConfiguration(v *WebExperienceAuthConfiguration) *GetWebExperienceOutput { + s.AuthenticationConfiguration = v + return s +} + +// SetCreatedAt sets the CreatedAt field's value. +func (s *GetWebExperienceOutput) SetCreatedAt(v time.Time) *GetWebExperienceOutput { + s.CreatedAt = &v + return s +} + +// SetDefaultEndpoint sets the DefaultEndpoint field's value. +func (s *GetWebExperienceOutput) SetDefaultEndpoint(v string) *GetWebExperienceOutput { + s.DefaultEndpoint = &v + return s +} + +// SetError sets the Error field's value. +func (s *GetWebExperienceOutput) SetError(v *ErrorDetail) *GetWebExperienceOutput { + s.Error = v + return s +} + +// SetSamplePromptsControlMode sets the SamplePromptsControlMode field's value. +func (s *GetWebExperienceOutput) SetSamplePromptsControlMode(v string) *GetWebExperienceOutput { + s.SamplePromptsControlMode = &v + return s +} + +// SetStatus sets the Status field's value. +func (s *GetWebExperienceOutput) SetStatus(v string) *GetWebExperienceOutput { + s.Status = &v + return s +} + +// SetSubtitle sets the Subtitle field's value. +func (s *GetWebExperienceOutput) SetSubtitle(v string) *GetWebExperienceOutput { + s.Subtitle = &v + return s +} + +// SetTitle sets the Title field's value. +func (s *GetWebExperienceOutput) SetTitle(v string) *GetWebExperienceOutput { + s.Title = &v + return s +} + +// SetUpdatedAt sets the UpdatedAt field's value. +func (s *GetWebExperienceOutput) SetUpdatedAt(v time.Time) *GetWebExperienceOutput { + s.UpdatedAt = &v + return s +} + +// SetWebExperienceArn sets the WebExperienceArn field's value. +func (s *GetWebExperienceOutput) SetWebExperienceArn(v string) *GetWebExperienceOutput { + s.WebExperienceArn = &v + return s +} + +// SetWebExperienceId sets the WebExperienceId field's value. +func (s *GetWebExperienceOutput) SetWebExperienceId(v string) *GetWebExperienceOutput { + s.WebExperienceId = &v + return s +} + +// SetWelcomeMessage sets the WelcomeMessage field's value. +func (s *GetWebExperienceOutput) SetWelcomeMessage(v string) *GetWebExperienceOutput { + s.WelcomeMessage = &v + return s +} + +// A list of users or sub groups that belong to a group. This is for generating +// Amazon Q chat results only from document a user has access to. +type GroupMembers struct { + _ struct{} `type:"structure"` + + // A list of sub groups that belong to a group. For example, the sub groups + // "Research", "Engineering", and "Sales and Marketing" all belong to the group + // "Company". + MemberGroups []*MemberGroup `locationName:"memberGroups" min:"1" type:"list"` + + // A list of users that belong to a group. For example, a list of interns all + // belong to the "Interns" group. + MemberUsers []*MemberUser `locationName:"memberUsers" 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 GroupMembers) 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 GroupMembers) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GroupMembers) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "GroupMembers"} + if s.MemberGroups != nil && len(s.MemberGroups) < 1 { + invalidParams.Add(request.NewErrParamMinLen("MemberGroups", 1)) + } + if s.MemberUsers != nil && len(s.MemberUsers) < 1 { + invalidParams.Add(request.NewErrParamMinLen("MemberUsers", 1)) + } + if s.MemberGroups != nil { + for i, v := range s.MemberGroups { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "MemberGroups", i), err.(request.ErrInvalidParams)) + } + } + } + if s.MemberUsers != nil { + for i, v := range s.MemberUsers { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "MemberUsers", i), err.(request.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetMemberGroups sets the MemberGroups field's value. +func (s *GroupMembers) SetMemberGroups(v []*MemberGroup) *GroupMembers { + s.MemberGroups = v + return s +} + +// SetMemberUsers sets the MemberUsers field's value. +func (s *GroupMembers) SetMemberUsers(v []*MemberUser) *GroupMembers { + s.MemberUsers = v + return s +} + +// Provides the details of a group's status. +type GroupStatusDetail struct { + _ struct{} `type:"structure"` + + // The details of an error associated a group status. + ErrorDetail *ErrorDetail `locationName:"errorDetail" type:"structure"` + + // The Unix timestamp when the Amazon Q application was last updated. + LastUpdatedAt *time.Time `locationName:"lastUpdatedAt" type:"timestamp"` + + // The status of a group. + Status *string `locationName:"status" type:"string" enum:"GroupStatus"` +} + +// 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 GroupStatusDetail) 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 GroupStatusDetail) GoString() string { + return s.String() +} + +// SetErrorDetail sets the ErrorDetail field's value. +func (s *GroupStatusDetail) SetErrorDetail(v *ErrorDetail) *GroupStatusDetail { + s.ErrorDetail = v + return s +} + +// SetLastUpdatedAt sets the LastUpdatedAt field's value. +func (s *GroupStatusDetail) SetLastUpdatedAt(v time.Time) *GroupStatusDetail { + s.LastUpdatedAt = &v + return s +} + +// SetStatus sets the Status field's value. +func (s *GroupStatusDetail) SetStatus(v string) *GroupStatusDetail { + s.Status = &v + return s +} + +// Summary information for groups. +type GroupSummary struct { + _ struct{} `type:"structure"` + + // The name of the group the summary information is for. + GroupName *string `locationName:"groupName" 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 GroupSummary) 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 GroupSummary) GoString() string { + return s.String() +} + +// SetGroupName sets the GroupName field's value. +func (s *GroupSummary) SetGroupName(v string) *GroupSummary { + s.GroupName = &v + return s +} + +// Provides the configuration information for invoking a Lambda function in +// Lambda to alter document metadata and content when ingesting documents into +// Amazon Q. +// +// You can configure your Lambda function using PreExtractionHookConfiguration +// (https://docs.aws.amazon.com/enterpriseq/latest/APIReference/API_CustomDocumentEnrichmentConfiguration.html) +// if you want to apply advanced alterations on the original or raw documents. +// +// If you want to apply advanced alterations on the Amazon Q structured documents, +// you must configure your Lambda function using PostExtractionHookConfiguration +// (https://docs.aws.amazon.com/enterpriseq/latest/APIReference/API_CustomDocumentEnrichmentConfiguration.html). +// +// You can only invoke one Lambda function. However, this function can invoke +// other functions it requires. +// +// For more information, see Custom document enrichment (https://docs.aws.amazon.com/amazonq/latest/business-use-dg/custom-document-enrichment.html). +type HookConfiguration struct { + _ struct{} `type:"structure"` + + // The condition used for when a Lambda function should be invoked. + // + // For example, you can specify a condition that if there are empty date-time + // values, then Amazon Q should invoke a function that inserts the current date-time. + InvocationCondition *DocumentAttributeCondition `locationName:"invocationCondition" type:"structure"` + + // The Amazon Resource Name (ARN) of a role with permission to run a Lambda + // function during ingestion. For more information, see IAM roles for Custom + // Document Enrichment (CDE) (https://docs.aws.amazon.com/amazonq/latest/business-use-dg/iam-roles.html#cde-iam-role). + LambdaArn *string `locationName:"lambdaArn" min:"1" type:"string"` + + // The Amazon Resource Name (ARN) of a role with permission to run PreExtractionHookConfiguration + // and PostExtractionHookConfiguration for altering document metadata and content + // during the document ingestion process. + RoleArn *string `locationName:"roleArn" type:"string"` + + // Stores the original, raw documents or the structured, parsed documents before + // and after altering them. For more information, see Data contracts for Lambda + // functions (https://docs.aws.amazon.com/amazonq/latest/business-use-dg/cde-lambda-operations.html#cde-lambda-operations-data-contracts). + S3BucketName *string `locationName:"s3BucketName" 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 HookConfiguration) 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 HookConfiguration) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *HookConfiguration) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "HookConfiguration"} + if s.LambdaArn != nil && len(*s.LambdaArn) < 1 { + invalidParams.Add(request.NewErrParamMinLen("LambdaArn", 1)) + } + if s.S3BucketName != nil && len(*s.S3BucketName) < 1 { + invalidParams.Add(request.NewErrParamMinLen("S3BucketName", 1)) + } + if s.InvocationCondition != nil { + if err := s.InvocationCondition.Validate(); err != nil { + invalidParams.AddNested("InvocationCondition", err.(request.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetInvocationCondition sets the InvocationCondition field's value. +func (s *HookConfiguration) SetInvocationCondition(v *DocumentAttributeCondition) *HookConfiguration { + s.InvocationCondition = v + return s +} + +// SetLambdaArn sets the LambdaArn field's value. +func (s *HookConfiguration) SetLambdaArn(v string) *HookConfiguration { + s.LambdaArn = &v + return s +} + +// SetRoleArn sets the RoleArn field's value. +func (s *HookConfiguration) SetRoleArn(v string) *HookConfiguration { + s.RoleArn = &v + return s +} + +// SetS3BucketName sets the S3BucketName field's value. +func (s *HookConfiguration) SetS3BucketName(v string) *HookConfiguration { + s.S3BucketName = &v + return s +} + +// Summary information for your Amazon Q index. +type Index struct { + _ struct{} `type:"structure"` + + // The Unix timestamp when the index was created. + CreatedAt *time.Time `locationName:"createdAt" type:"timestamp"` + + // The name of the index. + DisplayName *string `locationName:"displayName" min:"1" type:"string"` + + // The identifier for the index. + IndexId *string `locationName:"indexId" min:"36" type:"string"` + + // The current status of the index. When the status is ACTIVE, the index is + // ready. + Status *string `locationName:"status" type:"string" enum:"IndexStatus"` + + // The Unix timestamp when the index was last updated. + UpdatedAt *time.Time `locationName:"updatedAt" type:"timestamp"` +} + +// 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 Index) 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 Index) GoString() string { + return s.String() +} + +// SetCreatedAt sets the CreatedAt field's value. +func (s *Index) SetCreatedAt(v time.Time) *Index { + s.CreatedAt = &v + return s +} + +// SetDisplayName sets the DisplayName field's value. +func (s *Index) SetDisplayName(v string) *Index { + s.DisplayName = &v + return s +} + +// SetIndexId sets the IndexId field's value. +func (s *Index) SetIndexId(v string) *Index { + s.IndexId = &v + return s +} + +// SetStatus sets the Status field's value. +func (s *Index) SetStatus(v string) *Index { + s.Status = &v + return s +} + +// SetUpdatedAt sets the UpdatedAt field's value. +func (s *Index) SetUpdatedAt(v time.Time) *Index { + s.UpdatedAt = &v + return s +} + +// Provides information about index capacity configuration. +type IndexCapacityConfiguration struct { + _ struct{} `type:"structure"` + + // The number of storage units configured for an Amazon Q index. + Units *int64 `locationName:"units" 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 IndexCapacityConfiguration) 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 IndexCapacityConfiguration) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *IndexCapacityConfiguration) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "IndexCapacityConfiguration"} + if s.Units != nil && *s.Units < 1 { + invalidParams.Add(request.NewErrParamMinValue("Units", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetUnits sets the Units field's value. +func (s *IndexCapacityConfiguration) SetUnits(v int64) *IndexCapacityConfiguration { + s.Units = &v + return s +} + +// Provides information about the number of documents in an index. +type IndexStatistics struct { + _ struct{} `type:"structure"` + + // The number of documents indexed. + TextDocumentStatistics *TextDocumentStatistics `locationName:"textDocumentStatistics" 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 IndexStatistics) 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 IndexStatistics) GoString() string { + return s.String() +} + +// SetTextDocumentStatistics sets the TextDocumentStatistics field's value. +func (s *IndexStatistics) SetTextDocumentStatistics(v *TextDocumentStatistics) *IndexStatistics { + s.TextDocumentStatistics = v + return s +} + +// Provides the configuration information for applying basic logic to alter +// document metadata and content when ingesting documents into Amazon Q. +// +// To apply advanced logic, to go beyond what you can do with basic logic, see +// HookConfiguration (https://docs.aws.amazon.com/enterpriseq/latest/APIReference/API_HookConfiguration.html). +// +// For more information, see Custom document enrichment (https://docs.aws.amazon.com/amazonq/latest/business-use-dg/custom-document-enrichment.html). +type InlineDocumentEnrichmentConfiguration struct { + _ struct{} `type:"structure"` + + // The condition used for the target document attribute or metadata field when + // ingesting documents into Amazon Q. You use this with DocumentAttributeTarget + // (https://docs.aws.amazon.com/enterpriseq/latest/APIReference/API_DocumentAttributeTarget.html) + // to apply the condition. + // + // For example, you can create the 'Department' target field and have it prefill + // department names associated with the documents based on information in the + // 'Source_URI' field. Set the condition that if the 'Source_URI' field contains + // 'financial' in its URI value, then prefill the target field 'Department' + // with the target value 'Finance' for the document. + // + // Amazon Q can't create a target field if it has not already been created as + // an index field. After you create your index field, you can create a document + // metadata field using DocumentAttributeTarget. Amazon Q then will map your + // newly created metadata field to your index field. + Condition *DocumentAttributeCondition `locationName:"condition" type:"structure"` + + // TRUE to delete content if the condition used for the target attribute is + // met. + DocumentContentOperator *string `locationName:"documentContentOperator" type:"string" enum:"DocumentContentOperator"` + + // The target document attribute or metadata field you want to alter when ingesting + // documents into Amazon Q. + // + // For example, you can delete all customer identification numbers associated + // with the documents, stored in the document metadata field called 'Customer_ID' + // by setting the target key as 'Customer_ID' and the deletion flag to TRUE. + // This removes all customer ID values in the field 'Customer_ID'. This would + // scrub personally identifiable information from each document's metadata. + // + // Amazon Q can't create a target field if it has not already been created as + // an index field. After you create your index field, you can create a document + // metadata field using DocumentAttributeTarget (https://docs.aws.amazon.com/enterpriseq/latest/APIReference/API_DocumentAttributeTarget.html). + // Amazon Q will then map your newly created document attribute to your index + // field. + // + // You can also use this with DocumentAttributeCondition (https://docs.aws.amazon.com/enterpriseq/latest/APIReference/API_DocumentAttributeCondition.html). + Target *DocumentAttributeTarget `locationName:"target" 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 InlineDocumentEnrichmentConfiguration) 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 InlineDocumentEnrichmentConfiguration) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *InlineDocumentEnrichmentConfiguration) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "InlineDocumentEnrichmentConfiguration"} + if s.Condition != nil { + if err := s.Condition.Validate(); err != nil { + invalidParams.AddNested("Condition", err.(request.ErrInvalidParams)) + } + } + if s.Target != nil { + if err := s.Target.Validate(); err != nil { + invalidParams.AddNested("Target", err.(request.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetCondition sets the Condition field's value. +func (s *InlineDocumentEnrichmentConfiguration) SetCondition(v *DocumentAttributeCondition) *InlineDocumentEnrichmentConfiguration { + s.Condition = v + return s +} + +// SetDocumentContentOperator sets the DocumentContentOperator field's value. +func (s *InlineDocumentEnrichmentConfiguration) SetDocumentContentOperator(v string) *InlineDocumentEnrichmentConfiguration { + s.DocumentContentOperator = &v + return s +} + +// SetTarget sets the Target field's value. +func (s *InlineDocumentEnrichmentConfiguration) SetTarget(v *DocumentAttributeTarget) *InlineDocumentEnrichmentConfiguration { + s.Target = v + return s +} + +// An issue occurred with the internal server used for your Amazon Q service. +// Wait some minutes and try again, or contact Support (http://aws.amazon.com/contact-us/) +// for help. +type InternalServerException struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + + Message_ *string `locationName:"message" 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 InternalServerException) 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 InternalServerException) GoString() string { + return s.String() +} + +func newErrorInternalServerException(v protocol.ResponseMetadata) error { + return &InternalServerException{ + RespMetadata: v, + } +} + +// Code returns the exception type name. +func (s *InternalServerException) Code() string { + return "InternalServerException" +} + +// Message returns the exception's message. +func (s *InternalServerException) Message() string { + if s.Message_ != nil { + return *s.Message_ + } + return "" +} + +// OrigErr always returns nil, satisfies awserr.Error interface. +func (s *InternalServerException) OrigErr() error { + return nil +} + +func (s *InternalServerException) 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 *InternalServerException) StatusCode() int { + return s.RespMetadata.StatusCode +} + +// RequestID returns the service's response RequestID for request. +func (s *InternalServerException) RequestID() string { + return s.RespMetadata.RequestID +} + +// Stores an Amazon Kendra index as a retriever. +type KendraIndexConfiguration struct { + _ struct{} `type:"structure"` + + // The identifier of the Amazon Kendra index. + // + // IndexId is a required field + IndexId *string `locationName:"indexId" min:"36" 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 KendraIndexConfiguration) 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 KendraIndexConfiguration) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *KendraIndexConfiguration) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "KendraIndexConfiguration"} + if s.IndexId == nil { + invalidParams.Add(request.NewErrParamRequired("IndexId")) + } + if s.IndexId != nil && len(*s.IndexId) < 36 { + invalidParams.Add(request.NewErrParamMinLen("IndexId", 36)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetIndexId sets the IndexId field's value. +func (s *KendraIndexConfiguration) SetIndexId(v string) *KendraIndexConfiguration { + s.IndexId = &v + return s +} + +// You don't have permissions to perform the action because your license is +// inactive. Ask your admin to activate your license and try again after your +// licence is active. +type LicenseNotFoundException struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + + Message_ *string `locationName:"message" 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 LicenseNotFoundException) 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 LicenseNotFoundException) GoString() string { + return s.String() +} + +func newErrorLicenseNotFoundException(v protocol.ResponseMetadata) error { + return &LicenseNotFoundException{ + RespMetadata: v, + } +} + +// Code returns the exception type name. +func (s *LicenseNotFoundException) Code() string { + return "LicenseNotFoundException" +} + +// Message returns the exception's message. +func (s *LicenseNotFoundException) Message() string { + if s.Message_ != nil { + return *s.Message_ + } + return "" +} + +// OrigErr always returns nil, satisfies awserr.Error interface. +func (s *LicenseNotFoundException) OrigErr() error { + return nil +} + +func (s *LicenseNotFoundException) 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 *LicenseNotFoundException) StatusCode() int { + return s.RespMetadata.StatusCode +} + +// RequestID returns the service's response RequestID for request. +func (s *LicenseNotFoundException) RequestID() string { + return s.RespMetadata.RequestID +} + +type ListApplicationsInput struct { + _ struct{} `type:"structure" nopayload:"true"` + + // The maximum number of Amazon Q applications to return. + MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"` + + // If the maxResults response was incomplete because there is more data to retrieve, + // Amazon Q returns a pagination token in the response. You can use this pagination + // token to retrieve the next set of Amazon Q applications. + 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 ListApplicationsInput) 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 ListApplicationsInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListApplicationsInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ListApplicationsInput"} + 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 *ListApplicationsInput) SetMaxResults(v int64) *ListApplicationsInput { + s.MaxResults = &v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *ListApplicationsInput) SetNextToken(v string) *ListApplicationsInput { + s.NextToken = &v + return s +} + +type ListApplicationsOutput struct { + _ struct{} `type:"structure"` + + // An array of summary information on the configuration of one or more Amazon + // Q applications. + Applications []*Application `locationName:"applications" type:"list"` + + // If the response is truncated, Amazon Q returns this token. You can use this + // token in a subsequent request to retrieve the next set of applications. + 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 ListApplicationsOutput) 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 ListApplicationsOutput) GoString() string { + return s.String() +} + +// SetApplications sets the Applications field's value. +func (s *ListApplicationsOutput) SetApplications(v []*Application) *ListApplicationsOutput { + s.Applications = v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *ListApplicationsOutput) SetNextToken(v string) *ListApplicationsOutput { + s.NextToken = &v + return s +} + +type ListConversationsInput struct { + _ struct{} `type:"structure" nopayload:"true"` + + // The identifier of the Amazon Q application. + // + // ApplicationId is a required field + ApplicationId *string `location:"uri" locationName:"applicationId" min:"36" type:"string" required:"true"` + + // The maximum number of Amazon Q conversations to return. + MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"` + + // If the maxResults response was incomplete because there is more data to retrieve, + // Amazon Q returns a pagination token in the response. You can use this pagination + // token to retrieve the next set of Amazon Q conversations. + NextToken *string `location:"querystring" locationName:"nextToken" min:"1" type:"string"` + + // The identifier of the user involved in the Amazon Q web experience conversation. + // + // UserId is a required field + UserId *string `location:"querystring" locationName:"userId" 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 ListConversationsInput) 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 ListConversationsInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListConversationsInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ListConversationsInput"} + if s.ApplicationId == nil { + invalidParams.Add(request.NewErrParamRequired("ApplicationId")) + } + if s.ApplicationId != nil && len(*s.ApplicationId) < 36 { + invalidParams.Add(request.NewErrParamMinLen("ApplicationId", 36)) + } + 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.UserId == nil { + invalidParams.Add(request.NewErrParamRequired("UserId")) + } + if s.UserId != nil && len(*s.UserId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("UserId", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetApplicationId sets the ApplicationId field's value. +func (s *ListConversationsInput) SetApplicationId(v string) *ListConversationsInput { + s.ApplicationId = &v + return s +} + +// SetMaxResults sets the MaxResults field's value. +func (s *ListConversationsInput) SetMaxResults(v int64) *ListConversationsInput { + s.MaxResults = &v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *ListConversationsInput) SetNextToken(v string) *ListConversationsInput { + s.NextToken = &v + return s +} + +// SetUserId sets the UserId field's value. +func (s *ListConversationsInput) SetUserId(v string) *ListConversationsInput { + s.UserId = &v + return s +} + +type ListConversationsOutput struct { + _ struct{} `type:"structure"` + + // An array of summary information on the configuration of one or more Amazon + // Q web experiences. + Conversations []*Conversation `locationName:"conversations" type:"list"` + + // If the response is truncated, Amazon Q returns this token, which you can + // use in a later request to list the next set of messages. + 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 ListConversationsOutput) 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 ListConversationsOutput) GoString() string { + return s.String() +} + +// SetConversations sets the Conversations field's value. +func (s *ListConversationsOutput) SetConversations(v []*Conversation) *ListConversationsOutput { + s.Conversations = v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *ListConversationsOutput) SetNextToken(v string) *ListConversationsOutput { + s.NextToken = &v + return s +} + +type ListDataSourceSyncJobsInput struct { + _ struct{} `type:"structure" nopayload:"true"` + + // The identifier of the Amazon Q application connected to the data source. + // + // ApplicationId is a required field + ApplicationId *string `location:"uri" locationName:"applicationId" min:"36" type:"string" required:"true"` + + // The identifier of the data source connector. + // + // DataSourceId is a required field + DataSourceId *string `location:"uri" locationName:"dataSourceId" min:"36" type:"string" required:"true"` + + // The end time of the data source connector sync. + EndTime *time.Time `location:"querystring" locationName:"endTime" type:"timestamp"` + + // The identifier of the index used with the Amazon Q data source connector. + // + // IndexId is a required field + IndexId *string `location:"uri" locationName:"indexId" min:"36" type:"string" required:"true"` + + // The maximum number of synchronization jobs to return in the response. + MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"` + + // If the maxResults response was incpmplete because there is more data to retriever, + // Amazon Q returns a pagination token in the response. You can use this pagination + // token to retrieve the next set of responses. + NextToken *string `location:"querystring" locationName:"nextToken" min:"1" type:"string"` + + // The start time of the data source connector sync. + StartTime *time.Time `location:"querystring" locationName:"startTime" type:"timestamp"` + + // Only returns synchronization jobs with the Status field equal to the specified + // status. + StatusFilter *string `location:"querystring" locationName:"syncStatus" type:"string" enum:"DataSourceSyncJobStatus"` +} + +// 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 ListDataSourceSyncJobsInput) 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 ListDataSourceSyncJobsInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListDataSourceSyncJobsInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ListDataSourceSyncJobsInput"} + if s.ApplicationId == nil { + invalidParams.Add(request.NewErrParamRequired("ApplicationId")) + } + if s.ApplicationId != nil && len(*s.ApplicationId) < 36 { + invalidParams.Add(request.NewErrParamMinLen("ApplicationId", 36)) + } + if s.DataSourceId == nil { + invalidParams.Add(request.NewErrParamRequired("DataSourceId")) + } + if s.DataSourceId != nil && len(*s.DataSourceId) < 36 { + invalidParams.Add(request.NewErrParamMinLen("DataSourceId", 36)) + } + if s.IndexId == nil { + invalidParams.Add(request.NewErrParamRequired("IndexId")) + } + if s.IndexId != nil && len(*s.IndexId) < 36 { + invalidParams.Add(request.NewErrParamMinLen("IndexId", 36)) + } + 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 +} + +// SetApplicationId sets the ApplicationId field's value. +func (s *ListDataSourceSyncJobsInput) SetApplicationId(v string) *ListDataSourceSyncJobsInput { + s.ApplicationId = &v + return s +} + +// SetDataSourceId sets the DataSourceId field's value. +func (s *ListDataSourceSyncJobsInput) SetDataSourceId(v string) *ListDataSourceSyncJobsInput { + s.DataSourceId = &v + return s +} + +// SetEndTime sets the EndTime field's value. +func (s *ListDataSourceSyncJobsInput) SetEndTime(v time.Time) *ListDataSourceSyncJobsInput { + s.EndTime = &v + return s +} + +// SetIndexId sets the IndexId field's value. +func (s *ListDataSourceSyncJobsInput) SetIndexId(v string) *ListDataSourceSyncJobsInput { + s.IndexId = &v + return s +} + +// SetMaxResults sets the MaxResults field's value. +func (s *ListDataSourceSyncJobsInput) SetMaxResults(v int64) *ListDataSourceSyncJobsInput { + s.MaxResults = &v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *ListDataSourceSyncJobsInput) SetNextToken(v string) *ListDataSourceSyncJobsInput { + s.NextToken = &v + return s +} + +// SetStartTime sets the StartTime field's value. +func (s *ListDataSourceSyncJobsInput) SetStartTime(v time.Time) *ListDataSourceSyncJobsInput { + s.StartTime = &v + return s +} + +// SetStatusFilter sets the StatusFilter field's value. +func (s *ListDataSourceSyncJobsInput) SetStatusFilter(v string) *ListDataSourceSyncJobsInput { + s.StatusFilter = &v + return s +} + +type ListDataSourceSyncJobsOutput struct { + _ struct{} `type:"structure"` + + // A history of synchronization jobs for the data source connector. + History []*DataSourceSyncJob `locationName:"history" type:"list"` + + // If the response is truncated, Amazon Q returns this token. You can use this + // token in any subsequent request to retrieve the next set of jobs. + 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 ListDataSourceSyncJobsOutput) 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 ListDataSourceSyncJobsOutput) GoString() string { + return s.String() +} + +// SetHistory sets the History field's value. +func (s *ListDataSourceSyncJobsOutput) SetHistory(v []*DataSourceSyncJob) *ListDataSourceSyncJobsOutput { + s.History = v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *ListDataSourceSyncJobsOutput) SetNextToken(v string) *ListDataSourceSyncJobsOutput { + s.NextToken = &v + return s +} + +type ListDataSourcesInput struct { + _ struct{} `type:"structure" nopayload:"true"` + + // The identifier of the Amazon Q application linked to the data source connectors. + // + // ApplicationId is a required field + ApplicationId *string `location:"uri" locationName:"applicationId" min:"36" type:"string" required:"true"` + + // The identifier of the index used with one or more data source connectors. + // + // IndexId is a required field + IndexId *string `location:"uri" locationName:"indexId" min:"36" type:"string" required:"true"` + + // The maximum number of data source connectors to return. + MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"` + + // If the maxResults response was incomplete because there is more data to retrieve, + // Amazon Q returns a pagination token in the response. You can use this pagination + // token to retrieve the next set of Amazon Q data source connectors. + 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 ListDataSourcesInput) 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 ListDataSourcesInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListDataSourcesInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ListDataSourcesInput"} + if s.ApplicationId == nil { + invalidParams.Add(request.NewErrParamRequired("ApplicationId")) + } + if s.ApplicationId != nil && len(*s.ApplicationId) < 36 { + invalidParams.Add(request.NewErrParamMinLen("ApplicationId", 36)) + } + if s.IndexId == nil { + invalidParams.Add(request.NewErrParamRequired("IndexId")) + } + if s.IndexId != nil && len(*s.IndexId) < 36 { + invalidParams.Add(request.NewErrParamMinLen("IndexId", 36)) + } + 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 +} + +// SetApplicationId sets the ApplicationId field's value. +func (s *ListDataSourcesInput) SetApplicationId(v string) *ListDataSourcesInput { + s.ApplicationId = &v + return s +} + +// SetIndexId sets the IndexId field's value. +func (s *ListDataSourcesInput) SetIndexId(v string) *ListDataSourcesInput { + s.IndexId = &v + return s +} + +// SetMaxResults sets the MaxResults field's value. +func (s *ListDataSourcesInput) SetMaxResults(v int64) *ListDataSourcesInput { + s.MaxResults = &v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *ListDataSourcesInput) SetNextToken(v string) *ListDataSourcesInput { + s.NextToken = &v + return s +} + +type ListDataSourcesOutput struct { + _ struct{} `type:"structure"` + + // An array of summary information for one or more data source connector. + DataSources []*DataSource `locationName:"dataSources" type:"list"` + + // If the response is truncated, Amazon Q returns this token. You can use this + // token in a subsequent request to retrieve the next set of data source connectors. + 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 ListDataSourcesOutput) 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 ListDataSourcesOutput) GoString() string { + return s.String() +} + +// SetDataSources sets the DataSources field's value. +func (s *ListDataSourcesOutput) SetDataSources(v []*DataSource) *ListDataSourcesOutput { + s.DataSources = v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *ListDataSourcesOutput) SetNextToken(v string) *ListDataSourcesOutput { + s.NextToken = &v + return s +} + +type ListDocumentsInput struct { + _ struct{} `type:"structure" nopayload:"true"` + + // The identifier of the application id the documents are attached to. + // + // ApplicationId is a required field + ApplicationId *string `location:"uri" locationName:"applicationId" min:"36" type:"string" required:"true"` + + // The identifier of the data sources the documents are attached to. + DataSourceIds []*string `location:"querystring" locationName:"dataSourceIds" min:"1" type:"list"` + + // The identifier of the index the documents are attached to. + // + // IndexId is a required field + IndexId *string `location:"uri" locationName:"indexId" min:"36" type:"string" required:"true"` + + // The maximum number of documents to return. + MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"` + + // If the maxResults response was incomplete because there is more data to retrieve, + // Amazon Q returns a pagination token in the response. You can use this pagination + // token to retrieve the next set of documents. + 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 ListDocumentsInput) 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 ListDocumentsInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListDocumentsInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ListDocumentsInput"} + if s.ApplicationId == nil { + invalidParams.Add(request.NewErrParamRequired("ApplicationId")) + } + if s.ApplicationId != nil && len(*s.ApplicationId) < 36 { + invalidParams.Add(request.NewErrParamMinLen("ApplicationId", 36)) + } + if s.DataSourceIds != nil && len(s.DataSourceIds) < 1 { + invalidParams.Add(request.NewErrParamMinLen("DataSourceIds", 1)) + } + if s.IndexId == nil { + invalidParams.Add(request.NewErrParamRequired("IndexId")) + } + if s.IndexId != nil && len(*s.IndexId) < 36 { + invalidParams.Add(request.NewErrParamMinLen("IndexId", 36)) + } + 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 +} + +// SetApplicationId sets the ApplicationId field's value. +func (s *ListDocumentsInput) SetApplicationId(v string) *ListDocumentsInput { + s.ApplicationId = &v + return s +} + +// SetDataSourceIds sets the DataSourceIds field's value. +func (s *ListDocumentsInput) SetDataSourceIds(v []*string) *ListDocumentsInput { + s.DataSourceIds = v + return s +} + +// SetIndexId sets the IndexId field's value. +func (s *ListDocumentsInput) SetIndexId(v string) *ListDocumentsInput { + s.IndexId = &v + return s +} + +// SetMaxResults sets the MaxResults field's value. +func (s *ListDocumentsInput) SetMaxResults(v int64) *ListDocumentsInput { + s.MaxResults = &v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *ListDocumentsInput) SetNextToken(v string) *ListDocumentsInput { + s.NextToken = &v + return s +} + +type ListDocumentsOutput struct { + _ struct{} `type:"structure"` + + // A list of document details. + DocumentDetailList []*DocumentDetails `locationName:"documentDetailList" type:"list"` + + // If the maxResults response was incomplete because there is more data to retrieve, + // Amazon Q returns a pagination token in the response. You can use this pagination + // token to retrieve the next set of documents. + 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 ListDocumentsOutput) 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 ListDocumentsOutput) GoString() string { + return s.String() +} + +// SetDocumentDetailList sets the DocumentDetailList field's value. +func (s *ListDocumentsOutput) SetDocumentDetailList(v []*DocumentDetails) *ListDocumentsOutput { + s.DocumentDetailList = v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *ListDocumentsOutput) SetNextToken(v string) *ListDocumentsOutput { + s.NextToken = &v + return s +} + +type ListGroupsInput struct { + _ struct{} `type:"structure" nopayload:"true"` + + // The identifier of the application for getting a list of groups mapped to + // users. + // + // ApplicationId is a required field + ApplicationId *string `location:"uri" locationName:"applicationId" min:"36" type:"string" required:"true"` + + // The identifier of the data source for getting a list of groups mapped to + // users. + DataSourceId *string `location:"querystring" locationName:"dataSourceId" min:"36" type:"string"` + + // The identifier of the index for getting a list of groups mapped to users. + // + // IndexId is a required field + IndexId *string `location:"uri" locationName:"indexId" min:"36" type:"string" required:"true"` + + // The maximum number of returned groups that are mapped to users. + MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"` + + // If the previous response was incomplete (because there is more data to retrieve), + // Amazon Q returns a pagination token in the response. You can use this pagination + // token to retrieve the next set of groups that are mapped to users. + NextToken *string `location:"querystring" locationName:"nextToken" min:"1" type:"string"` + + // The timestamp identifier used for the latest PUT or DELETE action for mapping + // users to their groups. + // + // UpdatedEarlierThan is a required field + UpdatedEarlierThan *time.Time `location:"querystring" locationName:"updatedEarlierThan" type:"timestamp" 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 ListGroupsInput) 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 ListGroupsInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListGroupsInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ListGroupsInput"} + if s.ApplicationId == nil { + invalidParams.Add(request.NewErrParamRequired("ApplicationId")) + } + if s.ApplicationId != nil && len(*s.ApplicationId) < 36 { + invalidParams.Add(request.NewErrParamMinLen("ApplicationId", 36)) + } + if s.DataSourceId != nil && len(*s.DataSourceId) < 36 { + invalidParams.Add(request.NewErrParamMinLen("DataSourceId", 36)) + } + if s.IndexId == nil { + invalidParams.Add(request.NewErrParamRequired("IndexId")) + } + if s.IndexId != nil && len(*s.IndexId) < 36 { + invalidParams.Add(request.NewErrParamMinLen("IndexId", 36)) + } + 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.UpdatedEarlierThan == nil { + invalidParams.Add(request.NewErrParamRequired("UpdatedEarlierThan")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetApplicationId sets the ApplicationId field's value. +func (s *ListGroupsInput) SetApplicationId(v string) *ListGroupsInput { + s.ApplicationId = &v + return s +} + +// SetDataSourceId sets the DataSourceId field's value. +func (s *ListGroupsInput) SetDataSourceId(v string) *ListGroupsInput { + s.DataSourceId = &v + return s +} + +// SetIndexId sets the IndexId field's value. +func (s *ListGroupsInput) SetIndexId(v string) *ListGroupsInput { + s.IndexId = &v + return s +} + +// SetMaxResults sets the MaxResults field's value. +func (s *ListGroupsInput) SetMaxResults(v int64) *ListGroupsInput { + s.MaxResults = &v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *ListGroupsInput) SetNextToken(v string) *ListGroupsInput { + s.NextToken = &v + return s +} + +// SetUpdatedEarlierThan sets the UpdatedEarlierThan field's value. +func (s *ListGroupsInput) SetUpdatedEarlierThan(v time.Time) *ListGroupsInput { + s.UpdatedEarlierThan = &v + return s +} + +type ListGroupsOutput struct { + _ struct{} `type:"structure"` + + // Summary information for list of groups that are mapped to users. + Items []*GroupSummary `locationName:"items" type:"list"` + + // If the response is truncated, Amazon Q returns this token that you can use + // in the subsequent request to retrieve the next set of groups that are mapped + // to users. + 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 ListGroupsOutput) 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 ListGroupsOutput) GoString() string { + return s.String() +} + +// SetItems sets the Items field's value. +func (s *ListGroupsOutput) SetItems(v []*GroupSummary) *ListGroupsOutput { + s.Items = v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *ListGroupsOutput) SetNextToken(v string) *ListGroupsOutput { + s.NextToken = &v + return s +} + +type ListIndicesInput struct { + _ struct{} `type:"structure" nopayload:"true"` + + // The identifier of the Amazon Q application connected to the index. + // + // ApplicationId is a required field + ApplicationId *string `location:"uri" locationName:"applicationId" min:"36" type:"string" required:"true"` + + // The maximum number of indices to return. + MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"` + + // If the maxResults response was incomplete because there is more data to retrieve, + // Amazon Q returns a pagination token in the response. You can use this pagination + // token to retrieve the next set of Amazon Q indices. + 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 ListIndicesInput) 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 ListIndicesInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListIndicesInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ListIndicesInput"} + if s.ApplicationId == nil { + invalidParams.Add(request.NewErrParamRequired("ApplicationId")) + } + if s.ApplicationId != nil && len(*s.ApplicationId) < 36 { + invalidParams.Add(request.NewErrParamMinLen("ApplicationId", 36)) + } + 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 +} + +// SetApplicationId sets the ApplicationId field's value. +func (s *ListIndicesInput) SetApplicationId(v string) *ListIndicesInput { + s.ApplicationId = &v + return s +} + +// SetMaxResults sets the MaxResults field's value. +func (s *ListIndicesInput) SetMaxResults(v int64) *ListIndicesInput { + s.MaxResults = &v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *ListIndicesInput) SetNextToken(v string) *ListIndicesInput { + s.NextToken = &v + return s +} + +type ListIndicesOutput struct { + _ struct{} `type:"structure"` + + // An array of information on the items in one or more indexes. + Indices []*Index `locationName:"indices" type:"list"` + + // If the response is truncated, Amazon Q returns this token that you can use + // in the subsequent request to retrieve the next set of indexes. + 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 ListIndicesOutput) 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 ListIndicesOutput) GoString() string { + return s.String() +} + +// SetIndices sets the Indices field's value. +func (s *ListIndicesOutput) SetIndices(v []*Index) *ListIndicesOutput { + s.Indices = v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *ListIndicesOutput) SetNextToken(v string) *ListIndicesOutput { + s.NextToken = &v + return s +} + +type ListMessagesInput struct { + _ struct{} `type:"structure" nopayload:"true"` + + // The identifier for the Amazon Q application. + // + // ApplicationId is a required field + ApplicationId *string `location:"uri" locationName:"applicationId" min:"36" type:"string" required:"true"` + + // The identifier of the Amazon Q web experience conversation. + // + // ConversationId is a required field + ConversationId *string `location:"uri" locationName:"conversationId" min:"36" type:"string" required:"true"` + + // The maximum number of messages to return. + MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"` + + // If the number of retrievers returned exceeds maxResults, Amazon Q returns + // a next token as a pagination token to retrieve the next set of messages. + NextToken *string `location:"querystring" locationName:"nextToken" min:"1" type:"string"` + + // The identifier of the user involved in the Amazon Q web experience conversation. + // + // UserId is a required field + UserId *string `location:"querystring" locationName:"userId" 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 ListMessagesInput) 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 ListMessagesInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListMessagesInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ListMessagesInput"} + if s.ApplicationId == nil { + invalidParams.Add(request.NewErrParamRequired("ApplicationId")) + } + if s.ApplicationId != nil && len(*s.ApplicationId) < 36 { + invalidParams.Add(request.NewErrParamMinLen("ApplicationId", 36)) + } + if s.ConversationId == nil { + invalidParams.Add(request.NewErrParamRequired("ConversationId")) + } + if s.ConversationId != nil && len(*s.ConversationId) < 36 { + invalidParams.Add(request.NewErrParamMinLen("ConversationId", 36)) + } + 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.UserId == nil { + invalidParams.Add(request.NewErrParamRequired("UserId")) + } + if s.UserId != nil && len(*s.UserId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("UserId", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetApplicationId sets the ApplicationId field's value. +func (s *ListMessagesInput) SetApplicationId(v string) *ListMessagesInput { + s.ApplicationId = &v + return s +} + +// SetConversationId sets the ConversationId field's value. +func (s *ListMessagesInput) SetConversationId(v string) *ListMessagesInput { + s.ConversationId = &v + return s +} + +// SetMaxResults sets the MaxResults field's value. +func (s *ListMessagesInput) SetMaxResults(v int64) *ListMessagesInput { + s.MaxResults = &v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *ListMessagesInput) SetNextToken(v string) *ListMessagesInput { + s.NextToken = &v + return s +} + +// SetUserId sets the UserId field's value. +func (s *ListMessagesInput) SetUserId(v string) *ListMessagesInput { + s.UserId = &v + return s +} + +type ListMessagesOutput struct { + _ struct{} `type:"structure"` + + // An array of information on one or more messages. + Messages []*Message `locationName:"messages" type:"list"` + + // If the response is truncated, Amazon Q returns this token, which you can + // use in a later request to list the next set of messages. + 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 ListMessagesOutput) 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 ListMessagesOutput) GoString() string { + return s.String() +} + +// SetMessages sets the Messages field's value. +func (s *ListMessagesOutput) SetMessages(v []*Message) *ListMessagesOutput { + s.Messages = v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *ListMessagesOutput) SetNextToken(v string) *ListMessagesOutput { + s.NextToken = &v + return s +} + +type ListPluginsInput struct { + _ struct{} `type:"structure" nopayload:"true"` + + // The identifier of the application the plugin is attached to. + // + // ApplicationId is a required field + ApplicationId *string `location:"uri" locationName:"applicationId" min:"36" type:"string" required:"true"` + + // The maximum number of documents to return. + MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"` + + // If the maxResults response was incomplete because there is more data to retrieve, + // Amazon Q returns a pagination token in the response. You can use this pagination + // token to retrieve the next set of plugins. + 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 ListPluginsInput) 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 ListPluginsInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListPluginsInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ListPluginsInput"} + if s.ApplicationId == nil { + invalidParams.Add(request.NewErrParamRequired("ApplicationId")) + } + if s.ApplicationId != nil && len(*s.ApplicationId) < 36 { + invalidParams.Add(request.NewErrParamMinLen("ApplicationId", 36)) + } + 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 +} + +// SetApplicationId sets the ApplicationId field's value. +func (s *ListPluginsInput) SetApplicationId(v string) *ListPluginsInput { + s.ApplicationId = &v + return s +} + +// SetMaxResults sets the MaxResults field's value. +func (s *ListPluginsInput) SetMaxResults(v int64) *ListPluginsInput { + s.MaxResults = &v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *ListPluginsInput) SetNextToken(v string) *ListPluginsInput { + s.NextToken = &v + return s +} + +type ListPluginsOutput struct { + _ struct{} `type:"structure"` + + // If the maxResults response was incomplete because there is more data to retrieve, + // Amazon Q returns a pagination token in the response. You can use this pagination + // token to retrieve the next set of plugins. + NextToken *string `locationName:"nextToken" min:"1" type:"string"` + + // Information about a configured plugin. + Plugins []*Plugin `locationName:"plugins" 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 ListPluginsOutput) 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 ListPluginsOutput) GoString() string { + return s.String() +} + +// SetNextToken sets the NextToken field's value. +func (s *ListPluginsOutput) SetNextToken(v string) *ListPluginsOutput { + s.NextToken = &v + return s +} + +// SetPlugins sets the Plugins field's value. +func (s *ListPluginsOutput) SetPlugins(v []*Plugin) *ListPluginsOutput { + s.Plugins = v + return s +} + +type ListRetrieversInput struct { + _ struct{} `type:"structure" nopayload:"true"` + + // The identifier of the Amazon Q application using the retriever. + // + // ApplicationId is a required field + ApplicationId *string `location:"uri" locationName:"applicationId" min:"36" type:"string" required:"true"` + + // The maximum number of retrievers returned. + MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"` + + // If the number of retrievers returned exceeds maxResults, Amazon Q returns + // a next token as a pagination token to retrieve the next set of retrievers. + 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 ListRetrieversInput) 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 ListRetrieversInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListRetrieversInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ListRetrieversInput"} + if s.ApplicationId == nil { + invalidParams.Add(request.NewErrParamRequired("ApplicationId")) + } + if s.ApplicationId != nil && len(*s.ApplicationId) < 36 { + invalidParams.Add(request.NewErrParamMinLen("ApplicationId", 36)) + } + 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 +} + +// SetApplicationId sets the ApplicationId field's value. +func (s *ListRetrieversInput) SetApplicationId(v string) *ListRetrieversInput { + s.ApplicationId = &v + return s +} + +// SetMaxResults sets the MaxResults field's value. +func (s *ListRetrieversInput) SetMaxResults(v int64) *ListRetrieversInput { + s.MaxResults = &v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *ListRetrieversInput) SetNextToken(v string) *ListRetrieversInput { + s.NextToken = &v + return s +} + +type ListRetrieversOutput struct { + _ struct{} `type:"structure"` + + // If the response is truncated, Amazon Q returns this token, which you can + // use in a later request to list the next set of retrievers. + NextToken *string `locationName:"nextToken" min:"1" type:"string"` + + // An array of summary information for one or more retrievers. + Retrievers []*Retriever `locationName:"retrievers" 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 ListRetrieversOutput) 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 ListRetrieversOutput) GoString() string { + return s.String() +} + +// SetNextToken sets the NextToken field's value. +func (s *ListRetrieversOutput) SetNextToken(v string) *ListRetrieversOutput { + s.NextToken = &v + return s +} + +// SetRetrievers sets the Retrievers field's value. +func (s *ListRetrieversOutput) SetRetrievers(v []*Retriever) *ListRetrieversOutput { + s.Retrievers = v + return s +} + +type ListTagsForResourceInput struct { + _ struct{} `type:"structure" nopayload:"true"` + + // The Amazon Resource Name (ARN) of the Amazon Q application or data source + // to get a list of tags for. + // + // ResourceARN is a required field + ResourceARN *string `location:"uri" locationName:"resourceARN" 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 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"` + + // A list of tags associated with the Amazon Q application or data source. + Tags []*Tag `locationName:"tags" 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 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 []*Tag) *ListTagsForResourceOutput { + s.Tags = v + return s +} + +type ListWebExperiencesInput struct { + _ struct{} `type:"structure" nopayload:"true"` + + // The identifier of the Amazon Q application linked to the listed web experiences. + // + // ApplicationId is a required field + ApplicationId *string `location:"uri" locationName:"applicationId" min:"36" type:"string" required:"true"` + + // The maximum number of Amazon Q Web Experiences to return. + MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"` + + // If the maxResults response was incomplete because there is more data to retrieve, + // Amazon Q returns a pagination token in the response. You can use this pagination + // token to retrieve the next set of Amazon Q conversations. + 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 ListWebExperiencesInput) 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 ListWebExperiencesInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListWebExperiencesInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ListWebExperiencesInput"} + if s.ApplicationId == nil { + invalidParams.Add(request.NewErrParamRequired("ApplicationId")) + } + if s.ApplicationId != nil && len(*s.ApplicationId) < 36 { + invalidParams.Add(request.NewErrParamMinLen("ApplicationId", 36)) + } + 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 +} + +// SetApplicationId sets the ApplicationId field's value. +func (s *ListWebExperiencesInput) SetApplicationId(v string) *ListWebExperiencesInput { + s.ApplicationId = &v + return s +} + +// SetMaxResults sets the MaxResults field's value. +func (s *ListWebExperiencesInput) SetMaxResults(v int64) *ListWebExperiencesInput { + s.MaxResults = &v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *ListWebExperiencesInput) SetNextToken(v string) *ListWebExperiencesInput { + s.NextToken = &v + return s +} + +type ListWebExperiencesOutput struct { + _ struct{} `type:"structure"` + + // If the response is truncated, Amazon Q returns this token, which you can + // use in a later request to list the next set of messages. + NextToken *string `locationName:"nextToken" min:"1" type:"string"` + + // An array of summary information for one or more Amazon Q experiences. + WebExperiences []*WebExperience `locationName:"webExperiences" 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 ListWebExperiencesOutput) 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 ListWebExperiencesOutput) GoString() string { + return s.String() +} + +// SetNextToken sets the NextToken field's value. +func (s *ListWebExperiencesOutput) SetNextToken(v string) *ListWebExperiencesOutput { + s.NextToken = &v + return s +} + +// SetWebExperiences sets the WebExperiences field's value. +func (s *ListWebExperiencesOutput) SetWebExperiences(v []*WebExperience) *ListWebExperiencesOutput { + s.WebExperiences = v + return s +} + +// The sub groups that belong to a group. +type MemberGroup struct { + _ struct{} `type:"structure"` + + // The name of the sub group. + // + // GroupName is a required field + GroupName *string `locationName:"groupName" min:"1" type:"string" required:"true"` + + // The type of the sub group. + Type *string `locationName:"type" type:"string" enum:"MembershipType"` +} + +// 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 MemberGroup) 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 MemberGroup) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *MemberGroup) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "MemberGroup"} + if s.GroupName == nil { + invalidParams.Add(request.NewErrParamRequired("GroupName")) + } + if s.GroupName != nil && len(*s.GroupName) < 1 { + invalidParams.Add(request.NewErrParamMinLen("GroupName", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetGroupName sets the GroupName field's value. +func (s *MemberGroup) SetGroupName(v string) *MemberGroup { + s.GroupName = &v + return s +} + +// SetType sets the Type field's value. +func (s *MemberGroup) SetType(v string) *MemberGroup { + s.Type = &v + return s +} + +// The users that belong to a group. +type MemberUser struct { + _ struct{} `type:"structure"` + + // The type of the user. + Type *string `locationName:"type" type:"string" enum:"MembershipType"` + + // The identifier of the user you want to map to a group. + // + // UserId is a required field + UserId *string `locationName:"userId" 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 MemberUser) 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 MemberUser) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *MemberUser) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "MemberUser"} + if s.UserId == nil { + invalidParams.Add(request.NewErrParamRequired("UserId")) + } + if s.UserId != nil && len(*s.UserId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("UserId", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetType sets the Type field's value. +func (s *MemberUser) SetType(v string) *MemberUser { + s.Type = &v + return s +} + +// SetUserId sets the UserId field's value. +func (s *MemberUser) SetUserId(v string) *MemberUser { + s.UserId = &v + return s +} + +// A message in an Amazon Q web experience. +type Message struct { + _ struct{} `type:"structure"` + + // An output event that Amazon Q returns to an user who wants to perform a plugin + // action during a non-streaming chat conversation. It contains information + // about the selected action with a list of possible user input fields, some + // pre-populated by Amazon Q. + ActionReview *ActionReview `locationName:"actionReview" type:"structure"` + + // A file directly uploaded into an Amazon Q web experience chat. + Attachments []*AttachmentOutput_ `locationName:"attachments" type:"list"` + + // The content of the Amazon Q web experience message. + Body *string `locationName:"body" type:"string"` + + // The identifier of the Amazon Q web experience message. + MessageId *string `locationName:"messageId" min:"1" type:"string"` + + // The source documents used to generate Amazon Q web experience message. + SourceAttribution []*SourceAttribution `locationName:"sourceAttribution" type:"list"` + + // The timestamp of the first Amazon Q web experience message. + Time *time.Time `locationName:"time" type:"timestamp"` + + // The type of Amazon Q message, whether HUMAN or AI generated. + Type *string `locationName:"type" type:"string" enum:"MessageType"` +} + +// 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 Message) 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 Message) GoString() string { + return s.String() +} + +// SetActionReview sets the ActionReview field's value. +func (s *Message) SetActionReview(v *ActionReview) *Message { + s.ActionReview = v + return s +} + +// SetAttachments sets the Attachments field's value. +func (s *Message) SetAttachments(v []*AttachmentOutput_) *Message { + s.Attachments = v + return s +} + +// SetBody sets the Body field's value. +func (s *Message) SetBody(v string) *Message { + s.Body = &v + return s +} + +// SetMessageId sets the MessageId field's value. +func (s *Message) SetMessageId(v string) *Message { + s.MessageId = &v + return s +} + +// SetSourceAttribution sets the SourceAttribution field's value. +func (s *Message) SetSourceAttribution(v []*SourceAttribution) *Message { + s.SourceAttribution = v + return s +} + +// SetTime sets the Time field's value. +func (s *Message) SetTime(v time.Time) *Message { + s.Time = &v + return s +} + +// SetType sets the Type field's value. +func (s *Message) SetType(v string) *Message { + s.Type = &v + return s +} + +// End user feedback on an AI-generated web experience chat message usefulness. +type MessageUsefulnessFeedback struct { + _ struct{} `type:"structure"` + + // A comment given by an end user on the usefulness of an AI-generated chat + // message. + Comment *string `locationName:"comment" type:"string"` + + // The reason for a usefulness rating. + Reason *string `locationName:"reason" type:"string" enum:"MessageUsefulnessReason"` + + // The timestamp for when the feedback was submitted. + // + // SubmittedAt is a required field + SubmittedAt *time.Time `locationName:"submittedAt" type:"timestamp" required:"true"` + + // The usefulness value assigned by an end user to a message. + // + // Usefulness is a required field + Usefulness *string `locationName:"usefulness" type:"string" required:"true" enum:"MessageUsefulness"` +} + +// 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 MessageUsefulnessFeedback) 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 MessageUsefulnessFeedback) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *MessageUsefulnessFeedback) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "MessageUsefulnessFeedback"} + if s.SubmittedAt == nil { + invalidParams.Add(request.NewErrParamRequired("SubmittedAt")) + } + if s.Usefulness == nil { + invalidParams.Add(request.NewErrParamRequired("Usefulness")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetComment sets the Comment field's value. +func (s *MessageUsefulnessFeedback) SetComment(v string) *MessageUsefulnessFeedback { + s.Comment = &v + return s +} + +// SetReason sets the Reason field's value. +func (s *MessageUsefulnessFeedback) SetReason(v string) *MessageUsefulnessFeedback { + s.Reason = &v + return s +} + +// SetSubmittedAt sets the SubmittedAt field's value. +func (s *MessageUsefulnessFeedback) SetSubmittedAt(v time.Time) *MessageUsefulnessFeedback { + s.SubmittedAt = &v + return s +} + +// SetUsefulness sets the Usefulness field's value. +func (s *MessageUsefulnessFeedback) SetUsefulness(v string) *MessageUsefulnessFeedback { + s.Usefulness = &v + return s +} + +// Configuration information for an Amazon Q index. +type NativeIndexConfiguration struct { + _ struct{} `type:"structure"` + + // The identifier for the Amazon Q index. + // + // IndexId is a required field + IndexId *string `locationName:"indexId" min:"36" 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 NativeIndexConfiguration) 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 NativeIndexConfiguration) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *NativeIndexConfiguration) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "NativeIndexConfiguration"} + if s.IndexId == nil { + invalidParams.Add(request.NewErrParamRequired("IndexId")) + } + if s.IndexId != nil && len(*s.IndexId) < 36 { + invalidParams.Add(request.NewErrParamMinLen("IndexId", 36)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetIndexId sets the IndexId field's value. +func (s *NativeIndexConfiguration) SetIndexId(v string) *NativeIndexConfiguration { + s.IndexId = &v + return s +} + +// Information about the OAuth 2.0 authentication credential/token used to configure +// a plugin. +type OAuth2ClientCredentialConfiguration struct { + _ struct{} `type:"structure"` + + // The ARN of an IAM role used by Amazon Q to access the OAuth 2.0 authentication + // credentials stored in a Secrets Manager secret. + // + // RoleArn is a required field + RoleArn *string `locationName:"roleArn" type:"string" required:"true"` + + // The ARN of the Secrets Manager secret that stores the OAuth 2.0 credentials/token + // used for plugin configuration. + // + // SecretArn is a required field + SecretArn *string `locationName:"secretArn" 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 OAuth2ClientCredentialConfiguration) 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 OAuth2ClientCredentialConfiguration) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *OAuth2ClientCredentialConfiguration) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "OAuth2ClientCredentialConfiguration"} + if s.RoleArn == nil { + invalidParams.Add(request.NewErrParamRequired("RoleArn")) + } + if s.SecretArn == nil { + invalidParams.Add(request.NewErrParamRequired("SecretArn")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetRoleArn sets the RoleArn field's value. +func (s *OAuth2ClientCredentialConfiguration) SetRoleArn(v string) *OAuth2ClientCredentialConfiguration { + s.RoleArn = &v + return s +} + +// SetSecretArn sets the SecretArn field's value. +func (s *OAuth2ClientCredentialConfiguration) SetSecretArn(v string) *OAuth2ClientCredentialConfiguration { + s.SecretArn = &v + return s +} + +// Information about an Amazon Q plugin and its configuration. +type Plugin struct { + _ struct{} `type:"structure"` + + // The timestamp for when the plugin was created. + CreatedAt *time.Time `locationName:"createdAt" type:"timestamp"` + + // The name of the plugin. + DisplayName *string `locationName:"displayName" min:"1" type:"string"` + + // The identifier of the plugin. + PluginId *string `locationName:"pluginId" min:"36" type:"string"` + + // The plugin server URL used for configuration. + ServerUrl *string `locationName:"serverUrl" min:"1" type:"string"` + + // The current status of the plugin. + State *string `locationName:"state" type:"string" enum:"PluginState"` + + // The type of the plugin. + Type *string `locationName:"type" type:"string" enum:"PluginType"` + + // The timestamp for when the plugin was last updated. + UpdatedAt *time.Time `locationName:"updatedAt" type:"timestamp"` +} + +// 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 Plugin) 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 Plugin) GoString() string { + return s.String() +} + +// SetCreatedAt sets the CreatedAt field's value. +func (s *Plugin) SetCreatedAt(v time.Time) *Plugin { + s.CreatedAt = &v + return s +} + +// SetDisplayName sets the DisplayName field's value. +func (s *Plugin) SetDisplayName(v string) *Plugin { + s.DisplayName = &v + return s +} + +// SetPluginId sets the PluginId field's value. +func (s *Plugin) SetPluginId(v string) *Plugin { + s.PluginId = &v + return s +} + +// SetServerUrl sets the ServerUrl field's value. +func (s *Plugin) SetServerUrl(v string) *Plugin { + s.ServerUrl = &v + return s +} + +// SetState sets the State field's value. +func (s *Plugin) SetState(v string) *Plugin { + s.State = &v + return s +} + +// SetType sets the Type field's value. +func (s *Plugin) SetType(v string) *Plugin { + s.Type = &v + return s +} + +// SetUpdatedAt sets the UpdatedAt field's value. +func (s *Plugin) SetUpdatedAt(v time.Time) *Plugin { + s.UpdatedAt = &v + return s +} + +// Authentication configuration information for an Amazon Q plugin. +type PluginAuthConfiguration struct { + _ struct{} `type:"structure"` + + // Information about the basic authentication credentials used to configure + // a plugin. + BasicAuthConfiguration *BasicAuthConfiguration `locationName:"basicAuthConfiguration" type:"structure"` + + // Information about the OAuth 2.0 authentication credential/token used to configure + // a plugin. + OAuth2ClientCredentialConfiguration *OAuth2ClientCredentialConfiguration `locationName:"oAuth2ClientCredentialConfiguration" 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 PluginAuthConfiguration) 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 PluginAuthConfiguration) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *PluginAuthConfiguration) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "PluginAuthConfiguration"} + if s.BasicAuthConfiguration != nil { + if err := s.BasicAuthConfiguration.Validate(); err != nil { + invalidParams.AddNested("BasicAuthConfiguration", err.(request.ErrInvalidParams)) + } + } + if s.OAuth2ClientCredentialConfiguration != nil { + if err := s.OAuth2ClientCredentialConfiguration.Validate(); err != nil { + invalidParams.AddNested("OAuth2ClientCredentialConfiguration", err.(request.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetBasicAuthConfiguration sets the BasicAuthConfiguration field's value. +func (s *PluginAuthConfiguration) SetBasicAuthConfiguration(v *BasicAuthConfiguration) *PluginAuthConfiguration { + s.BasicAuthConfiguration = v + return s +} + +// SetOAuth2ClientCredentialConfiguration sets the OAuth2ClientCredentialConfiguration field's value. +func (s *PluginAuthConfiguration) SetOAuth2ClientCredentialConfiguration(v *OAuth2ClientCredentialConfiguration) *PluginAuthConfiguration { + s.OAuth2ClientCredentialConfiguration = v + return s +} + +// Provides user and group information used for filtering documents to use for +// generating Amazon Q conversation responses. +type Principal struct { + _ struct{} `type:"structure"` + + // The group associated with the principal. + Group *PrincipalGroup `locationName:"group" type:"structure"` + + // The user associated with the principal. + User *PrincipalUser `locationName:"user" 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 Principal) 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 Principal) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *Principal) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "Principal"} + if s.Group != nil { + if err := s.Group.Validate(); err != nil { + invalidParams.AddNested("Group", err.(request.ErrInvalidParams)) + } + } + if s.User != nil { + if err := s.User.Validate(); err != nil { + invalidParams.AddNested("User", err.(request.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetGroup sets the Group field's value. +func (s *Principal) SetGroup(v *PrincipalGroup) *Principal { + s.Group = v + return s +} + +// SetUser sets the User field's value. +func (s *Principal) SetUser(v *PrincipalUser) *Principal { + s.User = v + return s +} + +// Provides information about a group associated with the principal. +type PrincipalGroup struct { + _ struct{} `type:"structure"` + + // Provides information about whether to allow or deny access to the principal. + // + // Access is a required field + Access *string `locationName:"access" type:"string" required:"true" enum:"ReadAccessType"` + + // The type of group. + MembershipType *string `locationName:"membershipType" type:"string" enum:"MembershipType"` + + // The name of the group. + Name *string `locationName:"name" 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 PrincipalGroup) 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 PrincipalGroup) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *PrincipalGroup) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "PrincipalGroup"} + if s.Access == nil { + invalidParams.Add(request.NewErrParamRequired("Access")) + } + if s.Name != nil && len(*s.Name) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Name", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAccess sets the Access field's value. +func (s *PrincipalGroup) SetAccess(v string) *PrincipalGroup { + s.Access = &v + return s +} + +// SetMembershipType sets the MembershipType field's value. +func (s *PrincipalGroup) SetMembershipType(v string) *PrincipalGroup { + s.MembershipType = &v + return s +} + +// SetName sets the Name field's value. +func (s *PrincipalGroup) SetName(v string) *PrincipalGroup { + s.Name = &v + return s +} + +// Provides information about a user associated with a principal. +type PrincipalUser struct { + _ struct{} `type:"structure"` + + // Provides information about whether to allow or deny access to the principal. + // + // Access is a required field + Access *string `locationName:"access" type:"string" required:"true" enum:"ReadAccessType"` + + // The identifier of the user. + Id *string `locationName:"id" min:"1" type:"string"` + + // The type of group. + MembershipType *string `locationName:"membershipType" type:"string" enum:"MembershipType"` +} + +// 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 PrincipalUser) 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 PrincipalUser) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *PrincipalUser) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "PrincipalUser"} + if s.Access == nil { + invalidParams.Add(request.NewErrParamRequired("Access")) + } + if s.Id != nil && len(*s.Id) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Id", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAccess sets the Access field's value. +func (s *PrincipalUser) SetAccess(v string) *PrincipalUser { + s.Access = &v + return s +} + +// SetId sets the Id field's value. +func (s *PrincipalUser) SetId(v string) *PrincipalUser { + s.Id = &v + return s +} + +// SetMembershipType sets the MembershipType field's value. +func (s *PrincipalUser) SetMembershipType(v string) *PrincipalUser { + s.MembershipType = &v + return s +} + +type PutFeedbackInput struct { + _ struct{} `type:"structure"` + + // The identifier of the application associated with the feedback. + // + // ApplicationId is a required field + ApplicationId *string `location:"uri" locationName:"applicationId" min:"36" type:"string" required:"true"` + + // The identifier of the conversation the feedback is attached to. + // + // ConversationId is a required field + ConversationId *string `location:"uri" locationName:"conversationId" min:"36" type:"string" required:"true"` + + // The timestamp for when the feedback was recorded. + MessageCopiedAt *time.Time `locationName:"messageCopiedAt" type:"timestamp"` + + // The identifier of the chat message that the feedback was given for. + // + // MessageId is a required field + MessageId *string `location:"uri" locationName:"messageId" min:"36" type:"string" required:"true"` + + // The feedback usefulness value given by the user to the chat message. + MessageUsefulness *MessageUsefulnessFeedback `locationName:"messageUsefulness" type:"structure"` + + // The identifier of the user giving the feedback. + // + // UserId is a required field + UserId *string `location:"querystring" locationName:"userId" 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 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.ApplicationId == nil { + invalidParams.Add(request.NewErrParamRequired("ApplicationId")) + } + if s.ApplicationId != nil && len(*s.ApplicationId) < 36 { + invalidParams.Add(request.NewErrParamMinLen("ApplicationId", 36)) + } + if s.ConversationId == nil { + invalidParams.Add(request.NewErrParamRequired("ConversationId")) + } + if s.ConversationId != nil && len(*s.ConversationId) < 36 { + invalidParams.Add(request.NewErrParamMinLen("ConversationId", 36)) + } + if s.MessageId == nil { + invalidParams.Add(request.NewErrParamRequired("MessageId")) + } + if s.MessageId != nil && len(*s.MessageId) < 36 { + invalidParams.Add(request.NewErrParamMinLen("MessageId", 36)) + } + if s.UserId == nil { + invalidParams.Add(request.NewErrParamRequired("UserId")) + } + if s.UserId != nil && len(*s.UserId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("UserId", 1)) + } + if s.MessageUsefulness != nil { + if err := s.MessageUsefulness.Validate(); err != nil { + invalidParams.AddNested("MessageUsefulness", err.(request.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetApplicationId sets the ApplicationId field's value. +func (s *PutFeedbackInput) SetApplicationId(v string) *PutFeedbackInput { + s.ApplicationId = &v + return s +} + +// SetConversationId sets the ConversationId field's value. +func (s *PutFeedbackInput) SetConversationId(v string) *PutFeedbackInput { + s.ConversationId = &v + return s +} + +// SetMessageCopiedAt sets the MessageCopiedAt field's value. +func (s *PutFeedbackInput) SetMessageCopiedAt(v time.Time) *PutFeedbackInput { + s.MessageCopiedAt = &v + return s +} + +// SetMessageId sets the MessageId field's value. +func (s *PutFeedbackInput) SetMessageId(v string) *PutFeedbackInput { + s.MessageId = &v + return s +} + +// SetMessageUsefulness sets the MessageUsefulness field's value. +func (s *PutFeedbackInput) SetMessageUsefulness(v *MessageUsefulnessFeedback) *PutFeedbackInput { + s.MessageUsefulness = v + return s +} + +// SetUserId sets the UserId field's value. +func (s *PutFeedbackInput) SetUserId(v string) *PutFeedbackInput { + s.UserId = &v + return s +} + +type PutFeedbackOutput 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 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() +} + +type PutGroupInput struct { + _ struct{} `type:"structure"` + + // The identifier of the application in which the user and group mapping belongs. + // + // ApplicationId is a required field + ApplicationId *string `location:"uri" locationName:"applicationId" min:"36" type:"string" required:"true"` + + // The identifier of the data source for which you want to map users to their + // groups. This is useful if a group is tied to multiple data sources, but you + // only want the group to access documents of a certain data source. For example, + // the groups "Research", "Engineering", and "Sales and Marketing" are all tied + // to the company's documents stored in the data sources Confluence and Salesforce. + // However, "Sales and Marketing" team only needs access to customer-related + // documents stored in Salesforce. + DataSourceId *string `locationName:"dataSourceId" min:"36" type:"string"` + + // A list of users or sub groups that belong to a group. This is for generating + // Amazon Q chat results only from document a user has access to. + // + // GroupMembers is a required field + GroupMembers *GroupMembers `locationName:"groupMembers" type:"structure" required:"true"` + + // The list that contains your users or sub groups that belong the same group. + // For example, the group "Company" includes the user "CEO" and the sub groups + // "Research", "Engineering", and "Sales and Marketing". + // + // If you have more than 1000 users and/or sub groups for a single group, you + // need to provide the path to the S3 file that lists your users and sub groups + // for a group. Your sub groups can contain more than 1000 users, but the list + // of sub groups that belong to a group (and/or users) must be no more than + // 1000. + // + // GroupName is a required field + GroupName *string `locationName:"groupName" min:"1" type:"string" required:"true"` + + // The identifier of the index in which you want to map users to their groups. + // + // IndexId is a required field + IndexId *string `location:"uri" locationName:"indexId" min:"36" type:"string" required:"true"` + + // The type of the group. + // + // Type is a required field + Type *string `locationName:"type" type:"string" required:"true" enum:"MembershipType"` +} + +// 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 PutGroupInput) 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 PutGroupInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *PutGroupInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "PutGroupInput"} + if s.ApplicationId == nil { + invalidParams.Add(request.NewErrParamRequired("ApplicationId")) + } + if s.ApplicationId != nil && len(*s.ApplicationId) < 36 { + invalidParams.Add(request.NewErrParamMinLen("ApplicationId", 36)) + } + if s.DataSourceId != nil && len(*s.DataSourceId) < 36 { + invalidParams.Add(request.NewErrParamMinLen("DataSourceId", 36)) + } + if s.GroupMembers == nil { + invalidParams.Add(request.NewErrParamRequired("GroupMembers")) + } + if s.GroupName == nil { + invalidParams.Add(request.NewErrParamRequired("GroupName")) + } + if s.GroupName != nil && len(*s.GroupName) < 1 { + invalidParams.Add(request.NewErrParamMinLen("GroupName", 1)) + } + if s.IndexId == nil { + invalidParams.Add(request.NewErrParamRequired("IndexId")) + } + if s.IndexId != nil && len(*s.IndexId) < 36 { + invalidParams.Add(request.NewErrParamMinLen("IndexId", 36)) + } + if s.Type == nil { + invalidParams.Add(request.NewErrParamRequired("Type")) + } + if s.GroupMembers != nil { + if err := s.GroupMembers.Validate(); err != nil { + invalidParams.AddNested("GroupMembers", err.(request.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetApplicationId sets the ApplicationId field's value. +func (s *PutGroupInput) SetApplicationId(v string) *PutGroupInput { + s.ApplicationId = &v + return s +} + +// SetDataSourceId sets the DataSourceId field's value. +func (s *PutGroupInput) SetDataSourceId(v string) *PutGroupInput { + s.DataSourceId = &v + return s +} + +// SetGroupMembers sets the GroupMembers field's value. +func (s *PutGroupInput) SetGroupMembers(v *GroupMembers) *PutGroupInput { + s.GroupMembers = v + return s +} + +// SetGroupName sets the GroupName field's value. +func (s *PutGroupInput) SetGroupName(v string) *PutGroupInput { + s.GroupName = &v + return s +} + +// SetIndexId sets the IndexId field's value. +func (s *PutGroupInput) SetIndexId(v string) *PutGroupInput { + s.IndexId = &v + return s +} + +// SetType sets the Type field's value. +func (s *PutGroupInput) SetType(v string) *PutGroupInput { + s.Type = &v + return s +} + +type PutGroupOutput 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 PutGroupOutput) 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 PutGroupOutput) GoString() string { + return s.String() +} + +// The resource you want to use doesn’t exist. Make sure you have provided +// the correct resource and try again. +type ResourceNotFoundException struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + + // The message describing a ResourceNotFoundException. + Message_ *string `locationName:"message" min:"1" type:"string"` + + // The identifier of the resource affected. + // + // ResourceId is a required field + ResourceId *string `locationName:"resourceId" min:"1" type:"string" required:"true"` + + // The type of the resource affected. + // + // ResourceType is a required field + ResourceType *string `locationName:"resourceType" 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 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 +} + +// Summary information for the retriever used for your Amazon Q application. +type Retriever struct { + _ struct{} `type:"structure"` + + // The identifier of the Amazon Q application using the retriever. + ApplicationId *string `locationName:"applicationId" min:"36" type:"string"` + + // The name of your retriever. + DisplayName *string `locationName:"displayName" min:"1" type:"string"` + + // The identifier of the retriever used by your Amazon Q application. + RetrieverId *string `locationName:"retrieverId" min:"36" type:"string"` + + // The status of your retriever. + Status *string `locationName:"status" type:"string" enum:"RetrieverStatus"` + + // The type of your retriever. + Type *string `locationName:"type" type:"string" enum:"RetrieverType"` +} + +// 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 Retriever) 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 Retriever) GoString() string { + return s.String() +} + +// SetApplicationId sets the ApplicationId field's value. +func (s *Retriever) SetApplicationId(v string) *Retriever { + s.ApplicationId = &v + return s +} + +// SetDisplayName sets the DisplayName field's value. +func (s *Retriever) SetDisplayName(v string) *Retriever { + s.DisplayName = &v + return s +} + +// SetRetrieverId sets the RetrieverId field's value. +func (s *Retriever) SetRetrieverId(v string) *Retriever { + s.RetrieverId = &v + return s +} + +// SetStatus sets the Status field's value. +func (s *Retriever) SetStatus(v string) *Retriever { + s.Status = &v + return s +} + +// SetType sets the Type field's value. +func (s *Retriever) SetType(v string) *Retriever { + s.Type = &v + return s +} + +// Provides information on how the retriever used for your Amazon Q application +// is configured. +type RetrieverConfiguration struct { + _ struct{} `type:"structure"` + + // Provides information on how the Amazon Kendra index used as a retriever for + // your Amazon Q application is configured. + KendraIndexConfiguration *KendraIndexConfiguration `locationName:"kendraIndexConfiguration" type:"structure"` + + // Provides information on how a Amazon Q index used as a retriever for your + // Amazon Q application is configured. + NativeIndexConfiguration *NativeIndexConfiguration `locationName:"nativeIndexConfiguration" 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 RetrieverConfiguration) 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 RetrieverConfiguration) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *RetrieverConfiguration) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "RetrieverConfiguration"} + if s.KendraIndexConfiguration != nil { + if err := s.KendraIndexConfiguration.Validate(); err != nil { + invalidParams.AddNested("KendraIndexConfiguration", err.(request.ErrInvalidParams)) + } + } + if s.NativeIndexConfiguration != nil { + if err := s.NativeIndexConfiguration.Validate(); err != nil { + invalidParams.AddNested("NativeIndexConfiguration", err.(request.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetKendraIndexConfiguration sets the KendraIndexConfiguration field's value. +func (s *RetrieverConfiguration) SetKendraIndexConfiguration(v *KendraIndexConfiguration) *RetrieverConfiguration { + s.KendraIndexConfiguration = v + return s +} + +// SetNativeIndexConfiguration sets the NativeIndexConfiguration field's value. +func (s *RetrieverConfiguration) SetNativeIndexConfiguration(v *NativeIndexConfiguration) *RetrieverConfiguration { + s.NativeIndexConfiguration = v + return s +} + +// Guardrail rules for an Amazon Q application. Amazon Q supports only one rule +// at a time. +type Rule struct { + _ struct{} `type:"structure"` + + // Users and groups to be excluded from a rule. + ExcludedUsersAndGroups *UsersAndGroups `locationName:"excludedUsersAndGroups" type:"structure"` + + // Users and groups to be included in a rule. + IncludedUsersAndGroups *UsersAndGroups `locationName:"includedUsersAndGroups" type:"structure"` + + // The configuration information for a rule. + RuleConfiguration *RuleConfiguration `locationName:"ruleConfiguration" type:"structure"` + + // The type fo rule. + // + // RuleType is a required field + RuleType *string `locationName:"ruleType" type:"string" required:"true" enum:"RuleType"` +} + +// 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 Rule) 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 Rule) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *Rule) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "Rule"} + if s.RuleType == nil { + invalidParams.Add(request.NewErrParamRequired("RuleType")) + } + if s.RuleConfiguration != nil { + if err := s.RuleConfiguration.Validate(); err != nil { + invalidParams.AddNested("RuleConfiguration", err.(request.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetExcludedUsersAndGroups sets the ExcludedUsersAndGroups field's value. +func (s *Rule) SetExcludedUsersAndGroups(v *UsersAndGroups) *Rule { + s.ExcludedUsersAndGroups = v + return s +} + +// SetIncludedUsersAndGroups sets the IncludedUsersAndGroups field's value. +func (s *Rule) SetIncludedUsersAndGroups(v *UsersAndGroups) *Rule { + s.IncludedUsersAndGroups = v + return s +} + +// SetRuleConfiguration sets the RuleConfiguration field's value. +func (s *Rule) SetRuleConfiguration(v *RuleConfiguration) *Rule { + s.RuleConfiguration = v + return s +} + +// SetRuleType sets the RuleType field's value. +func (s *Rule) SetRuleType(v string) *Rule { + s.RuleType = &v + return s +} + +// Provides configuration information about a rule. +type RuleConfiguration struct { + _ struct{} `type:"structure"` + + // A rule for configuring how Amazon Q responds when it encounters a a blocked + // topic. + ContentBlockerRule *ContentBlockerRule `locationName:"contentBlockerRule" type:"structure"` + + // Rules for retrieving content from data sources connected to a Amazon Q application + // for a specific topic control configuration. + ContentRetrievalRule *ContentRetrievalRule `locationName:"contentRetrievalRule" 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 RuleConfiguration) 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 RuleConfiguration) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *RuleConfiguration) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "RuleConfiguration"} + if s.ContentRetrievalRule != nil { + if err := s.ContentRetrievalRule.Validate(); err != nil { + invalidParams.AddNested("ContentRetrievalRule", err.(request.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetContentBlockerRule sets the ContentBlockerRule field's value. +func (s *RuleConfiguration) SetContentBlockerRule(v *ContentBlockerRule) *RuleConfiguration { + s.ContentBlockerRule = v + return s +} + +// SetContentRetrievalRule sets the ContentRetrievalRule field's value. +func (s *RuleConfiguration) SetContentRetrievalRule(v *ContentRetrievalRule) *RuleConfiguration { + s.ContentRetrievalRule = v + return s +} + +// Information required for Amazon Q to find a specific file in an Amazon S3 +// bucket. +type S3 struct { + _ struct{} `type:"structure"` + + // The name of the S3 bucket that contains the file. + // + // Bucket is a required field + Bucket *string `locationName:"bucket" min:"1" type:"string" required:"true"` + + // The name of the file. + // + // Key is a required field + Key *string `locationName:"key" 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 S3) 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 S3) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *S3) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "S3"} + if s.Bucket == nil { + invalidParams.Add(request.NewErrParamRequired("Bucket")) + } + if s.Bucket != nil && len(*s.Bucket) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Bucket", 1)) + } + if s.Key == nil { + invalidParams.Add(request.NewErrParamRequired("Key")) + } + if s.Key != nil && len(*s.Key) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Key", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetBucket sets the Bucket field's value. +func (s *S3) SetBucket(v string) *S3 { + s.Bucket = &v + return s +} + +// SetKey sets the Key field's value. +func (s *S3) SetKey(v string) *S3 { + s.Key = &v + return s +} + +// Provides the SAML 2.0 compliant identity provider (IdP) configuration information +// Amazon Q needs to deploy a Amazon Q web experience. +type SamlConfiguration struct { + _ struct{} `type:"structure"` + + // The metadata XML that your IdP generated. + // + // MetadataXML is a required field + MetadataXML *string `locationName:"metadataXML" min:"1000" type:"string" required:"true"` + + // The Amazon Resource Name (ARN) of an IAM role assumed by users when they + // authenticate into their Amazon Q web experience, containing the relevant + // Amazon Q permissions for conversing with Amazon Q. + // + // RoleArn is a required field + RoleArn *string `locationName:"roleArn" type:"string" required:"true"` + + // The group attribute name in your IdP that maps to user groups. + UserGroupAttribute *string `locationName:"userGroupAttribute" min:"1" type:"string"` + + // The user attribute name in your IdP that maps to the user email. + // + // UserIdAttribute is a required field + UserIdAttribute *string `locationName:"userIdAttribute" 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 SamlConfiguration) 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 SamlConfiguration) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *SamlConfiguration) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "SamlConfiguration"} + if s.MetadataXML == nil { + invalidParams.Add(request.NewErrParamRequired("MetadataXML")) + } + if s.MetadataXML != nil && len(*s.MetadataXML) < 1000 { + invalidParams.Add(request.NewErrParamMinLen("MetadataXML", 1000)) + } + if s.RoleArn == nil { + invalidParams.Add(request.NewErrParamRequired("RoleArn")) + } + if s.UserGroupAttribute != nil && len(*s.UserGroupAttribute) < 1 { + invalidParams.Add(request.NewErrParamMinLen("UserGroupAttribute", 1)) + } + if s.UserIdAttribute == nil { + invalidParams.Add(request.NewErrParamRequired("UserIdAttribute")) + } + if s.UserIdAttribute != nil && len(*s.UserIdAttribute) < 1 { + invalidParams.Add(request.NewErrParamMinLen("UserIdAttribute", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetMetadataXML sets the MetadataXML field's value. +func (s *SamlConfiguration) SetMetadataXML(v string) *SamlConfiguration { + s.MetadataXML = &v + return s +} + +// SetRoleArn sets the RoleArn field's value. +func (s *SamlConfiguration) SetRoleArn(v string) *SamlConfiguration { + s.RoleArn = &v + return s +} + +// SetUserGroupAttribute sets the UserGroupAttribute field's value. +func (s *SamlConfiguration) SetUserGroupAttribute(v string) *SamlConfiguration { + s.UserGroupAttribute = &v + return s +} + +// SetUserIdAttribute sets the UserIdAttribute field's value. +func (s *SamlConfiguration) SetUserIdAttribute(v string) *SamlConfiguration { + s.UserIdAttribute = &v + return s +} + +// You have exceeded the set limits for your Amazon Q service. +type ServiceQuotaExceededException struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + + // The message describing a ServiceQuotaExceededException. + Message_ *string `locationName:"message" min:"1" type:"string"` + + // The identifier of the resource affected. + // + // ResourceId is a required field + ResourceId *string `locationName:"resourceId" min:"1" type:"string" required:"true"` + + // The type of the resource affected. + // + // ResourceType is a required field + ResourceType *string `locationName:"resourceType" 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 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\n%s", s.Code(), s.Message(), s.String()) +} + +// 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 +} + +// The documents used to generate an Amazon Q web experience response. +type SourceAttribution struct { + _ struct{} `type:"structure"` + + // The number attached to a citation in an Amazon Q generated response. + CitationNumber *int64 `locationName:"citationNumber" type:"integer"` + + // The content extract from the document on which the generated response is + // based. + Snippet *string `locationName:"snippet" min:"1" type:"string"` + + // A text extract from a source document that is used for source attribution. + TextMessageSegments []*TextSegment `locationName:"textMessageSegments" type:"list"` + + // The title of the document which is the source for the Amazon Q generated + // response. + Title *string `locationName:"title" min:"1" type:"string"` + + // The Unix timestamp when the Amazon Q application was last updated. + UpdatedAt *time.Time `locationName:"updatedAt" type:"timestamp"` + + // The URL of the document which is the source for the Amazon Q generated response. + Url *string `locationName:"url" 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 SourceAttribution) 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 SourceAttribution) GoString() string { + return s.String() +} + +// SetCitationNumber sets the CitationNumber field's value. +func (s *SourceAttribution) SetCitationNumber(v int64) *SourceAttribution { + s.CitationNumber = &v + return s +} + +// SetSnippet sets the Snippet field's value. +func (s *SourceAttribution) SetSnippet(v string) *SourceAttribution { + s.Snippet = &v + return s +} + +// SetTextMessageSegments sets the TextMessageSegments field's value. +func (s *SourceAttribution) SetTextMessageSegments(v []*TextSegment) *SourceAttribution { + s.TextMessageSegments = v + return s +} + +// SetTitle sets the Title field's value. +func (s *SourceAttribution) SetTitle(v string) *SourceAttribution { + s.Title = &v + return s +} + +// SetUpdatedAt sets the UpdatedAt field's value. +func (s *SourceAttribution) SetUpdatedAt(v time.Time) *SourceAttribution { + s.UpdatedAt = &v + return s +} + +// SetUrl sets the Url field's value. +func (s *SourceAttribution) SetUrl(v string) *SourceAttribution { + s.Url = &v + return s +} + +type StartDataSourceSyncJobInput struct { + _ struct{} `type:"structure" nopayload:"true"` + + // The identifier of Amazon Q application the data source is connected to. + // + // ApplicationId is a required field + ApplicationId *string `location:"uri" locationName:"applicationId" min:"36" type:"string" required:"true"` + + // The identifier of the data source connector. + // + // DataSourceId is a required field + DataSourceId *string `location:"uri" locationName:"dataSourceId" min:"36" type:"string" required:"true"` + + // The identifier of the index used with the data source connector. + // + // IndexId is a required field + IndexId *string `location:"uri" locationName:"indexId" min:"36" 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 StartDataSourceSyncJobInput) 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 StartDataSourceSyncJobInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *StartDataSourceSyncJobInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "StartDataSourceSyncJobInput"} + if s.ApplicationId == nil { + invalidParams.Add(request.NewErrParamRequired("ApplicationId")) + } + if s.ApplicationId != nil && len(*s.ApplicationId) < 36 { + invalidParams.Add(request.NewErrParamMinLen("ApplicationId", 36)) + } + if s.DataSourceId == nil { + invalidParams.Add(request.NewErrParamRequired("DataSourceId")) + } + if s.DataSourceId != nil && len(*s.DataSourceId) < 36 { + invalidParams.Add(request.NewErrParamMinLen("DataSourceId", 36)) + } + if s.IndexId == nil { + invalidParams.Add(request.NewErrParamRequired("IndexId")) + } + if s.IndexId != nil && len(*s.IndexId) < 36 { + invalidParams.Add(request.NewErrParamMinLen("IndexId", 36)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetApplicationId sets the ApplicationId field's value. +func (s *StartDataSourceSyncJobInput) SetApplicationId(v string) *StartDataSourceSyncJobInput { + s.ApplicationId = &v + return s +} + +// SetDataSourceId sets the DataSourceId field's value. +func (s *StartDataSourceSyncJobInput) SetDataSourceId(v string) *StartDataSourceSyncJobInput { + s.DataSourceId = &v + return s +} + +// SetIndexId sets the IndexId field's value. +func (s *StartDataSourceSyncJobInput) SetIndexId(v string) *StartDataSourceSyncJobInput { + s.IndexId = &v + return s +} + +type StartDataSourceSyncJobOutput struct { + _ struct{} `type:"structure"` + + // The identifier for a particular synchronization job. + ExecutionId *string `locationName:"executionId" min:"36" 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 StartDataSourceSyncJobOutput) 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 StartDataSourceSyncJobOutput) GoString() string { + return s.String() +} + +// SetExecutionId sets the ExecutionId field's value. +func (s *StartDataSourceSyncJobOutput) SetExecutionId(v string) *StartDataSourceSyncJobOutput { + s.ExecutionId = &v + return s +} + +type StopDataSourceSyncJobInput struct { + _ struct{} `type:"structure" nopayload:"true"` + + // The identifier of the Amazon Q application that the data source is connected + // to. + // + // ApplicationId is a required field + ApplicationId *string `location:"uri" locationName:"applicationId" min:"36" type:"string" required:"true"` + + // The identifier of the data source connector. + // + // DataSourceId is a required field + DataSourceId *string `location:"uri" locationName:"dataSourceId" min:"36" type:"string" required:"true"` + + // The identifier of the index used with the Amazon Q data source connector. + // + // IndexId is a required field + IndexId *string `location:"uri" locationName:"indexId" min:"36" 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 StopDataSourceSyncJobInput) 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 StopDataSourceSyncJobInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *StopDataSourceSyncJobInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "StopDataSourceSyncJobInput"} + if s.ApplicationId == nil { + invalidParams.Add(request.NewErrParamRequired("ApplicationId")) + } + if s.ApplicationId != nil && len(*s.ApplicationId) < 36 { + invalidParams.Add(request.NewErrParamMinLen("ApplicationId", 36)) + } + if s.DataSourceId == nil { + invalidParams.Add(request.NewErrParamRequired("DataSourceId")) + } + if s.DataSourceId != nil && len(*s.DataSourceId) < 36 { + invalidParams.Add(request.NewErrParamMinLen("DataSourceId", 36)) + } + if s.IndexId == nil { + invalidParams.Add(request.NewErrParamRequired("IndexId")) + } + if s.IndexId != nil && len(*s.IndexId) < 36 { + invalidParams.Add(request.NewErrParamMinLen("IndexId", 36)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetApplicationId sets the ApplicationId field's value. +func (s *StopDataSourceSyncJobInput) SetApplicationId(v string) *StopDataSourceSyncJobInput { + s.ApplicationId = &v + return s +} + +// SetDataSourceId sets the DataSourceId field's value. +func (s *StopDataSourceSyncJobInput) SetDataSourceId(v string) *StopDataSourceSyncJobInput { + s.DataSourceId = &v + return s +} + +// SetIndexId sets the IndexId field's value. +func (s *StopDataSourceSyncJobInput) SetIndexId(v string) *StopDataSourceSyncJobInput { + s.IndexId = &v + return s +} + +type StopDataSourceSyncJobOutput 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 StopDataSourceSyncJobOutput) 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 StopDataSourceSyncJobOutput) GoString() string { + return s.String() +} + +// A list of key/value pairs that identify an index, FAQ, or data source. Tag +// keys and values can consist of Unicode letters, digits, white space, and +// any of the following symbols: _ . : / = + - @. +type Tag struct { + _ struct{} `type:"structure"` + + // The key for the tag. Keys are not case sensitive and must be unique for the + // Amazon Q application or data source. + // + // Key is a required field + Key *string `locationName:"key" min:"1" type:"string" required:"true"` + + // The value associated with the tag. The value may be an empty string but it + // can't be null. + // + // Value is a required field + Value *string `locationName:"value" 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 Tag) 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 Tag) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *Tag) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "Tag"} + if s.Key == nil { + invalidParams.Add(request.NewErrParamRequired("Key")) + } + if s.Key != nil && len(*s.Key) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Key", 1)) + } + if s.Value == nil { + invalidParams.Add(request.NewErrParamRequired("Value")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetKey sets the Key field's value. +func (s *Tag) SetKey(v string) *Tag { + s.Key = &v + return s +} + +// SetValue sets the Value field's value. +func (s *Tag) SetValue(v string) *Tag { + s.Value = &v + return s +} + +type TagResourceInput struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the Amazon Q application or data source + // to tag. + // + // ResourceARN is a required field + ResourceARN *string `location:"uri" locationName:"resourceARN" min:"1" type:"string" required:"true"` + + // A list of tag keys to add to the Amazon Q application or data source. If + // a tag already exists, the existing value is replaced with the new value. + // + // Tags is a required field + Tags []*Tag `locationName:"tags" 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 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 s.Tags != nil { + for i, v := range s.Tags { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams)) + } + } + } + + 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 []*Tag) *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() +} + +// Provides information about text documents in an index. +type TextDocumentStatistics struct { + _ struct{} `type:"structure"` + + // The total size, in bytes, of the indexed documents. + IndexedTextBytes *int64 `locationName:"indexedTextBytes" type:"long"` + + // The number of text documents indexed. + IndexedTextDocumentCount *int64 `locationName:"indexedTextDocumentCount" 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 TextDocumentStatistics) 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 TextDocumentStatistics) GoString() string { + return s.String() +} + +// SetIndexedTextBytes sets the IndexedTextBytes field's value. +func (s *TextDocumentStatistics) SetIndexedTextBytes(v int64) *TextDocumentStatistics { + s.IndexedTextBytes = &v + return s +} + +// SetIndexedTextDocumentCount sets the IndexedTextDocumentCount field's value. +func (s *TextDocumentStatistics) SetIndexedTextDocumentCount(v int64) *TextDocumentStatistics { + s.IndexedTextDocumentCount = &v + return s +} + +// Provides information about a text extract in a chat response that can be +// attributed to a source document. +type TextSegment struct { + _ struct{} `type:"structure"` + + // The zero-based location in the response string where the source attribution + // starts. + BeginOffset *int64 `locationName:"beginOffset" type:"integer"` + + // The zero-based location in the response string where the source attribution + // ends. + EndOffset *int64 `locationName:"endOffset" 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 TextSegment) 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 TextSegment) GoString() string { + return s.String() +} + +// SetBeginOffset sets the BeginOffset field's value. +func (s *TextSegment) SetBeginOffset(v int64) *TextSegment { + s.BeginOffset = &v + return s +} + +// SetEndOffset sets the EndOffset field's value. +func (s *TextSegment) SetEndOffset(v int64) *TextSegment { + s.EndOffset = &v + return s +} + +// The request was denied due to throttling. Reduce the number of requests and +// try again. +type ThrottlingException struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + + Message_ *string `locationName:"message" 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 ThrottlingException) 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 ThrottlingException) GoString() string { + return s.String() +} + +func newErrorThrottlingException(v protocol.ResponseMetadata) error { + return &ThrottlingException{ + RespMetadata: v, + } +} + +// Code returns the exception type name. +func (s *ThrottlingException) Code() string { + return "ThrottlingException" +} + +// Message returns the exception's message. +func (s *ThrottlingException) Message() string { + if s.Message_ != nil { + return *s.Message_ + } + return "" +} + +// OrigErr always returns nil, satisfies awserr.Error interface. +func (s *ThrottlingException) OrigErr() error { + return nil +} + +func (s *ThrottlingException) 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 *ThrottlingException) StatusCode() int { + return s.RespMetadata.StatusCode +} + +// RequestID returns the service's response RequestID for request. +func (s *ThrottlingException) RequestID() string { + return s.RespMetadata.RequestID +} + +// The topic specific controls configured for an Amazon Q application. +type TopicConfiguration struct { + _ struct{} `type:"structure"` + + // A description for your topic control configuration. Use this outline how + // the large language model (LLM) should use this topic control configuration. + Description *string `locationName:"description" type:"string"` + + // A list of example phrases that you expect the end user to use in relation + // to the topic. + ExampleChatMessages []*string `locationName:"exampleChatMessages" type:"list"` + + // A name for your topic control configuration. + // + // Name is a required field + Name *string `locationName:"name" min:"1" type:"string" required:"true"` + + // Rules defined for a topic configuration. + // + // Rules is a required field + Rules []*Rule `locationName:"rules" 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 TopicConfiguration) 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 TopicConfiguration) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *TopicConfiguration) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "TopicConfiguration"} + 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.Rules == nil { + invalidParams.Add(request.NewErrParamRequired("Rules")) + } + if s.Rules != nil { + for i, v := range s.Rules { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Rules", i), err.(request.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetDescription sets the Description field's value. +func (s *TopicConfiguration) SetDescription(v string) *TopicConfiguration { + s.Description = &v + return s +} + +// SetExampleChatMessages sets the ExampleChatMessages field's value. +func (s *TopicConfiguration) SetExampleChatMessages(v []*string) *TopicConfiguration { + s.ExampleChatMessages = v + return s +} + +// SetName sets the Name field's value. +func (s *TopicConfiguration) SetName(v string) *TopicConfiguration { + s.Name = &v + return s +} + +// SetRules sets the Rules field's value. +func (s *TopicConfiguration) SetRules(v []*Rule) *TopicConfiguration { + s.Rules = v + return s +} + +type UntagResourceInput struct { + _ struct{} `type:"structure" nopayload:"true"` + + // The Amazon Resource Name (ARN) of the Amazon Q application, or data source + // to remove the tag from. + // + // ResourceARN is a required field + ResourceARN *string `location:"uri" locationName:"resourceARN" min:"1" type:"string" required:"true"` + + // A list of tag keys to remove from the Amazon Q application or data source. + // If a tag key does not exist on the resource, it is ignored. + // + // TagKeys is a required field + TagKeys []*string `location:"querystring" locationName:"tagKeys" 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 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 UpdateApplicationInput struct { + _ struct{} `type:"structure"` + + // The identifier of the Amazon Q application. + // + // ApplicationId is a required field + ApplicationId *string `location:"uri" locationName:"applicationId" min:"36" type:"string" required:"true"` + + // An option to allow end users to upload files directly during chat. + AttachmentsConfiguration *AttachmentsConfiguration `locationName:"attachmentsConfiguration" type:"structure"` + + // A description for the Amazon Q application. + Description *string `locationName:"description" type:"string"` + + // A name for the Amazon Q application. + DisplayName *string `locationName:"displayName" min:"1" type:"string"` + + // An Amazon Web Services Identity and Access Management (IAM) role that gives + // Amazon Q permission to access Amazon CloudWatch logs and metrics. + RoleArn *string `locationName:"roleArn" 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 UpdateApplicationInput) 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 UpdateApplicationInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *UpdateApplicationInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "UpdateApplicationInput"} + if s.ApplicationId == nil { + invalidParams.Add(request.NewErrParamRequired("ApplicationId")) + } + if s.ApplicationId != nil && len(*s.ApplicationId) < 36 { + invalidParams.Add(request.NewErrParamMinLen("ApplicationId", 36)) + } + if s.DisplayName != nil && len(*s.DisplayName) < 1 { + invalidParams.Add(request.NewErrParamMinLen("DisplayName", 1)) + } + if s.AttachmentsConfiguration != nil { + if err := s.AttachmentsConfiguration.Validate(); err != nil { + invalidParams.AddNested("AttachmentsConfiguration", err.(request.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetApplicationId sets the ApplicationId field's value. +func (s *UpdateApplicationInput) SetApplicationId(v string) *UpdateApplicationInput { + s.ApplicationId = &v + return s +} + +// SetAttachmentsConfiguration sets the AttachmentsConfiguration field's value. +func (s *UpdateApplicationInput) SetAttachmentsConfiguration(v *AttachmentsConfiguration) *UpdateApplicationInput { + s.AttachmentsConfiguration = v + return s +} + +// SetDescription sets the Description field's value. +func (s *UpdateApplicationInput) SetDescription(v string) *UpdateApplicationInput { + s.Description = &v + return s +} + +// SetDisplayName sets the DisplayName field's value. +func (s *UpdateApplicationInput) SetDisplayName(v string) *UpdateApplicationInput { + s.DisplayName = &v + return s +} + +// SetRoleArn sets the RoleArn field's value. +func (s *UpdateApplicationInput) SetRoleArn(v string) *UpdateApplicationInput { + s.RoleArn = &v + return s +} + +type UpdateApplicationOutput 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 UpdateApplicationOutput) 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 UpdateApplicationOutput) GoString() string { + return s.String() +} + +type UpdateChatControlsConfigurationInput struct { + _ struct{} `type:"structure"` + + // The identifier of the application for which the chat controls are configured. + // + // ApplicationId is a required field + ApplicationId *string `location:"uri" locationName:"applicationId" min:"36" type:"string" required:"true"` + + // The phrases blocked from chat by your chat control configuration. + BlockedPhrasesConfigurationUpdate *BlockedPhrasesConfigurationUpdate `locationName:"blockedPhrasesConfigurationUpdate" type:"structure"` + + // A token that you provide to identify the request to update a Amazon Q application + // chat configuration. + ClientToken *string `locationName:"clientToken" min:"1" type:"string" idempotencyToken:"true"` + + // The response scope configured for your application. This determines whether + // your application uses its retrieval augmented generation (RAG) system to + // generate answers only from your enterprise data, or also uses the large language + // models (LLM) knowledge to respons to end user questions in chat. + ResponseScope *string `locationName:"responseScope" type:"string" enum:"ResponseScope"` + + // The configured topic specific chat controls you want to update. + TopicConfigurationsToCreateOrUpdate []*TopicConfiguration `locationName:"topicConfigurationsToCreateOrUpdate" type:"list"` + + // The configured topic specific chat controls you want to delete. + TopicConfigurationsToDelete []*TopicConfiguration `locationName:"topicConfigurationsToDelete" 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 UpdateChatControlsConfigurationInput) 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 UpdateChatControlsConfigurationInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *UpdateChatControlsConfigurationInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "UpdateChatControlsConfigurationInput"} + if s.ApplicationId == nil { + invalidParams.Add(request.NewErrParamRequired("ApplicationId")) + } + if s.ApplicationId != nil && len(*s.ApplicationId) < 36 { + invalidParams.Add(request.NewErrParamMinLen("ApplicationId", 36)) + } + if s.ClientToken != nil && len(*s.ClientToken) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ClientToken", 1)) + } + if s.TopicConfigurationsToCreateOrUpdate != nil { + for i, v := range s.TopicConfigurationsToCreateOrUpdate { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "TopicConfigurationsToCreateOrUpdate", i), err.(request.ErrInvalidParams)) + } + } + } + if s.TopicConfigurationsToDelete != nil { + for i, v := range s.TopicConfigurationsToDelete { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "TopicConfigurationsToDelete", i), err.(request.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetApplicationId sets the ApplicationId field's value. +func (s *UpdateChatControlsConfigurationInput) SetApplicationId(v string) *UpdateChatControlsConfigurationInput { + s.ApplicationId = &v + return s +} + +// SetBlockedPhrasesConfigurationUpdate sets the BlockedPhrasesConfigurationUpdate field's value. +func (s *UpdateChatControlsConfigurationInput) SetBlockedPhrasesConfigurationUpdate(v *BlockedPhrasesConfigurationUpdate) *UpdateChatControlsConfigurationInput { + s.BlockedPhrasesConfigurationUpdate = v + return s +} + +// SetClientToken sets the ClientToken field's value. +func (s *UpdateChatControlsConfigurationInput) SetClientToken(v string) *UpdateChatControlsConfigurationInput { + s.ClientToken = &v + return s +} + +// SetResponseScope sets the ResponseScope field's value. +func (s *UpdateChatControlsConfigurationInput) SetResponseScope(v string) *UpdateChatControlsConfigurationInput { + s.ResponseScope = &v + return s +} + +// SetTopicConfigurationsToCreateOrUpdate sets the TopicConfigurationsToCreateOrUpdate field's value. +func (s *UpdateChatControlsConfigurationInput) SetTopicConfigurationsToCreateOrUpdate(v []*TopicConfiguration) *UpdateChatControlsConfigurationInput { + s.TopicConfigurationsToCreateOrUpdate = v + return s +} + +// SetTopicConfigurationsToDelete sets the TopicConfigurationsToDelete field's value. +func (s *UpdateChatControlsConfigurationInput) SetTopicConfigurationsToDelete(v []*TopicConfiguration) *UpdateChatControlsConfigurationInput { + s.TopicConfigurationsToDelete = v + return s +} + +type UpdateChatControlsConfigurationOutput 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 UpdateChatControlsConfigurationOutput) 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 UpdateChatControlsConfigurationOutput) GoString() string { + return s.String() +} + +type UpdateDataSourceInput struct { + _ struct{} `type:"structure"` + + // The identifier of the Amazon Q application the data source is attached to. + // + // ApplicationId is a required field + ApplicationId *string `location:"uri" locationName:"applicationId" min:"36" type:"string" required:"true"` + + // The identifier of the data source connector. + // + // DataSourceId is a required field + DataSourceId *string `location:"uri" locationName:"dataSourceId" min:"36" type:"string" required:"true"` + + // The description of the data source connector. + Description *string `locationName:"description" type:"string"` + + // A name of the data source connector. + DisplayName *string `locationName:"displayName" min:"1" type:"string"` + + // Provides the configuration information for altering document metadata and + // content during the document ingestion process. + // + // For more information, see Custom document enrichment (https://docs.aws.amazon.com/amazonq/latest/business-use-dg/custom-document-enrichment.html). + DocumentEnrichmentConfiguration *DocumentEnrichmentConfiguration `locationName:"documentEnrichmentConfiguration" type:"structure"` + + // The identifier of the index attached to the data source connector. + // + // IndexId is a required field + IndexId *string `location:"uri" locationName:"indexId" min:"36" type:"string" required:"true"` + + // The Amazon Resource Name (ARN) of an IAM role with permission to access the + // data source and required resources. + RoleArn *string `locationName:"roleArn" type:"string"` + + // The chosen update frequency for your data source. + SyncSchedule *string `locationName:"syncSchedule" type:"string"` + + // Provides configuration information needed to connect to an Amazon VPC (Virtual + // Private Cloud). + VpcConfiguration *DataSourceVpcConfiguration `locationName:"vpcConfiguration" 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 UpdateDataSourceInput) 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 UpdateDataSourceInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *UpdateDataSourceInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "UpdateDataSourceInput"} + if s.ApplicationId == nil { + invalidParams.Add(request.NewErrParamRequired("ApplicationId")) + } + if s.ApplicationId != nil && len(*s.ApplicationId) < 36 { + invalidParams.Add(request.NewErrParamMinLen("ApplicationId", 36)) + } + if s.DataSourceId == nil { + invalidParams.Add(request.NewErrParamRequired("DataSourceId")) + } + if s.DataSourceId != nil && len(*s.DataSourceId) < 36 { + invalidParams.Add(request.NewErrParamMinLen("DataSourceId", 36)) + } + if s.DisplayName != nil && len(*s.DisplayName) < 1 { + invalidParams.Add(request.NewErrParamMinLen("DisplayName", 1)) + } + if s.IndexId == nil { + invalidParams.Add(request.NewErrParamRequired("IndexId")) + } + if s.IndexId != nil && len(*s.IndexId) < 36 { + invalidParams.Add(request.NewErrParamMinLen("IndexId", 36)) + } + if s.DocumentEnrichmentConfiguration != nil { + if err := s.DocumentEnrichmentConfiguration.Validate(); err != nil { + invalidParams.AddNested("DocumentEnrichmentConfiguration", err.(request.ErrInvalidParams)) + } + } + if s.VpcConfiguration != nil { + if err := s.VpcConfiguration.Validate(); err != nil { + invalidParams.AddNested("VpcConfiguration", err.(request.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetApplicationId sets the ApplicationId field's value. +func (s *UpdateDataSourceInput) SetApplicationId(v string) *UpdateDataSourceInput { + s.ApplicationId = &v + return s +} + +// SetDataSourceId sets the DataSourceId field's value. +func (s *UpdateDataSourceInput) SetDataSourceId(v string) *UpdateDataSourceInput { + s.DataSourceId = &v + return s +} + +// SetDescription sets the Description field's value. +func (s *UpdateDataSourceInput) SetDescription(v string) *UpdateDataSourceInput { + s.Description = &v + return s +} + +// SetDisplayName sets the DisplayName field's value. +func (s *UpdateDataSourceInput) SetDisplayName(v string) *UpdateDataSourceInput { + s.DisplayName = &v + return s +} + +// SetDocumentEnrichmentConfiguration sets the DocumentEnrichmentConfiguration field's value. +func (s *UpdateDataSourceInput) SetDocumentEnrichmentConfiguration(v *DocumentEnrichmentConfiguration) *UpdateDataSourceInput { + s.DocumentEnrichmentConfiguration = v + return s +} + +// SetIndexId sets the IndexId field's value. +func (s *UpdateDataSourceInput) SetIndexId(v string) *UpdateDataSourceInput { + s.IndexId = &v + return s +} + +// SetRoleArn sets the RoleArn field's value. +func (s *UpdateDataSourceInput) SetRoleArn(v string) *UpdateDataSourceInput { + s.RoleArn = &v + return s +} + +// SetSyncSchedule sets the SyncSchedule field's value. +func (s *UpdateDataSourceInput) SetSyncSchedule(v string) *UpdateDataSourceInput { + s.SyncSchedule = &v + return s +} + +// SetVpcConfiguration sets the VpcConfiguration field's value. +func (s *UpdateDataSourceInput) SetVpcConfiguration(v *DataSourceVpcConfiguration) *UpdateDataSourceInput { + s.VpcConfiguration = v + return s +} + +type UpdateDataSourceOutput 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 UpdateDataSourceOutput) 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 UpdateDataSourceOutput) GoString() string { + return s.String() +} + +type UpdateIndexInput struct { + _ struct{} `type:"structure"` + + // The identifier of the Amazon Q application connected to the index. + // + // ApplicationId is a required field + ApplicationId *string `location:"uri" locationName:"applicationId" min:"36" type:"string" required:"true"` + + // The storage capacity units you want to provision for your Amazon Q index. + // You can add and remove capacity to fit your usage needs. + CapacityConfiguration *IndexCapacityConfiguration `locationName:"capacityConfiguration" type:"structure"` + + // The description of the Amazon Q index. + Description *string `locationName:"description" type:"string"` + + // The name of the Amazon Q index. + DisplayName *string `locationName:"displayName" min:"1" type:"string"` + + // Configuration information for document metadata or fields. Document metadata + // are fields or attributes associated with your documents. For example, the + // company department name associated with each document. For more information, + // see Understanding document attributes (https://docs.aws.amazon.com/amazonq/latest/business-use-dg/doc-attributes-types.html#doc-attributes). + DocumentAttributeConfigurations []*DocumentAttributeConfiguration `locationName:"documentAttributeConfigurations" min:"1" type:"list"` + + // The identifier of the Amazon Q index. + // + // IndexId is a required field + IndexId *string `location:"uri" locationName:"indexId" min:"36" 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 UpdateIndexInput) 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 UpdateIndexInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *UpdateIndexInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "UpdateIndexInput"} + if s.ApplicationId == nil { + invalidParams.Add(request.NewErrParamRequired("ApplicationId")) + } + if s.ApplicationId != nil && len(*s.ApplicationId) < 36 { + invalidParams.Add(request.NewErrParamMinLen("ApplicationId", 36)) + } + if s.DisplayName != nil && len(*s.DisplayName) < 1 { + invalidParams.Add(request.NewErrParamMinLen("DisplayName", 1)) + } + if s.DocumentAttributeConfigurations != nil && len(s.DocumentAttributeConfigurations) < 1 { + invalidParams.Add(request.NewErrParamMinLen("DocumentAttributeConfigurations", 1)) + } + if s.IndexId == nil { + invalidParams.Add(request.NewErrParamRequired("IndexId")) + } + if s.IndexId != nil && len(*s.IndexId) < 36 { + invalidParams.Add(request.NewErrParamMinLen("IndexId", 36)) + } + if s.CapacityConfiguration != nil { + if err := s.CapacityConfiguration.Validate(); err != nil { + invalidParams.AddNested("CapacityConfiguration", err.(request.ErrInvalidParams)) + } + } + if s.DocumentAttributeConfigurations != nil { + for i, v := range s.DocumentAttributeConfigurations { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "DocumentAttributeConfigurations", i), err.(request.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetApplicationId sets the ApplicationId field's value. +func (s *UpdateIndexInput) SetApplicationId(v string) *UpdateIndexInput { + s.ApplicationId = &v + return s +} + +// SetCapacityConfiguration sets the CapacityConfiguration field's value. +func (s *UpdateIndexInput) SetCapacityConfiguration(v *IndexCapacityConfiguration) *UpdateIndexInput { + s.CapacityConfiguration = v + return s +} + +// SetDescription sets the Description field's value. +func (s *UpdateIndexInput) SetDescription(v string) *UpdateIndexInput { + s.Description = &v + return s +} + +// SetDisplayName sets the DisplayName field's value. +func (s *UpdateIndexInput) SetDisplayName(v string) *UpdateIndexInput { + s.DisplayName = &v + return s +} + +// SetDocumentAttributeConfigurations sets the DocumentAttributeConfigurations field's value. +func (s *UpdateIndexInput) SetDocumentAttributeConfigurations(v []*DocumentAttributeConfiguration) *UpdateIndexInput { + s.DocumentAttributeConfigurations = v + return s +} + +// SetIndexId sets the IndexId field's value. +func (s *UpdateIndexInput) SetIndexId(v string) *UpdateIndexInput { + s.IndexId = &v + return s +} + +type UpdateIndexOutput 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 UpdateIndexOutput) 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 UpdateIndexOutput) GoString() string { + return s.String() +} + +type UpdatePluginInput struct { + _ struct{} `type:"structure"` + + // The identifier of the application the plugin is attached to. + // + // ApplicationId is a required field + ApplicationId *string `location:"uri" locationName:"applicationId" min:"36" type:"string" required:"true"` + + // The authentication configuration the plugin is using. + AuthConfiguration *PluginAuthConfiguration `locationName:"authConfiguration" type:"structure"` + + // The name of the plugin. + DisplayName *string `locationName:"displayName" min:"1" type:"string"` + + // The identifier of the plugin. + // + // PluginId is a required field + PluginId *string `location:"uri" locationName:"pluginId" min:"36" type:"string" required:"true"` + + // The source URL used for plugin configuration. + ServerUrl *string `locationName:"serverUrl" min:"1" type:"string"` + + // The status of the plugin. + State *string `locationName:"state" type:"string" enum:"PluginState"` +} + +// 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 UpdatePluginInput) 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 UpdatePluginInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *UpdatePluginInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "UpdatePluginInput"} + if s.ApplicationId == nil { + invalidParams.Add(request.NewErrParamRequired("ApplicationId")) + } + if s.ApplicationId != nil && len(*s.ApplicationId) < 36 { + invalidParams.Add(request.NewErrParamMinLen("ApplicationId", 36)) + } + if s.DisplayName != nil && len(*s.DisplayName) < 1 { + invalidParams.Add(request.NewErrParamMinLen("DisplayName", 1)) + } + if s.PluginId == nil { + invalidParams.Add(request.NewErrParamRequired("PluginId")) + } + if s.PluginId != nil && len(*s.PluginId) < 36 { + invalidParams.Add(request.NewErrParamMinLen("PluginId", 36)) + } + if s.ServerUrl != nil && len(*s.ServerUrl) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ServerUrl", 1)) + } + if s.AuthConfiguration != nil { + if err := s.AuthConfiguration.Validate(); err != nil { + invalidParams.AddNested("AuthConfiguration", err.(request.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetApplicationId sets the ApplicationId field's value. +func (s *UpdatePluginInput) SetApplicationId(v string) *UpdatePluginInput { + s.ApplicationId = &v + return s +} + +// SetAuthConfiguration sets the AuthConfiguration field's value. +func (s *UpdatePluginInput) SetAuthConfiguration(v *PluginAuthConfiguration) *UpdatePluginInput { + s.AuthConfiguration = v + return s +} + +// SetDisplayName sets the DisplayName field's value. +func (s *UpdatePluginInput) SetDisplayName(v string) *UpdatePluginInput { + s.DisplayName = &v + return s +} + +// SetPluginId sets the PluginId field's value. +func (s *UpdatePluginInput) SetPluginId(v string) *UpdatePluginInput { + s.PluginId = &v + return s +} + +// SetServerUrl sets the ServerUrl field's value. +func (s *UpdatePluginInput) SetServerUrl(v string) *UpdatePluginInput { + s.ServerUrl = &v + return s +} + +// SetState sets the State field's value. +func (s *UpdatePluginInput) SetState(v string) *UpdatePluginInput { + s.State = &v + return s +} + +type UpdatePluginOutput 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 UpdatePluginOutput) 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 UpdatePluginOutput) GoString() string { + return s.String() +} + +type UpdateRetrieverInput struct { + _ struct{} `type:"structure"` + + // The identifier of your Amazon Q application. + // + // ApplicationId is a required field + ApplicationId *string `location:"uri" locationName:"applicationId" min:"36" type:"string" required:"true"` + + // Provides information on how the retriever used for your Amazon Q application + // is configured. + Configuration *RetrieverConfiguration `locationName:"configuration" type:"structure"` + + // The name of your retriever. + DisplayName *string `locationName:"displayName" min:"1" type:"string"` + + // The identifier of your retriever. + // + // RetrieverId is a required field + RetrieverId *string `location:"uri" locationName:"retrieverId" min:"36" type:"string" required:"true"` + + // The Amazon Resource Name (ARN) of an IAM role with permission to access the + // retriever and required resources. + RoleArn *string `locationName:"roleArn" 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 UpdateRetrieverInput) 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 UpdateRetrieverInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *UpdateRetrieverInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "UpdateRetrieverInput"} + if s.ApplicationId == nil { + invalidParams.Add(request.NewErrParamRequired("ApplicationId")) + } + if s.ApplicationId != nil && len(*s.ApplicationId) < 36 { + invalidParams.Add(request.NewErrParamMinLen("ApplicationId", 36)) + } + if s.DisplayName != nil && len(*s.DisplayName) < 1 { + invalidParams.Add(request.NewErrParamMinLen("DisplayName", 1)) + } + if s.RetrieverId == nil { + invalidParams.Add(request.NewErrParamRequired("RetrieverId")) + } + if s.RetrieverId != nil && len(*s.RetrieverId) < 36 { + invalidParams.Add(request.NewErrParamMinLen("RetrieverId", 36)) + } + 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 +} + +// SetApplicationId sets the ApplicationId field's value. +func (s *UpdateRetrieverInput) SetApplicationId(v string) *UpdateRetrieverInput { + s.ApplicationId = &v + return s +} + +// SetConfiguration sets the Configuration field's value. +func (s *UpdateRetrieverInput) SetConfiguration(v *RetrieverConfiguration) *UpdateRetrieverInput { + s.Configuration = v + return s +} + +// SetDisplayName sets the DisplayName field's value. +func (s *UpdateRetrieverInput) SetDisplayName(v string) *UpdateRetrieverInput { + s.DisplayName = &v + return s +} + +// SetRetrieverId sets the RetrieverId field's value. +func (s *UpdateRetrieverInput) SetRetrieverId(v string) *UpdateRetrieverInput { + s.RetrieverId = &v + return s +} + +// SetRoleArn sets the RoleArn field's value. +func (s *UpdateRetrieverInput) SetRoleArn(v string) *UpdateRetrieverInput { + s.RoleArn = &v + return s +} + +type UpdateRetrieverOutput 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 UpdateRetrieverOutput) 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 UpdateRetrieverOutput) GoString() string { + return s.String() +} + +type UpdateUserInput struct { + _ struct{} `type:"structure"` + + // The identifier of the application the user is attached to. + // + // ApplicationId is a required field + ApplicationId *string `location:"uri" locationName:"applicationId" min:"36" type:"string" required:"true"` + + // The user aliases attached to the user id that are to be deleted. + UserAliasesToDelete []*UserAlias `locationName:"userAliasesToDelete" type:"list"` + + // The user aliases attached to the user id that are to be updated. + UserAliasesToUpdate []*UserAlias `locationName:"userAliasesToUpdate" type:"list"` + + // The email id attached to the user. + // + // UserId is a required field + UserId *string `location:"uri" locationName:"userId" 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 UpdateUserInput) 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 UpdateUserInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *UpdateUserInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "UpdateUserInput"} + if s.ApplicationId == nil { + invalidParams.Add(request.NewErrParamRequired("ApplicationId")) + } + if s.ApplicationId != nil && len(*s.ApplicationId) < 36 { + invalidParams.Add(request.NewErrParamMinLen("ApplicationId", 36)) + } + if s.UserId == nil { + invalidParams.Add(request.NewErrParamRequired("UserId")) + } + if s.UserId != nil && len(*s.UserId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("UserId", 1)) + } + if s.UserAliasesToDelete != nil { + for i, v := range s.UserAliasesToDelete { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "UserAliasesToDelete", i), err.(request.ErrInvalidParams)) + } + } + } + if s.UserAliasesToUpdate != nil { + for i, v := range s.UserAliasesToUpdate { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "UserAliasesToUpdate", i), err.(request.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetApplicationId sets the ApplicationId field's value. +func (s *UpdateUserInput) SetApplicationId(v string) *UpdateUserInput { + s.ApplicationId = &v + return s +} + +// SetUserAliasesToDelete sets the UserAliasesToDelete field's value. +func (s *UpdateUserInput) SetUserAliasesToDelete(v []*UserAlias) *UpdateUserInput { + s.UserAliasesToDelete = v + return s +} + +// SetUserAliasesToUpdate sets the UserAliasesToUpdate field's value. +func (s *UpdateUserInput) SetUserAliasesToUpdate(v []*UserAlias) *UpdateUserInput { + s.UserAliasesToUpdate = v + return s +} + +// SetUserId sets the UserId field's value. +func (s *UpdateUserInput) SetUserId(v string) *UpdateUserInput { + s.UserId = &v + return s +} + +type UpdateUserOutput struct { + _ struct{} `type:"structure"` + + // The user aliases that have been to be added to a user id. + UserAliasesAdded []*UserAlias `locationName:"userAliasesAdded" type:"list"` + + // The user aliases that have been deleted from a user id. + UserAliasesDeleted []*UserAlias `locationName:"userAliasesDeleted" type:"list"` + + // The user aliases attached to a user id that have been updated. + UserAliasesUpdated []*UserAlias `locationName:"userAliasesUpdated" 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 UpdateUserOutput) 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 UpdateUserOutput) GoString() string { + return s.String() +} + +// SetUserAliasesAdded sets the UserAliasesAdded field's value. +func (s *UpdateUserOutput) SetUserAliasesAdded(v []*UserAlias) *UpdateUserOutput { + s.UserAliasesAdded = v + return s +} + +// SetUserAliasesDeleted sets the UserAliasesDeleted field's value. +func (s *UpdateUserOutput) SetUserAliasesDeleted(v []*UserAlias) *UpdateUserOutput { + s.UserAliasesDeleted = v + return s +} + +// SetUserAliasesUpdated sets the UserAliasesUpdated field's value. +func (s *UpdateUserOutput) SetUserAliasesUpdated(v []*UserAlias) *UpdateUserOutput { + s.UserAliasesUpdated = v + return s +} + +type UpdateWebExperienceInput struct { + _ struct{} `type:"structure"` + + // The identifier of the Amazon Q application attached to the web experience. + // + // ApplicationId is a required field + ApplicationId *string `location:"uri" locationName:"applicationId" min:"36" type:"string" required:"true"` + + // The authentication configuration of the Amazon Q web experience. + AuthenticationConfiguration *WebExperienceAuthConfiguration `locationName:"authenticationConfiguration" type:"structure"` + + // Determines whether sample prompts are enabled in the web experience for an + // end user. + SamplePromptsControlMode *string `locationName:"samplePromptsControlMode" type:"string" enum:"WebExperienceSamplePromptsControlMode"` + + // The subtitle of the Amazon Q web experience. + Subtitle *string `locationName:"subtitle" type:"string"` + + // The title of the Amazon Q web experience. + Title *string `locationName:"title" type:"string"` + + // The identifier of the Amazon Q web experience. + // + // WebExperienceId is a required field + WebExperienceId *string `location:"uri" locationName:"webExperienceId" min:"36" type:"string" required:"true"` + + // A customized welcome message for an end user in an Amazon Q web experience. + WelcomeMessage *string `locationName:"welcomeMessage" 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 UpdateWebExperienceInput) 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 UpdateWebExperienceInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *UpdateWebExperienceInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "UpdateWebExperienceInput"} + if s.ApplicationId == nil { + invalidParams.Add(request.NewErrParamRequired("ApplicationId")) + } + if s.ApplicationId != nil && len(*s.ApplicationId) < 36 { + invalidParams.Add(request.NewErrParamMinLen("ApplicationId", 36)) + } + if s.WebExperienceId == nil { + invalidParams.Add(request.NewErrParamRequired("WebExperienceId")) + } + if s.WebExperienceId != nil && len(*s.WebExperienceId) < 36 { + invalidParams.Add(request.NewErrParamMinLen("WebExperienceId", 36)) + } + if s.AuthenticationConfiguration != nil { + if err := s.AuthenticationConfiguration.Validate(); err != nil { + invalidParams.AddNested("AuthenticationConfiguration", err.(request.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetApplicationId sets the ApplicationId field's value. +func (s *UpdateWebExperienceInput) SetApplicationId(v string) *UpdateWebExperienceInput { + s.ApplicationId = &v + return s +} + +// SetAuthenticationConfiguration sets the AuthenticationConfiguration field's value. +func (s *UpdateWebExperienceInput) SetAuthenticationConfiguration(v *WebExperienceAuthConfiguration) *UpdateWebExperienceInput { + s.AuthenticationConfiguration = v + return s +} + +// SetSamplePromptsControlMode sets the SamplePromptsControlMode field's value. +func (s *UpdateWebExperienceInput) SetSamplePromptsControlMode(v string) *UpdateWebExperienceInput { + s.SamplePromptsControlMode = &v + return s +} + +// SetSubtitle sets the Subtitle field's value. +func (s *UpdateWebExperienceInput) SetSubtitle(v string) *UpdateWebExperienceInput { + s.Subtitle = &v + return s +} + +// SetTitle sets the Title field's value. +func (s *UpdateWebExperienceInput) SetTitle(v string) *UpdateWebExperienceInput { + s.Title = &v + return s +} + +// SetWebExperienceId sets the WebExperienceId field's value. +func (s *UpdateWebExperienceInput) SetWebExperienceId(v string) *UpdateWebExperienceInput { + s.WebExperienceId = &v + return s +} + +// SetWelcomeMessage sets the WelcomeMessage field's value. +func (s *UpdateWebExperienceInput) SetWelcomeMessage(v string) *UpdateWebExperienceInput { + s.WelcomeMessage = &v + return s +} + +type UpdateWebExperienceOutput 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 UpdateWebExperienceOutput) 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 UpdateWebExperienceOutput) GoString() string { + return s.String() +} + +// Aliases attached to a user id within an Amazon Q application. +type UserAlias struct { + _ struct{} `type:"structure"` + + // The identifier of the data source that the user aliases are associated with. + DataSourceId *string `locationName:"dataSourceId" min:"36" type:"string"` + + // The identifier of the index that the user aliases are associated with. + IndexId *string `locationName:"indexId" min:"36" type:"string"` + + // The identifier of the user id associated with the user aliases. + // + // UserId is a required field + UserId *string `locationName:"userId" 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 UserAlias) 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 UserAlias) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *UserAlias) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "UserAlias"} + if s.DataSourceId != nil && len(*s.DataSourceId) < 36 { + invalidParams.Add(request.NewErrParamMinLen("DataSourceId", 36)) + } + if s.IndexId != nil && len(*s.IndexId) < 36 { + invalidParams.Add(request.NewErrParamMinLen("IndexId", 36)) + } + if s.UserId == nil { + invalidParams.Add(request.NewErrParamRequired("UserId")) + } + if s.UserId != nil && len(*s.UserId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("UserId", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetDataSourceId sets the DataSourceId field's value. +func (s *UserAlias) SetDataSourceId(v string) *UserAlias { + s.DataSourceId = &v + return s +} + +// SetIndexId sets the IndexId field's value. +func (s *UserAlias) SetIndexId(v string) *UserAlias { + s.IndexId = &v + return s +} + +// SetUserId sets the UserId field's value. +func (s *UserAlias) SetUserId(v string) *UserAlias { + s.UserId = &v + return s +} + +// Provides information about users and groups associated with a topic control +// rule. +type UsersAndGroups struct { + _ struct{} `type:"structure"` + + // The user groups associated with a topic control rule. + UserGroups []*string `locationName:"userGroups" type:"list"` + + // The user ids associated with a topic control rule. + UserIds []*string `locationName:"userIds" 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 UsersAndGroups) 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 UsersAndGroups) GoString() string { + return s.String() +} + +// SetUserGroups sets the UserGroups field's value. +func (s *UsersAndGroups) SetUserGroups(v []*string) *UsersAndGroups { + s.UserGroups = v + return s +} + +// SetUserIds sets the UserIds field's value. +func (s *UsersAndGroups) SetUserIds(v []*string) *UsersAndGroups { + s.UserIds = v + return s +} + +// The input doesn't meet the constraints set by the Amazon Q service. Provide +// the correct input and try again. +type ValidationException struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + + // The input field(s) that failed validation. + Fields []*ValidationExceptionField `locationName:"fields" type:"list"` + + // The message describing the ValidationException. + Message_ *string `locationName:"message" min:"1" type:"string"` + + // The reason for the ValidationException. + // + // Reason is a required field + Reason *string `locationName:"reason" type:"string" required:"true" enum:"ValidationExceptionReason"` +} + +// 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\n%s", s.Code(), s.Message(), s.String()) +} + +// 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 +} + +// The input failed to meet the constraints specified by Amazon Q in a specified +// field. +type ValidationExceptionField struct { + _ struct{} `type:"structure"` + + // A message about the validation exception. + // + // Message is a required field + Message *string `locationName:"message" min:"1" type:"string" required:"true"` + + // The field name where the invalid entry was detected. + // + // Name is a required field + Name *string `locationName:"name" 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 ValidationExceptionField) 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 ValidationExceptionField) GoString() string { + return s.String() +} + +// SetMessage sets the Message field's value. +func (s *ValidationExceptionField) SetMessage(v string) *ValidationExceptionField { + s.Message = &v + return s +} + +// SetName sets the Name field's value. +func (s *ValidationExceptionField) SetName(v string) *ValidationExceptionField { + s.Name = &v + return s +} + +// Provides information for an Amazon Q web experience. +type WebExperience struct { + _ struct{} `type:"structure"` + + // The Unix timestamp when the Amazon Q application was last updated. + CreatedAt *time.Time `locationName:"createdAt" type:"timestamp"` + + // The endpoint URLs for your Amazon Q web experience. The URLs are unique and + // fully hosted by Amazon Web Services. + DefaultEndpoint *string `locationName:"defaultEndpoint" min:"1" type:"string"` + + // The status of your Amazon Q web experience. + Status *string `locationName:"status" type:"string" enum:"WebExperienceStatus"` + + // The Unix timestamp when your Amazon Q web experience was updated. + UpdatedAt *time.Time `locationName:"updatedAt" type:"timestamp"` + + // The identifier of your Amazon Q web experience. + WebExperienceId *string `locationName:"webExperienceId" min:"36" 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 WebExperience) 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 WebExperience) GoString() string { + return s.String() +} + +// SetCreatedAt sets the CreatedAt field's value. +func (s *WebExperience) SetCreatedAt(v time.Time) *WebExperience { + s.CreatedAt = &v + return s +} + +// SetDefaultEndpoint sets the DefaultEndpoint field's value. +func (s *WebExperience) SetDefaultEndpoint(v string) *WebExperience { + s.DefaultEndpoint = &v + return s +} + +// SetStatus sets the Status field's value. +func (s *WebExperience) SetStatus(v string) *WebExperience { + s.Status = &v + return s +} + +// SetUpdatedAt sets the UpdatedAt field's value. +func (s *WebExperience) SetUpdatedAt(v time.Time) *WebExperience { + s.UpdatedAt = &v + return s +} + +// SetWebExperienceId sets the WebExperienceId field's value. +func (s *WebExperience) SetWebExperienceId(v string) *WebExperience { + s.WebExperienceId = &v + return s +} + +// Provides the authorization configuration information needed to deploy a Amazon +// Q web experience to end users. +type WebExperienceAuthConfiguration struct { + _ struct{} `type:"structure"` + + // Provides the SAML 2.0 compliant identity provider (IdP) configuration information + // Amazon Q needs to deploy a Amazon Q web experience. + SamlConfiguration *SamlConfiguration `locationName:"samlConfiguration" 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 WebExperienceAuthConfiguration) 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 WebExperienceAuthConfiguration) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *WebExperienceAuthConfiguration) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "WebExperienceAuthConfiguration"} + if s.SamlConfiguration != nil { + if err := s.SamlConfiguration.Validate(); err != nil { + invalidParams.AddNested("SamlConfiguration", err.(request.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetSamlConfiguration sets the SamlConfiguration field's value. +func (s *WebExperienceAuthConfiguration) SetSamlConfiguration(v *SamlConfiguration) *WebExperienceAuthConfiguration { + s.SamlConfiguration = v + return s +} + +const ( + // ActionPayloadFieldTypeString is a ActionPayloadFieldType enum value + ActionPayloadFieldTypeString = "STRING" + + // ActionPayloadFieldTypeNumber is a ActionPayloadFieldType enum value + ActionPayloadFieldTypeNumber = "NUMBER" + + // ActionPayloadFieldTypeArray is a ActionPayloadFieldType enum value + ActionPayloadFieldTypeArray = "ARRAY" + + // ActionPayloadFieldTypeBoolean is a ActionPayloadFieldType enum value + ActionPayloadFieldTypeBoolean = "BOOLEAN" +) + +// ActionPayloadFieldType_Values returns all elements of the ActionPayloadFieldType enum +func ActionPayloadFieldType_Values() []string { + return []string{ + ActionPayloadFieldTypeString, + ActionPayloadFieldTypeNumber, + ActionPayloadFieldTypeArray, + ActionPayloadFieldTypeBoolean, + } +} + +const ( + // ApplicationStatusCreating is a ApplicationStatus enum value + ApplicationStatusCreating = "CREATING" + + // ApplicationStatusActive is a ApplicationStatus enum value + ApplicationStatusActive = "ACTIVE" + + // ApplicationStatusDeleting is a ApplicationStatus enum value + ApplicationStatusDeleting = "DELETING" + + // ApplicationStatusFailed is a ApplicationStatus enum value + ApplicationStatusFailed = "FAILED" + + // ApplicationStatusUpdating is a ApplicationStatus enum value + ApplicationStatusUpdating = "UPDATING" +) + +// ApplicationStatus_Values returns all elements of the ApplicationStatus enum +func ApplicationStatus_Values() []string { + return []string{ + ApplicationStatusCreating, + ApplicationStatusActive, + ApplicationStatusDeleting, + ApplicationStatusFailed, + ApplicationStatusUpdating, + } +} + +const ( + // AttachmentStatusFailed is a AttachmentStatus enum value + AttachmentStatusFailed = "FAILED" + + // AttachmentStatusSucceeded is a AttachmentStatus enum value + AttachmentStatusSucceeded = "SUCCEEDED" +) + +// AttachmentStatus_Values returns all elements of the AttachmentStatus enum +func AttachmentStatus_Values() []string { + return []string{ + AttachmentStatusFailed, + AttachmentStatusSucceeded, + } +} + +const ( + // AttachmentsControlModeEnabled is a AttachmentsControlMode enum value + AttachmentsControlModeEnabled = "ENABLED" + + // AttachmentsControlModeDisabled is a AttachmentsControlMode enum value + AttachmentsControlModeDisabled = "DISABLED" +) + +// AttachmentsControlMode_Values returns all elements of the AttachmentsControlMode enum +func AttachmentsControlMode_Values() []string { + return []string{ + AttachmentsControlModeEnabled, + AttachmentsControlModeDisabled, + } +} + +const ( + // AttributeTypeString is a AttributeType enum value + AttributeTypeString = "STRING" + + // AttributeTypeStringList is a AttributeType enum value + AttributeTypeStringList = "STRING_LIST" + + // AttributeTypeNumber is a AttributeType enum value + AttributeTypeNumber = "NUMBER" + + // AttributeTypeDate is a AttributeType enum value + AttributeTypeDate = "DATE" +) + +// AttributeType_Values returns all elements of the AttributeType enum +func AttributeType_Values() []string { + return []string{ + AttributeTypeString, + AttributeTypeStringList, + AttributeTypeNumber, + AttributeTypeDate, + } +} + +const ( + // AttributeValueOperatorDelete is a AttributeValueOperator enum value + AttributeValueOperatorDelete = "DELETE" +) + +// AttributeValueOperator_Values returns all elements of the AttributeValueOperator enum +func AttributeValueOperator_Values() []string { + return []string{ + AttributeValueOperatorDelete, + } +} + +const ( + // ContentTypePdf is a ContentType enum value + ContentTypePdf = "PDF" + + // ContentTypeHtml is a ContentType enum value + ContentTypeHtml = "HTML" + + // ContentTypeMsWord is a ContentType enum value + ContentTypeMsWord = "MS_WORD" + + // ContentTypePlainText is a ContentType enum value + ContentTypePlainText = "PLAIN_TEXT" + + // ContentTypePpt is a ContentType enum value + ContentTypePpt = "PPT" + + // ContentTypeRtf is a ContentType enum value + ContentTypeRtf = "RTF" + + // ContentTypeXml is a ContentType enum value + ContentTypeXml = "XML" + + // ContentTypeXslt is a ContentType enum value + ContentTypeXslt = "XSLT" + + // ContentTypeMsExcel is a ContentType enum value + ContentTypeMsExcel = "MS_EXCEL" + + // ContentTypeCsv is a ContentType enum value + ContentTypeCsv = "CSV" + + // ContentTypeJson is a ContentType enum value + ContentTypeJson = "JSON" + + // ContentTypeMd is a ContentType enum value + ContentTypeMd = "MD" +) + +// ContentType_Values returns all elements of the ContentType enum +func ContentType_Values() []string { + return []string{ + ContentTypePdf, + ContentTypeHtml, + ContentTypeMsWord, + ContentTypePlainText, + ContentTypePpt, + ContentTypeRtf, + ContentTypeXml, + ContentTypeXslt, + ContentTypeMsExcel, + ContentTypeCsv, + ContentTypeJson, + ContentTypeMd, + } +} + +const ( + // DataSourceStatusPendingCreation is a DataSourceStatus enum value + DataSourceStatusPendingCreation = "PENDING_CREATION" + + // DataSourceStatusCreating is a DataSourceStatus enum value + DataSourceStatusCreating = "CREATING" + + // DataSourceStatusActive is a DataSourceStatus enum value + DataSourceStatusActive = "ACTIVE" + + // DataSourceStatusDeleting is a DataSourceStatus enum value + DataSourceStatusDeleting = "DELETING" + + // DataSourceStatusFailed is a DataSourceStatus enum value + DataSourceStatusFailed = "FAILED" + + // DataSourceStatusUpdating is a DataSourceStatus enum value + DataSourceStatusUpdating = "UPDATING" +) + +// DataSourceStatus_Values returns all elements of the DataSourceStatus enum +func DataSourceStatus_Values() []string { + return []string{ + DataSourceStatusPendingCreation, + DataSourceStatusCreating, + DataSourceStatusActive, + DataSourceStatusDeleting, + DataSourceStatusFailed, + DataSourceStatusUpdating, + } +} + +const ( + // DataSourceSyncJobStatusFailed is a DataSourceSyncJobStatus enum value + DataSourceSyncJobStatusFailed = "FAILED" + + // DataSourceSyncJobStatusSucceeded is a DataSourceSyncJobStatus enum value + DataSourceSyncJobStatusSucceeded = "SUCCEEDED" + + // DataSourceSyncJobStatusSyncing is a DataSourceSyncJobStatus enum value + DataSourceSyncJobStatusSyncing = "SYNCING" + + // DataSourceSyncJobStatusIncomplete is a DataSourceSyncJobStatus enum value + DataSourceSyncJobStatusIncomplete = "INCOMPLETE" + + // DataSourceSyncJobStatusStopping is a DataSourceSyncJobStatus enum value + DataSourceSyncJobStatusStopping = "STOPPING" + + // DataSourceSyncJobStatusAborted is a DataSourceSyncJobStatus enum value + DataSourceSyncJobStatusAborted = "ABORTED" + + // DataSourceSyncJobStatusSyncingIndexing is a DataSourceSyncJobStatus enum value + DataSourceSyncJobStatusSyncingIndexing = "SYNCING_INDEXING" +) + +// DataSourceSyncJobStatus_Values returns all elements of the DataSourceSyncJobStatus enum +func DataSourceSyncJobStatus_Values() []string { + return []string{ + DataSourceSyncJobStatusFailed, + DataSourceSyncJobStatusSucceeded, + DataSourceSyncJobStatusSyncing, + DataSourceSyncJobStatusIncomplete, + DataSourceSyncJobStatusStopping, + DataSourceSyncJobStatusAborted, + DataSourceSyncJobStatusSyncingIndexing, + } +} + +const ( + // DocumentContentOperatorDelete is a DocumentContentOperator enum value + DocumentContentOperatorDelete = "DELETE" +) + +// DocumentContentOperator_Values returns all elements of the DocumentContentOperator enum +func DocumentContentOperator_Values() []string { + return []string{ + DocumentContentOperatorDelete, + } +} + +const ( + // DocumentEnrichmentConditionOperatorGreaterThan is a DocumentEnrichmentConditionOperator enum value + DocumentEnrichmentConditionOperatorGreaterThan = "GREATER_THAN" + + // DocumentEnrichmentConditionOperatorGreaterThanOrEquals is a DocumentEnrichmentConditionOperator enum value + DocumentEnrichmentConditionOperatorGreaterThanOrEquals = "GREATER_THAN_OR_EQUALS" + + // DocumentEnrichmentConditionOperatorLessThan is a DocumentEnrichmentConditionOperator enum value + DocumentEnrichmentConditionOperatorLessThan = "LESS_THAN" + + // DocumentEnrichmentConditionOperatorLessThanOrEquals is a DocumentEnrichmentConditionOperator enum value + DocumentEnrichmentConditionOperatorLessThanOrEquals = "LESS_THAN_OR_EQUALS" + + // DocumentEnrichmentConditionOperatorEquals is a DocumentEnrichmentConditionOperator enum value + DocumentEnrichmentConditionOperatorEquals = "EQUALS" + + // DocumentEnrichmentConditionOperatorNotEquals is a DocumentEnrichmentConditionOperator enum value + DocumentEnrichmentConditionOperatorNotEquals = "NOT_EQUALS" + + // DocumentEnrichmentConditionOperatorContains is a DocumentEnrichmentConditionOperator enum value + DocumentEnrichmentConditionOperatorContains = "CONTAINS" + + // DocumentEnrichmentConditionOperatorNotContains is a DocumentEnrichmentConditionOperator enum value + DocumentEnrichmentConditionOperatorNotContains = "NOT_CONTAINS" + + // DocumentEnrichmentConditionOperatorExists is a DocumentEnrichmentConditionOperator enum value + DocumentEnrichmentConditionOperatorExists = "EXISTS" + + // DocumentEnrichmentConditionOperatorNotExists is a DocumentEnrichmentConditionOperator enum value + DocumentEnrichmentConditionOperatorNotExists = "NOT_EXISTS" + + // DocumentEnrichmentConditionOperatorBeginsWith is a DocumentEnrichmentConditionOperator enum value + DocumentEnrichmentConditionOperatorBeginsWith = "BEGINS_WITH" +) + +// DocumentEnrichmentConditionOperator_Values returns all elements of the DocumentEnrichmentConditionOperator enum +func DocumentEnrichmentConditionOperator_Values() []string { + return []string{ + DocumentEnrichmentConditionOperatorGreaterThan, + DocumentEnrichmentConditionOperatorGreaterThanOrEquals, + DocumentEnrichmentConditionOperatorLessThan, + DocumentEnrichmentConditionOperatorLessThanOrEquals, + DocumentEnrichmentConditionOperatorEquals, + DocumentEnrichmentConditionOperatorNotEquals, + DocumentEnrichmentConditionOperatorContains, + DocumentEnrichmentConditionOperatorNotContains, + DocumentEnrichmentConditionOperatorExists, + DocumentEnrichmentConditionOperatorNotExists, + DocumentEnrichmentConditionOperatorBeginsWith, + } +} + +const ( + // DocumentStatusReceived is a DocumentStatus enum value + DocumentStatusReceived = "RECEIVED" + + // DocumentStatusProcessing is a DocumentStatus enum value + DocumentStatusProcessing = "PROCESSING" + + // DocumentStatusIndexed is a DocumentStatus enum value + DocumentStatusIndexed = "INDEXED" + + // DocumentStatusUpdated is a DocumentStatus enum value + DocumentStatusUpdated = "UPDATED" + + // DocumentStatusFailed is a DocumentStatus enum value + DocumentStatusFailed = "FAILED" + + // DocumentStatusDeleting is a DocumentStatus enum value + DocumentStatusDeleting = "DELETING" + + // DocumentStatusDeleted is a DocumentStatus enum value + DocumentStatusDeleted = "DELETED" + + // DocumentStatusDocumentFailedToIndex is a DocumentStatus enum value + DocumentStatusDocumentFailedToIndex = "DOCUMENT_FAILED_TO_INDEX" +) + +// DocumentStatus_Values returns all elements of the DocumentStatus enum +func DocumentStatus_Values() []string { + return []string{ + DocumentStatusReceived, + DocumentStatusProcessing, + DocumentStatusIndexed, + DocumentStatusUpdated, + DocumentStatusFailed, + DocumentStatusDeleting, + DocumentStatusDeleted, + DocumentStatusDocumentFailedToIndex, + } +} + +const ( + // ErrorCodeInternalError is a ErrorCode enum value + ErrorCodeInternalError = "InternalError" + + // ErrorCodeInvalidRequest is a ErrorCode enum value + ErrorCodeInvalidRequest = "InvalidRequest" + + // ErrorCodeResourceInactive is a ErrorCode enum value + ErrorCodeResourceInactive = "ResourceInactive" + + // ErrorCodeResourceNotFound is a ErrorCode enum value + ErrorCodeResourceNotFound = "ResourceNotFound" +) + +// ErrorCode_Values returns all elements of the ErrorCode enum +func ErrorCode_Values() []string { + return []string{ + ErrorCodeInternalError, + ErrorCodeInvalidRequest, + ErrorCodeResourceInactive, + ErrorCodeResourceNotFound, + } +} + +const ( + // GroupStatusFailed is a GroupStatus enum value + GroupStatusFailed = "FAILED" + + // GroupStatusSucceeded is a GroupStatus enum value + GroupStatusSucceeded = "SUCCEEDED" + + // GroupStatusProcessing is a GroupStatus enum value + GroupStatusProcessing = "PROCESSING" + + // GroupStatusDeleting is a GroupStatus enum value + GroupStatusDeleting = "DELETING" + + // GroupStatusDeleted is a GroupStatus enum value + GroupStatusDeleted = "DELETED" +) + +// GroupStatus_Values returns all elements of the GroupStatus enum +func GroupStatus_Values() []string { + return []string{ + GroupStatusFailed, + GroupStatusSucceeded, + GroupStatusProcessing, + GroupStatusDeleting, + GroupStatusDeleted, + } +} + +const ( + // IndexStatusCreating is a IndexStatus enum value + IndexStatusCreating = "CREATING" + + // IndexStatusActive is a IndexStatus enum value + IndexStatusActive = "ACTIVE" + + // IndexStatusDeleting is a IndexStatus enum value + IndexStatusDeleting = "DELETING" + + // IndexStatusFailed is a IndexStatus enum value + IndexStatusFailed = "FAILED" + + // IndexStatusUpdating is a IndexStatus enum value + IndexStatusUpdating = "UPDATING" +) + +// IndexStatus_Values returns all elements of the IndexStatus enum +func IndexStatus_Values() []string { + return []string{ + IndexStatusCreating, + IndexStatusActive, + IndexStatusDeleting, + IndexStatusFailed, + IndexStatusUpdating, + } +} + +const ( + // MemberRelationAnd is a MemberRelation enum value + MemberRelationAnd = "AND" + + // MemberRelationOr is a MemberRelation enum value + MemberRelationOr = "OR" +) + +// MemberRelation_Values returns all elements of the MemberRelation enum +func MemberRelation_Values() []string { + return []string{ + MemberRelationAnd, + MemberRelationOr, + } +} + +const ( + // MembershipTypeIndex is a MembershipType enum value + MembershipTypeIndex = "INDEX" + + // MembershipTypeDatasource is a MembershipType enum value + MembershipTypeDatasource = "DATASOURCE" +) + +// MembershipType_Values returns all elements of the MembershipType enum +func MembershipType_Values() []string { + return []string{ + MembershipTypeIndex, + MembershipTypeDatasource, + } +} + +const ( + // MessageTypeUser is a MessageType enum value + MessageTypeUser = "USER" + + // MessageTypeSystem is a MessageType enum value + MessageTypeSystem = "SYSTEM" +) + +// MessageType_Values returns all elements of the MessageType enum +func MessageType_Values() []string { + return []string{ + MessageTypeUser, + MessageTypeSystem, + } +} + +const ( + // MessageUsefulnessUseful is a MessageUsefulness enum value + MessageUsefulnessUseful = "USEFUL" + + // MessageUsefulnessNotUseful is a MessageUsefulness enum value + MessageUsefulnessNotUseful = "NOT_USEFUL" +) + +// MessageUsefulness_Values returns all elements of the MessageUsefulness enum +func MessageUsefulness_Values() []string { + return []string{ + MessageUsefulnessUseful, + MessageUsefulnessNotUseful, + } +} + +const ( + // MessageUsefulnessReasonNotFactuallyCorrect is a MessageUsefulnessReason enum value + MessageUsefulnessReasonNotFactuallyCorrect = "NOT_FACTUALLY_CORRECT" + + // MessageUsefulnessReasonHarmfulOrUnsafe is a MessageUsefulnessReason enum value + MessageUsefulnessReasonHarmfulOrUnsafe = "HARMFUL_OR_UNSAFE" + + // MessageUsefulnessReasonIncorrectOrMissingSources is a MessageUsefulnessReason enum value + MessageUsefulnessReasonIncorrectOrMissingSources = "INCORRECT_OR_MISSING_SOURCES" + + // MessageUsefulnessReasonNotHelpful is a MessageUsefulnessReason enum value + MessageUsefulnessReasonNotHelpful = "NOT_HELPFUL" + + // MessageUsefulnessReasonFactuallyCorrect is a MessageUsefulnessReason enum value + MessageUsefulnessReasonFactuallyCorrect = "FACTUALLY_CORRECT" + + // MessageUsefulnessReasonComplete is a MessageUsefulnessReason enum value + MessageUsefulnessReasonComplete = "COMPLETE" + + // MessageUsefulnessReasonRelevantSources is a MessageUsefulnessReason enum value + MessageUsefulnessReasonRelevantSources = "RELEVANT_SOURCES" + + // MessageUsefulnessReasonHelpful is a MessageUsefulnessReason enum value + MessageUsefulnessReasonHelpful = "HELPFUL" +) + +// MessageUsefulnessReason_Values returns all elements of the MessageUsefulnessReason enum +func MessageUsefulnessReason_Values() []string { + return []string{ + MessageUsefulnessReasonNotFactuallyCorrect, + MessageUsefulnessReasonHarmfulOrUnsafe, + MessageUsefulnessReasonIncorrectOrMissingSources, + MessageUsefulnessReasonNotHelpful, + MessageUsefulnessReasonFactuallyCorrect, + MessageUsefulnessReasonComplete, + MessageUsefulnessReasonRelevantSources, + MessageUsefulnessReasonHelpful, + } +} + +const ( + // PluginStateEnabled is a PluginState enum value + PluginStateEnabled = "ENABLED" + + // PluginStateDisabled is a PluginState enum value + PluginStateDisabled = "DISABLED" +) + +// PluginState_Values returns all elements of the PluginState enum +func PluginState_Values() []string { + return []string{ + PluginStateEnabled, + PluginStateDisabled, + } +} + +const ( + // PluginTypeServiceNow is a PluginType enum value + PluginTypeServiceNow = "SERVICE_NOW" + + // PluginTypeSalesforce is a PluginType enum value + PluginTypeSalesforce = "SALESFORCE" + + // PluginTypeJira is a PluginType enum value + PluginTypeJira = "JIRA" + + // PluginTypeZendesk is a PluginType enum value + PluginTypeZendesk = "ZENDESK" +) + +// PluginType_Values returns all elements of the PluginType enum +func PluginType_Values() []string { + return []string{ + PluginTypeServiceNow, + PluginTypeSalesforce, + PluginTypeJira, + PluginTypeZendesk, + } +} + +const ( + // ReadAccessTypeAllow is a ReadAccessType enum value + ReadAccessTypeAllow = "ALLOW" + + // ReadAccessTypeDeny is a ReadAccessType enum value + ReadAccessTypeDeny = "DENY" +) + +// ReadAccessType_Values returns all elements of the ReadAccessType enum +func ReadAccessType_Values() []string { + return []string{ + ReadAccessTypeAllow, + ReadAccessTypeDeny, + } +} + +const ( + // ResponseScopeEnterpriseContentOnly is a ResponseScope enum value + ResponseScopeEnterpriseContentOnly = "ENTERPRISE_CONTENT_ONLY" + + // ResponseScopeExtendedKnowledgeEnabled is a ResponseScope enum value + ResponseScopeExtendedKnowledgeEnabled = "EXTENDED_KNOWLEDGE_ENABLED" +) + +// ResponseScope_Values returns all elements of the ResponseScope enum +func ResponseScope_Values() []string { + return []string{ + ResponseScopeEnterpriseContentOnly, + ResponseScopeExtendedKnowledgeEnabled, + } +} + +const ( + // RetrieverStatusCreating is a RetrieverStatus enum value + RetrieverStatusCreating = "CREATING" + + // RetrieverStatusActive is a RetrieverStatus enum value + RetrieverStatusActive = "ACTIVE" + + // RetrieverStatusFailed is a RetrieverStatus enum value + RetrieverStatusFailed = "FAILED" +) + +// RetrieverStatus_Values returns all elements of the RetrieverStatus enum +func RetrieverStatus_Values() []string { + return []string{ + RetrieverStatusCreating, + RetrieverStatusActive, + RetrieverStatusFailed, + } +} + +const ( + // RetrieverTypeNativeIndex is a RetrieverType enum value + RetrieverTypeNativeIndex = "NATIVE_INDEX" + + // RetrieverTypeKendraIndex is a RetrieverType enum value + RetrieverTypeKendraIndex = "KENDRA_INDEX" +) + +// RetrieverType_Values returns all elements of the RetrieverType enum +func RetrieverType_Values() []string { + return []string{ + RetrieverTypeNativeIndex, + RetrieverTypeKendraIndex, + } +} + +const ( + // RuleTypeContentBlockerRule is a RuleType enum value + RuleTypeContentBlockerRule = "CONTENT_BLOCKER_RULE" + + // RuleTypeContentRetrievalRule is a RuleType enum value + RuleTypeContentRetrievalRule = "CONTENT_RETRIEVAL_RULE" +) + +// RuleType_Values returns all elements of the RuleType enum +func RuleType_Values() []string { + return []string{ + RuleTypeContentBlockerRule, + RuleTypeContentRetrievalRule, + } +} + +const ( + // StatusEnabled is a Status enum value + StatusEnabled = "ENABLED" + + // StatusDisabled is a Status enum value + StatusDisabled = "DISABLED" +) + +// Status_Values returns all elements of the Status enum +func Status_Values() []string { + return []string{ + StatusEnabled, + StatusDisabled, + } +} + +const ( + // ValidationExceptionReasonCannotParse is a ValidationExceptionReason enum value + ValidationExceptionReasonCannotParse = "CANNOT_PARSE" + + // ValidationExceptionReasonFieldValidationFailed is a ValidationExceptionReason enum value + ValidationExceptionReasonFieldValidationFailed = "FIELD_VALIDATION_FAILED" + + // ValidationExceptionReasonUnknownOperation is a ValidationExceptionReason enum value + ValidationExceptionReasonUnknownOperation = "UNKNOWN_OPERATION" +) + +// ValidationExceptionReason_Values returns all elements of the ValidationExceptionReason enum +func ValidationExceptionReason_Values() []string { + return []string{ + ValidationExceptionReasonCannotParse, + ValidationExceptionReasonFieldValidationFailed, + ValidationExceptionReasonUnknownOperation, + } +} + +const ( + // WebExperienceSamplePromptsControlModeEnabled is a WebExperienceSamplePromptsControlMode enum value + WebExperienceSamplePromptsControlModeEnabled = "ENABLED" + + // WebExperienceSamplePromptsControlModeDisabled is a WebExperienceSamplePromptsControlMode enum value + WebExperienceSamplePromptsControlModeDisabled = "DISABLED" +) + +// WebExperienceSamplePromptsControlMode_Values returns all elements of the WebExperienceSamplePromptsControlMode enum +func WebExperienceSamplePromptsControlMode_Values() []string { + return []string{ + WebExperienceSamplePromptsControlModeEnabled, + WebExperienceSamplePromptsControlModeDisabled, + } +} + +const ( + // WebExperienceStatusCreating is a WebExperienceStatus enum value + WebExperienceStatusCreating = "CREATING" + + // WebExperienceStatusActive is a WebExperienceStatus enum value + WebExperienceStatusActive = "ACTIVE" + + // WebExperienceStatusDeleting is a WebExperienceStatus enum value + WebExperienceStatusDeleting = "DELETING" + + // WebExperienceStatusFailed is a WebExperienceStatus enum value + WebExperienceStatusFailed = "FAILED" + + // WebExperienceStatusPendingAuthConfig is a WebExperienceStatus enum value + WebExperienceStatusPendingAuthConfig = "PENDING_AUTH_CONFIG" +) + +// WebExperienceStatus_Values returns all elements of the WebExperienceStatus enum +func WebExperienceStatus_Values() []string { + return []string{ + WebExperienceStatusCreating, + WebExperienceStatusActive, + WebExperienceStatusDeleting, + WebExperienceStatusFailed, + WebExperienceStatusPendingAuthConfig, + } +} diff --git a/service/qbusiness/doc.go b/service/qbusiness/doc.go new file mode 100644 index 00000000000..f4bd5ee7632 --- /dev/null +++ b/service/qbusiness/doc.go @@ -0,0 +1,26 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +// Package qbusiness provides the client and types for making API +// requests to QBusiness. +// +// See https://docs.aws.amazon.com/goto/WebAPI/qbusiness-2023-11-27 for more information on this service. +// +// See qbusiness package documentation for more information. +// https://docs.aws.amazon.com/sdk-for-go/api/service/qbusiness/ +// +// # Using the Client +// +// To contact QBusiness with the SDK use the New function to create +// a new service client. With that client you can make API requests to the service. +// These clients are safe to use concurrently. +// +// See the SDK's documentation for more information on how to use the SDK. +// https://docs.aws.amazon.com/sdk-for-go/api/ +// +// See aws.Config documentation for more information on configuring SDK clients. +// https://docs.aws.amazon.com/sdk-for-go/api/aws/#Config +// +// See the QBusiness client QBusiness for more +// information on creating client for this service. +// https://docs.aws.amazon.com/sdk-for-go/api/service/qbusiness/#New +package qbusiness diff --git a/service/qbusiness/errors.go b/service/qbusiness/errors.go new file mode 100644 index 00000000000..c93038e116a --- /dev/null +++ b/service/qbusiness/errors.go @@ -0,0 +1,78 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package qbusiness + +import ( + "github.com/aws/aws-sdk-go/private/protocol" +) + +const ( + + // ErrCodeAccessDeniedException for service response error code + // "AccessDeniedException". + // + // You don't have access to perform this action. Make sure you have the required + // permission policies and user accounts and try again. + ErrCodeAccessDeniedException = "AccessDeniedException" + + // ErrCodeConflictException for service response error code + // "ConflictException". + // + // You are trying to perform an action that conflicts with the current status + // of your resource. Fix any inconsistences with your resources and try again. + ErrCodeConflictException = "ConflictException" + + // ErrCodeInternalServerException for service response error code + // "InternalServerException". + // + // An issue occurred with the internal server used for your Amazon Q service. + // Wait some minutes and try again, or contact Support (http://aws.amazon.com/contact-us/) + // for help. + ErrCodeInternalServerException = "InternalServerException" + + // ErrCodeLicenseNotFoundException for service response error code + // "LicenseNotFoundException". + // + // You don't have permissions to perform the action because your license is + // inactive. Ask your admin to activate your license and try again after your + // licence is active. + ErrCodeLicenseNotFoundException = "LicenseNotFoundException" + + // ErrCodeResourceNotFoundException for service response error code + // "ResourceNotFoundException". + // + // The resource you want to use doesn’t exist. Make sure you have provided + // the correct resource and try again. + ErrCodeResourceNotFoundException = "ResourceNotFoundException" + + // ErrCodeServiceQuotaExceededException for service response error code + // "ServiceQuotaExceededException". + // + // You have exceeded the set limits for your Amazon Q service. + ErrCodeServiceQuotaExceededException = "ServiceQuotaExceededException" + + // ErrCodeThrottlingException for service response error code + // "ThrottlingException". + // + // The request was denied due to throttling. Reduce the number of requests and + // try again. + ErrCodeThrottlingException = "ThrottlingException" + + // ErrCodeValidationException for service response error code + // "ValidationException". + // + // The input doesn't meet the constraints set by the Amazon Q service. Provide + // the correct input and try again. + ErrCodeValidationException = "ValidationException" +) + +var exceptionFromCode = map[string]func(protocol.ResponseMetadata) error{ + "AccessDeniedException": newErrorAccessDeniedException, + "ConflictException": newErrorConflictException, + "InternalServerException": newErrorInternalServerException, + "LicenseNotFoundException": newErrorLicenseNotFoundException, + "ResourceNotFoundException": newErrorResourceNotFoundException, + "ServiceQuotaExceededException": newErrorServiceQuotaExceededException, + "ThrottlingException": newErrorThrottlingException, + "ValidationException": newErrorValidationException, +} diff --git a/service/qbusiness/qbusinessiface/interface.go b/service/qbusiness/qbusinessiface/interface.go new file mode 100644 index 00000000000..29f89165384 --- /dev/null +++ b/service/qbusiness/qbusinessiface/interface.go @@ -0,0 +1,316 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +// Package qbusinessiface provides an interface to enable mocking the QBusiness service client +// for testing your code. +// +// It is important to note that this interface will have breaking changes +// when the service model is updated and adds new API operations, paginators, +// and waiters. +package qbusinessiface + +import ( + "github.com/aws/aws-sdk-go/aws" + "github.com/aws/aws-sdk-go/aws/request" + "github.com/aws/aws-sdk-go/service/qbusiness" +) + +// QBusinessAPI provides an interface to enable mocking the +// qbusiness.QBusiness service client's API operation, +// paginators, and waiters. This make unit testing your code that calls out +// to the SDK's service client's calls easier. +// +// The best way to use this interface is so the SDK's service client's calls +// can be stubbed out for unit testing your code with the SDK without needing +// to inject custom request handlers into the SDK's request pipeline. +// +// // myFunc uses an SDK service client to make a request to +// // QBusiness. +// func myFunc(svc qbusinessiface.QBusinessAPI) bool { +// // Make svc.BatchDeleteDocument request +// } +// +// func main() { +// sess := session.New() +// svc := qbusiness.New(sess) +// +// myFunc(svc) +// } +// +// In your _test.go file: +// +// // Define a mock struct to be used in your unit tests of myFunc. +// type mockQBusinessClient struct { +// qbusinessiface.QBusinessAPI +// } +// func (m *mockQBusinessClient) BatchDeleteDocument(input *qbusiness.BatchDeleteDocumentInput) (*qbusiness.BatchDeleteDocumentOutput, error) { +// // mock response/functionality +// } +// +// func TestMyFunc(t *testing.T) { +// // Setup Test +// mockSvc := &mockQBusinessClient{} +// +// myfunc(mockSvc) +// +// // Verify myFunc's functionality +// } +// +// It is important to note that this interface will have breaking changes +// when the service model is updated and adds new API operations, paginators, +// and waiters. Its suggested to use the pattern above for testing, or using +// tooling to generate mocks to satisfy the interfaces. +type QBusinessAPI interface { + BatchDeleteDocument(*qbusiness.BatchDeleteDocumentInput) (*qbusiness.BatchDeleteDocumentOutput, error) + BatchDeleteDocumentWithContext(aws.Context, *qbusiness.BatchDeleteDocumentInput, ...request.Option) (*qbusiness.BatchDeleteDocumentOutput, error) + BatchDeleteDocumentRequest(*qbusiness.BatchDeleteDocumentInput) (*request.Request, *qbusiness.BatchDeleteDocumentOutput) + + BatchPutDocument(*qbusiness.BatchPutDocumentInput) (*qbusiness.BatchPutDocumentOutput, error) + BatchPutDocumentWithContext(aws.Context, *qbusiness.BatchPutDocumentInput, ...request.Option) (*qbusiness.BatchPutDocumentOutput, error) + BatchPutDocumentRequest(*qbusiness.BatchPutDocumentInput) (*request.Request, *qbusiness.BatchPutDocumentOutput) + + ChatSync(*qbusiness.ChatSyncInput) (*qbusiness.ChatSyncOutput, error) + ChatSyncWithContext(aws.Context, *qbusiness.ChatSyncInput, ...request.Option) (*qbusiness.ChatSyncOutput, error) + ChatSyncRequest(*qbusiness.ChatSyncInput) (*request.Request, *qbusiness.ChatSyncOutput) + + CreateApplication(*qbusiness.CreateApplicationInput) (*qbusiness.CreateApplicationOutput, error) + CreateApplicationWithContext(aws.Context, *qbusiness.CreateApplicationInput, ...request.Option) (*qbusiness.CreateApplicationOutput, error) + CreateApplicationRequest(*qbusiness.CreateApplicationInput) (*request.Request, *qbusiness.CreateApplicationOutput) + + CreateIndex(*qbusiness.CreateIndexInput) (*qbusiness.CreateIndexOutput, error) + CreateIndexWithContext(aws.Context, *qbusiness.CreateIndexInput, ...request.Option) (*qbusiness.CreateIndexOutput, error) + CreateIndexRequest(*qbusiness.CreateIndexInput) (*request.Request, *qbusiness.CreateIndexOutput) + + CreatePlugin(*qbusiness.CreatePluginInput) (*qbusiness.CreatePluginOutput, error) + CreatePluginWithContext(aws.Context, *qbusiness.CreatePluginInput, ...request.Option) (*qbusiness.CreatePluginOutput, error) + CreatePluginRequest(*qbusiness.CreatePluginInput) (*request.Request, *qbusiness.CreatePluginOutput) + + CreateRetriever(*qbusiness.CreateRetrieverInput) (*qbusiness.CreateRetrieverOutput, error) + CreateRetrieverWithContext(aws.Context, *qbusiness.CreateRetrieverInput, ...request.Option) (*qbusiness.CreateRetrieverOutput, error) + CreateRetrieverRequest(*qbusiness.CreateRetrieverInput) (*request.Request, *qbusiness.CreateRetrieverOutput) + + CreateUser(*qbusiness.CreateUserInput) (*qbusiness.CreateUserOutput, error) + CreateUserWithContext(aws.Context, *qbusiness.CreateUserInput, ...request.Option) (*qbusiness.CreateUserOutput, error) + CreateUserRequest(*qbusiness.CreateUserInput) (*request.Request, *qbusiness.CreateUserOutput) + + CreateWebExperience(*qbusiness.CreateWebExperienceInput) (*qbusiness.CreateWebExperienceOutput, error) + CreateWebExperienceWithContext(aws.Context, *qbusiness.CreateWebExperienceInput, ...request.Option) (*qbusiness.CreateWebExperienceOutput, error) + CreateWebExperienceRequest(*qbusiness.CreateWebExperienceInput) (*request.Request, *qbusiness.CreateWebExperienceOutput) + + DeleteApplication(*qbusiness.DeleteApplicationInput) (*qbusiness.DeleteApplicationOutput, error) + DeleteApplicationWithContext(aws.Context, *qbusiness.DeleteApplicationInput, ...request.Option) (*qbusiness.DeleteApplicationOutput, error) + DeleteApplicationRequest(*qbusiness.DeleteApplicationInput) (*request.Request, *qbusiness.DeleteApplicationOutput) + + DeleteChatControlsConfiguration(*qbusiness.DeleteChatControlsConfigurationInput) (*qbusiness.DeleteChatControlsConfigurationOutput, error) + DeleteChatControlsConfigurationWithContext(aws.Context, *qbusiness.DeleteChatControlsConfigurationInput, ...request.Option) (*qbusiness.DeleteChatControlsConfigurationOutput, error) + DeleteChatControlsConfigurationRequest(*qbusiness.DeleteChatControlsConfigurationInput) (*request.Request, *qbusiness.DeleteChatControlsConfigurationOutput) + + DeleteConversation(*qbusiness.DeleteConversationInput) (*qbusiness.DeleteConversationOutput, error) + DeleteConversationWithContext(aws.Context, *qbusiness.DeleteConversationInput, ...request.Option) (*qbusiness.DeleteConversationOutput, error) + DeleteConversationRequest(*qbusiness.DeleteConversationInput) (*request.Request, *qbusiness.DeleteConversationOutput) + + DeleteDataSource(*qbusiness.DeleteDataSourceInput) (*qbusiness.DeleteDataSourceOutput, error) + DeleteDataSourceWithContext(aws.Context, *qbusiness.DeleteDataSourceInput, ...request.Option) (*qbusiness.DeleteDataSourceOutput, error) + DeleteDataSourceRequest(*qbusiness.DeleteDataSourceInput) (*request.Request, *qbusiness.DeleteDataSourceOutput) + + DeleteGroup(*qbusiness.DeleteGroupInput) (*qbusiness.DeleteGroupOutput, error) + DeleteGroupWithContext(aws.Context, *qbusiness.DeleteGroupInput, ...request.Option) (*qbusiness.DeleteGroupOutput, error) + DeleteGroupRequest(*qbusiness.DeleteGroupInput) (*request.Request, *qbusiness.DeleteGroupOutput) + + DeleteIndex(*qbusiness.DeleteIndexInput) (*qbusiness.DeleteIndexOutput, error) + DeleteIndexWithContext(aws.Context, *qbusiness.DeleteIndexInput, ...request.Option) (*qbusiness.DeleteIndexOutput, error) + DeleteIndexRequest(*qbusiness.DeleteIndexInput) (*request.Request, *qbusiness.DeleteIndexOutput) + + DeletePlugin(*qbusiness.DeletePluginInput) (*qbusiness.DeletePluginOutput, error) + DeletePluginWithContext(aws.Context, *qbusiness.DeletePluginInput, ...request.Option) (*qbusiness.DeletePluginOutput, error) + DeletePluginRequest(*qbusiness.DeletePluginInput) (*request.Request, *qbusiness.DeletePluginOutput) + + DeleteRetriever(*qbusiness.DeleteRetrieverInput) (*qbusiness.DeleteRetrieverOutput, error) + DeleteRetrieverWithContext(aws.Context, *qbusiness.DeleteRetrieverInput, ...request.Option) (*qbusiness.DeleteRetrieverOutput, error) + DeleteRetrieverRequest(*qbusiness.DeleteRetrieverInput) (*request.Request, *qbusiness.DeleteRetrieverOutput) + + DeleteUser(*qbusiness.DeleteUserInput) (*qbusiness.DeleteUserOutput, error) + DeleteUserWithContext(aws.Context, *qbusiness.DeleteUserInput, ...request.Option) (*qbusiness.DeleteUserOutput, error) + DeleteUserRequest(*qbusiness.DeleteUserInput) (*request.Request, *qbusiness.DeleteUserOutput) + + DeleteWebExperience(*qbusiness.DeleteWebExperienceInput) (*qbusiness.DeleteWebExperienceOutput, error) + DeleteWebExperienceWithContext(aws.Context, *qbusiness.DeleteWebExperienceInput, ...request.Option) (*qbusiness.DeleteWebExperienceOutput, error) + DeleteWebExperienceRequest(*qbusiness.DeleteWebExperienceInput) (*request.Request, *qbusiness.DeleteWebExperienceOutput) + + GetApplication(*qbusiness.GetApplicationInput) (*qbusiness.GetApplicationOutput, error) + GetApplicationWithContext(aws.Context, *qbusiness.GetApplicationInput, ...request.Option) (*qbusiness.GetApplicationOutput, error) + GetApplicationRequest(*qbusiness.GetApplicationInput) (*request.Request, *qbusiness.GetApplicationOutput) + + GetChatControlsConfiguration(*qbusiness.GetChatControlsConfigurationInput) (*qbusiness.GetChatControlsConfigurationOutput, error) + GetChatControlsConfigurationWithContext(aws.Context, *qbusiness.GetChatControlsConfigurationInput, ...request.Option) (*qbusiness.GetChatControlsConfigurationOutput, error) + GetChatControlsConfigurationRequest(*qbusiness.GetChatControlsConfigurationInput) (*request.Request, *qbusiness.GetChatControlsConfigurationOutput) + + GetChatControlsConfigurationPages(*qbusiness.GetChatControlsConfigurationInput, func(*qbusiness.GetChatControlsConfigurationOutput, bool) bool) error + GetChatControlsConfigurationPagesWithContext(aws.Context, *qbusiness.GetChatControlsConfigurationInput, func(*qbusiness.GetChatControlsConfigurationOutput, bool) bool, ...request.Option) error + + GetDataSource(*qbusiness.GetDataSourceInput) (*qbusiness.GetDataSourceOutput, error) + GetDataSourceWithContext(aws.Context, *qbusiness.GetDataSourceInput, ...request.Option) (*qbusiness.GetDataSourceOutput, error) + GetDataSourceRequest(*qbusiness.GetDataSourceInput) (*request.Request, *qbusiness.GetDataSourceOutput) + + GetGroup(*qbusiness.GetGroupInput) (*qbusiness.GetGroupOutput, error) + GetGroupWithContext(aws.Context, *qbusiness.GetGroupInput, ...request.Option) (*qbusiness.GetGroupOutput, error) + GetGroupRequest(*qbusiness.GetGroupInput) (*request.Request, *qbusiness.GetGroupOutput) + + GetIndex(*qbusiness.GetIndexInput) (*qbusiness.GetIndexOutput, error) + GetIndexWithContext(aws.Context, *qbusiness.GetIndexInput, ...request.Option) (*qbusiness.GetIndexOutput, error) + GetIndexRequest(*qbusiness.GetIndexInput) (*request.Request, *qbusiness.GetIndexOutput) + + GetPlugin(*qbusiness.GetPluginInput) (*qbusiness.GetPluginOutput, error) + GetPluginWithContext(aws.Context, *qbusiness.GetPluginInput, ...request.Option) (*qbusiness.GetPluginOutput, error) + GetPluginRequest(*qbusiness.GetPluginInput) (*request.Request, *qbusiness.GetPluginOutput) + + GetRetriever(*qbusiness.GetRetrieverInput) (*qbusiness.GetRetrieverOutput, error) + GetRetrieverWithContext(aws.Context, *qbusiness.GetRetrieverInput, ...request.Option) (*qbusiness.GetRetrieverOutput, error) + GetRetrieverRequest(*qbusiness.GetRetrieverInput) (*request.Request, *qbusiness.GetRetrieverOutput) + + GetUser(*qbusiness.GetUserInput) (*qbusiness.GetUserOutput, error) + GetUserWithContext(aws.Context, *qbusiness.GetUserInput, ...request.Option) (*qbusiness.GetUserOutput, error) + GetUserRequest(*qbusiness.GetUserInput) (*request.Request, *qbusiness.GetUserOutput) + + GetWebExperience(*qbusiness.GetWebExperienceInput) (*qbusiness.GetWebExperienceOutput, error) + GetWebExperienceWithContext(aws.Context, *qbusiness.GetWebExperienceInput, ...request.Option) (*qbusiness.GetWebExperienceOutput, error) + GetWebExperienceRequest(*qbusiness.GetWebExperienceInput) (*request.Request, *qbusiness.GetWebExperienceOutput) + + ListApplications(*qbusiness.ListApplicationsInput) (*qbusiness.ListApplicationsOutput, error) + ListApplicationsWithContext(aws.Context, *qbusiness.ListApplicationsInput, ...request.Option) (*qbusiness.ListApplicationsOutput, error) + ListApplicationsRequest(*qbusiness.ListApplicationsInput) (*request.Request, *qbusiness.ListApplicationsOutput) + + ListApplicationsPages(*qbusiness.ListApplicationsInput, func(*qbusiness.ListApplicationsOutput, bool) bool) error + ListApplicationsPagesWithContext(aws.Context, *qbusiness.ListApplicationsInput, func(*qbusiness.ListApplicationsOutput, bool) bool, ...request.Option) error + + ListConversations(*qbusiness.ListConversationsInput) (*qbusiness.ListConversationsOutput, error) + ListConversationsWithContext(aws.Context, *qbusiness.ListConversationsInput, ...request.Option) (*qbusiness.ListConversationsOutput, error) + ListConversationsRequest(*qbusiness.ListConversationsInput) (*request.Request, *qbusiness.ListConversationsOutput) + + ListConversationsPages(*qbusiness.ListConversationsInput, func(*qbusiness.ListConversationsOutput, bool) bool) error + ListConversationsPagesWithContext(aws.Context, *qbusiness.ListConversationsInput, func(*qbusiness.ListConversationsOutput, bool) bool, ...request.Option) error + + ListDataSourceSyncJobs(*qbusiness.ListDataSourceSyncJobsInput) (*qbusiness.ListDataSourceSyncJobsOutput, error) + ListDataSourceSyncJobsWithContext(aws.Context, *qbusiness.ListDataSourceSyncJobsInput, ...request.Option) (*qbusiness.ListDataSourceSyncJobsOutput, error) + ListDataSourceSyncJobsRequest(*qbusiness.ListDataSourceSyncJobsInput) (*request.Request, *qbusiness.ListDataSourceSyncJobsOutput) + + ListDataSourceSyncJobsPages(*qbusiness.ListDataSourceSyncJobsInput, func(*qbusiness.ListDataSourceSyncJobsOutput, bool) bool) error + ListDataSourceSyncJobsPagesWithContext(aws.Context, *qbusiness.ListDataSourceSyncJobsInput, func(*qbusiness.ListDataSourceSyncJobsOutput, bool) bool, ...request.Option) error + + ListDataSources(*qbusiness.ListDataSourcesInput) (*qbusiness.ListDataSourcesOutput, error) + ListDataSourcesWithContext(aws.Context, *qbusiness.ListDataSourcesInput, ...request.Option) (*qbusiness.ListDataSourcesOutput, error) + ListDataSourcesRequest(*qbusiness.ListDataSourcesInput) (*request.Request, *qbusiness.ListDataSourcesOutput) + + ListDataSourcesPages(*qbusiness.ListDataSourcesInput, func(*qbusiness.ListDataSourcesOutput, bool) bool) error + ListDataSourcesPagesWithContext(aws.Context, *qbusiness.ListDataSourcesInput, func(*qbusiness.ListDataSourcesOutput, bool) bool, ...request.Option) error + + ListDocuments(*qbusiness.ListDocumentsInput) (*qbusiness.ListDocumentsOutput, error) + ListDocumentsWithContext(aws.Context, *qbusiness.ListDocumentsInput, ...request.Option) (*qbusiness.ListDocumentsOutput, error) + ListDocumentsRequest(*qbusiness.ListDocumentsInput) (*request.Request, *qbusiness.ListDocumentsOutput) + + ListDocumentsPages(*qbusiness.ListDocumentsInput, func(*qbusiness.ListDocumentsOutput, bool) bool) error + ListDocumentsPagesWithContext(aws.Context, *qbusiness.ListDocumentsInput, func(*qbusiness.ListDocumentsOutput, bool) bool, ...request.Option) error + + ListGroups(*qbusiness.ListGroupsInput) (*qbusiness.ListGroupsOutput, error) + ListGroupsWithContext(aws.Context, *qbusiness.ListGroupsInput, ...request.Option) (*qbusiness.ListGroupsOutput, error) + ListGroupsRequest(*qbusiness.ListGroupsInput) (*request.Request, *qbusiness.ListGroupsOutput) + + ListGroupsPages(*qbusiness.ListGroupsInput, func(*qbusiness.ListGroupsOutput, bool) bool) error + ListGroupsPagesWithContext(aws.Context, *qbusiness.ListGroupsInput, func(*qbusiness.ListGroupsOutput, bool) bool, ...request.Option) error + + ListIndices(*qbusiness.ListIndicesInput) (*qbusiness.ListIndicesOutput, error) + ListIndicesWithContext(aws.Context, *qbusiness.ListIndicesInput, ...request.Option) (*qbusiness.ListIndicesOutput, error) + ListIndicesRequest(*qbusiness.ListIndicesInput) (*request.Request, *qbusiness.ListIndicesOutput) + + ListIndicesPages(*qbusiness.ListIndicesInput, func(*qbusiness.ListIndicesOutput, bool) bool) error + ListIndicesPagesWithContext(aws.Context, *qbusiness.ListIndicesInput, func(*qbusiness.ListIndicesOutput, bool) bool, ...request.Option) error + + ListMessages(*qbusiness.ListMessagesInput) (*qbusiness.ListMessagesOutput, error) + ListMessagesWithContext(aws.Context, *qbusiness.ListMessagesInput, ...request.Option) (*qbusiness.ListMessagesOutput, error) + ListMessagesRequest(*qbusiness.ListMessagesInput) (*request.Request, *qbusiness.ListMessagesOutput) + + ListMessagesPages(*qbusiness.ListMessagesInput, func(*qbusiness.ListMessagesOutput, bool) bool) error + ListMessagesPagesWithContext(aws.Context, *qbusiness.ListMessagesInput, func(*qbusiness.ListMessagesOutput, bool) bool, ...request.Option) error + + ListPlugins(*qbusiness.ListPluginsInput) (*qbusiness.ListPluginsOutput, error) + ListPluginsWithContext(aws.Context, *qbusiness.ListPluginsInput, ...request.Option) (*qbusiness.ListPluginsOutput, error) + ListPluginsRequest(*qbusiness.ListPluginsInput) (*request.Request, *qbusiness.ListPluginsOutput) + + ListPluginsPages(*qbusiness.ListPluginsInput, func(*qbusiness.ListPluginsOutput, bool) bool) error + ListPluginsPagesWithContext(aws.Context, *qbusiness.ListPluginsInput, func(*qbusiness.ListPluginsOutput, bool) bool, ...request.Option) error + + ListRetrievers(*qbusiness.ListRetrieversInput) (*qbusiness.ListRetrieversOutput, error) + ListRetrieversWithContext(aws.Context, *qbusiness.ListRetrieversInput, ...request.Option) (*qbusiness.ListRetrieversOutput, error) + ListRetrieversRequest(*qbusiness.ListRetrieversInput) (*request.Request, *qbusiness.ListRetrieversOutput) + + ListRetrieversPages(*qbusiness.ListRetrieversInput, func(*qbusiness.ListRetrieversOutput, bool) bool) error + ListRetrieversPagesWithContext(aws.Context, *qbusiness.ListRetrieversInput, func(*qbusiness.ListRetrieversOutput, bool) bool, ...request.Option) error + + ListTagsForResource(*qbusiness.ListTagsForResourceInput) (*qbusiness.ListTagsForResourceOutput, error) + ListTagsForResourceWithContext(aws.Context, *qbusiness.ListTagsForResourceInput, ...request.Option) (*qbusiness.ListTagsForResourceOutput, error) + ListTagsForResourceRequest(*qbusiness.ListTagsForResourceInput) (*request.Request, *qbusiness.ListTagsForResourceOutput) + + ListWebExperiences(*qbusiness.ListWebExperiencesInput) (*qbusiness.ListWebExperiencesOutput, error) + ListWebExperiencesWithContext(aws.Context, *qbusiness.ListWebExperiencesInput, ...request.Option) (*qbusiness.ListWebExperiencesOutput, error) + ListWebExperiencesRequest(*qbusiness.ListWebExperiencesInput) (*request.Request, *qbusiness.ListWebExperiencesOutput) + + ListWebExperiencesPages(*qbusiness.ListWebExperiencesInput, func(*qbusiness.ListWebExperiencesOutput, bool) bool) error + ListWebExperiencesPagesWithContext(aws.Context, *qbusiness.ListWebExperiencesInput, func(*qbusiness.ListWebExperiencesOutput, bool) bool, ...request.Option) error + + PutFeedback(*qbusiness.PutFeedbackInput) (*qbusiness.PutFeedbackOutput, error) + PutFeedbackWithContext(aws.Context, *qbusiness.PutFeedbackInput, ...request.Option) (*qbusiness.PutFeedbackOutput, error) + PutFeedbackRequest(*qbusiness.PutFeedbackInput) (*request.Request, *qbusiness.PutFeedbackOutput) + + PutGroup(*qbusiness.PutGroupInput) (*qbusiness.PutGroupOutput, error) + PutGroupWithContext(aws.Context, *qbusiness.PutGroupInput, ...request.Option) (*qbusiness.PutGroupOutput, error) + PutGroupRequest(*qbusiness.PutGroupInput) (*request.Request, *qbusiness.PutGroupOutput) + + StartDataSourceSyncJob(*qbusiness.StartDataSourceSyncJobInput) (*qbusiness.StartDataSourceSyncJobOutput, error) + StartDataSourceSyncJobWithContext(aws.Context, *qbusiness.StartDataSourceSyncJobInput, ...request.Option) (*qbusiness.StartDataSourceSyncJobOutput, error) + StartDataSourceSyncJobRequest(*qbusiness.StartDataSourceSyncJobInput) (*request.Request, *qbusiness.StartDataSourceSyncJobOutput) + + StopDataSourceSyncJob(*qbusiness.StopDataSourceSyncJobInput) (*qbusiness.StopDataSourceSyncJobOutput, error) + StopDataSourceSyncJobWithContext(aws.Context, *qbusiness.StopDataSourceSyncJobInput, ...request.Option) (*qbusiness.StopDataSourceSyncJobOutput, error) + StopDataSourceSyncJobRequest(*qbusiness.StopDataSourceSyncJobInput) (*request.Request, *qbusiness.StopDataSourceSyncJobOutput) + + TagResource(*qbusiness.TagResourceInput) (*qbusiness.TagResourceOutput, error) + TagResourceWithContext(aws.Context, *qbusiness.TagResourceInput, ...request.Option) (*qbusiness.TagResourceOutput, error) + TagResourceRequest(*qbusiness.TagResourceInput) (*request.Request, *qbusiness.TagResourceOutput) + + UntagResource(*qbusiness.UntagResourceInput) (*qbusiness.UntagResourceOutput, error) + UntagResourceWithContext(aws.Context, *qbusiness.UntagResourceInput, ...request.Option) (*qbusiness.UntagResourceOutput, error) + UntagResourceRequest(*qbusiness.UntagResourceInput) (*request.Request, *qbusiness.UntagResourceOutput) + + UpdateApplication(*qbusiness.UpdateApplicationInput) (*qbusiness.UpdateApplicationOutput, error) + UpdateApplicationWithContext(aws.Context, *qbusiness.UpdateApplicationInput, ...request.Option) (*qbusiness.UpdateApplicationOutput, error) + UpdateApplicationRequest(*qbusiness.UpdateApplicationInput) (*request.Request, *qbusiness.UpdateApplicationOutput) + + UpdateChatControlsConfiguration(*qbusiness.UpdateChatControlsConfigurationInput) (*qbusiness.UpdateChatControlsConfigurationOutput, error) + UpdateChatControlsConfigurationWithContext(aws.Context, *qbusiness.UpdateChatControlsConfigurationInput, ...request.Option) (*qbusiness.UpdateChatControlsConfigurationOutput, error) + UpdateChatControlsConfigurationRequest(*qbusiness.UpdateChatControlsConfigurationInput) (*request.Request, *qbusiness.UpdateChatControlsConfigurationOutput) + + UpdateDataSource(*qbusiness.UpdateDataSourceInput) (*qbusiness.UpdateDataSourceOutput, error) + UpdateDataSourceWithContext(aws.Context, *qbusiness.UpdateDataSourceInput, ...request.Option) (*qbusiness.UpdateDataSourceOutput, error) + UpdateDataSourceRequest(*qbusiness.UpdateDataSourceInput) (*request.Request, *qbusiness.UpdateDataSourceOutput) + + UpdateIndex(*qbusiness.UpdateIndexInput) (*qbusiness.UpdateIndexOutput, error) + UpdateIndexWithContext(aws.Context, *qbusiness.UpdateIndexInput, ...request.Option) (*qbusiness.UpdateIndexOutput, error) + UpdateIndexRequest(*qbusiness.UpdateIndexInput) (*request.Request, *qbusiness.UpdateIndexOutput) + + UpdatePlugin(*qbusiness.UpdatePluginInput) (*qbusiness.UpdatePluginOutput, error) + UpdatePluginWithContext(aws.Context, *qbusiness.UpdatePluginInput, ...request.Option) (*qbusiness.UpdatePluginOutput, error) + UpdatePluginRequest(*qbusiness.UpdatePluginInput) (*request.Request, *qbusiness.UpdatePluginOutput) + + UpdateRetriever(*qbusiness.UpdateRetrieverInput) (*qbusiness.UpdateRetrieverOutput, error) + UpdateRetrieverWithContext(aws.Context, *qbusiness.UpdateRetrieverInput, ...request.Option) (*qbusiness.UpdateRetrieverOutput, error) + UpdateRetrieverRequest(*qbusiness.UpdateRetrieverInput) (*request.Request, *qbusiness.UpdateRetrieverOutput) + + UpdateUser(*qbusiness.UpdateUserInput) (*qbusiness.UpdateUserOutput, error) + UpdateUserWithContext(aws.Context, *qbusiness.UpdateUserInput, ...request.Option) (*qbusiness.UpdateUserOutput, error) + UpdateUserRequest(*qbusiness.UpdateUserInput) (*request.Request, *qbusiness.UpdateUserOutput) + + UpdateWebExperience(*qbusiness.UpdateWebExperienceInput) (*qbusiness.UpdateWebExperienceOutput, error) + UpdateWebExperienceWithContext(aws.Context, *qbusiness.UpdateWebExperienceInput, ...request.Option) (*qbusiness.UpdateWebExperienceOutput, error) + UpdateWebExperienceRequest(*qbusiness.UpdateWebExperienceInput) (*request.Request, *qbusiness.UpdateWebExperienceOutput) +} + +var _ QBusinessAPI = (*qbusiness.QBusiness)(nil) diff --git a/service/qbusiness/service.go b/service/qbusiness/service.go new file mode 100644 index 00000000000..c2697cdc4ae --- /dev/null +++ b/service/qbusiness/service.go @@ -0,0 +1,106 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package qbusiness + +import ( + "github.com/aws/aws-sdk-go/aws" + "github.com/aws/aws-sdk-go/aws/client" + "github.com/aws/aws-sdk-go/aws/client/metadata" + "github.com/aws/aws-sdk-go/aws/request" + "github.com/aws/aws-sdk-go/aws/signer/v4" + "github.com/aws/aws-sdk-go/private/protocol" + "github.com/aws/aws-sdk-go/private/protocol/restjson" +) + +// QBusiness provides the API operation methods for making requests to +// QBusiness. See this package's package overview docs +// for details on the service. +// +// QBusiness methods are safe to use concurrently. It is not safe to +// modify mutate any of the struct's properties though. +type QBusiness struct { + *client.Client +} + +// Used for custom client initialization logic +var initClient func(*client.Client) + +// Used for custom request initialization logic +var initRequest func(*request.Request) + +// Service information constants +const ( + ServiceName = "QBusiness" // Name of service. + EndpointsID = "qbusiness" // ID to lookup a service endpoint with. + ServiceID = "QBusiness" // ServiceID is a unique identifier of a specific service. +) + +// New creates a new instance of the QBusiness client with a session. +// If additional configuration is needed for the client instance use the optional +// aws.Config parameter to add your extra config. +// +// Example: +// +// mySession := session.Must(session.NewSession()) +// +// // Create a QBusiness client from just a session. +// svc := qbusiness.New(mySession) +// +// // Create a QBusiness client with additional configuration +// svc := qbusiness.New(mySession, aws.NewConfig().WithRegion("us-west-2")) +func New(p client.ConfigProvider, cfgs ...*aws.Config) *QBusiness { + c := p.ClientConfig(EndpointsID, cfgs...) + if c.SigningNameDerived || len(c.SigningName) == 0 { + c.SigningName = "qbusiness" + } + return newClient(*c.Config, c.Handlers, c.PartitionID, c.Endpoint, c.SigningRegion, c.SigningName, c.ResolvedRegion) +} + +// newClient creates, initializes and returns a new service client instance. +func newClient(cfg aws.Config, handlers request.Handlers, partitionID, endpoint, signingRegion, signingName, resolvedRegion string) *QBusiness { + svc := &QBusiness{ + Client: client.New( + cfg, + metadata.ClientInfo{ + ServiceName: ServiceName, + ServiceID: ServiceID, + SigningName: signingName, + SigningRegion: signingRegion, + PartitionID: partitionID, + Endpoint: endpoint, + APIVersion: "2023-11-27", + ResolvedRegion: resolvedRegion, + }, + handlers, + ), + } + + // Handlers + svc.Handlers.Sign.PushBackNamed(v4.SignRequestHandler) + svc.Handlers.Build.PushBackNamed(restjson.BuildHandler) + svc.Handlers.Unmarshal.PushBackNamed(restjson.UnmarshalHandler) + svc.Handlers.UnmarshalMeta.PushBackNamed(restjson.UnmarshalMetaHandler) + svc.Handlers.UnmarshalError.PushBackNamed( + protocol.NewUnmarshalErrorHandler(restjson.NewUnmarshalTypedError(exceptionFromCode)).NamedHandler(), + ) + + // Run custom client initialization if present + if initClient != nil { + initClient(svc.Client) + } + + return svc +} + +// newRequest creates a new request for a QBusiness operation and runs any +// custom request initialization. +func (c *QBusiness) newRequest(op *request.Operation, params, data interface{}) *request.Request { + req := c.NewRequest(op, params, data) + + // Run custom request initialization if present + if initRequest != nil { + initRequest(req) + } + + return req +} diff --git a/service/qconnect/api.go b/service/qconnect/api.go new file mode 100644 index 00000000000..2ea0f192ec0 --- /dev/null +++ b/service/qconnect/api.go @@ -0,0 +1,14744 @@ +// 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 a 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 +func (c *QConnect) GetRecommendationsRequest(input *GetRecommendationsInput) (req *request.Request, output *GetRecommendationsOutput) { + 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 +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. +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 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 +func (c *QConnect) QueryAssistantRequest(input *QueryAssistantInput) (req *request.Request, output *QueryAssistantOutput) { + 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 +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. +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 +// }) +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. +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 a 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 a 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 +} + +// 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 +} + +// 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 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 ( + // 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, + } +} diff --git a/service/qconnect/doc.go b/service/qconnect/doc.go new file mode 100644 index 00000000000..2e7efbdc25f --- /dev/null +++ b/service/qconnect/doc.go @@ -0,0 +1,44 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +// Package qconnect provides the client and types for making API +// requests to Amazon Q Connect. +// +// Amazon Q in Connect is a generative AI customer service assistant. It is +// an LLM-enhanced evolution of Amazon Connect Wisdom that delivers real-time +// recommendations to help contact center agents resolve customer issues quickly +// and accurately. +// +// Amazon Q automatically detects customer intent during calls and chats using +// conversational analytics and natural language understanding (NLU). It then +// provides agents with immediate, real-time generative responses and suggested +// actions, and links to relevant documents and articles. Agents can also query +// Amazon Q directly using natural language or keywords to answer customer requests. +// +// Use the Amazon Q in Connect APIs to create an assistant and a knowledge base, +// for example, or manage content by uploading custom files. +// +// For more information, see Use Amazon Q in Connect for generative AI powered +// agent assistance in real-time (https://docs.aws.amazon.com/connect/latest/adminguide/amazon-q-connect.html) +// in the Amazon Connect Administrator Guide. +// +// See https://docs.aws.amazon.com/goto/WebAPI/qconnect-2020-10-19 for more information on this service. +// +// See qconnect package documentation for more information. +// https://docs.aws.amazon.com/sdk-for-go/api/service/qconnect/ +// +// # Using the Client +// +// To contact Amazon Q Connect with the SDK use the New function to create +// a new service client. With that client you can make API requests to the service. +// These clients are safe to use concurrently. +// +// See the SDK's documentation for more information on how to use the SDK. +// https://docs.aws.amazon.com/sdk-for-go/api/ +// +// See aws.Config documentation for more information on configuring SDK clients. +// https://docs.aws.amazon.com/sdk-for-go/api/aws/#Config +// +// See the Amazon Q Connect client QConnect for more +// information on creating client for this service. +// https://docs.aws.amazon.com/sdk-for-go/api/service/qconnect/#New +package qconnect diff --git a/service/qconnect/errors.go b/service/qconnect/errors.go new file mode 100644 index 00000000000..a9f0ac0e531 --- /dev/null +++ b/service/qconnect/errors.go @@ -0,0 +1,79 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package qconnect + +import ( + "github.com/aws/aws-sdk-go/private/protocol" +) + +const ( + + // ErrCodeAccessDeniedException for service response error code + // "AccessDeniedException". + // + // You do not have sufficient access to perform this action. + ErrCodeAccessDeniedException = "AccessDeniedException" + + // ErrCodeConflictException for service response error code + // "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. + ErrCodeConflictException = "ConflictException" + + // ErrCodePreconditionFailedException for service response error code + // "PreconditionFailedException". + // + // The provided revisionId does not match, indicating the content has been modified + // since it was last read. + ErrCodePreconditionFailedException = "PreconditionFailedException" + + // ErrCodeRequestTimeoutException for service response error code + // "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. + ErrCodeRequestTimeoutException = "RequestTimeoutException" + + // ErrCodeResourceNotFoundException for service response error code + // "ResourceNotFoundException". + // + // The specified resource does not exist. + ErrCodeResourceNotFoundException = "ResourceNotFoundException" + + // ErrCodeServiceQuotaExceededException for service response error code + // "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. + ErrCodeServiceQuotaExceededException = "ServiceQuotaExceededException" + + // ErrCodeTooManyTagsException for service response error code + // "TooManyTagsException". + // + // Amazon Q in Connect throws this exception if you have too many tags in your + // tag set. + ErrCodeTooManyTagsException = "TooManyTagsException" + + // ErrCodeValidationException for service response error code + // "ValidationException". + // + // The input fails to satisfy the constraints specified by a service. + ErrCodeValidationException = "ValidationException" +) + +var exceptionFromCode = map[string]func(protocol.ResponseMetadata) error{ + "AccessDeniedException": newErrorAccessDeniedException, + "ConflictException": newErrorConflictException, + "PreconditionFailedException": newErrorPreconditionFailedException, + "RequestTimeoutException": newErrorRequestTimeoutException, + "ResourceNotFoundException": newErrorResourceNotFoundException, + "ServiceQuotaExceededException": newErrorServiceQuotaExceededException, + "TooManyTagsException": newErrorTooManyTagsException, + "ValidationException": newErrorValidationException, +} diff --git a/service/qconnect/qconnectiface/interface.go b/service/qconnect/qconnectiface/interface.go new file mode 100644 index 00000000000..a0ebdd479b6 --- /dev/null +++ b/service/qconnect/qconnectiface/interface.go @@ -0,0 +1,258 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +// Package qconnectiface provides an interface to enable mocking the Amazon Q Connect service client +// for testing your code. +// +// It is important to note that this interface will have breaking changes +// when the service model is updated and adds new API operations, paginators, +// and waiters. +package qconnectiface + +import ( + "github.com/aws/aws-sdk-go/aws" + "github.com/aws/aws-sdk-go/aws/request" + "github.com/aws/aws-sdk-go/service/qconnect" +) + +// QConnectAPI provides an interface to enable mocking the +// qconnect.QConnect service client's API operation, +// paginators, and waiters. This make unit testing your code that calls out +// to the SDK's service client's calls easier. +// +// The best way to use this interface is so the SDK's service client's calls +// can be stubbed out for unit testing your code with the SDK without needing +// to inject custom request handlers into the SDK's request pipeline. +// +// // myFunc uses an SDK service client to make a request to +// // Amazon Q Connect. +// func myFunc(svc qconnectiface.QConnectAPI) bool { +// // Make svc.CreateAssistant request +// } +// +// func main() { +// sess := session.New() +// svc := qconnect.New(sess) +// +// myFunc(svc) +// } +// +// In your _test.go file: +// +// // Define a mock struct to be used in your unit tests of myFunc. +// type mockQConnectClient struct { +// qconnectiface.QConnectAPI +// } +// func (m *mockQConnectClient) CreateAssistant(input *qconnect.CreateAssistantInput) (*qconnect.CreateAssistantOutput, error) { +// // mock response/functionality +// } +// +// func TestMyFunc(t *testing.T) { +// // Setup Test +// mockSvc := &mockQConnectClient{} +// +// myfunc(mockSvc) +// +// // Verify myFunc's functionality +// } +// +// It is important to note that this interface will have breaking changes +// when the service model is updated and adds new API operations, paginators, +// and waiters. Its suggested to use the pattern above for testing, or using +// tooling to generate mocks to satisfy the interfaces. +type QConnectAPI interface { + CreateAssistant(*qconnect.CreateAssistantInput) (*qconnect.CreateAssistantOutput, error) + CreateAssistantWithContext(aws.Context, *qconnect.CreateAssistantInput, ...request.Option) (*qconnect.CreateAssistantOutput, error) + CreateAssistantRequest(*qconnect.CreateAssistantInput) (*request.Request, *qconnect.CreateAssistantOutput) + + CreateAssistantAssociation(*qconnect.CreateAssistantAssociationInput) (*qconnect.CreateAssistantAssociationOutput, error) + CreateAssistantAssociationWithContext(aws.Context, *qconnect.CreateAssistantAssociationInput, ...request.Option) (*qconnect.CreateAssistantAssociationOutput, error) + CreateAssistantAssociationRequest(*qconnect.CreateAssistantAssociationInput) (*request.Request, *qconnect.CreateAssistantAssociationOutput) + + CreateContent(*qconnect.CreateContentInput) (*qconnect.CreateContentOutput, error) + CreateContentWithContext(aws.Context, *qconnect.CreateContentInput, ...request.Option) (*qconnect.CreateContentOutput, error) + CreateContentRequest(*qconnect.CreateContentInput) (*request.Request, *qconnect.CreateContentOutput) + + CreateKnowledgeBase(*qconnect.CreateKnowledgeBaseInput) (*qconnect.CreateKnowledgeBaseOutput, error) + CreateKnowledgeBaseWithContext(aws.Context, *qconnect.CreateKnowledgeBaseInput, ...request.Option) (*qconnect.CreateKnowledgeBaseOutput, error) + CreateKnowledgeBaseRequest(*qconnect.CreateKnowledgeBaseInput) (*request.Request, *qconnect.CreateKnowledgeBaseOutput) + + CreateQuickResponse(*qconnect.CreateQuickResponseInput) (*qconnect.CreateQuickResponseOutput, error) + CreateQuickResponseWithContext(aws.Context, *qconnect.CreateQuickResponseInput, ...request.Option) (*qconnect.CreateQuickResponseOutput, error) + CreateQuickResponseRequest(*qconnect.CreateQuickResponseInput) (*request.Request, *qconnect.CreateQuickResponseOutput) + + CreateSession(*qconnect.CreateSessionInput) (*qconnect.CreateSessionOutput, error) + CreateSessionWithContext(aws.Context, *qconnect.CreateSessionInput, ...request.Option) (*qconnect.CreateSessionOutput, error) + CreateSessionRequest(*qconnect.CreateSessionInput) (*request.Request, *qconnect.CreateSessionOutput) + + DeleteAssistant(*qconnect.DeleteAssistantInput) (*qconnect.DeleteAssistantOutput, error) + DeleteAssistantWithContext(aws.Context, *qconnect.DeleteAssistantInput, ...request.Option) (*qconnect.DeleteAssistantOutput, error) + DeleteAssistantRequest(*qconnect.DeleteAssistantInput) (*request.Request, *qconnect.DeleteAssistantOutput) + + DeleteAssistantAssociation(*qconnect.DeleteAssistantAssociationInput) (*qconnect.DeleteAssistantAssociationOutput, error) + DeleteAssistantAssociationWithContext(aws.Context, *qconnect.DeleteAssistantAssociationInput, ...request.Option) (*qconnect.DeleteAssistantAssociationOutput, error) + DeleteAssistantAssociationRequest(*qconnect.DeleteAssistantAssociationInput) (*request.Request, *qconnect.DeleteAssistantAssociationOutput) + + DeleteContent(*qconnect.DeleteContentInput) (*qconnect.DeleteContentOutput, error) + DeleteContentWithContext(aws.Context, *qconnect.DeleteContentInput, ...request.Option) (*qconnect.DeleteContentOutput, error) + DeleteContentRequest(*qconnect.DeleteContentInput) (*request.Request, *qconnect.DeleteContentOutput) + + DeleteImportJob(*qconnect.DeleteImportJobInput) (*qconnect.DeleteImportJobOutput, error) + DeleteImportJobWithContext(aws.Context, *qconnect.DeleteImportJobInput, ...request.Option) (*qconnect.DeleteImportJobOutput, error) + DeleteImportJobRequest(*qconnect.DeleteImportJobInput) (*request.Request, *qconnect.DeleteImportJobOutput) + + DeleteKnowledgeBase(*qconnect.DeleteKnowledgeBaseInput) (*qconnect.DeleteKnowledgeBaseOutput, error) + DeleteKnowledgeBaseWithContext(aws.Context, *qconnect.DeleteKnowledgeBaseInput, ...request.Option) (*qconnect.DeleteKnowledgeBaseOutput, error) + DeleteKnowledgeBaseRequest(*qconnect.DeleteKnowledgeBaseInput) (*request.Request, *qconnect.DeleteKnowledgeBaseOutput) + + DeleteQuickResponse(*qconnect.DeleteQuickResponseInput) (*qconnect.DeleteQuickResponseOutput, error) + DeleteQuickResponseWithContext(aws.Context, *qconnect.DeleteQuickResponseInput, ...request.Option) (*qconnect.DeleteQuickResponseOutput, error) + DeleteQuickResponseRequest(*qconnect.DeleteQuickResponseInput) (*request.Request, *qconnect.DeleteQuickResponseOutput) + + GetAssistant(*qconnect.GetAssistantInput) (*qconnect.GetAssistantOutput, error) + GetAssistantWithContext(aws.Context, *qconnect.GetAssistantInput, ...request.Option) (*qconnect.GetAssistantOutput, error) + GetAssistantRequest(*qconnect.GetAssistantInput) (*request.Request, *qconnect.GetAssistantOutput) + + GetAssistantAssociation(*qconnect.GetAssistantAssociationInput) (*qconnect.GetAssistantAssociationOutput, error) + GetAssistantAssociationWithContext(aws.Context, *qconnect.GetAssistantAssociationInput, ...request.Option) (*qconnect.GetAssistantAssociationOutput, error) + GetAssistantAssociationRequest(*qconnect.GetAssistantAssociationInput) (*request.Request, *qconnect.GetAssistantAssociationOutput) + + GetContent(*qconnect.GetContentInput) (*qconnect.GetContentOutput, error) + GetContentWithContext(aws.Context, *qconnect.GetContentInput, ...request.Option) (*qconnect.GetContentOutput, error) + GetContentRequest(*qconnect.GetContentInput) (*request.Request, *qconnect.GetContentOutput) + + GetContentSummary(*qconnect.GetContentSummaryInput) (*qconnect.GetContentSummaryOutput, error) + GetContentSummaryWithContext(aws.Context, *qconnect.GetContentSummaryInput, ...request.Option) (*qconnect.GetContentSummaryOutput, error) + GetContentSummaryRequest(*qconnect.GetContentSummaryInput) (*request.Request, *qconnect.GetContentSummaryOutput) + + GetImportJob(*qconnect.GetImportJobInput) (*qconnect.GetImportJobOutput, error) + GetImportJobWithContext(aws.Context, *qconnect.GetImportJobInput, ...request.Option) (*qconnect.GetImportJobOutput, error) + GetImportJobRequest(*qconnect.GetImportJobInput) (*request.Request, *qconnect.GetImportJobOutput) + + GetKnowledgeBase(*qconnect.GetKnowledgeBaseInput) (*qconnect.GetKnowledgeBaseOutput, error) + GetKnowledgeBaseWithContext(aws.Context, *qconnect.GetKnowledgeBaseInput, ...request.Option) (*qconnect.GetKnowledgeBaseOutput, error) + GetKnowledgeBaseRequest(*qconnect.GetKnowledgeBaseInput) (*request.Request, *qconnect.GetKnowledgeBaseOutput) + + GetQuickResponse(*qconnect.GetQuickResponseInput) (*qconnect.GetQuickResponseOutput, error) + GetQuickResponseWithContext(aws.Context, *qconnect.GetQuickResponseInput, ...request.Option) (*qconnect.GetQuickResponseOutput, error) + GetQuickResponseRequest(*qconnect.GetQuickResponseInput) (*request.Request, *qconnect.GetQuickResponseOutput) + + GetRecommendations(*qconnect.GetRecommendationsInput) (*qconnect.GetRecommendationsOutput, error) + GetRecommendationsWithContext(aws.Context, *qconnect.GetRecommendationsInput, ...request.Option) (*qconnect.GetRecommendationsOutput, error) + GetRecommendationsRequest(*qconnect.GetRecommendationsInput) (*request.Request, *qconnect.GetRecommendationsOutput) + + GetSession(*qconnect.GetSessionInput) (*qconnect.GetSessionOutput, error) + GetSessionWithContext(aws.Context, *qconnect.GetSessionInput, ...request.Option) (*qconnect.GetSessionOutput, error) + GetSessionRequest(*qconnect.GetSessionInput) (*request.Request, *qconnect.GetSessionOutput) + + ListAssistantAssociations(*qconnect.ListAssistantAssociationsInput) (*qconnect.ListAssistantAssociationsOutput, error) + ListAssistantAssociationsWithContext(aws.Context, *qconnect.ListAssistantAssociationsInput, ...request.Option) (*qconnect.ListAssistantAssociationsOutput, error) + ListAssistantAssociationsRequest(*qconnect.ListAssistantAssociationsInput) (*request.Request, *qconnect.ListAssistantAssociationsOutput) + + ListAssistantAssociationsPages(*qconnect.ListAssistantAssociationsInput, func(*qconnect.ListAssistantAssociationsOutput, bool) bool) error + ListAssistantAssociationsPagesWithContext(aws.Context, *qconnect.ListAssistantAssociationsInput, func(*qconnect.ListAssistantAssociationsOutput, bool) bool, ...request.Option) error + + ListAssistants(*qconnect.ListAssistantsInput) (*qconnect.ListAssistantsOutput, error) + ListAssistantsWithContext(aws.Context, *qconnect.ListAssistantsInput, ...request.Option) (*qconnect.ListAssistantsOutput, error) + ListAssistantsRequest(*qconnect.ListAssistantsInput) (*request.Request, *qconnect.ListAssistantsOutput) + + ListAssistantsPages(*qconnect.ListAssistantsInput, func(*qconnect.ListAssistantsOutput, bool) bool) error + ListAssistantsPagesWithContext(aws.Context, *qconnect.ListAssistantsInput, func(*qconnect.ListAssistantsOutput, bool) bool, ...request.Option) error + + ListContents(*qconnect.ListContentsInput) (*qconnect.ListContentsOutput, error) + ListContentsWithContext(aws.Context, *qconnect.ListContentsInput, ...request.Option) (*qconnect.ListContentsOutput, error) + ListContentsRequest(*qconnect.ListContentsInput) (*request.Request, *qconnect.ListContentsOutput) + + ListContentsPages(*qconnect.ListContentsInput, func(*qconnect.ListContentsOutput, bool) bool) error + ListContentsPagesWithContext(aws.Context, *qconnect.ListContentsInput, func(*qconnect.ListContentsOutput, bool) bool, ...request.Option) error + + ListImportJobs(*qconnect.ListImportJobsInput) (*qconnect.ListImportJobsOutput, error) + ListImportJobsWithContext(aws.Context, *qconnect.ListImportJobsInput, ...request.Option) (*qconnect.ListImportJobsOutput, error) + ListImportJobsRequest(*qconnect.ListImportJobsInput) (*request.Request, *qconnect.ListImportJobsOutput) + + ListImportJobsPages(*qconnect.ListImportJobsInput, func(*qconnect.ListImportJobsOutput, bool) bool) error + ListImportJobsPagesWithContext(aws.Context, *qconnect.ListImportJobsInput, func(*qconnect.ListImportJobsOutput, bool) bool, ...request.Option) error + + ListKnowledgeBases(*qconnect.ListKnowledgeBasesInput) (*qconnect.ListKnowledgeBasesOutput, error) + ListKnowledgeBasesWithContext(aws.Context, *qconnect.ListKnowledgeBasesInput, ...request.Option) (*qconnect.ListKnowledgeBasesOutput, error) + ListKnowledgeBasesRequest(*qconnect.ListKnowledgeBasesInput) (*request.Request, *qconnect.ListKnowledgeBasesOutput) + + ListKnowledgeBasesPages(*qconnect.ListKnowledgeBasesInput, func(*qconnect.ListKnowledgeBasesOutput, bool) bool) error + ListKnowledgeBasesPagesWithContext(aws.Context, *qconnect.ListKnowledgeBasesInput, func(*qconnect.ListKnowledgeBasesOutput, bool) bool, ...request.Option) error + + ListQuickResponses(*qconnect.ListQuickResponsesInput) (*qconnect.ListQuickResponsesOutput, error) + ListQuickResponsesWithContext(aws.Context, *qconnect.ListQuickResponsesInput, ...request.Option) (*qconnect.ListQuickResponsesOutput, error) + ListQuickResponsesRequest(*qconnect.ListQuickResponsesInput) (*request.Request, *qconnect.ListQuickResponsesOutput) + + ListQuickResponsesPages(*qconnect.ListQuickResponsesInput, func(*qconnect.ListQuickResponsesOutput, bool) bool) error + ListQuickResponsesPagesWithContext(aws.Context, *qconnect.ListQuickResponsesInput, func(*qconnect.ListQuickResponsesOutput, bool) bool, ...request.Option) error + + ListTagsForResource(*qconnect.ListTagsForResourceInput) (*qconnect.ListTagsForResourceOutput, error) + ListTagsForResourceWithContext(aws.Context, *qconnect.ListTagsForResourceInput, ...request.Option) (*qconnect.ListTagsForResourceOutput, error) + ListTagsForResourceRequest(*qconnect.ListTagsForResourceInput) (*request.Request, *qconnect.ListTagsForResourceOutput) + + NotifyRecommendationsReceived(*qconnect.NotifyRecommendationsReceivedInput) (*qconnect.NotifyRecommendationsReceivedOutput, error) + NotifyRecommendationsReceivedWithContext(aws.Context, *qconnect.NotifyRecommendationsReceivedInput, ...request.Option) (*qconnect.NotifyRecommendationsReceivedOutput, error) + NotifyRecommendationsReceivedRequest(*qconnect.NotifyRecommendationsReceivedInput) (*request.Request, *qconnect.NotifyRecommendationsReceivedOutput) + + QueryAssistant(*qconnect.QueryAssistantInput) (*qconnect.QueryAssistantOutput, error) + QueryAssistantWithContext(aws.Context, *qconnect.QueryAssistantInput, ...request.Option) (*qconnect.QueryAssistantOutput, error) + QueryAssistantRequest(*qconnect.QueryAssistantInput) (*request.Request, *qconnect.QueryAssistantOutput) + + QueryAssistantPages(*qconnect.QueryAssistantInput, func(*qconnect.QueryAssistantOutput, bool) bool) error + QueryAssistantPagesWithContext(aws.Context, *qconnect.QueryAssistantInput, func(*qconnect.QueryAssistantOutput, bool) bool, ...request.Option) error + + RemoveKnowledgeBaseTemplateUri(*qconnect.RemoveKnowledgeBaseTemplateUriInput) (*qconnect.RemoveKnowledgeBaseTemplateUriOutput, error) + RemoveKnowledgeBaseTemplateUriWithContext(aws.Context, *qconnect.RemoveKnowledgeBaseTemplateUriInput, ...request.Option) (*qconnect.RemoveKnowledgeBaseTemplateUriOutput, error) + RemoveKnowledgeBaseTemplateUriRequest(*qconnect.RemoveKnowledgeBaseTemplateUriInput) (*request.Request, *qconnect.RemoveKnowledgeBaseTemplateUriOutput) + + SearchContent(*qconnect.SearchContentInput) (*qconnect.SearchContentOutput, error) + SearchContentWithContext(aws.Context, *qconnect.SearchContentInput, ...request.Option) (*qconnect.SearchContentOutput, error) + SearchContentRequest(*qconnect.SearchContentInput) (*request.Request, *qconnect.SearchContentOutput) + + SearchContentPages(*qconnect.SearchContentInput, func(*qconnect.SearchContentOutput, bool) bool) error + SearchContentPagesWithContext(aws.Context, *qconnect.SearchContentInput, func(*qconnect.SearchContentOutput, bool) bool, ...request.Option) error + + SearchQuickResponses(*qconnect.SearchQuickResponsesInput) (*qconnect.SearchQuickResponsesOutput, error) + SearchQuickResponsesWithContext(aws.Context, *qconnect.SearchQuickResponsesInput, ...request.Option) (*qconnect.SearchQuickResponsesOutput, error) + SearchQuickResponsesRequest(*qconnect.SearchQuickResponsesInput) (*request.Request, *qconnect.SearchQuickResponsesOutput) + + SearchQuickResponsesPages(*qconnect.SearchQuickResponsesInput, func(*qconnect.SearchQuickResponsesOutput, bool) bool) error + SearchQuickResponsesPagesWithContext(aws.Context, *qconnect.SearchQuickResponsesInput, func(*qconnect.SearchQuickResponsesOutput, bool) bool, ...request.Option) error + + SearchSessions(*qconnect.SearchSessionsInput) (*qconnect.SearchSessionsOutput, error) + SearchSessionsWithContext(aws.Context, *qconnect.SearchSessionsInput, ...request.Option) (*qconnect.SearchSessionsOutput, error) + SearchSessionsRequest(*qconnect.SearchSessionsInput) (*request.Request, *qconnect.SearchSessionsOutput) + + SearchSessionsPages(*qconnect.SearchSessionsInput, func(*qconnect.SearchSessionsOutput, bool) bool) error + SearchSessionsPagesWithContext(aws.Context, *qconnect.SearchSessionsInput, func(*qconnect.SearchSessionsOutput, bool) bool, ...request.Option) error + + StartContentUpload(*qconnect.StartContentUploadInput) (*qconnect.StartContentUploadOutput, error) + StartContentUploadWithContext(aws.Context, *qconnect.StartContentUploadInput, ...request.Option) (*qconnect.StartContentUploadOutput, error) + StartContentUploadRequest(*qconnect.StartContentUploadInput) (*request.Request, *qconnect.StartContentUploadOutput) + + StartImportJob(*qconnect.StartImportJobInput) (*qconnect.StartImportJobOutput, error) + StartImportJobWithContext(aws.Context, *qconnect.StartImportJobInput, ...request.Option) (*qconnect.StartImportJobOutput, error) + StartImportJobRequest(*qconnect.StartImportJobInput) (*request.Request, *qconnect.StartImportJobOutput) + + TagResource(*qconnect.TagResourceInput) (*qconnect.TagResourceOutput, error) + TagResourceWithContext(aws.Context, *qconnect.TagResourceInput, ...request.Option) (*qconnect.TagResourceOutput, error) + TagResourceRequest(*qconnect.TagResourceInput) (*request.Request, *qconnect.TagResourceOutput) + + UntagResource(*qconnect.UntagResourceInput) (*qconnect.UntagResourceOutput, error) + UntagResourceWithContext(aws.Context, *qconnect.UntagResourceInput, ...request.Option) (*qconnect.UntagResourceOutput, error) + UntagResourceRequest(*qconnect.UntagResourceInput) (*request.Request, *qconnect.UntagResourceOutput) + + UpdateContent(*qconnect.UpdateContentInput) (*qconnect.UpdateContentOutput, error) + UpdateContentWithContext(aws.Context, *qconnect.UpdateContentInput, ...request.Option) (*qconnect.UpdateContentOutput, error) + UpdateContentRequest(*qconnect.UpdateContentInput) (*request.Request, *qconnect.UpdateContentOutput) + + UpdateKnowledgeBaseTemplateUri(*qconnect.UpdateKnowledgeBaseTemplateUriInput) (*qconnect.UpdateKnowledgeBaseTemplateUriOutput, error) + UpdateKnowledgeBaseTemplateUriWithContext(aws.Context, *qconnect.UpdateKnowledgeBaseTemplateUriInput, ...request.Option) (*qconnect.UpdateKnowledgeBaseTemplateUriOutput, error) + UpdateKnowledgeBaseTemplateUriRequest(*qconnect.UpdateKnowledgeBaseTemplateUriInput) (*request.Request, *qconnect.UpdateKnowledgeBaseTemplateUriOutput) + + UpdateQuickResponse(*qconnect.UpdateQuickResponseInput) (*qconnect.UpdateQuickResponseOutput, error) + UpdateQuickResponseWithContext(aws.Context, *qconnect.UpdateQuickResponseInput, ...request.Option) (*qconnect.UpdateQuickResponseOutput, error) + UpdateQuickResponseRequest(*qconnect.UpdateQuickResponseInput) (*request.Request, *qconnect.UpdateQuickResponseOutput) +} + +var _ QConnectAPI = (*qconnect.QConnect)(nil) diff --git a/service/qconnect/service.go b/service/qconnect/service.go new file mode 100644 index 00000000000..d7a74561a46 --- /dev/null +++ b/service/qconnect/service.go @@ -0,0 +1,106 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package qconnect + +import ( + "github.com/aws/aws-sdk-go/aws" + "github.com/aws/aws-sdk-go/aws/client" + "github.com/aws/aws-sdk-go/aws/client/metadata" + "github.com/aws/aws-sdk-go/aws/request" + "github.com/aws/aws-sdk-go/aws/signer/v4" + "github.com/aws/aws-sdk-go/private/protocol" + "github.com/aws/aws-sdk-go/private/protocol/restjson" +) + +// QConnect provides the API operation methods for making requests to +// Amazon Q Connect. See this package's package overview docs +// for details on the service. +// +// QConnect methods are safe to use concurrently. It is not safe to +// modify mutate any of the struct's properties though. +type QConnect struct { + *client.Client +} + +// Used for custom client initialization logic +var initClient func(*client.Client) + +// Used for custom request initialization logic +var initRequest func(*request.Request) + +// Service information constants +const ( + ServiceName = "QConnect" // Name of service. + EndpointsID = "wisdom" // ID to lookup a service endpoint with. + ServiceID = "QConnect" // ServiceID is a unique identifier of a specific service. +) + +// New creates a new instance of the QConnect client with a session. +// If additional configuration is needed for the client instance use the optional +// aws.Config parameter to add your extra config. +// +// Example: +// +// mySession := session.Must(session.NewSession()) +// +// // Create a QConnect client from just a session. +// svc := qconnect.New(mySession) +// +// // Create a QConnect client with additional configuration +// svc := qconnect.New(mySession, aws.NewConfig().WithRegion("us-west-2")) +func New(p client.ConfigProvider, cfgs ...*aws.Config) *QConnect { + c := p.ClientConfig(EndpointsID, cfgs...) + if c.SigningNameDerived || len(c.SigningName) == 0 { + c.SigningName = "wisdom" + } + return newClient(*c.Config, c.Handlers, c.PartitionID, c.Endpoint, c.SigningRegion, c.SigningName, c.ResolvedRegion) +} + +// newClient creates, initializes and returns a new service client instance. +func newClient(cfg aws.Config, handlers request.Handlers, partitionID, endpoint, signingRegion, signingName, resolvedRegion string) *QConnect { + svc := &QConnect{ + Client: client.New( + cfg, + metadata.ClientInfo{ + ServiceName: ServiceName, + ServiceID: ServiceID, + SigningName: signingName, + SigningRegion: signingRegion, + PartitionID: partitionID, + Endpoint: endpoint, + APIVersion: "2020-10-19", + ResolvedRegion: resolvedRegion, + }, + handlers, + ), + } + + // Handlers + svc.Handlers.Sign.PushBackNamed(v4.SignRequestHandler) + svc.Handlers.Build.PushBackNamed(restjson.BuildHandler) + svc.Handlers.Unmarshal.PushBackNamed(restjson.UnmarshalHandler) + svc.Handlers.UnmarshalMeta.PushBackNamed(restjson.UnmarshalMetaHandler) + svc.Handlers.UnmarshalError.PushBackNamed( + protocol.NewUnmarshalErrorHandler(restjson.NewUnmarshalTypedError(exceptionFromCode)).NamedHandler(), + ) + + // Run custom client initialization if present + if initClient != nil { + initClient(svc.Client) + } + + return svc +} + +// newRequest creates a new request for a QConnect operation and runs any +// custom request initialization. +func (c *QConnect) newRequest(op *request.Operation, params, data interface{}) *request.Request { + req := c.NewRequest(op, params, data) + + // Run custom request initialization if present + if initRequest != nil { + initRequest(req) + } + + return req +} diff --git a/service/s3/api.go b/service/s3/api.go index d2107e62a1a..01ec8099e47 100644 --- a/service/s3/api.go +++ b/service/s3/api.go @@ -67,19 +67,47 @@ func (c *S3) AbortMultipartUploadRequest(input *AbortMultipartUploadInput) (req // AbortMultipartUpload API operation for Amazon Simple Storage Service. // -// This action aborts a multipart upload. After a multipart upload is aborted, +// This operation aborts a multipart upload. After a multipart upload is aborted, // no additional parts can be uploaded using that upload ID. The storage consumed // by any previously uploaded parts will be freed. However, if any part uploads // are currently in progress, those part uploads might or might not succeed. // As a result, it might be necessary to abort a given multipart upload multiple // times in order to completely free all storage consumed by all parts. // -// To verify that all parts have been removed, so you don't get charged for +// To verify that all parts have been removed and prevent getting charged for // the part storage, you should call the ListParts (https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html) -// action and ensure that the parts list is empty. +// API operation and ensure that the parts list is empty. // -// For information about permissions required to use the multipart upload, see -// Multipart Upload and Permissions (https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuAndPermissions.html). +// Directory buckets - For directory buckets, you must make requests for this +// API operation to the Zonal endpoint. These endpoints support virtual-hosted-style +// requests in the format https://bucket_name.s3express-az_id.region.amazonaws.com/key-name +// . Path-style requests are not supported. For more information, see Regional +// and Zonal endpoints (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-Regions-and-Zones.html) +// in the Amazon S3 User Guide. +// +// Permissions +// +// - General purpose bucket permissions - For information about permissions +// required to use the multipart upload, see Multipart Upload and Permissions +// (https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuAndPermissions.html) +// in the Amazon S3 User Guide. +// +// - Directory bucket permissions - To grant access to this API operation +// on a directory bucket, we recommend that you use the CreateSession (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html) +// API operation for session-based authorization. Specifically, you grant +// the s3express:CreateSession permission to the directory bucket in a bucket +// policy or an IAM identity-based policy. Then, you make the CreateSession +// API call on the bucket to obtain a session token. With the session token +// in your request header, you can make API requests to this operation. After +// the session token expires, you make another CreateSession API call to +// generate a new session token for use. Amazon Web Services CLI or SDKs +// create session and refresh the session token automatically to avoid service +// interruptions when a session expires. For more information about authorization, +// see CreateSession (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html). +// +// # HTTP Host header syntax +// +// Directory buckets - The HTTP Host header syntax is Bucket_name.s3express-az_id.region.amazonaws.com. // // The following operations are related to AbortMultipartUpload: // @@ -173,60 +201,93 @@ func (c *S3) CompleteMultipartUploadRequest(input *CompleteMultipartUploadInput) // // You first initiate the multipart upload and then upload all parts using the // UploadPart (https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html) +// operation or the UploadPartCopy (https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html) // operation. After successfully uploading all relevant parts of an upload, -// you call this action to complete the upload. Upon receiving this request, -// Amazon S3 concatenates all the parts in ascending order by part number to -// create a new object. In the Complete Multipart Upload request, you must provide -// the parts list. You must ensure that the parts list is complete. This action -// concatenates the parts that you provide in the list. For each part in the -// list, you must provide the part number and the ETag value, returned after -// that part was uploaded. -// -// Processing of a Complete Multipart Upload request could take several minutes -// to complete. After Amazon S3 begins processing the request, it sends an HTTP +// you call this CompleteMultipartUpload operation to complete the upload. Upon +// receiving this request, Amazon S3 concatenates all the parts in ascending +// order by part number to create a new object. In the CompleteMultipartUpload +// request, you must provide the parts list and ensure that the parts list is +// complete. The CompleteMultipartUpload API operation concatenates the parts +// that you provide in the list. For each part in the list, you must provide +// the PartNumber value and the ETag value that are returned after that part +// was uploaded. +// +// The processing of a CompleteMultipartUpload request could take several minutes +// to finalize. After Amazon S3 begins processing the request, it sends an HTTP // response header that specifies a 200 OK response. While processing is in // progress, Amazon S3 periodically sends white space characters to keep the // connection from timing out. A request could fail after the initial 200 OK // response has been sent. This means that a 200 OK response can contain either -// a success or an error. If you call the S3 API directly, make sure to design -// your application to parse the contents of the response and handle it appropriately. +// a success or an error. The error response might be embedded in the 200 OK +// response. If you call this API operation directly, make sure to design your +// application to parse the contents of the response and handle it appropriately. // If you use Amazon Web Services SDKs, SDKs handle this condition. The SDKs // detect the embedded error and apply error handling per your configuration // settings (including automatically retrying the request as appropriate). If -// the condition persists, the SDKs throws an exception (or, for the SDKs that -// don't use exceptions, they return the error). +// the condition persists, the SDKs throw an exception (or, for the SDKs that +// don't use exceptions, they return an error). // // Note that if CompleteMultipartUpload fails, applications should be prepared // to retry the failed requests. For more information, see Amazon S3 Error Best // Practices (https://docs.aws.amazon.com/AmazonS3/latest/dev/ErrorBestPractices.html). // -// You cannot use Content-Type: application/x-www-form-urlencoded with Complete -// Multipart Upload requests. Also, if you do not provide a Content-Type header, -// CompleteMultipartUpload returns a 200 OK response. +// You can't use Content-Type: application/x-www-form-urlencoded for the CompleteMultipartUpload +// requests. Also, if you don't provide a Content-Type header, CompleteMultipartUpload +// can still return a 200 OK response. // // For more information about multipart uploads, see Uploading Objects Using -// Multipart Upload (https://docs.aws.amazon.com/AmazonS3/latest/dev/uploadobjusingmpu.html). +// Multipart Upload (https://docs.aws.amazon.com/AmazonS3/latest/dev/uploadobjusingmpu.html) +// in the Amazon S3 User Guide. // -// For information about permissions required to use the multipart upload API, -// see Multipart Upload and Permissions (https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuAndPermissions.html). +// Directory buckets - For directory buckets, you must make requests for this +// API operation to the Zonal endpoint. These endpoints support virtual-hosted-style +// requests in the format https://bucket_name.s3express-az_id.region.amazonaws.com/key-name +// . Path-style requests are not supported. For more information, see Regional +// and Zonal endpoints (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-Regions-and-Zones.html) +// in the Amazon S3 User Guide. +// +// Permissions +// +// - General purpose bucket permissions - For information about permissions +// required to use the multipart upload API, see Multipart Upload and Permissions +// (https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuAndPermissions.html) +// in the Amazon S3 User Guide. // -// CompleteMultipartUpload has the following special errors: +// - Directory bucket permissions - To grant access to this API operation +// on a directory bucket, we recommend that you use the CreateSession (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html) +// API operation for session-based authorization. Specifically, you grant +// the s3express:CreateSession permission to the directory bucket in a bucket +// policy or an IAM identity-based policy. Then, you make the CreateSession +// API call on the bucket to obtain a session token. With the session token +// in your request header, you can make API requests to this operation. After +// the session token expires, you make another CreateSession API call to +// generate a new session token for use. Amazon Web Services CLI or SDKs +// create session and refresh the session token automatically to avoid service +// interruptions when a session expires. For more information about authorization, +// see CreateSession (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html). // -// - Error code: EntityTooSmall Description: Your proposed upload is smaller +// Special errors +// +// - Error Code: EntityTooSmall Description: Your proposed upload is smaller // than the minimum allowed object size. Each part must be at least 5 MB -// in size, except the last part. 400 Bad Request +// in size, except the last part. HTTP Status Code: 400 Bad Request // -// - Error code: InvalidPart Description: One or more of the specified parts +// - Error Code: InvalidPart Description: One or more of the specified parts // could not be found. The part might not have been uploaded, or the specified -// entity tag might not have matched the part's entity tag. 400 Bad Request +// ETag might not have matched the uploaded part's ETag. HTTP Status Code: +// 400 Bad Request // -// - Error code: InvalidPartOrder Description: The list of parts was not +// - Error Code: InvalidPartOrder Description: The list of parts was not // in ascending order. The parts list must be specified in order by part -// number. 400 Bad Request +// number. HTTP Status Code: 400 Bad Request // -// - Error code: NoSuchUpload Description: The specified multipart upload +// - Error Code: NoSuchUpload Description: The specified multipart upload // does not exist. The upload ID might be invalid, or the multipart upload -// might have been aborted or completed. 404 Not Found +// might have been aborted or completed. HTTP Status Code: 404 Not Found +// +// # HTTP Host header syntax +// +// Directory buckets - The HTTP Host header syntax is Bucket_name.s3express-az_id.region.amazonaws.com. // // The following operations are related to CompleteMultipartUpload: // @@ -319,187 +380,108 @@ func (c *S3) CopyObjectRequest(input *CopyObjectInput) (req *request.Request, ou // upload Upload Part - Copy (UploadPartCopy) API. For more information, see // Copy Object Using the REST Multipart Upload API (https://docs.aws.amazon.com/AmazonS3/latest/dev/CopyingObjctsUsingRESTMPUapi.html). // -// All copy requests must be authenticated. Additionally, you must have read -// access to the source object and write access to the destination bucket. For -// more information, see REST Authentication (https://docs.aws.amazon.com/AmazonS3/latest/dev/RESTAuthentication.html). -// Both the Region that you want to copy the object from and the Region that -// you want to copy the object to must be enabled for your account. +// You can copy individual objects between general purpose buckets, between +// directory buckets, and between general purpose buckets and directory buckets. // -// A copy request might return an error when Amazon S3 receives the copy request -// or while Amazon S3 is copying the files. If the error occurs before the copy -// action starts, you receive a standard Amazon S3 error. If the error occurs -// during the copy operation, the error response is embedded in the 200 OK response. -// This means that a 200 OK response can contain either a success or an error. -// If you call the S3 API directly, make sure to design your application to -// parse the contents of the response and handle it appropriately. If you use -// Amazon Web Services SDKs, SDKs handle this condition. The SDKs detect the -// embedded error and apply error handling per your configuration settings (including -// automatically retrying the request as appropriate). If the condition persists, -// the SDKs throws an exception (or, for the SDKs that don't use exceptions, -// they return the error). -// -// If the copy is successful, you receive a response with information about -// the copied object. -// -// If the request is an HTTP 1.1 request, the response is chunk encoded. If -// it were not, it would not contain the content-length, and you would need -// to read the entire body. +// Directory buckets - For directory buckets, you must make requests for this +// API operation to the Zonal endpoint. These endpoints support virtual-hosted-style +// requests in the format https://bucket_name.s3express-az_id.region.amazonaws.com/key-name +// . Path-style requests are not supported. For more information, see Regional +// and Zonal endpoints (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-Regions-and-Zones.html) +// in the Amazon S3 User Guide. // -// The copy request charge is based on the storage class and Region that you -// specify for the destination object. The request can also result in a data -// retrieval charge for the source if the source storage class bills for data -// retrieval. For pricing information, see Amazon S3 pricing (http://aws.amazon.com/s3/pricing/). +// Both the Region that you want to copy the object from and the Region that +// you want to copy the object to must be enabled for your account. // // Amazon S3 transfer acceleration does not support cross-Region copies. If // you request a cross-Region copy using a transfer acceleration endpoint, you // get a 400 Bad Request error. For more information, see Transfer Acceleration // (https://docs.aws.amazon.com/AmazonS3/latest/dev/transfer-acceleration.html). // -// # Metadata -// -// When copying an object, you can preserve all metadata (the default) or specify -// new metadata. However, the access control list (ACL) is not preserved and -// is set to private for the user making the request. To override the default -// ACL setting, specify a new ACL when generating a copy request. For more information, -// see Using ACLs (https://docs.aws.amazon.com/AmazonS3/latest/dev/S3_ACLs_UsingACLs.html). -// -// To specify whether you want the object metadata copied from the source object -// or replaced with metadata provided in the request, you can optionally add -// the x-amz-metadata-directive header. When you grant permissions, you can -// use the s3:x-amz-metadata-directive condition key to enforce certain metadata -// behavior when objects are uploaded. For more information, see Specifying -// Conditions in a Policy (https://docs.aws.amazon.com/AmazonS3/latest/dev/amazon-s3-policy-keys.html) -// in the Amazon S3 User Guide. For a complete list of Amazon S3-specific condition -// keys, see Actions, Resources, and Condition Keys for Amazon S3 (https://docs.aws.amazon.com/AmazonS3/latest/dev/list_amazons3.html). -// -// x-amz-website-redirect-location is unique to each object and must be specified -// in the request headers to copy the value. -// -// x-amz-copy-source-if Headers -// -// To only copy an object under certain conditions, such as whether the Etag -// matches or whether the object was modified before or after a specified date, -// use the following request parameters: -// -// - x-amz-copy-source-if-match -// -// - x-amz-copy-source-if-none-match +// # Authentication and authorization // -// - x-amz-copy-source-if-unmodified-since -// -// - x-amz-copy-source-if-modified-since -// -// If both the x-amz-copy-source-if-match and x-amz-copy-source-if-unmodified-since -// headers are present in the request and evaluate as follows, Amazon S3 returns -// 200 OK and copies the data: -// -// - x-amz-copy-source-if-match condition evaluates to true -// -// - x-amz-copy-source-if-unmodified-since condition evaluates to false -// -// If both the x-amz-copy-source-if-none-match and x-amz-copy-source-if-modified-since -// headers are present in the request and evaluate as follows, Amazon S3 returns -// the 412 Precondition Failed response code: -// -// - x-amz-copy-source-if-none-match condition evaluates to false -// -// - x-amz-copy-source-if-modified-since condition evaluates to true -// -// All headers with the x-amz- prefix, including x-amz-copy-source, must be -// signed. -// -// # Server-side encryption -// -// Amazon S3 automatically encrypts all new objects that are copied to an S3 -// bucket. When copying an object, if you don't specify encryption information -// in your copy request, the encryption setting of the target object is set -// to the default encryption configuration of the destination bucket. By default, -// all buckets have a base level of encryption configuration that uses server-side -// encryption with Amazon S3 managed keys (SSE-S3). If the destination bucket -// has a default encryption configuration that uses server-side encryption with -// Key Management Service (KMS) keys (SSE-KMS), dual-layer server-side encryption -// with Amazon Web Services KMS keys (DSSE-KMS), or server-side encryption with -// customer-provided encryption keys (SSE-C), Amazon S3 uses the corresponding -// KMS key, or a customer-provided key to encrypt the target object copy. -// -// When you perform a CopyObject operation, if you want to use a different type -// of encryption setting for the target object, you can use other appropriate -// encryption-related headers to encrypt the target object with a KMS key, an -// Amazon S3 managed key, or a customer-provided key. With server-side encryption, -// Amazon S3 encrypts your data as it writes your data to disks in its data -// centers and decrypts the data when you access it. If the encryption setting -// in your request is different from the default encryption configuration of -// the destination bucket, the encryption setting in your request takes precedence. -// If the source object for the copy is stored in Amazon S3 using SSE-C, you -// must provide the necessary encryption information in your request so that -// Amazon S3 can decrypt the object for copying. For more information about -// server-side encryption, see Using Server-Side Encryption (https://docs.aws.amazon.com/AmazonS3/latest/dev/serv-side-encryption.html). -// -// If a target object uses SSE-KMS, you can enable an S3 Bucket Key for the -// object. For more information, see Amazon S3 Bucket Keys (https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-key.html) -// in the Amazon S3 User Guide. -// -// # Access Control List (ACL)-Specific Request Headers -// -// When copying an object, you can optionally use headers to grant ACL-based -// permissions. By default, all objects are private. Only the owner has full -// access control. When adding a new object, you can grant permissions to individual -// Amazon Web Services accounts or to predefined groups that are defined by -// Amazon S3. These permissions are then added to the ACL on the object. For -// more information, see Access Control List (ACL) Overview (https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html) -// and Managing ACLs Using the REST API (https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-using-rest-api.html). -// -// If the bucket that you're copying objects to uses the bucket owner enforced -// setting for S3 Object Ownership, ACLs are disabled and no longer affect permissions. -// Buckets that use this setting only accept PUT requests that don't specify -// an ACL or PUT requests that specify bucket owner full control ACLs, such -// as the bucket-owner-full-control canned ACL or an equivalent form of this -// ACL expressed in the XML format. -// -// For more information, see Controlling ownership of objects and disabling -// ACLs (https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html) -// in the Amazon S3 User Guide. -// -// If your bucket uses the bucket owner enforced setting for Object Ownership, -// all objects written to the bucket by any account will be owned by the bucket -// owner. +// All CopyObject requests must be authenticated and signed by using IAM credentials +// (access key ID and secret access key for the IAM identities). All headers +// with the x-amz- prefix, including x-amz-copy-source, must be signed. For +// more information, see REST Authentication (https://docs.aws.amazon.com/AmazonS3/latest/dev/RESTAuthentication.html). // -// # Checksums +// Directory buckets - You must use the IAM credentials to authenticate and +// authorize your access to the CopyObject API operation, instead of using the +// temporary security credentials through the CreateSession API operation. // -// When copying an object, if it has a checksum, that checksum will be copied -// to the new object by default. When you copy the object over, you can optionally -// specify a different checksum algorithm to use with the x-amz-checksum-algorithm -// header. +// Amazon Web Services CLI or SDKs handles authentication and authorization +// on your behalf. // -// # Storage Class Options +// # Permissions // -// You can use the CopyObject action to change the storage class of an object -// that is already stored in Amazon S3 by using the StorageClass parameter. -// For more information, see Storage Classes (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html) -// in the Amazon S3 User Guide. +// You must have read access to the source object and write access to the destination +// bucket. // -// If the source object's storage class is GLACIER or DEEP_ARCHIVE, or the object's -// storage class is INTELLIGENT_TIERING and it's S3 Intelligent-Tiering access -// tier (https://docs.aws.amazon.com/AmazonS3/latest/userguide/intelligent-tiering-overview.html#intel-tiering-tier-definition) -// is Archive Access or Deep Archive Access, you must restore a copy of this -// object before you can use it as a source object for the copy operation. For -// more information, see RestoreObject (https://docs.aws.amazon.com/AmazonS3/latest/API/API_RestoreObject.html). -// For more information, see Copying Objects (https://docs.aws.amazon.com/AmazonS3/latest/dev/CopyingObjectsExamples.html). +// - General purpose bucket permissions - You must have permissions in an +// IAM policy based on the source and destination bucket types in a CopyObject +// operation. If the source object is in a general purpose bucket, you must +// have s3:GetObject permission to read the source object that is being copied. +// If the destination bucket is a general purpose bucket, you must have s3:PubObject +// permission to write the object copy to the destination bucket. +// +// - Directory bucket permissions - You must have permissions in a bucket +// policy or an IAM identity-based policy based on the source and destination +// bucket types in a CopyObject operation. If the source object that you +// want to copy is in a directory bucket, you must have the s3express:CreateSession +// permission in the Action element of a policy to read the object. By default, +// the session is in the ReadWrite mode. If you want to restrict the access, +// you can explicitly set the s3express:SessionMode condition key to ReadOnly +// on the copy source bucket. If the copy destination is a directory bucket, +// you must have the s3express:CreateSession permission in the Action element +// of a policy to write the object to the destination. The s3express:SessionMode +// condition key can't be set to ReadOnly on the copy destination bucket. +// For example policies, see Example bucket policies for S3 Express One Zone +// (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam-example-bucket-policies.html) +// and Amazon Web Services Identity and Access Management (IAM) identity-based +// policies for S3 Express One Zone (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam-identity-policies.html) +// in the Amazon S3 User Guide. // -// # Versioning +// # Response and special errors +// +// When the request is an HTTP 1.1 request, the response is chunk encoded. When +// the request is not an HTTP 1.1 request, the response would not contain the +// Content-Length. You always need to read the entire response body to check +// if the copy succeeds. to keep the connection alive while we copy the data. +// +// - If the copy is successful, you receive a response with information about +// the copied object. +// +// - A copy request might return an error when Amazon S3 receives the copy +// request or while Amazon S3 is copying the files. A 200 OK response can +// contain either a success or an error. If the error occurs before the copy +// action starts, you receive a standard Amazon S3 error. If the error occurs +// during the copy operation, the error response is embedded in the 200 OK +// response. For example, in a cross-region copy, you may encounter throttling +// and receive a 200 OK response. For more information, see Resolve the Error +// 200 response when copying objects to Amazon S3 (repost.aws/knowledge-center/s3-resolve-200-internalerror). +// The 200 OK status code means the copy was accepted, but it doesn't mean +// the copy is complete. Another example is when you disconnect from Amazon +// S3 before the copy is complete, Amazon S3 might cancel the copy and you +// may receive a 200 OK response. You must stay connected to Amazon S3 until +// the entire response is successfully received and processed. If you call +// this API operation directly, make sure to design your application to parse +// the content of the response and handle it appropriately. If you use Amazon +// Web Services SDKs, SDKs handle this condition. The SDKs detect the embedded +// error and apply error handling per your configuration settings (including +// automatically retrying the request as appropriate). If the condition persists, +// the SDKs throw an exception (or, for the SDKs that don't use exceptions, +// they return an error). +// +// # Charge // -// By default, x-amz-copy-source header identifies the current version of an -// object to copy. If the current version is a delete marker, Amazon S3 behaves -// as if the object was deleted. To copy a different version, use the versionId -// subresource. +// The copy request charge is based on the storage class and Region that you +// specify for the destination object. The request can also result in a data +// retrieval charge for the source if the source storage class bills for data +// retrieval. For pricing information, see Amazon S3 pricing (http://aws.amazon.com/s3/pricing/). // -// If you enable versioning on the target bucket, Amazon S3 generates a unique -// version ID for the object being copied. This version ID is different from -// the version ID of the source object. Amazon S3 returns the version ID of -// the copied object in the x-amz-version-id response header in the response. +// # HTTP Host header syntax // -// If you do not enable versioning or suspend it on the target bucket, the version -// ID that Amazon S3 generates is always null. +// Directory buckets - The HTTP Host header syntax is Bucket_name.s3express-az_id.region.amazonaws.com. // // The following operations are related to CopyObject: // @@ -584,78 +566,89 @@ func (c *S3) CreateBucketRequest(input *CreateBucketInput) (req *request.Request // CreateBucket API operation for Amazon Simple Storage Service. // -// Creates a new S3 bucket. To create a bucket, you must register with Amazon -// S3 and have a valid Amazon Web Services Access Key ID to authenticate requests. +// This action creates an Amazon S3 bucket. To create an Amazon S3 on Outposts +// bucket, see CreateBucket (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateBucket.html). +// +// Creates a new S3 bucket. To create a bucket, you must set up Amazon S3 and +// have a valid Amazon Web Services Access Key ID to authenticate requests. // Anonymous requests are never allowed to create buckets. By creating the bucket, // you become the bucket owner. // -// Not every string is an acceptable bucket name. For information about bucket -// naming restrictions, see Bucket naming rules (https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html). -// -// If you want to create an Amazon S3 on Outposts bucket, see Create Bucket -// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateBucket.html). -// -// By default, the bucket is created in the US East (N. Virginia) Region. You -// can optionally specify a Region in the request body. To constrain the bucket -// creation to a specific Region, you can use LocationConstraint (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucketConfiguration.html) -// condition key. You might choose a Region to optimize latency, minimize costs, -// or address regulatory requirements. For example, if you reside in Europe, -// you will probably find it advantageous to create buckets in the Europe (Ireland) -// Region. For more information, see Accessing a bucket (https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingBucket.html#access-bucket-intro). -// -// If you send your create bucket request to the s3.amazonaws.com endpoint, -// the request goes to the us-east-1 Region. Accordingly, the signature calculations -// in Signature Version 4 must use us-east-1 as the Region, even if the location -// constraint in the request specifies another Region where the bucket is to -// be created. If you create a bucket in a Region other than US East (N. Virginia), -// your application must be able to handle 307 redirect. For more information, -// see Virtual hosting of buckets (https://docs.aws.amazon.com/AmazonS3/latest/dev/VirtualHosting.html). +// There are two types of buckets: general purpose buckets and directory buckets. +// For more information about these bucket types, see Creating, configuring, +// and working with Amazon S3 buckets (https://docs.aws.amazon.com/AmazonS3/latest/userguide/creating-buckets-s3.html) +// in the Amazon S3 User Guide. // -// # Permissions +// - General purpose buckets - If you send your CreateBucket request to the +// s3.amazonaws.com global endpoint, the request goes to the us-east-1 Region. +// So the signature calculations in Signature Version 4 must use us-east-1 +// as the Region, even if the location constraint in the request specifies +// another Region where the bucket is to be created. If you create a bucket +// in a Region other than US East (N. Virginia), your application must be +// able to handle 307 redirect. For more information, see Virtual hosting +// of buckets (https://docs.aws.amazon.com/AmazonS3/latest/dev/VirtualHosting.html) +// in the Amazon S3 User Guide. // -// In addition to s3:CreateBucket, the following permissions are required when -// your CreateBucket request includes specific headers: -// -// - Access control lists (ACLs) - If your CreateBucket request specifies -// access control list (ACL) permissions and the ACL is public-read, public-read-write, -// authenticated-read, or if you specify access permissions explicitly through -// any other ACL, both s3:CreateBucket and s3:PutBucketAcl permissions are -// needed. If the ACL for the CreateBucket request is private or if the request -// doesn't specify any ACLs, only s3:CreateBucket permission is needed. -// -// - Object Lock - If ObjectLockEnabledForBucket is set to true in your CreateBucket -// request, s3:PutBucketObjectLockConfiguration and s3:PutBucketVersioning -// permissions are required. -// -// - S3 Object Ownership - If your CreateBucket request includes the x-amz-object-ownership -// header, then the s3:PutBucketOwnershipControls permission is required. -// By default, ObjectOwnership is set to BucketOWnerEnforced and ACLs are -// disabled. We recommend keeping ACLs disabled, except in uncommon use cases -// where you must control access for each object individually. If you want -// to change the ObjectOwnership setting, you can use the x-amz-object-ownership -// header in your CreateBucket request to set the ObjectOwnership setting -// of your choice. For more information about S3 Object Ownership, see Controlling -// object ownership (https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html) +// - Directory buckets - For directory buckets, you must make requests for +// this API operation to the Regional endpoint. These endpoints support path-style +// requests in the format https://s3express-control.region_code.amazonaws.com/bucket-name +// . Virtual-hosted-style requests aren't supported. For more information, +// see Regional and Zonal endpoints (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-Regions-and-Zones.html) // in the Amazon S3 User Guide. // -// - S3 Block Public Access - If your specific use case requires granting -// public access to your S3 resources, you can disable Block Public Access. -// You can create a new bucket with Block Public Access enabled, then separately -// call the DeletePublicAccessBlock (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeletePublicAccessBlock.html) +// Permissions +// +// - General purpose bucket permissions - In addition to the s3:CreateBucket +// permission, the following permissions are required in a policy when your +// CreateBucket request includes specific headers: Access control lists (ACLs) +// +// - In your CreateBucket request, if you specify an access control list +// (ACL) and set it to public-read, public-read-write, authenticated-read, +// or if you explicitly specify any other custom ACLs, both s3:CreateBucket +// and s3:PutBucketAcl permissions are required. In your CreateBucket request, +// if you set the ACL to private, or if you don't specify any ACLs, only +// the s3:CreateBucket permission is required. Object Lock - In your CreateBucket +// request, if you set x-amz-bucket-object-lock-enabled to true, the s3:PutBucketObjectLockConfiguration +// and s3:PutBucketVersioning permissions are required. S3 Object Ownership +// +// - If your CreateBucket request includes the x-amz-object-ownership header, +// then the s3:PutBucketOwnershipControls permission is required. If your +// CreateBucket request sets BucketOwnerEnforced for Amazon S3 Object Ownership +// and specifies a bucket ACL that provides access to an external Amazon +// Web Services account, your request fails with a 400 error and returns +// the InvalidBucketAcLWithObjectOwnership error code. For more information, +// see Setting Object Ownership on an existing bucket (https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-ownership-existing-bucket.html) +// in the Amazon S3 User Guide. S3 Block Public Access - If your specific +// use case requires granting public access to your S3 resources, you can +// disable Block Public Access. Specifically, you can create a new bucket +// with Block Public Access enabled, then separately call the DeletePublicAccessBlock +// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeletePublicAccessBlock.html) // API. To use this operation, you must have the s3:PutBucketPublicAccessBlock -// permission. By default, all Block Public Access settings are enabled for -// new buckets. To avoid inadvertent exposure of your resources, we recommend -// keeping the S3 Block Public Access settings enabled. For more information -// about S3 Block Public Access, see Blocking public access to your Amazon -// S3 storage (https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html) +// permission. For more information about S3 Block Public Access, see Blocking +// public access to your Amazon S3 storage (https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-control-block-public-access.html) // in the Amazon S3 User Guide. // -// If your CreateBucket request sets BucketOwnerEnforced for Amazon S3 Object -// Ownership and specifies a bucket ACL that provides access to an external -// Amazon Web Services account, your request fails with a 400 error and returns -// the InvalidBucketAcLWithObjectOwnership error code. For more information, -// see Setting Object Ownership on an existing bucket (https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-ownership-existing-bucket.html) -// in the Amazon S3 User Guide. +// - Directory bucket permissions - You must have the s3express:CreateBucket +// permission in an IAM identity-based policy instead of a bucket policy. +// Cross-account access to this API operation isn't supported. This operation +// can only be performed by the Amazon Web Services account that owns the +// resource. For more information about directory bucket policies and permissions, +// see Amazon Web Services Identity and Access Management (IAM) for S3 Express +// One Zone (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam.html) +// in the Amazon S3 User Guide. The permissions for ACLs, Object Lock, S3 +// Object Ownership, and S3 Block Public Access are not supported for directory +// buckets. For directory buckets, all Block Public Access settings are enabled +// at the bucket level and S3 Object Ownership is set to Bucket owner enforced +// (ACLs disabled). These settings can't be modified. For more information +// about permissions for creating and working with directory buckets, see +// Directory buckets (https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-buckets-overview.html) +// in the Amazon S3 User Guide. For more information about supported S3 features +// for directory buckets, see Features of S3 Express One Zone (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-one-zone.html#s3-express-features) +// in the Amazon S3 User Guide. +// +// # HTTP Host header syntax +// +// Directory buckets - The HTTP Host header syntax is s3express-control.region.amazonaws.com. // // The following operations are related to CreateBucket: // @@ -753,164 +746,139 @@ func (c *S3) CreateMultipartUploadRequest(input *CreateMultipartUploadInput) (re // You specify this upload ID in each of your subsequent upload part requests // (see UploadPart (https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html)). // You also include this upload ID in the final request to either complete or -// abort the multipart upload request. +// abort the multipart upload request. For more information about multipart +// uploads, see Multipart Upload Overview (https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview.html) +// in the Amazon S3 User Guide. // -// For more information about multipart uploads, see Multipart Upload Overview -// (https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview.html). +// After you initiate a multipart upload and upload one or more parts, to stop +// being charged for storing the uploaded parts, you must either complete or +// abort the multipart upload. Amazon S3 frees up the space used to store the +// parts and stops charging you for storing them only after you either complete +// or abort a multipart upload. // // If you have configured a lifecycle rule to abort incomplete multipart uploads, -// the upload must complete within the number of days specified in the bucket -// lifecycle configuration. Otherwise, the incomplete multipart upload becomes -// eligible for an abort action and Amazon S3 aborts the multipart upload. For -// more information, see Aborting Incomplete Multipart Uploads Using a Bucket -// Lifecycle Configuration (https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview.html#mpu-abort-incomplete-mpu-lifecycle-config). +// the created multipart upload must be completed within the number of days +// specified in the bucket lifecycle configuration. Otherwise, the incomplete +// multipart upload becomes eligible for an abort action and Amazon S3 aborts +// the multipart upload. For more information, see Aborting Incomplete Multipart +// Uploads Using a Bucket Lifecycle Configuration (https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview.html#mpu-abort-incomplete-mpu-lifecycle-config). +// +// - Directory buckets - S3 Lifecycle is not supported by directory buckets. +// +// - Directory buckets - For directory buckets, you must make requests for +// this API operation to the Zonal endpoint. These endpoints support virtual-hosted-style +// requests in the format https://bucket_name.s3express-az_id.region.amazonaws.com/key-name +// . Path-style requests are not supported. For more information, see Regional +// and Zonal endpoints (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-Regions-and-Zones.html) +// in the Amazon S3 User Guide. // -// For information about the permissions required to use the multipart upload -// API, see Multipart Upload and Permissions (https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuAndPermissions.html). +// # Request signing // // For request signing, multipart upload is just a series of regular requests. // You initiate a multipart upload, send one or more requests to upload parts, // and then complete the multipart upload process. You sign each request individually. // There is nothing special about signing multipart upload requests. For more // information about signing, see Authenticating Requests (Amazon Web Services -// Signature Version 4) (https://docs.aws.amazon.com/AmazonS3/latest/API/sig-v4-authenticating-requests.html). -// -// After you initiate a multipart upload and upload one or more parts, to stop -// being charged for storing the uploaded parts, you must either complete or -// abort the multipart upload. Amazon S3 frees up the space used to store the -// parts and stop charging you for storing them only after you either complete -// or abort a multipart upload. -// -// Server-side encryption is for data encryption at rest. Amazon S3 encrypts -// your data as it writes it to disks in its data centers and decrypts it when -// you access it. Amazon S3 automatically encrypts all new objects that are -// uploaded to an S3 bucket. When doing a multipart upload, if you don't specify -// encryption information in your request, the encryption setting of the uploaded -// parts is set to the default encryption configuration of the destination bucket. -// By default, all buckets have a base level of encryption configuration that -// uses server-side encryption with Amazon S3 managed keys (SSE-S3). If the -// destination bucket has a default encryption configuration that uses server-side -// encryption with an Key Management Service (KMS) key (SSE-KMS), or a customer-provided -// encryption key (SSE-C), Amazon S3 uses the corresponding KMS key, or a customer-provided -// key to encrypt the uploaded parts. When you perform a CreateMultipartUpload -// operation, if you want to use a different type of encryption setting for -// the uploaded parts, you can request that Amazon S3 encrypts the object with -// a KMS key, an Amazon S3 managed key, or a customer-provided key. If the encryption -// setting in your request is different from the default encryption configuration -// of the destination bucket, the encryption setting in your request takes precedence. -// If you choose to provide your own encryption key, the request headers you -// provide in UploadPart (https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html) -// and UploadPartCopy (https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html) -// requests must match the headers you used in the request to initiate the upload -// by using CreateMultipartUpload. You can request that Amazon S3 save the uploaded -// parts encrypted with server-side encryption with an Amazon S3 managed key -// (SSE-S3), an Key Management Service (KMS) key (SSE-KMS), or a customer-provided -// encryption key (SSE-C). -// -// To perform a multipart upload with encryption by using an Amazon Web Services -// KMS key, the requester must have permission to the kms:Decrypt and kms:GenerateDataKey* -// actions on the key. These permissions are required because Amazon S3 must -// decrypt and read data from the encrypted file parts before it completes the -// multipart upload. For more information, see Multipart upload API and permissions -// (https://docs.aws.amazon.com/AmazonS3/latest/userguide/mpuoverview.html#mpuAndPermissions) -// and Protecting data using server-side encryption with Amazon Web Services -// KMS (https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingKMSEncryption.html) +// Signature Version 4) (https://docs.aws.amazon.com/AmazonS3/latest/API/sig-v4-authenticating-requests.html) // in the Amazon S3 User Guide. // -// If your Identity and Access Management (IAM) user or role is in the same -// Amazon Web Services account as the KMS key, then you must have these permissions -// on the key policy. If your IAM user or role belongs to a different account -// than the key, then you must have the permissions on both the key policy and -// your IAM user or role. -// -// For more information, see Protecting Data Using Server-Side Encryption (https://docs.aws.amazon.com/AmazonS3/latest/dev/serv-side-encryption.html). -// -// # Access Permissions -// -// When copying an object, you can optionally specify the accounts or groups -// that should be granted specific permissions on the new object. There are -// two ways to grant the permissions using the request headers: -// -// - Specify a canned ACL with the x-amz-acl request header. For more information, -// see Canned ACL (https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#CannedACL). -// -// - Specify access permissions explicitly with the x-amz-grant-read, x-amz-grant-read-acp, -// x-amz-grant-write-acp, and x-amz-grant-full-control headers. These parameters -// map to the set of permissions that Amazon S3 supports in an ACL. For more -// information, see Access Control List (ACL) Overview (https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html). -// -// You can use either a canned ACL or specify access permissions explicitly. -// You cannot do both. -// -// # Server-Side- Encryption-Specific Request Headers -// -// Amazon S3 encrypts data by using server-side encryption with an Amazon S3 -// managed key (SSE-S3) by default. Server-side encryption is for data encryption -// at rest. Amazon S3 encrypts your data as it writes it to disks in its data -// centers and decrypts it when you access it. You can request that Amazon S3 -// encrypts data at rest by using server-side encryption with other key options. -// The option you use depends on whether you want to use KMS keys (SSE-KMS) -// or provide your own encryption keys (SSE-C). +// Permissions +// +// - General purpose bucket permissions - For information about the permissions +// required to use the multipart upload API, see Multipart upload and permissions +// (https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuAndPermissions.html) +// in the Amazon S3 User Guide. To perform a multipart upload with encryption +// by using an Amazon Web Services KMS key, the requester must have permission +// to the kms:Decrypt and kms:GenerateDataKey* actions on the key. These +// permissions are required because Amazon S3 must decrypt and read data +// from the encrypted file parts before it completes the multipart upload. +// For more information, see Multipart upload API and permissions (https://docs.aws.amazon.com/AmazonS3/latest/userguide/mpuoverview.html#mpuAndPermissions) +// and Protecting data using server-side encryption with Amazon Web Services +// KMS (https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingKMSEncryption.html) +// in the Amazon S3 User Guide. // -// - Use KMS keys (SSE-KMS) that include the Amazon Web Services managed +// - Directory bucket permissions - To grant access to this API operation +// on a directory bucket, we recommend that you use the CreateSession (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html) +// API operation for session-based authorization. Specifically, you grant +// the s3express:CreateSession permission to the directory bucket in a bucket +// policy or an IAM identity-based policy. Then, you make the CreateSession +// API call on the bucket to obtain a session token. With the session token +// in your request header, you can make API requests to this operation. After +// the session token expires, you make another CreateSession API call to +// generate a new session token for use. Amazon Web Services CLI or SDKs +// create session and refresh the session token automatically to avoid service +// interruptions when a session expires. For more information about authorization, +// see CreateSession (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html). +// +// Encryption +// +// - General purpose buckets - Server-side encryption is for data encryption +// at rest. Amazon S3 encrypts your data as it writes it to disks in its +// data centers and decrypts it when you access it. Amazon S3 automatically +// encrypts all new objects that are uploaded to an S3 bucket. When doing +// a multipart upload, if you don't specify encryption information in your +// request, the encryption setting of the uploaded parts is set to the default +// encryption configuration of the destination bucket. By default, all buckets +// have a base level of encryption configuration that uses server-side encryption +// with Amazon S3 managed keys (SSE-S3). If the destination bucket has a +// default encryption configuration that uses server-side encryption with +// an Key Management Service (KMS) key (SSE-KMS), or a customer-provided +// encryption key (SSE-C), Amazon S3 uses the corresponding KMS key, or a +// customer-provided key to encrypt the uploaded parts. When you perform +// a CreateMultipartUpload operation, if you want to use a different type +// of encryption setting for the uploaded parts, you can request that Amazon +// S3 encrypts the object with a different encryption key (such as an Amazon +// S3 managed key, a KMS key, or a customer-provided key). When the encryption +// setting in your request is different from the default encryption configuration +// of the destination bucket, the encryption setting in your request takes +// precedence. If you choose to provide your own encryption key, the request +// headers you provide in UploadPart (https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html) +// and UploadPartCopy (https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html) +// requests must match the headers you used in the CreateMultipartUpload +// request. Use KMS keys (SSE-KMS) that include the Amazon Web Services managed // key (aws/s3) and KMS customer managed keys stored in Key Management Service // (KMS) – If you want Amazon Web Services to manage the keys used to encrypt // data, specify the following headers in the request. x-amz-server-side-encryption // x-amz-server-side-encryption-aws-kms-key-id x-amz-server-side-encryption-context // If you specify x-amz-server-side-encryption:aws:kms, but don't provide // x-amz-server-side-encryption-aws-kms-key-id, Amazon S3 uses the Amazon -// Web Services managed key (aws/s3 key) in KMS to protect the data. All -// GET and PUT requests for an object protected by KMS fail if you don't -// make them by using Secure Sockets Layer (SSL), Transport Layer Security -// (TLS), or Signature Version 4. For more information about server-side -// encryption with KMS keys (SSE-KMS), see Protecting Data Using Server-Side -// Encryption with KMS keys (https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingKMSEncryption.html). -// -// - Use customer-provided encryption keys (SSE-C) – If you want to manage -// your own encryption keys, provide all the following headers in the request. -// x-amz-server-side-encryption-customer-algorithm x-amz-server-side-encryption-customer-key -// x-amz-server-side-encryption-customer-key-MD5 For more information about -// server-side encryption with customer-provided encryption keys (SSE-C), -// see Protecting data using server-side encryption with customer-provided -// encryption keys (SSE-C) (https://docs.aws.amazon.com/AmazonS3/latest/userguide/ServerSideEncryptionCustomerKeys.html). -// -// # Access-Control-List (ACL)-Specific Request Headers -// -// You also can use the following access control–related headers with this -// operation. By default, all objects are private. Only the owner has full access -// control. When adding a new object, you can grant permissions to individual -// Amazon Web Services accounts or to predefined groups defined by Amazon S3. -// These permissions are then added to the access control list (ACL) on the -// object. For more information, see Using ACLs (https://docs.aws.amazon.com/AmazonS3/latest/dev/S3_ACLs_UsingACLs.html). -// With this operation, you can grant access permissions using one of the following -// two methods: -// -// - Specify a canned ACL (x-amz-acl) — Amazon S3 supports a set of predefined -// ACLs, known as canned ACLs. Each canned ACL has a predefined set of grantees -// and permissions. For more information, see Canned ACL (https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#CannedACL). -// -// - Specify access permissions explicitly — To explicitly grant access -// permissions to specific Amazon Web Services accounts or groups, use the -// following headers. Each header maps to specific permissions that Amazon -// S3 supports in an ACL. For more information, see Access Control List (ACL) -// Overview (https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html). -// In the header, you specify a list of grantees who get the specific permission. -// To grant permissions explicitly, use: x-amz-grant-read x-amz-grant-write -// x-amz-grant-read-acp x-amz-grant-write-acp x-amz-grant-full-control You -// specify each grantee as a type=value pair, where the type is one of the -// following: id – if the value specified is the canonical user ID of an -// Amazon Web Services account uri – if you are granting permissions to -// a predefined group emailAddress – if the value specified is the email -// address of an Amazon Web Services account Using email addresses to specify -// a grantee is only supported in the following Amazon Web Services Regions: -// US East (N. Virginia) US West (N. California) US West (Oregon) Asia Pacific -// (Singapore) Asia Pacific (Sydney) Asia Pacific (Tokyo) Europe (Ireland) -// South America (São Paulo) For a list of all the Amazon S3 supported Regions -// and endpoints, see Regions and Endpoints (https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region) -// in the Amazon Web Services General Reference. For example, the following -// x-amz-grant-read header grants the Amazon Web Services accounts identified -// by account IDs permissions to read object data and its metadata: x-amz-grant-read: -// id="11112222333", id="444455556666" +// Web Services managed key (aws/s3 key) in KMS to protect the data. To perform +// a multipart upload with encryption by using an Amazon Web Services KMS +// key, the requester must have permission to the kms:Decrypt and kms:GenerateDataKey* +// actions on the key. These permissions are required because Amazon S3 must +// decrypt and read data from the encrypted file parts before it completes +// the multipart upload. For more information, see Multipart upload API and +// permissions (https://docs.aws.amazon.com/AmazonS3/latest/userguide/mpuoverview.html#mpuAndPermissions) +// and Protecting data using server-side encryption with Amazon Web Services +// KMS (https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingKMSEncryption.html) +// in the Amazon S3 User Guide. If your Identity and Access Management (IAM) +// user or role is in the same Amazon Web Services account as the KMS key, +// then you must have these permissions on the key policy. If your IAM user +// or role is in a different account from the key, then you must have the +// permissions on both the key policy and your IAM user or role. All GET +// and PUT requests for an object protected by KMS fail if you don't make +// them by using Secure Sockets Layer (SSL), Transport Layer Security (TLS), +// or Signature Version 4. For information about configuring any of the officially +// supported Amazon Web Services SDKs and Amazon Web Services CLI, see Specifying +// the Signature Version in Request Authentication (https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingAWSSDK.html#specify-signature-version) +// in the Amazon S3 User Guide. For more information about server-side encryption +// with KMS keys (SSE-KMS), see Protecting Data Using Server-Side Encryption +// with KMS keys (https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingKMSEncryption.html) +// in the Amazon S3 User Guide. Use customer-provided encryption keys (SSE-C) +// – If you want to manage your own encryption keys, provide all the following +// headers in the request. x-amz-server-side-encryption-customer-algorithm +// x-amz-server-side-encryption-customer-key x-amz-server-side-encryption-customer-key-MD5 +// For more information about server-side encryption with customer-provided +// encryption keys (SSE-C), see Protecting data using server-side encryption +// with customer-provided encryption keys (SSE-C) (https://docs.aws.amazon.com/AmazonS3/latest/userguide/ServerSideEncryptionCustomerKeys.html) +// in the Amazon S3 User Guide. +// +// - Directory buckets -For directory buckets, only server-side encryption +// with Amazon S3 managed keys (SSE-S3) (AES256) is supported. +// +// # HTTP Host header syntax +// +// Directory buckets - The HTTP Host header syntax is Bucket_name.s3express-az_id.region.amazonaws.com. // // The following operations are related to CreateMultipartUpload: // @@ -952,6 +920,152 @@ func (c *S3) CreateMultipartUploadWithContext(ctx aws.Context, input *CreateMult 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/s3-2006-03-01/CreateSession +func (c *S3) CreateSessionRequest(input *CreateSessionInput) (req *request.Request, output *CreateSessionOutput) { + op := &request.Operation{ + Name: opCreateSession, + HTTPMethod: "GET", + HTTPPath: "/{Bucket}?session", + } + + if input == nil { + input = &CreateSessionInput{} + } + + output = &CreateSessionOutput{} + req = c.newRequest(op, input, output) + return +} + +// CreateSession API operation for Amazon Simple Storage Service. +// +// Creates a session that establishes temporary security credentials to support +// fast authentication and authorization for the Zonal endpoint APIs on directory +// buckets. For more information about Zonal endpoint APIs that include the +// Availability Zone in the request endpoint, see S3 Express One Zone APIs (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-APIs.html) +// in the Amazon S3 User Guide. +// +// To make Zonal endpoint API requests on a directory bucket, use the CreateSession +// API operation. Specifically, you grant s3express:CreateSession permission +// to a bucket in a bucket policy or an IAM identity-based policy. Then, you +// use IAM credentials to make the CreateSession API request on the bucket, +// which returns temporary security credentials that include the access key +// ID, secret access key, session token, and expiration. These credentials have +// associated permissions to access the Zonal endpoint APIs. After the session +// is created, you don’t need to use other policies to grant permissions to +// each Zonal endpoint API individually. Instead, in your Zonal endpoint API +// requests, you sign your requests by applying the temporary security credentials +// of the session to the request headers and following the SigV4 protocol for +// authentication. You also apply the session token to the x-amz-s3session-token +// request header for authorization. Temporary security credentials are scoped +// to the bucket and expire after 5 minutes. After the expiration time, any +// calls that you make with those credentials will fail. You must use IAM credentials +// again to make a CreateSession API request that generates a new set of temporary +// credentials for use. Temporary credentials cannot be extended or refreshed +// beyond the original specified interval. +// +// If you use Amazon Web Services SDKs, SDKs handle the session token refreshes +// automatically to avoid service interruptions when a session expires. We recommend +// that you use the Amazon Web Services SDKs to initiate and manage requests +// to the CreateSession API. For more information, see Performance guidelines +// and design patterns (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-optimizing-performance-guidelines-design-patterns.html#s3-express-optimizing-performance-session-authentication) +// in the Amazon S3 User Guide. +// +// - You must make requests for this API operation to the Zonal endpoint. +// These endpoints support virtual-hosted-style requests in the format https://bucket_name.s3express-az_id.region.amazonaws.com. +// Path-style requests are not supported. For more information, see Regional +// and Zonal endpoints (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-Regions-and-Zones.html) +// in the Amazon S3 User Guide. +// +// - CopyObject API operation - Unlike other Zonal endpoint APIs, the CopyObject +// API operation doesn't use the temporary security credentials returned +// from the CreateSession API operation for authentication and authorization. +// For information about authentication and authorization of the CopyObject +// API operation on directory buckets, see CopyObject (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html). +// +// - HeadBucket API operation - Unlike other Zonal endpoint APIs, the HeadBucket +// API operation doesn't use the temporary security credentials returned +// from the CreateSession API operation for authentication and authorization. +// For information about authentication and authorization of the HeadBucket +// API operation on directory buckets, see HeadBucket (https://docs.aws.amazon.com/AmazonS3/latest/API/API_HeadBucket.html). +// +// # Permissions +// +// To obtain temporary security credentials, you must create a bucket policy +// or an IAM identity-based policy that grants s3express:CreateSession permission +// to the bucket. In a policy, you can have the s3express:SessionMode condition +// key to control who can create a ReadWrite or ReadOnly session. For more information +// about ReadWrite or ReadOnly sessions, see x-amz-create-session-mode (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html#API_CreateSession_RequestParameters). +// For example policies, see Example bucket policies for S3 Express One Zone +// (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam-example-bucket-policies.html) +// and Amazon Web Services Identity and Access Management (IAM) identity-based +// policies for S3 Express One Zone (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam-identity-policies.html) +// in the Amazon S3 User Guide. +// +// To grant cross-account access to Zonal endpoint APIs, the bucket policy should +// also grant both accounts the s3express:CreateSession permission. +// +// # HTTP Host header syntax +// +// Directory buckets - The HTTP Host header syntax is Bucket_name.s3express-az_id.region.amazonaws.com. +// +// 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 Simple Storage Service's +// API operation CreateSession for usage and error information. +// +// Returned Error Codes: +// - ErrCodeNoSuchBucket "NoSuchBucket" +// The specified bucket does not exist. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/CreateSession +func (c *S3) 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 *S3) 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 opDeleteBucket = "DeleteBucket" // DeleteBucketRequest generates a "aws/request.Request" representing the @@ -999,6 +1113,35 @@ func (c *S3) DeleteBucketRequest(input *DeleteBucketInput) (req *request.Request // Deletes the S3 bucket. All objects (including all object versions and delete // markers) in the bucket must be deleted before the bucket itself can be deleted. // +// - Directory buckets - If multipart uploads in a directory bucket are in +// progress, you can't delete the bucket until all the in-progress multipart +// uploads are aborted or completed. +// +// - Directory buckets - For directory buckets, you must make requests for +// this API operation to the Regional endpoint. These endpoints support path-style +// requests in the format https://s3express-control.region_code.amazonaws.com/bucket-name +// . Virtual-hosted-style requests aren't supported. For more information, +// see Regional and Zonal endpoints (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-Regions-and-Zones.html) +// in the Amazon S3 User Guide. +// +// Permissions +// +// - General purpose bucket permissions - You must have the s3:DeleteBucket +// permission on the specified bucket in a policy. +// +// - Directory bucket permissions - You must have the s3express:DeleteBucket +// permission in an IAM identity-based policy instead of a bucket policy. +// Cross-account access to this API operation isn't supported. This operation +// can only be performed by the Amazon Web Services account that owns the +// resource. For more information about directory bucket policies and permissions, +// see Amazon Web Services Identity and Access Management (IAM) for S3 Express +// One Zone (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam.html) +// in the Amazon S3 User Guide. +// +// # HTTP Host header syntax +// +// Directory buckets - The HTTP Host header syntax is s3express-control.region.amazonaws.com. +// // The following operations are related to DeleteBucket: // // - CreateBucket (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html) @@ -1077,6 +1220,8 @@ func (c *S3) DeleteBucketAnalyticsConfigurationRequest(input *DeleteBucketAnalyt // DeleteBucketAnalyticsConfiguration API operation for Amazon Simple Storage Service. // +// This operation is not supported by directory buckets. +// // Deletes an analytics configuration for the bucket (specified by the analytics // configuration ID). // @@ -1169,6 +1314,8 @@ func (c *S3) DeleteBucketCorsRequest(input *DeleteBucketCorsInput) (req *request // DeleteBucketCors API operation for Amazon Simple Storage Service. // +// This operation is not supported by directory buckets. +// // Deletes the cors configuration information set for the bucket. // // To use this operation, you must have permission to perform the s3:PutBucketCORS @@ -1256,6 +1403,8 @@ func (c *S3) DeleteBucketEncryptionRequest(input *DeleteBucketEncryptionInput) ( // DeleteBucketEncryption API operation for Amazon Simple Storage Service. // +// This operation is not supported by directory buckets. +// // This implementation of the DELETE action resets the default encryption for // the bucket as server-side encryption with Amazon S3 managed keys (SSE-S3). // For information about the bucket default encryption feature, see Amazon S3 @@ -1347,6 +1496,8 @@ func (c *S3) DeleteBucketIntelligentTieringConfigurationRequest(input *DeleteBuc // DeleteBucketIntelligentTieringConfiguration API operation for Amazon Simple Storage Service. // +// This operation is not supported by directory buckets. +// // Deletes the S3 Intelligent-Tiering configuration from the specified bucket. // // The S3 Intelligent-Tiering storage class is designed to optimize storage @@ -1446,6 +1597,8 @@ func (c *S3) DeleteBucketInventoryConfigurationRequest(input *DeleteBucketInvent // DeleteBucketInventoryConfiguration API operation for Amazon Simple Storage Service. // +// This operation is not supported by directory buckets. +// // Deletes an inventory configuration (identified by the inventory ID) from // the bucket. // @@ -1538,6 +1691,8 @@ func (c *S3) DeleteBucketLifecycleRequest(input *DeleteBucketLifecycleInput) (re // DeleteBucketLifecycle API operation for Amazon Simple Storage Service. // +// This operation is not supported by directory buckets. +// // Deletes the lifecycle configuration from the specified bucket. Amazon S3 // removes all the lifecycle configuration rules in the lifecycle subresource // associated with the bucket. Your objects never expire, and Amazon S3 no longer @@ -1632,6 +1787,8 @@ func (c *S3) DeleteBucketMetricsConfigurationRequest(input *DeleteBucketMetricsC // DeleteBucketMetricsConfiguration API operation for Amazon Simple Storage Service. // +// This operation is not supported by directory buckets. +// // Deletes a metrics configuration for the Amazon CloudWatch request metrics // (specified by the metrics configuration ID) from the bucket. Note that this // doesn't include the daily storage metrics. @@ -1727,6 +1884,8 @@ func (c *S3) DeleteBucketOwnershipControlsRequest(input *DeleteBucketOwnershipCo // DeleteBucketOwnershipControls API operation for Amazon Simple Storage Service. // +// This operation is not supported by directory buckets. +// // Removes OwnershipControls for an Amazon S3 bucket. To use this operation, // you must have the s3:PutBucketOwnershipControls permission. For more information // about Amazon S3 permissions, see Specifying Permissions in a Policy (https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html). @@ -1812,11 +1971,21 @@ func (c *S3) DeleteBucketPolicyRequest(input *DeleteBucketPolicyInput) (req *req // DeleteBucketPolicy API operation for Amazon Simple Storage Service. // -// This implementation of the DELETE action uses the policy subresource to delete -// the policy of a specified bucket. If you are using an identity other than -// the root user of the Amazon Web Services account that owns the bucket, the -// calling identity must have the DeleteBucketPolicy permissions on the specified -// bucket and belong to the bucket owner's account to use this operation. +// Deletes the policy of a specified bucket. +// +// Directory buckets - For directory buckets, you must make requests for this +// API operation to the Regional endpoint. These endpoints support path-style +// requests in the format https://s3express-control.region_code.amazonaws.com/bucket-name +// . Virtual-hosted-style requests aren't supported. For more information, see +// Regional and Zonal endpoints (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-Regions-and-Zones.html) +// in the Amazon S3 User Guide. +// +// # Permissions +// +// If you are using an identity other than the root user of the Amazon Web Services +// account that owns the bucket, the calling identity must both have the DeleteBucketPolicy +// permissions on the specified bucket and belong to the bucket owner's account +// in order to use this operation. // // If you don't have DeleteBucketPolicy permissions, Amazon S3 returns a 403 // Access Denied error. If you have the correct permissions, but you're not @@ -1831,8 +2000,23 @@ func (c *S3) DeleteBucketPolicyRequest(input *DeleteBucketPolicyInput) (req *req // these API actions by VPC endpoint policies and Amazon Web Services Organizations // policies. // -// For more information about bucket policies, see Using Bucket Policies and -// UserPolicies (https://docs.aws.amazon.com/AmazonS3/latest/dev/using-iam-policies.html). +// - General purpose bucket permissions - The s3:DeleteBucketPolicy permission +// is required in a policy. For more information about general purpose buckets +// bucket policies, see Using Bucket Policies and User Policies (https://docs.aws.amazon.com/AmazonS3/latest/dev/using-iam-policies.html) +// in the Amazon S3 User Guide. +// +// - Directory bucket permissions - To grant access to this API operation, +// you must have the s3express:DeleteBucketPolicy permission in an IAM identity-based +// policy instead of a bucket policy. Cross-account access to this API operation +// isn't supported. This operation can only be performed by the Amazon Web +// Services account that owns the resource. For more information about directory +// bucket policies and permissions, see Amazon Web Services Identity and +// Access Management (IAM) for S3 Express One Zone (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam.html) +// in the Amazon S3 User Guide. +// +// # HTTP Host header syntax +// +// Directory buckets - The HTTP Host header syntax is s3express-control.region.amazonaws.com. // // The following operations are related to DeleteBucketPolicy // @@ -1912,6 +2096,8 @@ func (c *S3) DeleteBucketReplicationRequest(input *DeleteBucketReplicationInput) // DeleteBucketReplication API operation for Amazon Simple Storage Service. // +// This operation is not supported by directory buckets. +// // Deletes the replication configuration from the bucket. // // To use this operation, you must have permissions to perform the s3:PutReplicationConfiguration @@ -2004,6 +2190,8 @@ func (c *S3) DeleteBucketTaggingRequest(input *DeleteBucketTaggingInput) (req *r // DeleteBucketTagging API operation for Amazon Simple Storage Service. // +// This operation is not supported by directory buckets. +// // Deletes the tags from the bucket. // // To use this operation, you must have permission to perform the s3:PutBucketTagging @@ -2088,6 +2276,8 @@ func (c *S3) DeleteBucketWebsiteRequest(input *DeleteBucketWebsiteInput) (req *r // DeleteBucketWebsite API operation for Amazon Simple Storage Service. // +// This operation is not supported by directory buckets. +// // This action removes the website configuration for a bucket. Amazon S3 returns // a 200 OK response upon successfully deleting a website configuration on the // specified bucket. You will get a 200 OK response if the website configuration @@ -2180,31 +2370,79 @@ func (c *S3) DeleteObjectRequest(input *DeleteObjectInput) (req *request.Request // DeleteObject API operation for Amazon Simple Storage Service. // -// Removes the null version (if there is one) of an object and inserts a delete -// marker, which becomes the latest version of the object. If there isn't a -// null version, Amazon S3 does not remove any objects but will still respond -// that the command was successful. +// Removes an object from a bucket. The behavior depends on the bucket's versioning +// state: // -// To remove a specific version, you must use the version Id subresource. Using -// this subresource permanently deletes the version. If the object deleted is -// a delete marker, Amazon S3 sets the response header, x-amz-delete-marker, +// - If versioning is enabled, the operation removes the null version (if +// there is one) of an object and inserts a delete marker, which becomes +// the latest version of the object. If there isn't a null version, Amazon +// S3 does not remove any objects but will still respond that the command +// was successful. +// +// - If versioning is suspended or not enabled, the operation permanently +// deletes the object. +// +// - Directory buckets - S3 Versioning isn't enabled and supported for directory +// buckets. For this API operation, only the null value of the version ID +// is supported by directory buckets. You can only specify null to the versionId +// query parameter in the request. +// +// - Directory buckets - For directory buckets, you must make requests for +// this API operation to the Zonal endpoint. These endpoints support virtual-hosted-style +// requests in the format https://bucket_name.s3express-az_id.region.amazonaws.com/key-name +// . Path-style requests are not supported. For more information, see Regional +// and Zonal endpoints (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-Regions-and-Zones.html) +// in the Amazon S3 User Guide. +// +// To remove a specific version, you must use the versionId query parameter. +// Using this query parameter permanently deletes the version. If the object +// deleted is a delete marker, Amazon S3 sets the response header x-amz-delete-marker // to true. // // If the object you want to delete is in a bucket where the bucket versioning // configuration is MFA Delete enabled, you must include the x-amz-mfa request // header in the DELETE versionId request. Requests that include x-amz-mfa must -// use HTTPS. +// use HTTPS. For more information about MFA Delete, see Using MFA Delete (https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingMFADelete.html) +// in the Amazon S3 User Guide. To see sample requests that use versioning, +// see Sample Request (https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectDELETE.html#ExampleVersionObjectDelete). // -// For more information about MFA Delete, see Using MFA Delete (https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingMFADelete.html). -// To see sample requests that use versioning, see Sample Request (https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectDELETE.html#ExampleVersionObjectDelete). +// Directory buckets - MFA delete is not supported by directory buckets. // -// You can delete objects by explicitly calling DELETE Object or configure its -// lifecycle (PutBucketLifecycle (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycle.html)) +// You can delete objects by explicitly calling DELETE Object or calling (PutBucketLifecycle +// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycle.html)) // to enable Amazon S3 to remove them for you. If you want to block users or // accounts from removing or deleting objects from your bucket, you must deny // them the s3:DeleteObject, s3:DeleteObjectVersion, and s3:PutLifeCycleConfiguration // actions. // +// Directory buckets - S3 Lifecycle is not supported by directory buckets. +// +// Permissions +// +// - General purpose bucket permissions - The following permissions are required +// in your policies when your DeleteObjects request includes specific headers. +// s3:DeleteObject - To delete an object from a bucket, you must always have +// the s3:DeleteObject permission. s3:DeleteObjectVersion - To delete a specific +// version of an object from a versiong-enabled bucket, you must have the +// s3:DeleteObjectVersion permission. +// +// - Directory bucket permissions - To grant access to this API operation +// on a directory bucket, we recommend that you use the CreateSession (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html) +// API operation for session-based authorization. Specifically, you grant +// the s3express:CreateSession permission to the directory bucket in a bucket +// policy or an IAM identity-based policy. Then, you make the CreateSession +// API call on the bucket to obtain a session token. With the session token +// in your request header, you can make API requests to this operation. After +// the session token expires, you make another CreateSession API call to +// generate a new session token for use. Amazon Web Services CLI or SDKs +// create session and refresh the session token automatically to avoid service +// interruptions when a session expires. For more information about authorization, +// see CreateSession (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html). +// +// # HTTP Host header syntax +// +// Directory buckets - The HTTP Host header syntax is Bucket_name.s3express-az_id.region.amazonaws.com. +// // The following action is related to DeleteObject: // // - PutObject (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html) @@ -2280,6 +2518,8 @@ func (c *S3) DeleteObjectTaggingRequest(input *DeleteObjectTaggingInput) (req *r // DeleteObjectTagging API operation for Amazon Simple Storage Service. // +// This operation is not supported by directory buckets. +// // Removes the entire tag set from the specified object. For more information // about managing object tags, see Object Tagging (https://docs.aws.amazon.com/AmazonS3/latest/dev/object-tagging.html). // @@ -2371,36 +2611,82 @@ func (c *S3) DeleteObjectsRequest(input *DeleteObjectsInput) (req *request.Reque // DeleteObjects API operation for Amazon Simple Storage Service. // -// This action enables you to delete multiple objects from a bucket using a -// single HTTP request. If you know the object keys that you want to delete, -// then this action provides a suitable alternative to sending individual delete -// requests, reducing per-request overhead. +// This operation enables you to delete multiple objects from a bucket using +// a single HTTP request. If you know the object keys that you want to delete, +// then this operation provides a suitable alternative to sending individual +// delete requests, reducing per-request overhead. // -// The request contains a list of up to 1000 keys that you want to delete. In -// the XML, you provide the object key names, and optionally, version IDs if -// you want to delete a specific version of the object from a versioning-enabled -// bucket. For each key, Amazon S3 performs a delete action and returns the -// result of that delete, success, or failure, in the response. Note that if +// The request can contain a list of up to 1000 keys that you want to delete. +// In the XML, you provide the object key names, and optionally, version IDs +// if you want to delete a specific version of the object from a versioning-enabled +// bucket. For each key, Amazon S3 performs a delete operation and returns the +// result of that delete, success or failure, in the response. Note that if // the object specified in the request is not found, Amazon S3 returns the result // as deleted. // -// The action supports two modes for the response: verbose and quiet. By default, -// the action uses verbose mode in which the response includes the result of -// deletion of each key in your request. In quiet mode the response includes -// only keys where the delete action encountered an error. For a successful -// deletion, the action does not return any information about the delete in -// the response body. +// - Directory buckets - S3 Versioning isn't enabled and supported for directory +// buckets. +// +// - Directory buckets - For directory buckets, you must make requests for +// this API operation to the Zonal endpoint. These endpoints support virtual-hosted-style +// requests in the format https://bucket_name.s3express-az_id.region.amazonaws.com/key-name +// . Path-style requests are not supported. For more information, see Regional +// and Zonal endpoints (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-Regions-and-Zones.html) +// in the Amazon S3 User Guide. +// +// The operation supports two modes for the response: verbose and quiet. By +// default, the operation uses verbose mode in which the response includes the +// result of deletion of each key in your request. In quiet mode the response +// includes only keys where the delete operation encountered an error. For a +// successful deletion in a quiet mode, the operation does not return any information +// about the delete in the response body. // // When performing this action on an MFA Delete enabled bucket, that attempts // to delete any versioned objects, you must include an MFA token. If you do // not provide one, the entire request will fail, even if there are non-versioned // objects you are trying to delete. If you provide an invalid token, whether // there are versioned keys in the request or not, the entire Multi-Object Delete -// request will fail. For information about MFA Delete, see MFA Delete (https://docs.aws.amazon.com/AmazonS3/latest/dev/Versioning.html#MultiFactorAuthenticationDelete). +// request will fail. For information about MFA Delete, see MFA Delete (https://docs.aws.amazon.com/AmazonS3/latest/dev/Versioning.html#MultiFactorAuthenticationDelete) +// in the Amazon S3 User Guide. +// +// Directory buckets - MFA delete is not supported by directory buckets. +// +// Permissions +// +// - General purpose bucket permissions - The following permissions are required +// in your policies when your DeleteObjects request includes specific headers. +// s3:DeleteObject - To delete an object from a bucket, you must always specify +// the s3:DeleteObject permission. s3:DeleteObjectVersion - To delete a specific +// version of an object from a versiong-enabled bucket, you must specify +// the s3:DeleteObjectVersion permission. +// +// - Directory bucket permissions - To grant access to this API operation +// on a directory bucket, we recommend that you use the CreateSession (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html) +// API operation for session-based authorization. Specifically, you grant +// the s3express:CreateSession permission to the directory bucket in a bucket +// policy or an IAM identity-based policy. Then, you make the CreateSession +// API call on the bucket to obtain a session token. With the session token +// in your request header, you can make API requests to this operation. After +// the session token expires, you make another CreateSession API call to +// generate a new session token for use. Amazon Web Services CLI or SDKs +// create session and refresh the session token automatically to avoid service +// interruptions when a session expires. For more information about authorization, +// see CreateSession (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html). +// +// Content-MD5 request header +// +// - General purpose bucket - The Content-MD5 request header is required +// for all Multi-Object Delete requests. Amazon S3 uses the header value +// to ensure that your request body has not been altered in transit. +// +// - Directory bucket - The Content-MD5 request header or a additional checksum +// request header (including x-amz-checksum-crc32, x-amz-checksum-crc32c, +// x-amz-checksum-sha1, or x-amz-checksum-sha256) is required for all Multi-Object +// Delete requests. +// +// # HTTP Host header syntax // -// Finally, the Content-MD5 header is required for all Multi-Object Delete requests. -// Amazon S3 uses the header value to ensure that your request body has not -// been altered in transit. +// Directory buckets - The HTTP Host header syntax is Bucket_name.s3express-az_id.region.amazonaws.com. // // The following operations are related to DeleteObjects: // @@ -2486,6 +2772,8 @@ func (c *S3) DeletePublicAccessBlockRequest(input *DeletePublicAccessBlockInput) // DeletePublicAccessBlock API operation for Amazon Simple Storage Service. // +// This operation is not supported by directory buckets. +// // Removes the PublicAccessBlock configuration for an Amazon S3 bucket. To use // this operation, you must have the s3:PutBucketPublicAccessBlock permission. // For more information about permissions, see Permissions Related to Bucket @@ -2573,6 +2861,8 @@ func (c *S3) GetBucketAccelerateConfigurationRequest(input *GetBucketAccelerateC // GetBucketAccelerateConfiguration API operation for Amazon Simple Storage Service. // +// This operation is not supported by directory buckets. +// // This implementation of the GET action uses the accelerate subresource to // return the Transfer Acceleration state of a bucket, which is either Enabled // or Suspended. Amazon S3 Transfer Acceleration is a bucket-level feature that @@ -2672,16 +2962,18 @@ func (c *S3) GetBucketAclRequest(input *GetBucketAclInput) (req *request.Request // GetBucketAcl API operation for Amazon Simple Storage Service. // +// This operation is not supported by directory buckets. +// // This implementation of the GET action uses the acl subresource to return // the access control list (ACL) of a bucket. To use GET to return the ACL of -// the bucket, you must have READ_ACP access to the bucket. If READ_ACP permission -// is granted to the anonymous user, you can return the ACL of the bucket without -// using an authorization header. +// the bucket, you must have the READ_ACP access to the bucket. If READ_ACP +// permission is granted to the anonymous user, you can return the ACL of the +// bucket without using an authorization header. // -// To use this API operation against an access point, provide the alias of the -// access point in place of the bucket name. +// When you use this API operation with an access point, provide the alias of +// the access point in place of the bucket name. // -// To use this API operation against an Object Lambda access point, provide +// When you use this API operation with an Object Lambda access point, provide // the alias of the Object Lambda access point in place of the bucket name. // If the Object Lambda access point alias in a request is not valid, the error // code InvalidAccessPointAliasError is returned. For more information about @@ -2768,6 +3060,8 @@ func (c *S3) GetBucketAnalyticsConfigurationRequest(input *GetBucketAnalyticsCon // GetBucketAnalyticsConfiguration API operation for Amazon Simple Storage Service. // +// This operation is not supported by directory buckets. +// // This implementation of the GET action returns an analytics configuration // (identified by the analytics configuration ID) from the bucket. // @@ -2861,6 +3155,8 @@ func (c *S3) GetBucketCorsRequest(input *GetBucketCorsInput) (req *request.Reque // GetBucketCors API operation for Amazon Simple Storage Service. // +// This operation is not supported by directory buckets. +// // Returns the Cross-Origin Resource Sharing (CORS) configuration information // set for the bucket. // @@ -2868,10 +3164,10 @@ func (c *S3) GetBucketCorsRequest(input *GetBucketCorsInput) (req *request.Reque // action. By default, the bucket owner has this permission and can grant it // to others. // -// To use this API operation against an access point, provide the alias of the -// access point in place of the bucket name. +// When you use this API operation with an access point, provide the alias of +// the access point in place of the bucket name. // -// To use this API operation against an Object Lambda access point, provide +// When you use this API operation with an Object Lambda access point, provide // the alias of the Object Lambda access point in place of the bucket name. // If the Object Lambda access point alias in a request is not valid, the error // code InvalidAccessPointAliasError is returned. For more information about @@ -2957,6 +3253,8 @@ func (c *S3) GetBucketEncryptionRequest(input *GetBucketEncryptionInput) (req *r // GetBucketEncryption API operation for Amazon Simple Storage Service. // +// This operation is not supported by directory buckets. +// // Returns the default encryption configuration for an Amazon S3 bucket. By // default, all buckets have a default encryption configuration that uses server-side // encryption with Amazon S3 managed keys (SSE-S3). For information about the @@ -3047,6 +3345,8 @@ func (c *S3) GetBucketIntelligentTieringConfigurationRequest(input *GetBucketInt // GetBucketIntelligentTieringConfiguration API operation for Amazon Simple Storage Service. // +// This operation is not supported by directory buckets. +// // Gets the S3 Intelligent-Tiering configuration from the specified bucket. // // The S3 Intelligent-Tiering storage class is designed to optimize storage @@ -3145,6 +3445,8 @@ func (c *S3) GetBucketInventoryConfigurationRequest(input *GetBucketInventoryCon // GetBucketInventoryConfiguration API operation for Amazon Simple Storage Service. // +// This operation is not supported by directory buckets. +// // Returns an inventory configuration (identified by the inventory configuration // ID) from the bucket. // @@ -3246,6 +3548,8 @@ func (c *S3) GetBucketLifecycleRequest(input *GetBucketLifecycleInput) (req *req // see the updated version of this topic. This topic is provided for backward // compatibility. // +// This operation is not supported by directory buckets. +// // Returns the lifecycle configuration information set on the bucket. For information // about lifecycle configuration, see Object Lifecycle Management (https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html). // @@ -3344,6 +3648,8 @@ func (c *S3) GetBucketLifecycleConfigurationRequest(input *GetBucketLifecycleCon // GetBucketLifecycleConfiguration API operation for Amazon Simple Storage Service. // +// This operation is not supported by directory buckets. +// // Bucket lifecycle configuration now supports specifying a lifecycle rule using // an object key name prefix, one or more object tags, or a combination of both. // Accordingly, this section describes the latest API. The response describes @@ -3446,14 +3752,16 @@ func (c *S3) GetBucketLocationRequest(input *GetBucketLocationInput) (req *reque // GetBucketLocation API operation for Amazon Simple Storage Service. // +// This operation is not supported by directory buckets. +// // Returns the Region the bucket resides in. You set the bucket's Region using // the LocationConstraint request parameter in a CreateBucket request. For more // information, see CreateBucket (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html). // -// To use this API operation against an access point, provide the alias of the -// access point in place of the bucket name. +// When you use this API operation with an access point, provide the alias of +// the access point in place of the bucket name. // -// To use this API operation against an Object Lambda access point, provide +// When you use this API operation with an Object Lambda access point, provide // the alias of the Object Lambda access point in place of the bucket name. // If the Object Lambda access point alias in a request is not valid, the error // code InvalidAccessPointAliasError is returned. For more information about @@ -3540,6 +3848,8 @@ func (c *S3) GetBucketLoggingRequest(input *GetBucketLoggingInput) (req *request // GetBucketLogging API operation for Amazon Simple Storage Service. // +// This operation is not supported by directory buckets. +// // Returns the logging status of a bucket and the permissions users have to // view and modify that status. // @@ -3620,6 +3930,8 @@ func (c *S3) GetBucketMetricsConfigurationRequest(input *GetBucketMetricsConfigu // GetBucketMetricsConfiguration API operation for Amazon Simple Storage Service. // +// This operation is not supported by directory buckets. +// // Gets a metrics configuration (specified by the metrics configuration ID) // from the bucket. Note that this doesn't include the daily storage metrics. // @@ -3718,6 +4030,8 @@ func (c *S3) GetBucketNotificationRequest(input *GetBucketNotificationConfigurat // GetBucketNotification API operation for Amazon Simple Storage Service. // +// This operation is not supported by directory buckets. +// // No longer used, see GetBucketNotificationConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketNotificationConfiguration.html). // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions @@ -3795,6 +4109,8 @@ func (c *S3) GetBucketNotificationConfigurationRequest(input *GetBucketNotificat // GetBucketNotificationConfiguration API operation for Amazon Simple Storage Service. // +// This operation is not supported by directory buckets. +// // Returns the notification configuration of a bucket. // // If notifications are not enabled on the bucket, the action returns an empty @@ -3805,10 +4121,10 @@ func (c *S3) GetBucketNotificationConfigurationRequest(input *GetBucketNotificat // to other users to read this configuration with the s3:GetBucketNotification // permission. // -// To use this API operation against an access point, provide the alias of the -// access point in place of the bucket name. +// When you use this API operation with an access point, provide the alias of +// the access point in place of the bucket name. // -// To use this API operation against an Object Lambda access point, provide +// When you use this API operation with an Object Lambda access point, provide // the alias of the Object Lambda access point in place of the bucket name. // If the Object Lambda access point alias in a request is not valid, the error // code InvalidAccessPointAliasError is returned. For more information about @@ -3893,6 +4209,8 @@ func (c *S3) GetBucketOwnershipControlsRequest(input *GetBucketOwnershipControls // GetBucketOwnershipControls API operation for Amazon Simple Storage Service. // +// This operation is not supported by directory buckets. +// // Retrieves OwnershipControls for an Amazon S3 bucket. To use this operation, // you must have the s3:GetBucketOwnershipControls permission. For more information // about Amazon S3 permissions, see Specifying permissions in a policy (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html). @@ -3977,10 +4295,21 @@ func (c *S3) GetBucketPolicyRequest(input *GetBucketPolicyInput) (req *request.R // GetBucketPolicy API operation for Amazon Simple Storage Service. // -// Returns the policy of a specified bucket. If you are using an identity other -// than the root user of the Amazon Web Services account that owns the bucket, -// the calling identity must have the GetBucketPolicy permissions on the specified -// bucket and belong to the bucket owner's account in order to use this operation. +// Returns the policy of a specified bucket. +// +// Directory buckets - For directory buckets, you must make requests for this +// API operation to the Regional endpoint. These endpoints support path-style +// requests in the format https://s3express-control.region_code.amazonaws.com/bucket-name +// . Virtual-hosted-style requests aren't supported. For more information, see +// Regional and Zonal endpoints (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-Regions-and-Zones.html) +// in the Amazon S3 User Guide. +// +// # Permissions +// +// If you are using an identity other than the root user of the Amazon Web Services +// account that owns the bucket, the calling identity must both have the GetBucketPolicy +// permissions on the specified bucket and belong to the bucket owner's account +// in order to use this operation. // // If you don't have GetBucketPolicy permissions, Amazon S3 returns a 403 Access // Denied error. If you have the correct permissions, but you're not using an @@ -3995,17 +4324,33 @@ func (c *S3) GetBucketPolicyRequest(input *GetBucketPolicyInput) (req *request.R // these API actions by VPC endpoint policies and Amazon Web Services Organizations // policies. // -// To use this API operation against an access point, provide the alias of the -// access point in place of the bucket name. +// - General purpose bucket permissions - The s3:GetBucketPolicy permission +// is required in a policy. For more information about general purpose buckets +// bucket policies, see Using Bucket Policies and User Policies (https://docs.aws.amazon.com/AmazonS3/latest/dev/using-iam-policies.html) +// in the Amazon S3 User Guide. // -// To use this API operation against an Object Lambda access point, provide -// the alias of the Object Lambda access point in place of the bucket name. -// If the Object Lambda access point alias in a request is not valid, the error -// code InvalidAccessPointAliasError is returned. For more information about -// InvalidAccessPointAliasError, see List of Error Codes (https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#ErrorCodeList). +// - Directory bucket permissions - To grant access to this API operation, +// you must have the s3express:GetBucketPolicy permission in an IAM identity-based +// policy instead of a bucket policy. Cross-account access to this API operation +// isn't supported. This operation can only be performed by the Amazon Web +// Services account that owns the resource. For more information about directory +// bucket policies and permissions, see Amazon Web Services Identity and +// Access Management (IAM) for S3 Express One Zone (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam.html) +// in the Amazon S3 User Guide. +// +// # Example bucket policies +// +// General purpose buckets example bucket policies - See Bucket policy examples +// (https://docs.aws.amazon.com/AmazonS3/latest/userguide/example-bucket-policies.html) +// in the Amazon S3 User Guide. +// +// Directory bucket example bucket policies - See Example bucket policies for +// S3 Express One Zone (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam-example-bucket-policies.html) +// in the Amazon S3 User Guide. +// +// # HTTP Host header syntax // -// For more information about bucket policies, see Using Bucket Policies and -// User Policies (https://docs.aws.amazon.com/AmazonS3/latest/dev/using-iam-policies.html). +// Directory buckets - The HTTP Host header syntax is s3express-control.region.amazonaws.com. // // The following action is related to GetBucketPolicy: // @@ -4082,6 +4427,8 @@ func (c *S3) GetBucketPolicyStatusRequest(input *GetBucketPolicyStatusInput) (re // GetBucketPolicyStatus API operation for Amazon Simple Storage Service. // +// This operation is not supported by directory buckets. +// // Retrieves the policy status for an Amazon S3 bucket, indicating whether the // bucket is public. In order to use this operation, you must have the s3:GetBucketPolicyStatus // permission. For more information about Amazon S3 permissions, see Specifying @@ -4171,6 +4518,8 @@ func (c *S3) GetBucketReplicationRequest(input *GetBucketReplicationInput) (req // GetBucketReplication API operation for Amazon Simple Storage Service. // +// This operation is not supported by directory buckets. +// // Returns the replication configuration of a bucket. // // It can take a while to propagate the put or delete a replication configuration @@ -4268,6 +4617,8 @@ func (c *S3) GetBucketRequestPaymentRequest(input *GetBucketRequestPaymentInput) // GetBucketRequestPayment API operation for Amazon Simple Storage Service. // +// This operation is not supported by directory buckets. +// // Returns the request payment configuration of a bucket. To use this version // of the operation, you must be the bucket owner. For more information, see // Requester Pays Buckets (https://docs.aws.amazon.com/AmazonS3/latest/dev/RequesterPaysBuckets.html). @@ -4347,6 +4698,8 @@ func (c *S3) GetBucketTaggingRequest(input *GetBucketTaggingInput) (req *request // GetBucketTagging API operation for Amazon Simple Storage Service. // +// This operation is not supported by directory buckets. +// // Returns the tag set associated with the bucket. // // To use this operation, you must have permission to perform the s3:GetBucketTagging @@ -4435,6 +4788,8 @@ func (c *S3) GetBucketVersioningRequest(input *GetBucketVersioningInput) (req *r // GetBucketVersioning API operation for Amazon Simple Storage Service. // +// This operation is not supported by directory buckets. +// // Returns the versioning state of a bucket. // // To retrieve the versioning state of a bucket, you must be the bucket owner. @@ -4522,6 +4877,8 @@ func (c *S3) GetBucketWebsiteRequest(input *GetBucketWebsiteInput) (req *request // GetBucketWebsite API operation for Amazon Simple Storage Service. // +// This operation is not supported by directory buckets. +// // Returns the website configuration for a bucket. To host website on Amazon // S3, you can configure a bucket as website by adding a website configuration. // For more information about hosting websites, see Hosting Websites on Amazon @@ -4609,117 +4966,106 @@ func (c *S3) GetObjectRequest(input *GetObjectInput) (req *request.Request, outp // GetObject API operation for Amazon Simple Storage Service. // -// Retrieves objects from Amazon S3. To use GET, you must have READ access to -// the object. If you grant READ access to the anonymous user, you can return -// the object without using an authorization header. -// -// An Amazon S3 bucket has no directory hierarchy such as you would find in -// a typical computer file system. You can, however, create a logical hierarchy -// by using object key names that imply a folder structure. For example, instead -// of naming an object sample.jpg, you can name it photos/2006/February/sample.jpg. -// -// To get an object from such a logical hierarchy, specify the full key name -// for the object in the GET operation. For a virtual hosted-style request example, -// if you have the object photos/2006/February/sample.jpg, specify the resource -// as /photos/2006/February/sample.jpg. For a path-style request example, if -// you have the object photos/2006/February/sample.jpg in the bucket named examplebucket, -// specify the resource as /examplebucket/photos/2006/February/sample.jpg. For -// more information about request types, see HTTP Host Header Bucket Specification -// (https://docs.aws.amazon.com/AmazonS3/latest/dev/VirtualHosting.html#VirtualHostingSpecifyBucket). -// -// For more information about returning the ACL of an object, see GetObjectAcl -// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectAcl.html). +// Retrieves an object from Amazon S3. // -// If the object you are retrieving is stored in the S3 Glacier Flexible Retrieval -// or S3 Glacier Deep Archive storage class, or S3 Intelligent-Tiering Archive -// or S3 Intelligent-Tiering Deep Archive tiers, before you can retrieve the -// object you must first restore a copy using RestoreObject (https://docs.aws.amazon.com/AmazonS3/latest/API/API_RestoreObject.html). -// Otherwise, this action returns an InvalidObjectState error. For information -// about restoring archived objects, see Restoring Archived Objects (https://docs.aws.amazon.com/AmazonS3/latest/dev/restoring-objects.html). -// -// Encryption request headers, like x-amz-server-side-encryption, should not -// be sent for GET requests if your object uses server-side encryption with -// Key Management Service (KMS) keys (SSE-KMS), dual-layer server-side encryption -// with Amazon Web Services KMS keys (DSSE-KMS), or server-side encryption with -// Amazon S3 managed encryption keys (SSE-S3). If your object does use these -// types of keys, you’ll get an HTTP 400 Bad Request error. -// -// If you encrypt an object by using server-side encryption with customer-provided -// encryption keys (SSE-C) when you store the object in Amazon S3, then when -// you GET the object, you must use the following headers: +// In the GetObject request, specify the full key name for the object. // -// - x-amz-server-side-encryption-customer-algorithm -// -// - x-amz-server-side-encryption-customer-key -// -// - x-amz-server-side-encryption-customer-key-MD5 -// -// For more information about SSE-C, see Server-Side Encryption (Using Customer-Provided -// Encryption Keys) (https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html). -// -// Assuming you have the relevant permission to read object tags, the response -// also returns the x-amz-tagging-count header that provides the count of number -// of tags associated with the object. You can use GetObjectTagging (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectTagging.html) -// to retrieve the tag set associated with an object. -// -// # Permissions -// -// You need the relevant read object (or version) permission for this operation. -// For more information, see Specifying Permissions in a Policy (https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html). -// If the object that you request doesn’t exist, the error that Amazon S3 -// returns depends on whether you also have the s3:ListBucket permission. -// -// If you have the s3:ListBucket permission on the bucket, Amazon S3 returns -// an HTTP status code 404 (Not Found) error. -// -// If you don’t have the s3:ListBucket permission, Amazon S3 returns an HTTP -// status code 403 ("access denied") error. +// General purpose buckets - Both the virtual-hosted-style requests and the +// path-style requests are supported. For a virtual hosted-style request example, +// if you have the object photos/2006/February/sample.jpg, specify the object +// key name as /photos/2006/February/sample.jpg. For a path-style request example, +// if you have the object photos/2006/February/sample.jpg in the bucket named +// examplebucket, specify the object key name as /examplebucket/photos/2006/February/sample.jpg. +// For more information about request types, see HTTP Host Header Bucket Specification +// (https://docs.aws.amazon.com/AmazonS3/latest/dev/VirtualHosting.html#VirtualHostingSpecifyBucket) +// in the Amazon S3 User Guide. // -// # Versioning +// Directory buckets - Only virtual-hosted-style requests are supported. For +// a virtual hosted-style request example, if you have the object photos/2006/February/sample.jpg +// in the bucket named examplebucket--use1-az5--x-s3, specify the object key +// name as /photos/2006/February/sample.jpg. Also, when you make requests to +// this API operation, your requests are sent to the Zonal endpoint. These endpoints +// support virtual-hosted-style requests in the format https://bucket_name.s3express-az_id.region.amazonaws.com/key-name +// . Path-style requests are not supported. For more information, see Regional +// and Zonal endpoints (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-Regions-and-Zones.html) +// in the Amazon S3 User Guide. // -// By default, the GET action returns the current version of an object. To return -// a different version, use the versionId subresource. +// Permissions +// +// - General purpose bucket permissions - You must have the required permissions +// in a policy. To use GetObject, you must have the READ access to the object +// (or version). If you grant READ access to the anonymous user, the GetObject +// operation returns the object without using an authorization header. For +// more information, see Specifying permissions in a policy (https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html) +// in the Amazon S3 User Guide. If you include a versionId in your request +// header, you must have the s3:GetObjectVersion permission to access a specific +// version of an object. The s3:GetObject permission is not required in this +// scenario. If you request the current version of an object without a specific +// versionId in the request header, only the s3:GetObject permission is required. +// The s3:GetObjectVersion permission is not required in this scenario. If +// the object that you request doesn’t exist, the error that Amazon S3 +// returns depends on whether you also have the s3:ListBucket permission. +// If you have the s3:ListBucket permission on the bucket, Amazon S3 returns +// an HTTP status code 404 Not Found error. If you don’t have the s3:ListBucket +// permission, Amazon S3 returns an HTTP status code 403 Access Denied error. +// +// - Directory bucket permissions - To grant access to this API operation +// on a directory bucket, we recommend that you use the CreateSession (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html) +// API operation for session-based authorization. Specifically, you grant +// the s3express:CreateSession permission to the directory bucket in a bucket +// policy or an IAM identity-based policy. Then, you make the CreateSession +// API call on the bucket to obtain a session token. With the session token +// in your request header, you can make API requests to this operation. After +// the session token expires, you make another CreateSession API call to +// generate a new session token for use. Amazon Web Services CLI or SDKs +// create session and refresh the session token automatically to avoid service +// interruptions when a session expires. For more information about authorization, +// see CreateSession (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html). +// +// # Storage classes // -// - If you supply a versionId, you need the s3:GetObjectVersion permission -// to access a specific version of an object. If you request a specific version, -// you do not need to have the s3:GetObject permission. If you request the -// current version without a specific version ID, only s3:GetObject permission -// is required. s3:GetObjectVersion permission won't be required. +// If the object you are retrieving is stored in the S3 Glacier Flexible Retrieval +// storage class, the S3 Glacier Deep Archive storage class, the S3 Intelligent-Tiering +// Archive Access tier, or the S3 Intelligent-Tiering Deep Archive Access tier, +// before you can retrieve the object you must first restore a copy using RestoreObject +// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_RestoreObject.html). +// Otherwise, this operation returns an InvalidObjectState error. For information +// about restoring archived objects, see Restoring Archived Objects (https://docs.aws.amazon.com/AmazonS3/latest/dev/restoring-objects.html) +// in the Amazon S3 User Guide. // -// - If the current version of the object is a delete marker, Amazon S3 behaves -// as if the object was deleted and includes x-amz-delete-marker: true in -// the response. +// Directory buckets - For directory buckets, only the S3 Express One Zone storage +// class is supported to store newly created objects. Unsupported storage class +// values won't write a destination object and will respond with the HTTP status +// code 400 Bad Request. // -// - If the specified version is a delete marker, the response returns a -// 405 (Method Not Allowed) error and the Last-Modified: timestamp response -// header. +// # Encryption // -// For more information about versioning, see PutBucketVersioning (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketVersioning.html). +// Encryption request headers, like x-amz-server-side-encryption, should not +// be sent for the GetObject requests, if your object uses server-side encryption +// with Amazon S3 managed encryption keys (SSE-S3), server-side encryption with +// Key Management Service (KMS) keys (SSE-KMS), or dual-layer server-side encryption +// with Amazon Web Services KMS keys (DSSE-KMS). If you include the header in +// your GetObject requests for the object that uses these types of keys, you’ll +// get an HTTP 400 Bad Request error. // -// # Overriding Response Header Values +// # Overriding response header values through the request // // There are times when you want to override certain response header values -// in a GET response. For example, you might override the Content-Disposition -// response header value in your GET request. -// -// You can override values for a set of response headers using the following -// query parameters. These response header values are sent only on a successful -// request, that is, when status code 200 OK is returned. The set of headers -// you can override using these parameters is a subset of the headers that Amazon -// S3 accepts when you create an object. The response headers that you can override -// for the GET response are Content-Type, Content-Language, Expires, Cache-Control, -// Content-Disposition, and Content-Encoding. To override these header values -// in the GET response, you use the following request parameters. -// -// You must sign the request, either using an Authorization header or a presigned -// URL, when using these parameters. They cannot be used with an unsigned (anonymous) -// request. +// of a GetObject response. For example, you might override the Content-Disposition +// response header value through your GetObject request. // -// - response-content-type +// You can override values for a set of response headers. These modified response +// header values are included only in a successful response, that is, when the +// HTTP status code 200 OK is returned. The headers you can override using the +// following query parameters in the request are a subset of the headers that +// Amazon S3 accepts when you create an object. // -// - response-content-language +// The response headers that you can override for the GetObject response are +// Cache-Control, Content-Disposition, Content-Encoding, Content-Language, Content-Type, +// and Expires. // -// - response-expires +// To override values for a set of response headers in the GetObject response, +// you can use the following query parameters in the request. // // - response-cache-control // @@ -4727,17 +5073,19 @@ func (c *S3) GetObjectRequest(input *GetObjectInput) (req *request.Request, outp // // - response-content-encoding // -// # Overriding Response Header Values +// - response-content-language +// +// - response-content-type +// +// - response-expires // -// If both of the If-Match and If-Unmodified-Since headers are present in the -// request as follows: If-Match condition evaluates to true, and; If-Unmodified-Since -// condition evaluates to false; then, S3 returns 200 OK and the data requested. +// When you use these parameters, you must sign the request by using either +// an Authorization header or a presigned URL. These parameters cannot be used +// with an unsigned (anonymous) request. // -// If both of the If-None-Match and If-Modified-Since headers are present in -// the request as follows:If-None-Match condition evaluates to false, and; If-Modified-Since -// condition evaluates to true; then, S3 returns 304 Not Modified response code. +// # HTTP Host header syntax // -// For more information about conditional requests, see RFC 7232 (https://tools.ietf.org/html/rfc7232). +// Directory buckets - The HTTP Host header syntax is Bucket_name.s3express-az_id.region.amazonaws.com. // // The following operations are related to GetObject: // @@ -4760,6 +5108,15 @@ func (c *S3) GetObjectRequest(input *GetObjectInput) (req *request.Request, outp // - ErrCodeInvalidObjectState "InvalidObjectState" // Object is archived and inaccessible until restored. // +// If the object you are retrieving is stored in the S3 Glacier Flexible Retrieval +// storage class, the S3 Glacier Deep Archive storage class, the S3 Intelligent-Tiering +// Archive Access tier, or the S3 Intelligent-Tiering Deep Archive Access tier, +// before you can retrieve the object you must first restore a copy using RestoreObject +// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_RestoreObject.html). +// Otherwise, this operation returns an InvalidObjectState error. For information +// about restoring archived objects, see Restoring Archived Objects (https://docs.aws.amazon.com/AmazonS3/latest/dev/restoring-objects.html) +// in the Amazon S3 User Guide. +// // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetObject func (c *S3) GetObject(input *GetObjectInput) (*GetObjectOutput, error) { req, out := c.GetObjectRequest(input) @@ -4825,13 +5182,15 @@ func (c *S3) GetObjectAclRequest(input *GetObjectAclInput) (req *request.Request // GetObjectAcl API operation for Amazon Simple Storage Service. // +// This operation is not supported by directory buckets. +// // Returns the access control list (ACL) of an object. To use this operation, // you must have s3:GetObjectAcl permissions or READ_ACP access to the object. // For more information, see Mapping of ACL permissions and access policy permissions // (https://docs.aws.amazon.com/AmazonS3/latest/userguide/acl-overview.html#acl-access-policy-permission-mapping) // in the Amazon S3 User Guide // -// This action is not supported by Amazon S3 on Outposts. +// This functionality is not supported for Amazon S3 on Outposts. // // By default, GET returns ACL information about the current version of an object. // To return ACL information about a different version, use the versionId subresource. @@ -4929,16 +5288,65 @@ func (c *S3) GetObjectAttributesRequest(input *GetObjectAttributesInput) (req *r // GetObjectAttributes API operation for Amazon Simple Storage Service. // // Retrieves all the metadata from an object without returning the object itself. -// This action is useful if you're interested only in an object's metadata. -// To use GetObjectAttributes, you must have READ access to the object. +// This operation is useful if you're interested only in an object's metadata. // // GetObjectAttributes combines the functionality of HeadObject and ListParts. // All of the data returned with each of those individual calls can be returned // with a single call to GetObjectAttributes. // +// Directory buckets - For directory buckets, you must make requests for this +// API operation to the Zonal endpoint. These endpoints support virtual-hosted-style +// requests in the format https://bucket_name.s3express-az_id.region.amazonaws.com/key-name +// . Path-style requests are not supported. For more information, see Regional +// and Zonal endpoints (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-Regions-and-Zones.html) +// in the Amazon S3 User Guide. +// +// Permissions +// +// - General purpose bucket permissions - To use GetObjectAttributes, you +// must have READ access to the object. The permissions that you need to +// use this operation with depend on whether the bucket is versioned. If +// the bucket is versioned, you need both the s3:GetObjectVersion and s3:GetObjectVersionAttributes +// permissions for this operation. If the bucket is not versioned, you need +// the s3:GetObject and s3:GetObjectAttributes permissions. For more information, +// see Specifying Permissions in a Policy (https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html) +// in the Amazon S3 User Guide. If the object that you request does not exist, +// the error Amazon S3 returns depends on whether you also have the s3:ListBucket +// permission. If you have the s3:ListBucket permission on the bucket, Amazon +// S3 returns an HTTP status code 404 Not Found ("no such key") error. If +// you don't have the s3:ListBucket permission, Amazon S3 returns an HTTP +// status code 403 Forbidden ("access denied") error. +// +// - Directory bucket permissions - To grant access to this API operation +// on a directory bucket, we recommend that you use the CreateSession (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html) +// API operation for session-based authorization. Specifically, you grant +// the s3express:CreateSession permission to the directory bucket in a bucket +// policy or an IAM identity-based policy. Then, you make the CreateSession +// API call on the bucket to obtain a session token. With the session token +// in your request header, you can make API requests to this operation. After +// the session token expires, you make another CreateSession API call to +// generate a new session token for use. Amazon Web Services CLI or SDKs +// create session and refresh the session token automatically to avoid service +// interruptions when a session expires. For more information about authorization, +// see CreateSession (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html). +// +// # Encryption +// +// Encryption request headers, like x-amz-server-side-encryption, should not +// be sent for HEAD requests if your object uses server-side encryption with +// Key Management Service (KMS) keys (SSE-KMS), dual-layer server-side encryption +// with Amazon Web Services KMS keys (DSSE-KMS), or server-side encryption with +// Amazon S3 managed encryption keys (SSE-S3). The x-amz-server-side-encryption +// header is used when you PUT an object to S3 and want to specify the encryption +// method. If you include this header in a GET request for an object that uses +// these types of keys, you’ll get an HTTP 400 Bad Request error. It's because +// the encryption method can't be changed when you retrieve the object. +// // If you encrypt an object by using server-side encryption with customer-provided // encryption keys (SSE-C) when you store the object in Amazon S3, then when -// you retrieve the metadata from the object, you must use the following headers: +// you retrieve the metadata from the object, you must use the following headers +// to provide the encryption key for the server to be able to retrieve the object's +// metadata. The headers are: // // - x-amz-server-side-encryption-customer-algorithm // @@ -4950,47 +5358,35 @@ func (c *S3) GetObjectAttributesRequest(input *GetObjectAttributesInput) (req *r // Encryption Keys) (https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html) // in the Amazon S3 User Guide. // -// - Encryption request headers, such as x-amz-server-side-encryption, should -// not be sent for GET requests if your object uses server-side encryption -// with Amazon Web Services KMS keys stored in Amazon Web Services Key Management -// Service (SSE-KMS) or server-side encryption with Amazon S3 managed keys -// (SSE-S3). If your object does use these types of keys, you'll get an HTTP -// 400 Bad Request error. +// Directory bucket permissions - For directory buckets, only server-side encryption +// with Amazon S3 managed keys (SSE-S3) (AES256) is supported. +// +// # Versioning +// +// Directory buckets - S3 Versioning isn't enabled and supported for directory +// buckets. For this API operation, only the null value of the version ID is +// supported by directory buckets. You can only specify null to the versionId +// query parameter in the request. // -// - The last modified property in this case is the creation date of the -// object. +// # Conditional request headers // // Consider the following when using request headers: // // - If both of the If-Match and If-Unmodified-Since headers are present // in the request as follows, then Amazon S3 returns the HTTP status code // 200 OK and the data requested: If-Match condition evaluates to true. If-Unmodified-Since -// condition evaluates to false. +// condition evaluates to false. For more information about conditional requests, +// see RFC 7232 (https://tools.ietf.org/html/rfc7232). // // - If both of the If-None-Match and If-Modified-Since headers are present // in the request as follows, then Amazon S3 returns the HTTP status code // 304 Not Modified: If-None-Match condition evaluates to false. If-Modified-Since -// condition evaluates to true. +// condition evaluates to true. For more information about conditional requests, +// see RFC 7232 (https://tools.ietf.org/html/rfc7232). // -// For more information about conditional requests, see RFC 7232 (https://tools.ietf.org/html/rfc7232). +// # HTTP Host header syntax // -// # Permissions -// -// The permissions that you need to use this operation depend on whether the -// bucket is versioned. If the bucket is versioned, you need both the s3:GetObjectVersion -// and s3:GetObjectVersionAttributes permissions for this operation. If the -// bucket is not versioned, you need the s3:GetObject and s3:GetObjectAttributes -// permissions. For more information, see Specifying Permissions in a Policy -// (https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html) -// in the Amazon S3 User Guide. If the object that you request does not exist, -// the error Amazon S3 returns depends on whether you also have the s3:ListBucket -// permission. -// -// - If you have the s3:ListBucket permission on the bucket, Amazon S3 returns -// an HTTP status code 404 Not Found ("no such key") error. -// -// - If you don't have the s3:ListBucket permission, Amazon S3 returns an -// HTTP status code 403 Forbidden ("access denied") error. +// Directory buckets - The HTTP Host header syntax is Bucket_name.s3express-az_id.region.amazonaws.com. // // The following actions are related to GetObjectAttributes: // @@ -5086,10 +5482,12 @@ func (c *S3) GetObjectLegalHoldRequest(input *GetObjectLegalHoldInput) (req *req // GetObjectLegalHold API operation for Amazon Simple Storage Service. // +// This operation is not supported by directory buckets. +// // Gets an object's current legal hold status. For more information, see Locking // Objects (https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html). // -// This action is not supported by Amazon S3 on Outposts. +// This functionality is not supported for Amazon S3 on Outposts. // // The following action is related to GetObjectLegalHold: // @@ -5166,6 +5564,8 @@ func (c *S3) GetObjectLockConfigurationRequest(input *GetObjectLockConfiguration // GetObjectLockConfiguration API operation for Amazon Simple Storage Service. // +// This operation is not supported by directory buckets. +// // Gets the Object Lock configuration for a bucket. The rule specified in the // Object Lock configuration will be applied by default to every new object // placed in the specified bucket. For more information, see Locking Objects @@ -5246,10 +5646,12 @@ func (c *S3) GetObjectRetentionRequest(input *GetObjectRetentionInput) (req *req // GetObjectRetention API operation for Amazon Simple Storage Service. // +// This operation is not supported by directory buckets. +// // Retrieves an object's retention settings. For more information, see Locking // Objects (https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html). // -// This action is not supported by Amazon S3 on Outposts. +// This functionality is not supported for Amazon S3 on Outposts. // // The following action is related to GetObjectRetention: // @@ -5326,6 +5728,8 @@ func (c *S3) GetObjectTaggingRequest(input *GetObjectTaggingInput) (req *request // GetObjectTagging API operation for Amazon Simple Storage Service. // +// This operation is not supported by directory buckets. +// // Returns the tag-set of an object. You send the GET request against the tagging // subresource associated with the object. // @@ -5421,6 +5825,8 @@ func (c *S3) GetObjectTorrentRequest(input *GetObjectTorrentInput) (req *request // GetObjectTorrent API operation for Amazon Simple Storage Service. // +// This operation is not supported by directory buckets. +// // Returns torrent files from a bucket. BitTorrent can save you bandwidth when // you're distributing large files. // @@ -5430,7 +5836,7 @@ func (c *S3) GetObjectTorrentRequest(input *GetObjectTorrentInput) (req *request // // To use GET, you must have READ access to the object. // -// This action is not supported by Amazon S3 on Outposts. +// This functionality is not supported for Amazon S3 on Outposts. // // The following action is related to GetObjectTorrent: // @@ -5507,6 +5913,8 @@ func (c *S3) GetPublicAccessBlockRequest(input *GetPublicAccessBlockInput) (req // GetPublicAccessBlock API operation for Amazon Simple Storage Service. // +// This operation is not supported by directory buckets. +// // Retrieves the PublicAccessBlock configuration for an Amazon S3 bucket. To // use this operation, you must have the s3:GetBucketPublicAccessBlock permission. // For more information about Amazon S3 permissions, see Specifying Permissions @@ -5598,39 +6006,63 @@ func (c *S3) HeadBucketRequest(input *HeadBucketInput) (req *request.Request, ou output = &HeadBucketOutput{} req = c.newRequest(op, input, output) - req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) return } // HeadBucket API operation for Amazon Simple Storage Service. // -// This action is useful to determine if a bucket exists and you have permission -// to access it. The action returns a 200 OK if the bucket exists and you have -// permission to access it. +// You can use this operation to determine if a bucket exists and if you have +// permission to access it. The action returns a 200 OK if the bucket exists +// and you have permission to access it. // // If the bucket does not exist or you do not have permission to access it, // the HEAD request returns a generic 400 Bad Request, 403 Forbidden or 404 // Not Found code. A message body is not included, so you cannot determine the // exception beyond these error codes. // -// To use this operation, you must have permissions to perform the s3:ListBucket -// action. The bucket owner has this permission by default and can grant this -// permission to others. For more information about permissions, see Permissions -// Related to Bucket Subresource Operations (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources) -// and Managing Access Permissions to Your Amazon S3 Resources (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html). +// Directory buckets - You must make requests for this API operation to the +// Zonal endpoint. These endpoints support virtual-hosted-style requests in +// the format https://bucket_name.s3express-az_id.region.amazonaws.com. Path-style +// requests are not supported. For more information, see Regional and Zonal +// endpoints (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-Regions-and-Zones.html) +// in the Amazon S3 User Guide. // -// To use this API operation against an access point, you must provide the alias -// of the access point in place of the bucket name or specify the access point -// ARN. When using the access point ARN, you must direct requests to the access -// point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. -// When using the Amazon Web Services SDKs, you provide the ARN in place of -// the bucket name. For more information, see Using access points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html). +// # Authentication and authorization // -// To use this API operation against an Object Lambda access point, provide -// the alias of the Object Lambda access point in place of the bucket name. -// If the Object Lambda access point alias in a request is not valid, the error -// code InvalidAccessPointAliasError is returned. For more information about -// InvalidAccessPointAliasError, see List of Error Codes (https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#ErrorCodeList). +// All HeadBucket requests must be authenticated and signed by using IAM credentials +// (access key ID and secret access key for the IAM identities). All headers +// with the x-amz- prefix, including x-amz-copy-source, must be signed. For +// more information, see REST Authentication (https://docs.aws.amazon.com/AmazonS3/latest/dev/RESTAuthentication.html). +// +// Directory bucket - You must use IAM credentials to authenticate and authorize +// your access to the HeadBucket API operation, instead of using the temporary +// security credentials through the CreateSession API operation. +// +// Amazon Web Services CLI or SDKs handles authentication and authorization +// on your behalf. +// +// Permissions +// +// - General purpose bucket permissions - To use this operation, you must +// have permissions to perform the s3:ListBucket action. The bucket owner +// has this permission by default and can grant this permission to others. +// For more information about permissions, see Managing access permissions +// to your Amazon S3 resources (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html) +// in the Amazon S3 User Guide. +// +// - Directory bucket permissions - You must have the s3express:CreateSession +// permission in the Action element of a policy. By default, the session +// is in the ReadWrite mode. If you want to restrict the access, you can +// explicitly set the s3express:SessionMode condition key to ReadOnly on +// the bucket. For more information about example bucket policies, see Example +// bucket policies for S3 Express One Zone (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam-example-bucket-policies.html) +// and Amazon Web Services Identity and Access Management (IAM) identity-based +// policies for S3 Express One Zone (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam-identity-policies.html) +// in the Amazon S3 User Guide. +// +// # HTTP Host header syntax +// +// Directory buckets - The HTTP Host header syntax is Bucket_name.s3express-az_id.region.amazonaws.com. // // 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 @@ -5708,20 +6140,70 @@ func (c *S3) HeadObjectRequest(input *HeadObjectInput) (req *request.Request, ou // HeadObject API operation for Amazon Simple Storage Service. // -// The HEAD action retrieves metadata from an object without returning the object -// itself. This action is useful if you're only interested in an object's metadata. -// To use HEAD, you must have READ access to the object. +// The HEAD operation retrieves metadata from an object without returning the +// object itself. This operation is useful if you're interested only in an object's +// metadata. +// +// A HEAD request has the same options as a GET operation on an object. The +// response is identical to the GET response except that there is no response +// body. Because of this, if the HEAD request generates an error, it returns +// a generic code, such as 400 Bad Request, 403 Forbidden, 404 Not Found, 405 +// Method Not Allowed, 412 Precondition Failed, or 304 Not Modified. It's not +// possible to retrieve the exact exception of these error codes. +// +// Request headers are limited to 8 KB in size. For more information, see Common +// Request Headers (https://docs.aws.amazon.com/AmazonS3/latest/API/RESTCommonRequestHeaders.html). +// +// Directory buckets - For directory buckets, you must make requests for this +// API operation to the Zonal endpoint. These endpoints support virtual-hosted-style +// requests in the format https://bucket_name.s3express-az_id.region.amazonaws.com/key-name +// . Path-style requests are not supported. For more information, see Regional +// and Zonal endpoints (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-Regions-and-Zones.html) +// in the Amazon S3 User Guide. +// +// Permissions +// +// - General purpose bucket permissions - To use HEAD, you must have the +// s3:GetObject permission. You need the relevant read object (or version) +// permission for this operation. For more information, see Actions, resources, +// and condition keys for Amazon S3 (https://docs.aws.amazon.com/AmazonS3/latest/dev/list_amazons3.html) +// in the Amazon S3 User Guide. If the object you request doesn't exist, +// the error that Amazon S3 returns depends on whether you also have the +// s3:ListBucket permission. If you have the s3:ListBucket permission on +// the bucket, Amazon S3 returns an HTTP status code 404 Not Found error. +// If you don’t have the s3:ListBucket permission, Amazon S3 returns an +// HTTP status code 403 Forbidden error. +// +// - Directory bucket permissions - To grant access to this API operation +// on a directory bucket, we recommend that you use the CreateSession (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html) +// API operation for session-based authorization. Specifically, you grant +// the s3express:CreateSession permission to the directory bucket in a bucket +// policy or an IAM identity-based policy. Then, you make the CreateSession +// API call on the bucket to obtain a session token. With the session token +// in your request header, you can make API requests to this operation. After +// the session token expires, you make another CreateSession API call to +// generate a new session token for use. Amazon Web Services CLI or SDKs +// create session and refresh the session token automatically to avoid service +// interruptions when a session expires. For more information about authorization, +// see CreateSession (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html). +// +// # Encryption // -// A HEAD request has the same options as a GET action on an object. The response -// is identical to the GET response except that there is no response body. Because -// of this, if the HEAD request generates an error, it returns a generic code, -// such as 400 Bad Request, 403 Forbidden, 404 Not Found, 405 Method Not Allowed, -// 412 Precondition Failed, or 304 Not Modified. It's not possible to retrieve -// the exact exception of these error codes. +// Encryption request headers, like x-amz-server-side-encryption, should not +// be sent for HEAD requests if your object uses server-side encryption with +// Key Management Service (KMS) keys (SSE-KMS), dual-layer server-side encryption +// with Amazon Web Services KMS keys (DSSE-KMS), or server-side encryption with +// Amazon S3 managed encryption keys (SSE-S3). The x-amz-server-side-encryption +// header is used when you PUT an object to S3 and want to specify the encryption +// method. If you include this header in a HEAD request for an object that uses +// these types of keys, you’ll get an HTTP 400 Bad Request error. It's because +// the encryption method can't be changed when you retrieve the object. // // If you encrypt an object by using server-side encryption with customer-provided // encryption keys (SSE-C) when you store the object in Amazon S3, then when -// you retrieve the metadata from the object, you must use the following headers: +// you retrieve the metadata from the object, you must use the following headers +// to provide the encryption key for the server to be able to retrieve the object's +// metadata. The headers are: // // - x-amz-server-side-encryption-customer-algorithm // @@ -5730,48 +6212,11 @@ func (c *S3) HeadObjectRequest(input *HeadObjectInput) (req *request.Request, ou // - x-amz-server-side-encryption-customer-key-MD5 // // For more information about SSE-C, see Server-Side Encryption (Using Customer-Provided -// Encryption Keys) (https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html). -// -// - Encryption request headers, like x-amz-server-side-encryption, should -// not be sent for GET requests if your object uses server-side encryption -// with Key Management Service (KMS) keys (SSE-KMS), dual-layer server-side -// encryption with Amazon Web Services KMS keys (DSSE-KMS), or server-side -// encryption with Amazon S3 managed encryption keys (SSE-S3). If your object -// does use these types of keys, you’ll get an HTTP 400 Bad Request error. -// -// - The last modified property in this case is the creation date of the -// object. -// -// Request headers are limited to 8 KB in size. For more information, see Common -// Request Headers (https://docs.aws.amazon.com/AmazonS3/latest/API/RESTCommonRequestHeaders.html). -// -// Consider the following when using request headers: -// -// - Consideration 1 – If both of the If-Match and If-Unmodified-Since -// headers are present in the request as follows: If-Match condition evaluates -// to true, and; If-Unmodified-Since condition evaluates to false; Then Amazon -// S3 returns 200 OK and the data requested. -// -// - Consideration 2 – If both of the If-None-Match and If-Modified-Since -// headers are present in the request as follows: If-None-Match condition -// evaluates to false, and; If-Modified-Since condition evaluates to true; -// Then Amazon S3 returns the 304 Not Modified response code. -// -// For more information about conditional requests, see RFC 7232 (https://tools.ietf.org/html/rfc7232). -// -// # Permissions -// -// You need the relevant read object (or version) permission for this operation. -// For more information, see Actions, resources, and condition keys for Amazon -// S3 (https://docs.aws.amazon.com/AmazonS3/latest/dev/list_amazons3.html). -// If the object you request doesn't exist, the error that Amazon S3 returns -// depends on whether you also have the s3:ListBucket permission. -// -// - If you have the s3:ListBucket permission on the bucket, Amazon S3 returns -// an HTTP status code 404 error. +// Encryption Keys) (https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html) +// in the Amazon S3 User Guide. // -// - If you don’t have the s3:ListBucket permission, Amazon S3 returns -// an HTTP status code 403 error. +// Directory bucket permissions - For directory buckets, only server-side encryption +// with Amazon S3 managed keys (SSE-S3) (AES256) is supported. // // Versioning // @@ -5780,9 +6225,20 @@ func (c *S3) HeadObjectRequest(input *HeadObjectInput) (req *request.Request, ou // the response. // // - If the specified version is a delete marker, the response returns a -// 405 (Method Not Allowed) error and the Last-Modified: timestamp response +// 405 Method Not Allowed error and the Last-Modified: timestamp response // header. // +// - Directory buckets - Delete marker is not supported by directory buckets. +// +// - Directory buckets - S3 Versioning isn't enabled and supported for directory +// buckets. For this API operation, only the null value of the version ID +// is supported by directory buckets. You can only specify null to the versionId +// query parameter in the request. +// +// # HTTP Host header syntax +// +// Directory buckets - The HTTP Host header syntax is Bucket_name.s3express-az_id.region.amazonaws.com. +// // The following actions are related to HeadObject: // // - GetObject (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html) @@ -5863,6 +6319,8 @@ func (c *S3) ListBucketAnalyticsConfigurationsRequest(input *ListBucketAnalytics // ListBucketAnalyticsConfigurations API operation for Amazon Simple Storage Service. // +// This operation is not supported by directory buckets. +// // Lists the analytics configurations for the bucket. You can have up to 1,000 // analytics configurations per bucket. // @@ -5962,6 +6420,8 @@ func (c *S3) ListBucketIntelligentTieringConfigurationsRequest(input *ListBucket // ListBucketIntelligentTieringConfigurations API operation for Amazon Simple Storage Service. // +// This operation is not supported by directory buckets. +// // Lists the S3 Intelligent-Tiering configuration from the specified bucket. // // The S3 Intelligent-Tiering storage class is designed to optimize storage @@ -6060,6 +6520,8 @@ func (c *S3) ListBucketInventoryConfigurationsRequest(input *ListBucketInventory // ListBucketInventoryConfigurations API operation for Amazon Simple Storage Service. // +// This operation is not supported by directory buckets. +// // Returns a list of inventory configurations for the bucket. You can have up // to 1,000 analytics configurations per bucket. // @@ -6159,6 +6621,8 @@ func (c *S3) ListBucketMetricsConfigurationsRequest(input *ListBucketMetricsConf // ListBucketMetricsConfigurations API operation for Amazon Simple Storage Service. // +// This operation is not supported by directory buckets. +// // Lists the metrics configurations for the bucket. The metrics configurations // are only for the request metrics of the bucket and do not provide information // on daily storage metrics. You can have up to 1,000 configurations per bucket. @@ -6259,6 +6723,8 @@ func (c *S3) ListBucketsRequest(input *ListBucketsInput) (req *request.Request, // ListBuckets API operation for Amazon Simple Storage Service. // +// This operation is not supported by directory buckets. +// // Returns a list of all buckets owned by the authenticated sender of the request. // To use this operation, you must have the s3:ListAllMyBuckets permission. // @@ -6293,6 +6759,160 @@ func (c *S3) ListBucketsWithContext(ctx aws.Context, input *ListBucketsInput, op return out, req.Send() } +const opListDirectoryBuckets = "ListDirectoryBuckets" + +// ListDirectoryBucketsRequest generates a "aws/request.Request" representing the +// client's request for the ListDirectoryBuckets 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 ListDirectoryBuckets for more information on using the ListDirectoryBuckets +// 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 ListDirectoryBucketsRequest method. +// req, resp := client.ListDirectoryBucketsRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ListDirectoryBuckets +func (c *S3) ListDirectoryBucketsRequest(input *ListDirectoryBucketsInput) (req *request.Request, output *ListDirectoryBucketsOutput) { + op := &request.Operation{ + Name: opListDirectoryBuckets, + HTTPMethod: "GET", + HTTPPath: "/", + Paginator: &request.Paginator{ + InputTokens: []string{"ContinuationToken"}, + OutputTokens: []string{"ContinuationToken"}, + LimitToken: "MaxDirectoryBuckets", + TruncationToken: "", + }, + } + + if input == nil { + input = &ListDirectoryBucketsInput{} + } + + output = &ListDirectoryBucketsOutput{} + req = c.newRequest(op, input, output) + return +} + +// ListDirectoryBuckets API operation for Amazon Simple Storage Service. +// +// Returns a list of all Amazon S3 directory buckets owned by the authenticated +// sender of the request. For more information about directory buckets, see +// Directory buckets (https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-buckets-overview.html) +// in the Amazon S3 User Guide. +// +// Directory buckets - For directory buckets, you must make requests for this +// API operation to the Regional endpoint. These endpoints support path-style +// requests in the format https://s3express-control.region_code.amazonaws.com/bucket-name +// . Virtual-hosted-style requests aren't supported. For more information, see +// Regional and Zonal endpoints (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-Regions-and-Zones.html) +// in the Amazon S3 User Guide. +// +// # Permissions +// +// You must have the s3express:ListAllMyDirectoryBuckets permission in an IAM +// identity-based policy instead of a bucket policy. Cross-account access to +// this API operation isn't supported. This operation can only be performed +// by the Amazon Web Services account that owns the resource. For more information +// about directory bucket policies and permissions, see Amazon Web Services +// Identity and Access Management (IAM) for S3 Express One Zone (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam.html) +// in the Amazon S3 User Guide. +// +// # HTTP Host header syntax +// +// Directory buckets - The HTTP Host header syntax is s3express-control.region.amazonaws.com. +// +// 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 Simple Storage Service's +// API operation ListDirectoryBuckets for usage and error information. +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ListDirectoryBuckets +func (c *S3) ListDirectoryBuckets(input *ListDirectoryBucketsInput) (*ListDirectoryBucketsOutput, error) { + req, out := c.ListDirectoryBucketsRequest(input) + return out, req.Send() +} + +// ListDirectoryBucketsWithContext is the same as ListDirectoryBuckets with the addition of +// the ability to pass a context and additional request options. +// +// See ListDirectoryBuckets 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 *S3) ListDirectoryBucketsWithContext(ctx aws.Context, input *ListDirectoryBucketsInput, opts ...request.Option) (*ListDirectoryBucketsOutput, error) { + req, out := c.ListDirectoryBucketsRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +// ListDirectoryBucketsPages iterates over the pages of a ListDirectoryBuckets operation, +// calling the "fn" function with the response data for each page. To stop +// iterating, return false from the fn function. +// +// See ListDirectoryBuckets 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 ListDirectoryBuckets operation. +// pageNum := 0 +// err := client.ListDirectoryBucketsPages(params, +// func(page *s3.ListDirectoryBucketsOutput, lastPage bool) bool { +// pageNum++ +// fmt.Println(page) +// return pageNum <= 3 +// }) +func (c *S3) ListDirectoryBucketsPages(input *ListDirectoryBucketsInput, fn func(*ListDirectoryBucketsOutput, bool) bool) error { + return c.ListDirectoryBucketsPagesWithContext(aws.BackgroundContext(), input, fn) +} + +// ListDirectoryBucketsPagesWithContext same as ListDirectoryBucketsPages 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 *S3) ListDirectoryBucketsPagesWithContext(ctx aws.Context, input *ListDirectoryBucketsInput, fn func(*ListDirectoryBucketsOutput, bool) bool, opts ...request.Option) error { + p := request.Pagination{ + NewRequest: func() (*request.Request, error) { + var inCpy *ListDirectoryBucketsInput + if input != nil { + tmp := *input + inCpy = &tmp + } + req, _ := c.ListDirectoryBucketsRequest(inCpy) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return req, nil + }, + } + + for p.Next() { + if !fn(p.Page().(*ListDirectoryBucketsOutput), !p.HasNextPage()) { + break + } + } + + return p.Err() +} + const opListMultipartUploads = "ListMultipartUploads" // ListMultipartUploadsRequest generates a "aws/request.Request" representing the @@ -6342,28 +6962,79 @@ func (c *S3) ListMultipartUploadsRequest(input *ListMultipartUploadsInput) (req // ListMultipartUploads API operation for Amazon Simple Storage Service. // -// This action lists in-progress multipart uploads. An in-progress multipart -// upload is a multipart upload that has been initiated using the Initiate Multipart -// Upload request, but has not yet been completed or aborted. +// This operation lists in-progress multipart uploads in a bucket. An in-progress +// multipart upload is a multipart upload that has been initiated by the CreateMultipartUpload +// request, but has not yet been completed or aborted. +// +// Directory buckets - If multipart uploads in a directory bucket are in progress, +// you can't delete the bucket until all the in-progress multipart uploads are +// aborted or completed. +// +// The ListMultipartUploads operation returns a maximum of 1,000 multipart uploads +// in the response. The limit of 1,000 multipart uploads is also the default +// value. You can further limit the number of uploads in a response by specifying +// the max-uploads request parameter. If there are more than 1,000 multipart +// uploads that satisfy your ListMultipartUploads request, the response returns +// an IsTruncated element with the value of true, a NextKeyMarker element, and +// a NextUploadIdMarker element. To list the remaining multipart uploads, you +// need to make subsequent ListMultipartUploads requests. In these requests, +// include two query parameters: key-marker and upload-id-marker. Set the value +// of key-marker to the NextKeyMarker value from the previous response. Similarly, +// set the value of upload-id-marker to the NextUploadIdMarker value from the +// previous response. +// +// Directory buckets - The upload-id-marker element and the NextUploadIdMarker +// element aren't supported by directory buckets. To list the additional multipart +// uploads, you only need to set the value of key-marker to the NextKeyMarker +// value from the previous response. // -// This action returns at most 1,000 multipart uploads in the response. 1,000 -// multipart uploads is the maximum number of uploads a response can include, -// which is also the default value. You can further limit the number of uploads -// in a response by specifying the max-uploads parameter in the response. If -// additional multipart uploads satisfy the list criteria, the response will -// contain an IsTruncated element with the value true. To list the additional -// multipart uploads, use the key-marker and upload-id-marker request parameters. +// For more information about multipart uploads, see Uploading Objects Using +// Multipart Upload (https://docs.aws.amazon.com/AmazonS3/latest/dev/uploadobjusingmpu.html) +// in the Amazon S3 User Guide. // -// In the response, the uploads are sorted by key. If your application has initiated -// more than one multipart upload using the same object key, then uploads in -// the response are first sorted by key. Additionally, uploads are sorted in -// ascending order within each key by the upload initiation time. +// Directory buckets - For directory buckets, you must make requests for this +// API operation to the Zonal endpoint. These endpoints support virtual-hosted-style +// requests in the format https://bucket_name.s3express-az_id.region.amazonaws.com/key-name +// . Path-style requests are not supported. For more information, see Regional +// and Zonal endpoints (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-Regions-and-Zones.html) +// in the Amazon S3 User Guide. // -// For more information on multipart uploads, see Uploading Objects Using Multipart -// Upload (https://docs.aws.amazon.com/AmazonS3/latest/dev/uploadobjusingmpu.html). +// Permissions +// +// - General purpose bucket permissions - For information about permissions +// required to use the multipart upload API, see Multipart Upload and Permissions +// (https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuAndPermissions.html) +// in the Amazon S3 User Guide. +// +// - Directory bucket permissions - To grant access to this API operation +// on a directory bucket, we recommend that you use the CreateSession (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html) +// API operation for session-based authorization. Specifically, you grant +// the s3express:CreateSession permission to the directory bucket in a bucket +// policy or an IAM identity-based policy. Then, you make the CreateSession +// API call on the bucket to obtain a session token. With the session token +// in your request header, you can make API requests to this operation. After +// the session token expires, you make another CreateSession API call to +// generate a new session token for use. Amazon Web Services CLI or SDKs +// create session and refresh the session token automatically to avoid service +// interruptions when a session expires. For more information about authorization, +// see CreateSession (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html). +// +// Sorting of multipart uploads in response // -// For information on permissions required to use the multipart upload API, -// see Multipart Upload and Permissions (https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuAndPermissions.html). +// - General purpose bucket - In the ListMultipartUploads response, the multipart +// uploads are sorted based on two criteria: Key-based sorting - Multipart +// uploads are initially sorted in ascending order based on their object +// keys. Time-based sorting - For uploads that share the same object key, +// they are further sorted in ascending order based on the upload initiation +// time. Among uploads with the same key, the one that was initiated first +// will appear before the ones that were initiated later. +// +// - Directory bucket - In the ListMultipartUploads response, the multipart +// uploads aren't sorted lexicographically based on the object keys. +// +// # HTTP Host header syntax +// +// Directory buckets - The HTTP Host header syntax is Bucket_name.s3express-az_id.region.amazonaws.com. // // The following operations are related to ListMultipartUploads: // @@ -6505,6 +7176,8 @@ func (c *S3) ListObjectVersionsRequest(input *ListObjectVersionsInput) (req *req // ListObjectVersions API operation for Amazon Simple Storage Service. // +// This operation is not supported by directory buckets. +// // Returns metadata about all versions of the objects in a bucket. You can also // use request parameters as selection criteria to return metadata about a subset // of all the object versions. @@ -6655,6 +7328,8 @@ func (c *S3) ListObjectsRequest(input *ListObjectsInput) (req *request.Request, // ListObjects API operation for Amazon Simple Storage Service. // +// This operation is not supported by directory buckets. +// // Returns some or all (up to 1,000) of the objects in a bucket. You can use // the request parameters as selection criteria to return a subset of the objects // in a bucket. A 200 OK response can contain valid or invalid XML. Be sure @@ -6815,28 +7490,58 @@ func (c *S3) ListObjectsV2Request(input *ListObjectsV2Input) (req *request.Reque // You can use the request parameters as selection criteria to return a subset // of the objects in a bucket. A 200 OK response can contain valid or invalid // XML. Make sure to design your application to parse the contents of the response -// and handle it appropriately. Objects are returned sorted in an ascending -// order of the respective key names in the list. For more information about -// listing objects, see Listing object keys programmatically (https://docs.aws.amazon.com/AmazonS3/latest/userguide/ListingKeysUsingAPIs.html) +// and handle it appropriately. For more information about listing objects, +// see Listing object keys programmatically (https://docs.aws.amazon.com/AmazonS3/latest/userguide/ListingKeysUsingAPIs.html) +// in the Amazon S3 User Guide. To get a list of your buckets, see ListBuckets +// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBuckets.html). +// +// Directory buckets - For directory buckets, you must make requests for this +// API operation to the Zonal endpoint. These endpoints support virtual-hosted-style +// requests in the format https://bucket_name.s3express-az_id.region.amazonaws.com/key-name +// . Path-style requests are not supported. For more information, see Regional +// and Zonal endpoints (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-Regions-and-Zones.html) // in the Amazon S3 User Guide. // -// To use this operation, you must have READ access to the bucket. +// Permissions // -// To use this action in an Identity and Access Management (IAM) policy, you -// must have permission to perform the s3:ListBucket action. The bucket owner -// has this permission by default and can grant this permission to others. For -// more information about permissions, see Permissions Related to Bucket Subresource -// Operations (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources) -// and Managing Access Permissions to Your Amazon S3 Resources (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html) -// in the Amazon S3 User Guide. +// - General purpose bucket permissions - To use this operation, you must +// have READ access to the bucket. You must have permission to perform the +// s3:ListBucket action. The bucket owner has this permission by default +// and can grant this permission to others. For more information about permissions, +// see Permissions Related to Bucket Subresource Operations (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources) +// and Managing Access Permissions to Your Amazon S3 Resources (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html) +// in the Amazon S3 User Guide. +// +// - Directory bucket permissions - To grant access to this API operation +// on a directory bucket, we recommend that you use the CreateSession (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html) +// API operation for session-based authorization. Specifically, you grant +// the s3express:CreateSession permission to the directory bucket in a bucket +// policy or an IAM identity-based policy. Then, you make the CreateSession +// API call on the bucket to obtain a session token. With the session token +// in your request header, you can make API requests to this operation. After +// the session token expires, you make another CreateSession API call to +// generate a new session token for use. Amazon Web Services CLI or SDKs +// create session and refresh the session token automatically to avoid service +// interruptions when a session expires. For more information about authorization, +// see CreateSession (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html). +// +// Sorting order of returned objects +// +// - General purpose bucket - For general purpose buckets, ListObjectsV2 +// returns objects in lexicographical order based on their key names. +// +// - Directory bucket - For directory buckets, ListObjectsV2 does not return +// objects in lexicographical order. +// +// # HTTP Host header syntax +// +// Directory buckets - The HTTP Host header syntax is Bucket_name.s3express-az_id.region.amazonaws.com. // // This section describes the latest revision of this action. We recommend that // you use this revised API operation for application development. For backward // compatibility, Amazon S3 continues to support the prior version of this API // operation, ListObjects (https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjects.html). // -// To get a list of your buckets, see ListBuckets (https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBuckets.html). -// // The following operations are related to ListObjectsV2: // // - GetObject (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html) @@ -6979,24 +7684,58 @@ func (c *S3) ListPartsRequest(input *ListPartsInput) (req *request.Request, outp // ListParts API operation for Amazon Simple Storage Service. // // Lists the parts that have been uploaded for a specific multipart upload. -// This operation must include the upload ID, which you obtain by sending the -// initiate multipart upload request (see CreateMultipartUpload (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html)). -// This request returns a maximum of 1,000 uploaded parts. The default number -// of parts returned is 1,000 parts. You can restrict the number of parts returned -// by specifying the max-parts request parameter. If your multipart upload consists -// of more than 1,000 parts, the response returns an IsTruncated field with -// the value of true, and a NextPartNumberMarker element. In subsequent ListParts -// requests you can include the part-number-marker query string parameter and -// set its value to the NextPartNumberMarker field value from the previous response. -// -// If the upload was created using a checksum algorithm, you will need to have -// permission to the kms:Decrypt action for the request to succeed. +// +// To use this operation, you must provide the upload ID in the request. You +// obtain this uploadID by sending the initiate multipart upload request through +// CreateMultipartUpload (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html). +// +// The ListParts request returns a maximum of 1,000 uploaded parts. The limit +// of 1,000 parts is also the default value. You can restrict the number of +// parts in a response by specifying the max-parts request parameter. If your +// multipart upload consists of more than 1,000 parts, the response returns +// an IsTruncated field with the value of true, and a NextPartNumberMarker element. +// To list remaining uploaded parts, in subsequent ListParts requests, include +// the part-number-marker query string parameter and set its value to the NextPartNumberMarker +// field value from the previous response. // // For more information on multipart uploads, see Uploading Objects Using Multipart -// Upload (https://docs.aws.amazon.com/AmazonS3/latest/dev/uploadobjusingmpu.html). +// Upload (https://docs.aws.amazon.com/AmazonS3/latest/dev/uploadobjusingmpu.html) +// in the Amazon S3 User Guide. +// +// Directory buckets - For directory buckets, you must make requests for this +// API operation to the Zonal endpoint. These endpoints support virtual-hosted-style +// requests in the format https://bucket_name.s3express-az_id.region.amazonaws.com/key-name +// . Path-style requests are not supported. For more information, see Regional +// and Zonal endpoints (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-Regions-and-Zones.html) +// in the Amazon S3 User Guide. // -// For information on permissions required to use the multipart upload API, -// see Multipart Upload and Permissions (https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuAndPermissions.html). +// Permissions +// +// - General purpose bucket permissions - For information about permissions +// required to use the multipart upload API, see Multipart Upload and Permissions +// (https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuAndPermissions.html) +// in the Amazon S3 User Guide. If the upload was created using server-side +// encryption with Key Management Service (KMS) keys (SSE-KMS) or dual-layer +// server-side encryption with Amazon Web Services KMS keys (DSSE-KMS), you +// must have permission to the kms:Decrypt action for the ListParts request +// to succeed. +// +// - Directory bucket permissions - To grant access to this API operation +// on a directory bucket, we recommend that you use the CreateSession (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html) +// API operation for session-based authorization. Specifically, you grant +// the s3express:CreateSession permission to the directory bucket in a bucket +// policy or an IAM identity-based policy. Then, you make the CreateSession +// API call on the bucket to obtain a session token. With the session token +// in your request header, you can make API requests to this operation. After +// the session token expires, you make another CreateSession API call to +// generate a new session token for use. Amazon Web Services CLI or SDKs +// create session and refresh the session token automatically to avoid service +// interruptions when a session expires. For more information about authorization, +// see CreateSession (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html). +// +// # HTTP Host header syntax +// +// Directory buckets - The HTTP Host header syntax is Bucket_name.s3express-az_id.region.amazonaws.com. // // The following operations are related to ListParts: // @@ -7135,6 +7874,8 @@ func (c *S3) PutBucketAccelerateConfigurationRequest(input *PutBucketAccelerateC // PutBucketAccelerateConfiguration API operation for Amazon Simple Storage Service. // +// This operation is not supported by directory buckets. +// // Sets the accelerate configuration of an existing bucket. Amazon S3 Transfer // Acceleration is a bucket-level feature that enables you to perform faster // data transfers to Amazon S3. @@ -7247,9 +7988,11 @@ func (c *S3) PutBucketAclRequest(input *PutBucketAclInput) (req *request.Request // PutBucketAcl API operation for Amazon Simple Storage Service. // +// This operation is not supported by directory buckets. +// // Sets the permissions on an existing bucket using access control lists (ACL). // For more information, see Using ACLs (https://docs.aws.amazon.com/AmazonS3/latest/dev/S3_ACLs_UsingACLs.html). -// To set the ACL of a bucket, you must have WRITE_ACP permission. +// To set the ACL of a bucket, you must have the WRITE_ACP permission. // // You can use one of the following two ways to set a bucket's permissions: // @@ -7415,6 +8158,8 @@ func (c *S3) PutBucketAnalyticsConfigurationRequest(input *PutBucketAnalyticsCon // PutBucketAnalyticsConfiguration API operation for Amazon Simple Storage Service. // +// This operation is not supported by directory buckets. +// // Sets an analytics configuration for the bucket (specified by the analytics // configuration ID). You can have up to 1,000 analytics configurations per // bucket. @@ -7537,6 +8282,8 @@ func (c *S3) PutBucketCorsRequest(input *PutBucketCorsInput) (req *request.Reque // PutBucketCors API operation for Amazon Simple Storage Service. // +// This operation is not supported by directory buckets. +// // Sets the cors configuration for your bucket. If the configuration exists, // Amazon S3 replaces it. // @@ -7657,6 +8404,8 @@ func (c *S3) PutBucketEncryptionRequest(input *PutBucketEncryptionInput) (req *r // PutBucketEncryption API operation for Amazon Simple Storage Service. // +// This operation is not supported by directory buckets. +// // This action uses the encryption subresource to configure default encryption // and Amazon S3 Bucket Keys for an existing bucket. // @@ -7759,6 +8508,8 @@ func (c *S3) PutBucketIntelligentTieringConfigurationRequest(input *PutBucketInt // PutBucketIntelligentTieringConfiguration API operation for Amazon Simple Storage Service. // +// This operation is not supported by directory buckets. +// // Puts a S3 Intelligent-Tiering configuration to the specified bucket. You // can have up to 1,000 S3 Intelligent-Tiering configurations per bucket. // @@ -7884,6 +8635,8 @@ func (c *S3) PutBucketInventoryConfigurationRequest(input *PutBucketInventoryCon // PutBucketInventoryConfiguration API operation for Amazon Simple Storage Service. // +// This operation is not supported by directory buckets. +// // This implementation of the PUT action adds an inventory configuration (identified // by the inventory ID) to the bucket. You can have up to 1,000 inventory configurations // per bucket. @@ -8038,6 +8791,8 @@ func (c *S3) PutBucketLifecycleRequest(input *PutBucketLifecycleInput) (req *req // PutBucketLifecycle API operation for Amazon Simple Storage Service. // +// This operation is not supported by directory buckets. +// // For an updated version of this API, see PutBucketLifecycleConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycleConfiguration.html). // This version has been deprecated. Existing lifecycle configurations will // work. For new lifecycle configurations, use the updated API. @@ -8167,6 +8922,8 @@ func (c *S3) PutBucketLifecycleConfigurationRequest(input *PutBucketLifecycleCon // PutBucketLifecycleConfiguration API operation for Amazon Simple Storage Service. // +// This operation is not supported by directory buckets. +// // Creates a new lifecycle configuration for the bucket or replaces an existing // lifecycle configuration. Keep in mind that this will overwrite an existing // lifecycle configuration, so if you want to retain any configuration details, @@ -8310,6 +9067,8 @@ func (c *S3) PutBucketLoggingRequest(input *PutBucketLoggingInput) (req *request // PutBucketLogging API operation for Amazon Simple Storage Service. // +// This operation is not supported by directory buckets. +// // Set the logging parameters for a bucket and to specify permissions for who // can view and modify the logging parameters. All logs are saved to buckets // in the same Amazon Web Services Region as the source bucket. To set the logging @@ -8437,6 +9196,8 @@ func (c *S3) PutBucketMetricsConfigurationRequest(input *PutBucketMetricsConfigu // PutBucketMetricsConfiguration API operation for Amazon Simple Storage Service. // +// This operation is not supported by directory buckets. +// // Sets a metrics configuration (specified by the metrics configuration ID) // for the bucket. You can have up to 1,000 metrics configurations per bucket. // If you're updating an existing metrics configuration, note that this is a @@ -8547,6 +9308,8 @@ func (c *S3) PutBucketNotificationRequest(input *PutBucketNotificationInput) (re // PutBucketNotification API operation for Amazon Simple Storage Service. // +// This operation is not supported by directory buckets. +// // No longer used, see the PutBucketNotificationConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketNotificationConfiguration.html) // operation. // @@ -8626,6 +9389,8 @@ func (c *S3) PutBucketNotificationConfigurationRequest(input *PutBucketNotificat // PutBucketNotificationConfiguration API operation for Amazon Simple Storage Service. // +// This operation is not supported by directory buckets. +// // Enables notifications of specified events for a bucket. For more information // about event notifications, see Configuring Event Notifications (https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html). // @@ -8755,6 +9520,8 @@ func (c *S3) PutBucketOwnershipControlsRequest(input *PutBucketOwnershipControls // PutBucketOwnershipControls API operation for Amazon Simple Storage Service. // +// This operation is not supported by directory buckets. +// // Creates or modifies OwnershipControls for an Amazon S3 bucket. To use this // operation, you must have the s3:PutBucketOwnershipControls permission. For // more information about Amazon S3 permissions, see Specifying permissions @@ -8845,11 +9612,21 @@ func (c *S3) PutBucketPolicyRequest(input *PutBucketPolicyInput) (req *request.R // PutBucketPolicy API operation for Amazon Simple Storage Service. // -// Applies an Amazon S3 bucket policy to an Amazon S3 bucket. If you are using -// an identity other than the root user of the Amazon Web Services account that -// owns the bucket, the calling identity must have the PutBucketPolicy permissions -// on the specified bucket and belong to the bucket owner's account in order -// to use this operation. +// Applies an Amazon S3 bucket policy to an Amazon S3 bucket. +// +// Directory buckets - For directory buckets, you must make requests for this +// API operation to the Regional endpoint. These endpoints support path-style +// requests in the format https://s3express-control.region_code.amazonaws.com/bucket-name +// . Virtual-hosted-style requests aren't supported. For more information, see +// Regional and Zonal endpoints (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-Regions-and-Zones.html) +// in the Amazon S3 User Guide. +// +// # Permissions +// +// If you are using an identity other than the root user of the Amazon Web Services +// account that owns the bucket, the calling identity must both have the PutBucketPolicy +// permissions on the specified bucket and belong to the bucket owner's account +// in order to use this operation. // // If you don't have PutBucketPolicy permissions, Amazon S3 returns a 403 Access // Denied error. If you have the correct permissions, but you're not using an @@ -8864,7 +9641,33 @@ func (c *S3) PutBucketPolicyRequest(input *PutBucketPolicyInput) (req *request.R // these API actions by VPC endpoint policies and Amazon Web Services Organizations // policies. // -// For more information, see Bucket policy examples (https://docs.aws.amazon.com/AmazonS3/latest/userguide/example-bucket-policies.html). +// - General purpose bucket permissions - The s3:PutBucketPolicy permission +// is required in a policy. For more information about general purpose buckets +// bucket policies, see Using Bucket Policies and User Policies (https://docs.aws.amazon.com/AmazonS3/latest/dev/using-iam-policies.html) +// in the Amazon S3 User Guide. +// +// - Directory bucket permissions - To grant access to this API operation, +// you must have the s3express:PutBucketPolicy permission in an IAM identity-based +// policy instead of a bucket policy. Cross-account access to this API operation +// isn't supported. This operation can only be performed by the Amazon Web +// Services account that owns the resource. For more information about directory +// bucket policies and permissions, see Amazon Web Services Identity and +// Access Management (IAM) for S3 Express One Zone (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam.html) +// in the Amazon S3 User Guide. +// +// # Example bucket policies +// +// General purpose buckets example bucket policies - See Bucket policy examples +// (https://docs.aws.amazon.com/AmazonS3/latest/userguide/example-bucket-policies.html) +// in the Amazon S3 User Guide. +// +// Directory bucket example bucket policies - See Example bucket policies for +// S3 Express One Zone (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam-example-bucket-policies.html) +// in the Amazon S3 User Guide. +// +// # HTTP Host header syntax +// +// Directory buckets - The HTTP Host header syntax is s3express-control.region.amazonaws.com. // // The following operations are related to PutBucketPolicy: // @@ -8948,6 +9751,8 @@ func (c *S3) PutBucketReplicationRequest(input *PutBucketReplicationInput) (req // PutBucketReplication API operation for Amazon Simple Storage Service. // +// This operation is not supported by directory buckets. +// // Creates a replication configuration or replaces an existing one. For more // information, see Replication (https://docs.aws.amazon.com/AmazonS3/latest/dev/replication.html) // in the Amazon S3 User Guide. @@ -9087,6 +9892,8 @@ func (c *S3) PutBucketRequestPaymentRequest(input *PutBucketRequestPaymentInput) // PutBucketRequestPayment API operation for Amazon Simple Storage Service. // +// This operation is not supported by directory buckets. +// // Sets the request payment configuration for a bucket. By default, the bucket // owner pays for downloads from the bucket. This configuration parameter enables // the bucket owner (only) to specify that the person requesting the download @@ -9175,6 +9982,8 @@ func (c *S3) PutBucketTaggingRequest(input *PutBucketTaggingInput) (req *request // PutBucketTagging API operation for Amazon Simple Storage Service. // +// This operation is not supported by directory buckets. +// // Sets the tags for a bucket. // // Use tags to organize your Amazon Web Services bill to reflect your own cost @@ -9294,6 +10103,8 @@ func (c *S3) PutBucketVersioningRequest(input *PutBucketVersioningInput) (req *r // PutBucketVersioning API operation for Amazon Simple Storage Service. // +// This operation is not supported by directory buckets. +// // Sets the versioning state of an existing bucket. // // You can set the versioning state with one of the following values: @@ -9405,6 +10216,8 @@ func (c *S3) PutBucketWebsiteRequest(input *PutBucketWebsiteInput) (req *request // PutBucketWebsite API operation for Amazon Simple Storage Service. // +// This operation is not supported by directory buckets. +// // Sets the configuration of the website that is specified in the website subresource. // To configure a bucket as a website, you can add this subresource on the bucket // with website configuration information such as the file name of the index @@ -9545,87 +10358,83 @@ func (c *S3) PutObjectRequest(input *PutObjectInput) (req *request.Request, outp // PutObject API operation for Amazon Simple Storage Service. // -// Adds an object to a bucket. You must have WRITE permissions on a bucket to -// add an object to it. -// -// Amazon S3 never adds partial objects; if you receive a success response, -// Amazon S3 added the entire object to the bucket. You cannot use PutObject -// to only update a single piece of metadata for an existing object. You must -// put the entire object with updated metadata if you want to update some values. -// -// Amazon S3 is a distributed system. If it receives multiple write requests -// for the same object simultaneously, it overwrites all but the last object -// written. To prevent objects from being deleted or overwritten, you can use -// Amazon S3 Object Lock (https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lock.html). -// -// To ensure that data is not corrupted traversing the network, use the Content-MD5 -// header. When you use this header, Amazon S3 checks the object against the -// provided MD5 value and, if they do not match, returns an error. Additionally, -// you can calculate the MD5 while putting an object to Amazon S3 and compare -// the returned ETag to the calculated MD5 value. -// -// - To successfully complete the PutObject request, you must have the s3:PutObject -// in your IAM permissions. +// Adds an object to a bucket. // -// - To successfully change the objects acl of your PutObject request, you -// must have the s3:PutObjectAcl in your IAM permissions. +// - Amazon S3 never adds partial objects; if you receive a success response, +// Amazon S3 added the entire object to the bucket. You cannot use PutObject +// to only update a single piece of metadata for an existing object. You +// must put the entire object with updated metadata if you want to update +// some values. // -// - To successfully set the tag-set with your PutObject request, you must -// have the s3:PutObjectTagging in your IAM permissions. +// - If your bucket uses the bucket owner enforced setting for Object Ownership, +// ACLs are disabled and no longer affect permissions. All objects written +// to the bucket by any account will be owned by the bucket owner. // -// - The Content-MD5 header is required for any request to upload an object -// with a retention period configured using Amazon S3 Object Lock. For more -// information about Amazon S3 Object Lock, see Amazon S3 Object Lock Overview -// (https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock-overview.html) +// - Directory buckets - For directory buckets, you must make requests for +// this API operation to the Zonal endpoint. These endpoints support virtual-hosted-style +// requests in the format https://bucket_name.s3express-az_id.region.amazonaws.com/key-name +// . Path-style requests are not supported. For more information, see Regional +// and Zonal endpoints (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-Regions-and-Zones.html) // in the Amazon S3 User Guide. // -// You have four mutually exclusive options to protect data using server-side -// encryption in Amazon S3, depending on how you choose to manage the encryption -// keys. Specifically, the encryption key options are Amazon S3 managed keys -// (SSE-S3), Amazon Web Services KMS keys (SSE-KMS or DSSE-KMS), and customer-provided -// keys (SSE-C). Amazon S3 encrypts data with server-side encryption by using -// Amazon S3 managed keys (SSE-S3) by default. You can optionally tell Amazon -// S3 to encrypt data at rest by using server-side encryption with other key -// options. For more information, see Using Server-Side Encryption (https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingServerSideEncryption.html). -// -// When adding a new object, you can use headers to grant ACL-based permissions -// to individual Amazon Web Services accounts or to predefined groups defined -// by Amazon S3. These permissions are then added to the ACL on the object. -// By default, all objects are private. Only the owner has full access control. -// For more information, see Access Control List (ACL) Overview (https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html) -// and Managing ACLs Using the REST API (https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-using-rest-api.html). -// -// If the bucket that you're uploading objects to uses the bucket owner enforced -// setting for S3 Object Ownership, ACLs are disabled and no longer affect permissions. -// Buckets that use this setting only accept PUT requests that don't specify -// an ACL or PUT requests that specify bucket owner full control ACLs, such -// as the bucket-owner-full-control canned ACL or an equivalent form of this -// ACL expressed in the XML format. PUT requests that contain other ACLs (for -// example, custom grants to certain Amazon Web Services accounts) fail and -// return a 400 error with the error code AccessControlListNotSupported. For -// more information, see Controlling ownership of objects and disabling ACLs -// (https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html) -// in the Amazon S3 User Guide. -// -// If your bucket uses the bucket owner enforced setting for Object Ownership, -// all objects written to the bucket by any account will be owned by the bucket -// owner. -// -// By default, Amazon S3 uses the STANDARD Storage Class to store newly created -// objects. The STANDARD storage class provides high durability and high availability. -// Depending on performance needs, you can specify a different Storage Class. -// Amazon S3 on Outposts only uses the OUTPOSTS Storage Class. For more information, -// see Storage Classes (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html) -// in the Amazon S3 User Guide. -// -// If you enable versioning for a bucket, Amazon S3 automatically generates -// a unique version ID for the object being stored. Amazon S3 returns this ID -// in the response. When you enable versioning for a bucket, if Amazon S3 receives -// multiple write requests for the same object simultaneously, it stores all -// of the objects. For more information about versioning, see Adding Objects -// to Versioning-Enabled Buckets (https://docs.aws.amazon.com/AmazonS3/latest/dev/AddingObjectstoVersioningEnabledBuckets.html). -// For information about returning the versioning state of a bucket, see GetBucketVersioning -// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketVersioning.html). +// Amazon S3 is a distributed system. If it receives multiple write requests +// for the same object simultaneously, it overwrites all but the last object +// written. However, Amazon S3 provides features that can modify this behavior: +// +// - S3 Object Lock - To prevent objects from being deleted or overwritten, +// you can use Amazon S3 Object Lock (https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lock.html) +// in the Amazon S3 User Guide. This functionality is not supported for directory +// buckets. +// +// - S3 Versioning - When you enable versioning for a bucket, if Amazon S3 +// receives multiple write requests for the same object simultaneously, it +// stores all versions of the objects. For each write request that is made +// to the same object, Amazon S3 automatically generates a unique version +// ID of that object being stored in Amazon S3. You can retrieve, replace, +// or delete any version of the object. For more information about versioning, +// see Adding Objects to Versioning-Enabled Buckets (https://docs.aws.amazon.com/AmazonS3/latest/dev/AddingObjectstoVersioningEnabledBuckets.html) +// in the Amazon S3 User Guide. For information about returning the versioning +// state of a bucket, see GetBucketVersioning (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketVersioning.html). +// This functionality is not supported for directory buckets. +// +// Permissions +// +// - General purpose bucket permissions - The following permissions are required +// in your policies when your PutObject request includes specific headers. +// s3:PutObject - To successfully complete the PutObject request, you must +// always have the s3:PutObject permission on a bucket to add an object to +// it. s3:PutObjectAcl - To successfully change the objects ACL of your PutObject +// request, you must have the s3:PutObjectAcl. s3:PutObjectTagging - To successfully +// set the tag-set with your PutObject request, you must have the s3:PutObjectTagging. +// +// - Directory bucket permissions - To grant access to this API operation +// on a directory bucket, we recommend that you use the CreateSession (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html) +// API operation for session-based authorization. Specifically, you grant +// the s3express:CreateSession permission to the directory bucket in a bucket +// policy or an IAM identity-based policy. Then, you make the CreateSession +// API call on the bucket to obtain a session token. With the session token +// in your request header, you can make API requests to this operation. After +// the session token expires, you make another CreateSession API call to +// generate a new session token for use. Amazon Web Services CLI or SDKs +// create session and refresh the session token automatically to avoid service +// interruptions when a session expires. For more information about authorization, +// see CreateSession (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html). +// +// Data integrity with Content-MD5 +// +// - General purpose bucket - To ensure that data is not corrupted traversing +// the network, use the Content-MD5 header. When you use this header, Amazon +// S3 checks the object against the provided MD5 value and, if they do not +// match, Amazon S3 returns an error. Alternatively, when the object's ETag +// is its MD5 digest, you can calculate the MD5 while putting the object +// to Amazon S3 and compare the returned ETag to the calculated MD5 value. +// +// - Directory bucket - This functionality is not supported for directory +// buckets. +// +// # HTTP Host header syntax +// +// Directory buckets - The HTTP Host header syntax is Bucket_name.s3express-az_id.region.amazonaws.com. // // For more information about related Amazon S3 APIs, see the following: // @@ -9708,13 +10517,15 @@ func (c *S3) PutObjectAclRequest(input *PutObjectAclInput) (req *request.Request // PutObjectAcl API operation for Amazon Simple Storage Service. // +// This operation is not supported by directory buckets. +// // Uses the acl subresource to set the access control list (ACL) permissions -// for a new or existing object in an S3 bucket. You must have WRITE_ACP permission -// to set the ACL of an object. For more information, see What permissions can -// I grant? (https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#permissions) +// for a new or existing object in an S3 bucket. You must have the WRITE_ACP +// permission to set the ACL of an object. For more information, see What permissions +// can I grant? (https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#permissions) // in the Amazon S3 User Guide. // -// This action is not supported by Amazon S3 on Outposts. +// This functionality is not supported for Amazon S3 on Outposts. // // Depending on your application needs, you can choose to set the ACL on an // object using either the request body or the headers. For example, if you @@ -9883,10 +10694,12 @@ func (c *S3) PutObjectLegalHoldRequest(input *PutObjectLegalHoldInput) (req *req // PutObjectLegalHold API operation for Amazon Simple Storage Service. // +// This operation is not supported by directory buckets. +// // Applies a legal hold configuration to the specified object. For more information, // see Locking Objects (https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html). // -// This action is not supported by Amazon S3 on Outposts. +// This functionality is not supported for Amazon S3 on Outposts. // // 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 @@ -9963,6 +10776,8 @@ func (c *S3) PutObjectLockConfigurationRequest(input *PutObjectLockConfiguration // PutObjectLockConfiguration API operation for Amazon Simple Storage Service. // +// This operation is not supported by directory buckets. +// // Places an Object Lock configuration on the specified bucket. The rule specified // in the Object Lock configuration will be applied by default to every new // object placed in the specified bucket. For more information, see Locking @@ -10051,13 +10866,15 @@ func (c *S3) PutObjectRetentionRequest(input *PutObjectRetentionInput) (req *req // PutObjectRetention API operation for Amazon Simple Storage Service. // +// This operation is not supported by directory buckets. +// // Places an Object Retention configuration on an object. For more information, // see Locking Objects (https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html). // Users or accounts require the s3:PutObjectRetention permission in order to // place an Object Retention configuration on objects. Bypassing a Governance // Retention configuration requires the s3:BypassGovernanceRetention permission. // -// This action is not supported by Amazon S3 on Outposts. +// This functionality is not supported for Amazon S3 on Outposts. // // 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 @@ -10134,6 +10951,8 @@ func (c *S3) PutObjectTaggingRequest(input *PutObjectTaggingInput) (req *request // PutObjectTagging API operation for Amazon Simple Storage Service. // +// This operation is not supported by directory buckets. +// // Sets the supplied tag-set to an object that already exists in a bucket. A // tag is a key-value pair. For more information, see Object Tagging (https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-tagging.html). // @@ -10250,6 +11069,8 @@ func (c *S3) PutPublicAccessBlockRequest(input *PutPublicAccessBlockInput) (req // PutPublicAccessBlock API operation for Amazon Simple Storage Service. // +// This operation is not supported by directory buckets. +// // Creates or modifies the PublicAccessBlock configuration for an Amazon S3 // bucket. To use this operation, you must have the s3:PutBucketPublicAccessBlock // permission. For more information about Amazon S3 permissions, see Specifying @@ -10346,9 +11167,11 @@ func (c *S3) RestoreObjectRequest(input *RestoreObjectInput) (req *request.Reque // RestoreObject API operation for Amazon Simple Storage Service. // +// This operation is not supported by directory buckets. +// // # Restores an archived copy of an object back into Amazon S3 // -// This action is not supported by Amazon S3 on Outposts. +// This functionality is not supported for Amazon S3 on Outposts. // // This action performs the following types of requests: // @@ -10608,6 +11431,8 @@ func (c *S3) SelectObjectContentRequest(input *SelectObjectContentInput) (req *r // SelectObjectContent API operation for Amazon Simple Storage Service. // +// This operation is not supported by directory buckets. +// // This action filters the contents of an Amazon S3 object based on a simple // structured query language (SQL) statement. In the request, along with the // SQL expression, you must also specify a data serialization format (JSON, @@ -10616,7 +11441,7 @@ func (c *S3) SelectObjectContentRequest(input *SelectObjectContentInput) (req *r // SQL expression. You must also specify the data serialization format for the // response. // -// This action is not supported by Amazon S3 on Outposts. +// This functionality is not supported for Amazon S3 on Outposts. // // For more information about Amazon S3 Select, see Selecting Content from Objects // (https://docs.aws.amazon.com/AmazonS3/latest/dev/selecting-content-from-objects.html) @@ -10625,7 +11450,7 @@ func (c *S3) SelectObjectContentRequest(input *SelectObjectContentInput) (req *r // // # Permissions // -// You must have s3:GetObject permission for this operation. Amazon S3 Select +// You must have the s3:GetObject permission for this operation. Amazon S3 Select // does not support anonymous access. For more information about permissions, // see Specifying Permissions in a Policy (https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html) // in the Amazon S3 User Guide. @@ -10938,15 +11763,15 @@ func (c *S3) UploadPartRequest(input *UploadPartInput) (req *request.Request, ou // // Uploads a part in a multipart upload. // -// In this operation, you provide part data in your request. However, you have -// an option to specify your existing Amazon S3 object as a data source for -// the part you are uploading. To upload a part from an existing object, you -// use the UploadPartCopy (https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html) +// In this operation, you provide new data as a part of an object in your request. +// However, you have an option to specify your existing Amazon S3 object as +// a data source for the part you are uploading. To upload a part from an existing +// object, you use the UploadPartCopy (https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html) // operation. // // You must initiate a multipart upload (see CreateMultipartUpload (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html)) // before you can upload any part. In response to your initiate request, Amazon -// S3 returns an upload ID, a unique identifier, that you must include in your +// S3 returns an upload ID, a unique identifier that you must include in your // upload part request. // // Part numbers can be any number from 1 to 10,000, inclusive. A part number @@ -10958,18 +11783,8 @@ func (c *S3) UploadPartRequest(input *UploadPartInput) (req *request.Request, ou // upload specifications, see Multipart upload limits (https://docs.aws.amazon.com/AmazonS3/latest/userguide/qfacts.html) // in the Amazon S3 User Guide. // -// To ensure that data is not corrupted when traversing the network, specify -// the Content-MD5 header in the upload part request. Amazon S3 checks the part -// data against the provided MD5 value. If they do not match, Amazon S3 returns -// an error. -// -// If the upload request is signed with Signature Version 4, then Amazon Web -// Services S3 uses the x-amz-content-sha256 header as a checksum instead of -// Content-MD5. For more information see Authenticating Requests: Using the -// Authorization Header (Amazon Web Services Signature Version 4) (https://docs.aws.amazon.com/AmazonS3/latest/API/sigv4-auth-using-authorization-header.html). -// -// Note: After you initiate multipart upload and upload one or more parts, you -// must either complete or abort multipart upload in order to stop getting charged +// After you initiate multipart upload and upload one or more parts, you must +// either complete or abort multipart upload in order to stop getting charged // for storage of the uploaded parts. Only after you either complete or abort // multipart upload, Amazon S3 frees up the parts storage and stops charging // you for the parts storage. @@ -10978,50 +11793,88 @@ func (c *S3) UploadPartRequest(input *UploadPartInput) (req *request.Request, ou // (https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview.html) in the // Amazon S3 User Guide . // -// For information on the permissions required to use the multipart upload API, -// go to Multipart Upload and Permissions (https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuAndPermissions.html) -// in the Amazon S3 User Guide. -// -// Server-side encryption is for data encryption at rest. Amazon S3 encrypts -// your data as it writes it to disks in its data centers and decrypts it when -// you access it. You have three mutually exclusive options to protect data -// using server-side encryption in Amazon S3, depending on how you choose to -// manage the encryption keys. Specifically, the encryption key options are -// Amazon S3 managed keys (SSE-S3), Amazon Web Services KMS keys (SSE-KMS), -// and Customer-Provided Keys (SSE-C). Amazon S3 encrypts data with server-side -// encryption using Amazon S3 managed keys (SSE-S3) by default. You can optionally -// tell Amazon S3 to encrypt data at rest using server-side encryption with -// other key options. The option you use depends on whether you want to use -// KMS keys (SSE-KMS) or provide your own encryption key (SSE-C). If you choose -// to provide your own encryption key, the request headers you provide in the -// request must match the headers you used in the request to initiate the upload -// by using CreateMultipartUpload (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html). -// For more information, go to Using Server-Side Encryption (https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingServerSideEncryption.html) +// Directory buckets - For directory buckets, you must make requests for this +// API operation to the Zonal endpoint. These endpoints support virtual-hosted-style +// requests in the format https://bucket_name.s3express-az_id.region.amazonaws.com/key-name +// . Path-style requests are not supported. For more information, see Regional +// and Zonal endpoints (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-Regions-and-Zones.html) // in the Amazon S3 User Guide. // -// Server-side encryption is supported by the S3 Multipart Upload actions. Unless -// you are using a customer-provided encryption key (SSE-C), you don't need -// to specify the encryption parameters in each UploadPart request. Instead, -// you only need to specify the server-side encryption parameters in the initial -// Initiate Multipart request. For more information, see CreateMultipartUpload -// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html). +// Permissions // -// If you requested server-side encryption using a customer-provided encryption -// key (SSE-C) in your initiate multipart upload request, you must provide identical -// encryption information in each part upload using the following headers. +// - General purpose bucket permissions - For information on the permissions +// required to use the multipart upload API, see Multipart Upload and Permissions +// (https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuAndPermissions.html) +// in the Amazon S3 User Guide. // -// - x-amz-server-side-encryption-customer-algorithm +// - Directory bucket permissions - To grant access to this API operation +// on a directory bucket, we recommend that you use the CreateSession (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html) +// API operation for session-based authorization. Specifically, you grant +// the s3express:CreateSession permission to the directory bucket in a bucket +// policy or an IAM identity-based policy. Then, you make the CreateSession +// API call on the bucket to obtain a session token. With the session token +// in your request header, you can make API requests to this operation. After +// the session token expires, you make another CreateSession API call to +// generate a new session token for use. Amazon Web Services CLI or SDKs +// create session and refresh the session token automatically to avoid service +// interruptions when a session expires. For more information about authorization, +// see CreateSession (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html). +// +// # Data integrity +// +// General purpose bucket - To ensure that data is not corrupted traversing +// the network, specify the Content-MD5 header in the upload part request. Amazon +// S3 checks the part data against the provided MD5 value. If they do not match, +// Amazon S3 returns an error. If the upload request is signed with Signature +// Version 4, then Amazon Web Services S3 uses the x-amz-content-sha256 header +// as a checksum instead of Content-MD5. For more information see Authenticating +// Requests: Using the Authorization Header (Amazon Web Services Signature Version +// 4) (https://docs.aws.amazon.com/AmazonS3/latest/API/sigv4-auth-using-authorization-header.html). +// +// Directory buckets - MD5 is not supported by directory buckets. You can use +// checksum algorithms to check object integrity. +// +// Encryption +// +// - General purpose bucket - Server-side encryption is for data encryption +// at rest. Amazon S3 encrypts your data as it writes it to disks in its +// data centers and decrypts it when you access it. You have mutually exclusive +// options to protect data using server-side encryption in Amazon S3, depending +// on how you choose to manage the encryption keys. Specifically, the encryption +// key options are Amazon S3 managed keys (SSE-S3), Amazon Web Services KMS +// keys (SSE-KMS), and Customer-Provided Keys (SSE-C). Amazon S3 encrypts +// data with server-side encryption using Amazon S3 managed keys (SSE-S3) +// by default. You can optionally tell Amazon S3 to encrypt data at rest +// using server-side encryption with other key options. The option you use +// depends on whether you want to use KMS keys (SSE-KMS) or provide your +// own encryption key (SSE-C). Server-side encryption is supported by the +// S3 Multipart Upload operations. Unless you are using a customer-provided +// encryption key (SSE-C), you don't need to specify the encryption parameters +// in each UploadPart request. Instead, you only need to specify the server-side +// encryption parameters in the initial Initiate Multipart request. For more +// information, see CreateMultipartUpload (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html). +// If you request server-side encryption using a customer-provided encryption +// key (SSE-C) in your initiate multipart upload request, you must provide +// identical encryption information in each part upload using the following +// request headers. x-amz-server-side-encryption-customer-algorithm x-amz-server-side-encryption-customer-key +// x-amz-server-side-encryption-customer-key-MD5 +// +// - Directory bucket - For directory buckets, only server-side encryption +// with Amazon S3 managed keys (SSE-S3) (AES256) is supported. +// +// For more information, see Using Server-Side Encryption (https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingServerSideEncryption.html) +// in the Amazon S3 User Guide. // -// - x-amz-server-side-encryption-customer-key +// Special errors // -// - x-amz-server-side-encryption-customer-key-MD5 +// - Error Code: NoSuchUpload Description: The specified multipart upload +// does not exist. The upload ID might be invalid, or the multipart upload +// might have been aborted or completed. HTTP Status Code: 404 Not Found +// SOAP Fault Code Prefix: Client // -// UploadPart has the following special errors: +// # HTTP Host header syntax // -// - Code: NoSuchUpload Cause: The specified multipart upload does not exist. -// The upload ID might be invalid, or the multipart upload might have been -// aborted or completed. HTTP Status Code: 404 Not Found SOAP Fault Code -// Prefix: Client +// Directory buckets - The HTTP Host header syntax is Bucket_name.s3express-az_id.region.amazonaws.com. // // The following operations are related to UploadPart: // @@ -11106,81 +11959,105 @@ func (c *S3) UploadPartCopyRequest(input *UploadPartCopyInput) (req *request.Req // UploadPartCopy API operation for Amazon Simple Storage Service. // -// Uploads a part by copying data from an existing object as data source. You -// specify the data source by adding the request header x-amz-copy-source in -// your request and a byte range by adding the request header x-amz-copy-source-range +// Uploads a part by copying data from an existing object as data source. To +// specify the data source, you add the request header x-amz-copy-source in +// your request. To specify a byte range, you add the request header x-amz-copy-source-range // in your request. // // For information about maximum and minimum part sizes and other multipart // upload specifications, see Multipart upload limits (https://docs.aws.amazon.com/AmazonS3/latest/userguide/qfacts.html) // in the Amazon S3 User Guide. // -// Instead of using an existing object as part data, you might use the UploadPart -// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html) action -// and provide data in your request. +// Instead of copying data from an existing object as part data, you might use +// the UploadPart (https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html) +// action to upload new data as a part of an object in your request. // // You must initiate a multipart upload before you can upload any part. In response -// to your initiate request. Amazon S3 returns a unique identifier, the upload -// ID, that you must include in your upload part request. +// to your initiate request, Amazon S3 returns the upload ID, a unique identifier +// that you must include in your upload part request. +// +// For conceptual information about multipart uploads, see Uploading Objects +// Using Multipart Upload (https://docs.aws.amazon.com/AmazonS3/latest/dev/uploadobjusingmpu.html) +// in the Amazon S3 User Guide. For information about copying objects using +// a single atomic action vs. a multipart upload, see Operations on Objects +// (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectOperations.html) in +// the Amazon S3 User Guide. // -// For more information about using the UploadPartCopy operation, see the following: +// Directory buckets - For directory buckets, you must make requests for this +// API operation to the Zonal endpoint. These endpoints support virtual-hosted-style +// requests in the format https://bucket_name.s3express-az_id.region.amazonaws.com/key-name +// . Path-style requests are not supported. For more information, see Regional +// and Zonal endpoints (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-Regions-and-Zones.html) +// in the Amazon S3 User Guide. // -// - For conceptual information about multipart uploads, see Uploading Objects -// Using Multipart Upload (https://docs.aws.amazon.com/AmazonS3/latest/dev/uploadobjusingmpu.html) -// in the Amazon S3 User Guide. +// # Authentication and authorization // -// - For information about permissions required to use the multipart upload -// API, see Multipart Upload and Permissions (https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuAndPermissions.html) -// in the Amazon S3 User Guide. +// All UploadPartCopy requests must be authenticated and signed by using IAM +// credentials (access key ID and secret access key for the IAM identities). +// All headers with the x-amz- prefix, including x-amz-copy-source, must be +// signed. For more information, see REST Authentication (https://docs.aws.amazon.com/AmazonS3/latest/dev/RESTAuthentication.html). // -// - For information about copying objects using a single atomic action vs. -// a multipart upload, see Operations on Objects (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectOperations.html) -// in the Amazon S3 User Guide. +// Directory buckets - You must use IAM credentials to authenticate and authorize +// your access to the UploadPartCopy API operation, instead of using the temporary +// security credentials through the CreateSession API operation. // -// - For information about using server-side encryption with customer-provided -// encryption keys with the UploadPartCopy operation, see CopyObject (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html) -// and UploadPart (https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html). +// Amazon Web Services CLI or SDKs handles authentication and authorization +// on your behalf. // -// Note the following additional considerations about the request headers x-amz-copy-source-if-match, -// x-amz-copy-source-if-none-match, x-amz-copy-source-if-unmodified-since, and -// x-amz-copy-source-if-modified-since: +// # Permissions // -// - Consideration 1 - If both of the x-amz-copy-source-if-match and x-amz-copy-source-if-unmodified-since -// headers are present in the request as follows: x-amz-copy-source-if-match -// condition evaluates to true, and; x-amz-copy-source-if-unmodified-since -// condition evaluates to false; Amazon S3 returns 200 OK and copies the -// data. +// You must have READ access to the source object and WRITE access to the destination +// bucket. // -// - Consideration 2 - If both of the x-amz-copy-source-if-none-match and -// x-amz-copy-source-if-modified-since headers are present in the request -// as follows: x-amz-copy-source-if-none-match condition evaluates to false, -// and; x-amz-copy-source-if-modified-since condition evaluates to true; -// Amazon S3 returns 412 Precondition Failed response code. +// - General purpose bucket permissions - You must have the permissions in +// a policy based on the bucket types of your source bucket and destination +// bucket in an UploadPartCopy operation. If the source object is in a general +// purpose bucket, you must have the s3:GetObject permission to read the +// source object that is being copied. If the destination bucket is a general +// purpose bucket, you must have the s3:PubObject permission to write the +// object copy to the destination bucket. For information about permissions +// required to use the multipart upload API, see Multipart Upload and Permissions +// (https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuAndPermissions.html) +// in the Amazon S3 User Guide. // -// # Versioning +// - Directory bucket permissions - You must have permissions in a bucket +// policy or an IAM identity-based policy based on the source and destination +// bucket types in an UploadPartCopy operation. If the source object that +// you want to copy is in a directory bucket, you must have the s3express:CreateSession +// permission in the Action element of a policy to read the object . By default, +// the session is in the ReadWrite mode. If you want to restrict the access, +// you can explicitly set the s3express:SessionMode condition key to ReadOnly +// on the copy source bucket. If the copy destination is a directory bucket, +// you must have the s3express:CreateSession permission in the Action element +// of a policy to write the object to the destination. The s3express:SessionMode +// condition key cannot be set to ReadOnly on the copy destination. For example +// policies, see Example bucket policies for S3 Express One Zone (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam-example-bucket-policies.html) +// and Amazon Web Services Identity and Access Management (IAM) identity-based +// policies for S3 Express One Zone (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam-identity-policies.html) +// in the Amazon S3 User Guide. // -// If your bucket has versioning enabled, you could have multiple versions of -// the same object. By default, x-amz-copy-source identifies the current version -// of the object to copy. If the current version is a delete marker and you -// don't specify a versionId in the x-amz-copy-source, Amazon S3 returns a 404 -// error, because the object does not exist. If you specify versionId in the -// x-amz-copy-source and the versionId is a delete marker, Amazon S3 returns -// an HTTP 400 error, because you are not allowed to specify a delete marker -// as a version for the x-amz-copy-source. +// Encryption // -// You can optionally specify a specific version of the source object to copy -// by adding the versionId subresource as shown in the following example: +// - General purpose buckets - For information about using server-side encryption +// with customer-provided encryption keys with the UploadPartCopy operation, +// see CopyObject (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html) +// and UploadPart (https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html). // -// x-amz-copy-source: /bucket/object?versionId=version id +// - Directory buckets - For directory buckets, only server-side encryption +// with Amazon S3 managed keys (SSE-S3) (AES256) is supported. // // Special errors // -// - Code: NoSuchUpload Cause: The specified multipart upload does not exist. -// The upload ID might be invalid, or the multipart upload might have been -// aborted or completed. HTTP Status Code: 404 Not Found +// - Error Code: NoSuchUpload Description: The specified multipart upload +// does not exist. The upload ID might be invalid, or the multipart upload +// might have been aborted or completed. HTTP Status Code: 404 Not Found +// +// - Error Code: InvalidRequest Description: The specified copy source is +// not supported as a byte-range copy source. HTTP Status Code: 400 Bad Request +// +// # HTTP Host header syntax // -// - Code: InvalidRequest Cause: The specified copy source is not supported -// as a byte-range copy source. HTTP Status Code: 400 Bad Request +// Directory buckets - The HTTP Host header syntax is Bucket_name.s3express-az_id.region.amazonaws.com. // // The following operations are related to UploadPartCopy: // @@ -11273,6 +12150,8 @@ func (c *S3) WriteGetObjectResponseRequest(input *WriteGetObjectResponseInput) ( // WriteGetObjectResponse API operation for Amazon Simple Storage Service. // +// This operation is not supported by directory buckets. +// // Passes transformed objects to a GetObject operation when using Object Lambda // access points. For information about Object Lambda access points, see Transforming // objects with Object Lambda access points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/transforming-objects.html) @@ -11387,27 +12266,41 @@ type AbortMultipartUploadInput struct { // The bucket name to which the upload was taking place. // - // When using this action with an access point, you must direct requests to - // the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. + // Directory buckets - When you use this operation with a directory bucket, + // you must use virtual-hosted-style requests in the format Bucket_name.s3express-az_id.region.amazonaws.com. + // Path-style requests are not supported. Directory bucket names must be unique + // in the chosen Availability Zone. Bucket names must follow the format bucket_base_name--az-id--x-s3 + // (for example, DOC-EXAMPLE-BUCKET--usw2-az2--x-s3). For information about + // bucket naming restrictions, see Directory bucket naming rules (https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html) + // in the Amazon S3 User Guide. + // + // Access points - When you use this action with an access point, you must provide + // the alias of the access point in place of the bucket name or specify the + // access point ARN. When using the access point ARN, you must direct requests + // to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. // When using this action with an access point through the Amazon Web Services // SDKs, you provide the access point ARN in place of the bucket name. For more // information about access point ARNs, see Using access points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html) // in the Amazon S3 User Guide. // - // When you use this action with Amazon S3 on Outposts, you must direct requests - // to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form - // AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When - // you use this action with S3 on Outposts through the Amazon Web Services SDKs, - // you provide the Outposts access point ARN in place of the bucket name. For - // more information about S3 on Outposts ARNs, see What is S3 on Outposts? (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html) + // Access points and Object Lambda access points are not supported by directory + // buckets. + // + // S3 on Outposts - When you use this action with Amazon S3 on Outposts, you + // must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname + // takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. + // When you use this action with S3 on Outposts through the Amazon Web Services + // SDKs, you provide the Outposts access point ARN in place of the bucket name. + // For more information about S3 on Outposts ARNs, see What is S3 on Outposts? + // (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html) // in the Amazon S3 User Guide. // // Bucket is a required field Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` - // The account ID of the expected bucket owner. If the bucket is owned by a - // different account, the request fails with the HTTP status code 403 Forbidden - // (access denied). + // The account ID of the expected bucket owner. If the account ID that you provide + // does not match the actual owner of the bucket, the request fails with the + // HTTP status code 403 Forbidden (access denied). ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` // Key of the object for which the multipart upload was initiated. @@ -11417,11 +12310,13 @@ type AbortMultipartUploadInput struct { // Confirms that the requester knows that they will be charged for the request. // Bucket owners need not specify this parameter in their requests. If either - // the source or destination Amazon S3 bucket has Requester Pays enabled, the - // requester will pay for corresponding charges to copy the object. For information - // about downloading objects from Requester Pays buckets, see Downloading Objects + // the source or destination S3 bucket has Requester Pays enabled, the requester + // will pay for corresponding charges to copy the object. For information about + // downloading objects from Requester Pays buckets, see Downloading Objects // in Requester Pays Buckets (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html) // in the Amazon S3 User Guide. + // + // This functionality is not supported for directory buckets. RequestPayer *string `location:"header" locationName:"x-amz-request-payer" type:"string" enum:"RequestPayer"` // Upload ID that identifies the multipart upload. @@ -11542,6 +12437,8 @@ type AbortMultipartUploadOutput struct { // If present, indicates that the requester was successfully charged for the // request. + // + // This functionality is not supported for directory buckets. RequestCharged *string `location:"header" locationName:"x-amz-request-charged" type:"string" enum:"RequestCharged"` } @@ -12076,9 +12973,7 @@ func (s *AnalyticsS3BucketDestination) SetPrefix(v string) *AnalyticsS3BucketDes return s } -// In terms of implementation, a Bucket is a resource. An Amazon S3 bucket name -// is globally unique, and the namespace is shared by all Amazon Web Services -// accounts. +// In terms of implementation, a Bucket is a resource. type Bucket struct { _ struct{} `type:"structure"` @@ -12120,6 +13015,51 @@ func (s *Bucket) SetName(v string) *Bucket { return s } +// Specifies the information about the bucket that will be created. For more +// information about directory buckets, see Directory buckets (https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-buckets-overview.html) +// in the Amazon S3 User Guide. +// +// This functionality is only supported by directory buckets. +type BucketInfo struct { + _ struct{} `type:"structure"` + + // The number of Availability Zone that's used for redundancy for the bucket. + DataRedundancy *string `type:"string" enum:"DataRedundancy"` + + // The type of bucket. + Type *string `type:"string" enum:"BucketType"` +} + +// 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 BucketInfo) 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 BucketInfo) GoString() string { + return s.String() +} + +// SetDataRedundancy sets the DataRedundancy field's value. +func (s *BucketInfo) SetDataRedundancy(v string) *BucketInfo { + s.DataRedundancy = &v + return s +} + +// SetType sets the Type field's value. +func (s *BucketInfo) SetType(v string) *BucketInfo { + s.Type = &v + return s +} + // Specifies the lifecycle configuration for objects in an Amazon S3 bucket. // For more information, see Object Lifecycle Management (https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html) // in the Amazon S3 User Guide. @@ -12591,34 +13531,42 @@ type Checksum struct { _ struct{} `type:"structure"` // The base64-encoded, 32-bit CRC32 checksum of the object. This will only be - // present if it was uploaded with the object. With multipart uploads, this - // may not be a checksum value of the object. For more information about how - // checksums are calculated with multipart uploads, see Checking object integrity - // (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums) + // present if it was uploaded with the object. When you use an API operation + // on an object that was uploaded using multipart uploads, this value may not + // be a direct checksum value of the full object. Instead, it's a calculation + // based on the checksum values of each individual part. For more information + // about how checksums are calculated with multipart uploads, see Checking object + // integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums) // in the Amazon S3 User Guide. ChecksumCRC32 *string `type:"string"` // The base64-encoded, 32-bit CRC32C checksum of the object. This will only - // be present if it was uploaded with the object. With multipart uploads, this - // may not be a checksum value of the object. For more information about how - // checksums are calculated with multipart uploads, see Checking object integrity - // (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums) + // be present if it was uploaded with the object. When you use an API operation + // on an object that was uploaded using multipart uploads, this value may not + // be a direct checksum value of the full object. Instead, it's a calculation + // based on the checksum values of each individual part. For more information + // about how checksums are calculated with multipart uploads, see Checking object + // integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums) // in the Amazon S3 User Guide. ChecksumCRC32C *string `type:"string"` // The base64-encoded, 160-bit SHA-1 digest of the object. This will only be - // present if it was uploaded with the object. With multipart uploads, this - // may not be a checksum value of the object. For more information about how - // checksums are calculated with multipart uploads, see Checking object integrity - // (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums) + // present if it was uploaded with the object. When you use the API operation + // on an object that was uploaded using multipart uploads, this value may not + // be a direct checksum value of the full object. Instead, it's a calculation + // based on the checksum values of each individual part. For more information + // about how checksums are calculated with multipart uploads, see Checking object + // integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums) // in the Amazon S3 User Guide. ChecksumSHA1 *string `type:"string"` // The base64-encoded, 256-bit SHA-256 digest of the object. This will only - // be present if it was uploaded with the object. With multipart uploads, this - // may not be a checksum value of the object. For more information about how - // checksums are calculated with multipart uploads, see Checking object integrity - // (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums) + // be present if it was uploaded with the object. When you use an API operation + // on an object that was uploaded using multipart uploads, this value may not + // be a direct checksum value of the full object. Instead, it's a calculation + // based on the checksum values of each individual part. For more information + // about how checksums are calculated with multipart uploads, see Checking object + // integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums) // in the Amazon S3 User Guide. ChecksumSHA256 *string `type:"string"` } @@ -12778,19 +13726,33 @@ type CompleteMultipartUploadInput struct { // Name of the bucket to which the multipart upload was initiated. // - // When using this action with an access point, you must direct requests to - // the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. + // Directory buckets - When you use this operation with a directory bucket, + // you must use virtual-hosted-style requests in the format Bucket_name.s3express-az_id.region.amazonaws.com. + // Path-style requests are not supported. Directory bucket names must be unique + // in the chosen Availability Zone. Bucket names must follow the format bucket_base_name--az-id--x-s3 + // (for example, DOC-EXAMPLE-BUCKET--usw2-az2--x-s3). For information about + // bucket naming restrictions, see Directory bucket naming rules (https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html) + // in the Amazon S3 User Guide. + // + // Access points - When you use this action with an access point, you must provide + // the alias of the access point in place of the bucket name or specify the + // access point ARN. When using the access point ARN, you must direct requests + // to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. // When using this action with an access point through the Amazon Web Services // SDKs, you provide the access point ARN in place of the bucket name. For more // information about access point ARNs, see Using access points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html) // in the Amazon S3 User Guide. // - // When you use this action with Amazon S3 on Outposts, you must direct requests - // to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form - // AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When - // you use this action with S3 on Outposts through the Amazon Web Services SDKs, - // you provide the Outposts access point ARN in place of the bucket name. For - // more information about S3 on Outposts ARNs, see What is S3 on Outposts? (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html) + // Access points and Object Lambda access points are not supported by directory + // buckets. + // + // S3 on Outposts - When you use this action with Amazon S3 on Outposts, you + // must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname + // takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. + // When you use this action with S3 on Outposts through the Amazon Web Services + // SDKs, you provide the Outposts access point ARN in place of the bucket name. + // For more information about S3 on Outposts ARNs, see What is S3 on Outposts? + // (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html) // in the Amazon S3 User Guide. // // Bucket is a required field @@ -12824,9 +13786,9 @@ type CompleteMultipartUploadInput struct { // in the Amazon S3 User Guide. ChecksumSHA256 *string `location:"header" locationName:"x-amz-checksum-sha256" type:"string"` - // The account ID of the expected bucket owner. If the bucket is owned by a - // different account, the request fails with the HTTP status code 403 Forbidden - // (access denied). + // The account ID of the expected bucket owner. If the account ID that you provide + // does not match the actual owner of the bucket, the request fails with the + // HTTP status code 403 Forbidden (access denied). ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` // Object key for which the multipart upload was initiated. @@ -12839,11 +13801,13 @@ type CompleteMultipartUploadInput struct { // Confirms that the requester knows that they will be charged for the request. // Bucket owners need not specify this parameter in their requests. If either - // the source or destination Amazon S3 bucket has Requester Pays enabled, the - // requester will pay for corresponding charges to copy the object. For information - // about downloading objects from Requester Pays buckets, see Downloading Objects + // the source or destination S3 bucket has Requester Pays enabled, the requester + // will pay for corresponding charges to copy the object. For information about + // downloading objects from Requester Pays buckets, see Downloading Objects // in Requester Pays Buckets (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html) // in the Amazon S3 User Guide. + // + // This functionality is not supported for directory buckets. RequestPayer *string `location:"header" locationName:"x-amz-request-payer" type:"string" enum:"RequestPayer"` // The server-side encryption (SSE) algorithm used to encrypt the object. This @@ -12851,6 +13815,8 @@ type CompleteMultipartUploadInput struct { // or if your bucket policy requires the use of SSE-C. For more information, // see Protecting data using SSE-C keys (https://docs.aws.amazon.com/AmazonS3/latest/userguide/ServerSideEncryptionCustomerKeys.html#ssec-require-condition-key) // in the Amazon S3 User Guide. + // + // This functionality is not supported for directory buckets. SSECustomerAlgorithm *string `location:"header" locationName:"x-amz-server-side-encryption-customer-algorithm" type:"string"` // The server-side encryption (SSE) customer managed key. This parameter is @@ -12858,6 +13824,8 @@ type CompleteMultipartUploadInput struct { // information, see Protecting data using SSE-C keys (https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html) // in the Amazon S3 User Guide. // + // This functionality is not supported for directory buckets. + // // SSECustomerKey is a sensitive parameter and its value will be // replaced with "sensitive" in string returned by CompleteMultipartUploadInput's // String and GoString methods. @@ -12867,6 +13835,8 @@ type CompleteMultipartUploadInput struct { // is needed only when the object was created using a checksum algorithm. For // more information, see Protecting data using SSE-C keys (https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html) // in the Amazon S3 User Guide. + // + // This functionality is not supported for directory buckets. SSECustomerKeyMD5 *string `location:"header" locationName:"x-amz-server-side-encryption-customer-key-MD5" type:"string"` // ID for the initiated multipart upload. @@ -13043,55 +14013,52 @@ type CompleteMultipartUploadOutput struct { // The name of the bucket that contains the newly created object. Does not return // the access point ARN or access point alias if used. // - // When using this action with an access point, you must direct requests to - // the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. - // When using this action with an access point through the Amazon Web Services - // SDKs, you provide the access point ARN in place of the bucket name. For more - // information about access point ARNs, see Using access points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html) - // in the Amazon S3 User Guide. - // - // When you use this action with Amazon S3 on Outposts, you must direct requests - // to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form - // AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When - // you use this action with S3 on Outposts through the Amazon Web Services SDKs, - // you provide the Outposts access point ARN in place of the bucket name. For - // more information about S3 on Outposts ARNs, see What is S3 on Outposts? (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html) - // in the Amazon S3 User Guide. + // Access points are not supported by directory buckets. Bucket *string `type:"string"` // Indicates whether the multipart upload uses an S3 Bucket Key for server-side // encryption with Key Management Service (KMS) keys (SSE-KMS). + // + // This functionality is not supported for directory buckets. BucketKeyEnabled *bool `location:"header" locationName:"x-amz-server-side-encryption-bucket-key-enabled" type:"boolean"` // The base64-encoded, 32-bit CRC32 checksum of the object. This will only be - // present if it was uploaded with the object. With multipart uploads, this - // may not be a checksum value of the object. For more information about how - // checksums are calculated with multipart uploads, see Checking object integrity - // (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums) + // present if it was uploaded with the object. When you use an API operation + // on an object that was uploaded using multipart uploads, this value may not + // be a direct checksum value of the full object. Instead, it's a calculation + // based on the checksum values of each individual part. For more information + // about how checksums are calculated with multipart uploads, see Checking object + // integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums) // in the Amazon S3 User Guide. ChecksumCRC32 *string `type:"string"` // The base64-encoded, 32-bit CRC32C checksum of the object. This will only - // be present if it was uploaded with the object. With multipart uploads, this - // may not be a checksum value of the object. For more information about how - // checksums are calculated with multipart uploads, see Checking object integrity - // (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums) + // be present if it was uploaded with the object. When you use an API operation + // on an object that was uploaded using multipart uploads, this value may not + // be a direct checksum value of the full object. Instead, it's a calculation + // based on the checksum values of each individual part. For more information + // about how checksums are calculated with multipart uploads, see Checking object + // integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums) // in the Amazon S3 User Guide. ChecksumCRC32C *string `type:"string"` // The base64-encoded, 160-bit SHA-1 digest of the object. This will only be - // present if it was uploaded with the object. With multipart uploads, this - // may not be a checksum value of the object. For more information about how - // checksums are calculated with multipart uploads, see Checking object integrity - // (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums) + // present if it was uploaded with the object. When you use the API operation + // on an object that was uploaded using multipart uploads, this value may not + // be a direct checksum value of the full object. Instead, it's a calculation + // based on the checksum values of each individual part. For more information + // about how checksums are calculated with multipart uploads, see Checking object + // integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums) // in the Amazon S3 User Guide. ChecksumSHA1 *string `type:"string"` // The base64-encoded, 256-bit SHA-256 digest of the object. This will only - // be present if it was uploaded with the object. With multipart uploads, this - // may not be a checksum value of the object. For more information about how - // checksums are calculated with multipart uploads, see Checking object integrity - // (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums) + // be present if it was uploaded with the object. When you use an API operation + // on an object that was uploaded using multipart uploads, this value may not + // be a direct checksum value of the full object. Instead, it's a calculation + // based on the checksum values of each individual part. For more information + // about how checksums are calculated with multipart uploads, see Checking object + // integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums) // in the Amazon S3 User Guide. ChecksumSHA256 *string `type:"string"` @@ -13107,6 +14074,8 @@ type CompleteMultipartUploadOutput struct { // If the object expiration is configured, this will contain the expiration // date (expiry-date) and rule ID (rule-id). The value of rule-id is URL-encoded. + // + // This functionality is not supported for directory buckets. Expiration *string `location:"header" locationName:"x-amz-expiration" type:"string"` // The object key of the newly created object. @@ -13117,11 +14086,15 @@ type CompleteMultipartUploadOutput struct { // If present, indicates that the requester was successfully charged for the // request. + // + // This functionality is not supported for directory buckets. RequestCharged *string `location:"header" locationName:"x-amz-request-charged" type:"string" enum:"RequestCharged"` - // If present, specifies the ID of the Key Management Service (KMS) symmetric + // If present, indicates the ID of the Key Management Service (KMS) symmetric // encryption customer managed key that was used for the object. // + // This functionality is not supported for directory buckets. + // // SSEKMSKeyId is a sensitive parameter and its value will be // replaced with "sensitive" in string returned by CompleteMultipartUploadOutput's // String and GoString methods. @@ -13129,10 +14102,15 @@ type CompleteMultipartUploadOutput struct { // The server-side encryption algorithm used when storing this object in Amazon // S3 (for example, AES256, aws:kms). + // + // For directory buckets, only server-side encryption with Amazon S3 managed + // keys (SSE-S3) (AES256) is supported. ServerSideEncryption *string `location:"header" locationName:"x-amz-server-side-encryption" type:"string" enum:"ServerSideEncryption"` // Version ID of the newly created object, in case the bucket has versioning // turned on. + // + // This functionality is not supported for directory buckets. VersionId *string `location:"header" locationName:"x-amz-version-id" type:"string"` } @@ -13285,34 +14263,42 @@ type CompletedPart struct { _ struct{} `type:"structure"` // The base64-encoded, 32-bit CRC32 checksum of the object. This will only be - // present if it was uploaded with the object. With multipart uploads, this - // may not be a checksum value of the object. For more information about how - // checksums are calculated with multipart uploads, see Checking object integrity - // (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums) + // present if it was uploaded with the object. When you use an API operation + // on an object that was uploaded using multipart uploads, this value may not + // be a direct checksum value of the full object. Instead, it's a calculation + // based on the checksum values of each individual part. For more information + // about how checksums are calculated with multipart uploads, see Checking object + // integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums) // in the Amazon S3 User Guide. ChecksumCRC32 *string `type:"string"` // The base64-encoded, 32-bit CRC32C checksum of the object. This will only - // be present if it was uploaded with the object. With multipart uploads, this - // may not be a checksum value of the object. For more information about how - // checksums are calculated with multipart uploads, see Checking object integrity - // (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums) + // be present if it was uploaded with the object. When you use an API operation + // on an object that was uploaded using multipart uploads, this value may not + // be a direct checksum value of the full object. Instead, it's a calculation + // based on the checksum values of each individual part. For more information + // about how checksums are calculated with multipart uploads, see Checking object + // integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums) // in the Amazon S3 User Guide. ChecksumCRC32C *string `type:"string"` // The base64-encoded, 160-bit SHA-1 digest of the object. This will only be - // present if it was uploaded with the object. With multipart uploads, this - // may not be a checksum value of the object. For more information about how - // checksums are calculated with multipart uploads, see Checking object integrity - // (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums) + // present if it was uploaded with the object. When you use the API operation + // on an object that was uploaded using multipart uploads, this value may not + // be a direct checksum value of the full object. Instead, it's a calculation + // based on the checksum values of each individual part. For more information + // about how checksums are calculated with multipart uploads, see Checking object + // integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums) // in the Amazon S3 User Guide. ChecksumSHA1 *string `type:"string"` // The base64-encoded, 256-bit SHA-256 digest of the object. This will only - // be present if it was uploaded with the object. With multipart uploads, this - // may not be a checksum value of the object. For more information about how - // checksums are calculated with multipart uploads, see Checking object integrity - // (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums) + // be present if it was uploaded with the object. When you use an API operation + // on an object that was uploaded using multipart uploads, this value may not + // be a direct checksum value of the full object. Instead, it's a calculation + // based on the checksum values of each individual part. For more information + // about how checksums are calculated with multipart uploads, see Checking object + // integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums) // in the Amazon S3 User Guide. ChecksumSHA256 *string `type:"string"` @@ -13321,6 +14307,16 @@ type CompletedPart struct { // Part number that identifies the part. This is a positive integer between // 1 and 10,000. + // + // * General purpose buckets - In CompleteMultipartUpload, when a additional + // checksum (including x-amz-checksum-crc32, x-amz-checksum-crc32c, x-amz-checksum-sha1, + // or x-amz-checksum-sha256) is applied to each part, the PartNumber must + // start at 1 and the part numbers must be consecutive. Otherwise, Amazon + // S3 generates an HTTP 400 Bad Request status code and an InvalidPartOrder + // error code. + // + // * Directory buckets - In CompleteMultipartUpload, the PartNumber must + // start at 1 and the part numbers must be consecutive. PartNumber *int64 `type:"integer"` } @@ -13480,26 +14476,60 @@ func (s *ContinuationEvent) MarshalEvent(pm protocol.PayloadMarshaler) (msg even type CopyObjectInput struct { _ struct{} `locationName:"CopyObjectRequest" type:"structure"` - // The canned ACL to apply to the object. + // The canned access control list (ACL) to apply to the object. + // + // When you copy an object, the ACL metadata is not preserved and is set to + // private by default. Only the owner has full access control. To override the + // default ACL setting, specify a new ACL when you generate a copy request. + // For more information, see Using ACLs (https://docs.aws.amazon.com/AmazonS3/latest/dev/S3_ACLs_UsingACLs.html). // - // This action is not supported by Amazon S3 on Outposts. + // If the destination bucket that you're copying objects to uses the bucket + // owner enforced setting for S3 Object Ownership, ACLs are disabled and no + // longer affect permissions. Buckets that use this setting only accept PUT + // requests that don't specify an ACL or PUT requests that specify bucket owner + // full control ACLs, such as the bucket-owner-full-control canned ACL or an + // equivalent form of this ACL expressed in the XML format. For more information, + // see Controlling ownership of objects and disabling ACLs (https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html) + // in the Amazon S3 User Guide. + // + // * If your destination bucket uses the bucket owner enforced setting for + // Object Ownership, all objects written to the bucket by any account will + // be owned by the bucket owner. + // + // * This functionality is not supported for directory buckets. + // + // * This functionality is not supported for Amazon S3 on Outposts. ACL *string `location:"header" locationName:"x-amz-acl" type:"string" enum:"ObjectCannedACL"` // The name of the destination bucket. // - // When using this action with an access point, you must direct requests to - // the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. + // Directory buckets - When you use this operation with a directory bucket, + // you must use virtual-hosted-style requests in the format Bucket_name.s3express-az_id.region.amazonaws.com. + // Path-style requests are not supported. Directory bucket names must be unique + // in the chosen Availability Zone. Bucket names must follow the format bucket_base_name--az-id--x-s3 + // (for example, DOC-EXAMPLE-BUCKET--usw2-az2--x-s3). For information about + // bucket naming restrictions, see Directory bucket naming rules (https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html) + // in the Amazon S3 User Guide. + // + // Access points - When you use this action with an access point, you must provide + // the alias of the access point in place of the bucket name or specify the + // access point ARN. When using the access point ARN, you must direct requests + // to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. // When using this action with an access point through the Amazon Web Services // SDKs, you provide the access point ARN in place of the bucket name. For more // information about access point ARNs, see Using access points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html) // in the Amazon S3 User Guide. // - // When you use this action with Amazon S3 on Outposts, you must direct requests - // to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form - // AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When - // you use this action with S3 on Outposts through the Amazon Web Services SDKs, - // you provide the Outposts access point ARN in place of the bucket name. For - // more information about S3 on Outposts ARNs, see What is S3 on Outposts? (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html) + // Access points and Object Lambda access points are not supported by directory + // buckets. + // + // S3 on Outposts - When you use this action with Amazon S3 on Outposts, you + // must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname + // takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. + // When you use this action with S3 on Outposts through the Amazon Web Services + // SDKs, you provide the Outposts access point ARN in place of the bucket name. + // For more information about S3 on Outposts ARNs, see What is S3 on Outposts? + // (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html) // in the Amazon S3 User Guide. // // Bucket is a required field @@ -13507,44 +14537,73 @@ type CopyObjectInput struct { // Specifies whether Amazon S3 should use an S3 Bucket Key for object encryption // with server-side encryption using Key Management Service (KMS) keys (SSE-KMS). + // If a target object uses SSE-KMS, you can enable an S3 Bucket Key for the + // object. + // // Setting this header to true causes Amazon S3 to use an S3 Bucket Key for - // object encryption with SSE-KMS. + // object encryption with SSE-KMS. Specifying this header with a COPY action + // doesn’t affect bucket-level settings for S3 Bucket Key. // - // Specifying this header with a COPY action doesn’t affect bucket-level settings - // for S3 Bucket Key. + // For more information, see Amazon S3 Bucket Keys (https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-key.html) + // in the Amazon S3 User Guide. + // + // This functionality is not supported when the destination bucket is a directory + // bucket. BucketKeyEnabled *bool `location:"header" locationName:"x-amz-server-side-encryption-bucket-key-enabled" type:"boolean"` - // Specifies caching behavior along the request/reply chain. + // Specifies the caching behavior along the request/reply chain. CacheControl *string `location:"header" locationName:"Cache-Control" type:"string"` - // Indicates the algorithm you want Amazon S3 to use to create the checksum + // Indicates the algorithm that you want Amazon S3 to use to create the checksum // for the object. For more information, see Checking object integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) // in the Amazon S3 User Guide. + // + // When you copy an object, if the source object has a checksum, that checksum + // value will be copied to the new object by default. If the CopyObject request + // does not include this x-amz-checksum-algorithm header, the checksum algorithm + // will be copied from the source object to the destination object (if it's + // present on the source object). You can optionally specify a different checksum + // algorithm to use with the x-amz-checksum-algorithm header. Unrecognized or + // unsupported values will respond with the HTTP status code 400 Bad Request. + // + // For directory buckets, when you use Amazon Web Services SDKs, CRC32 is the + // default checksum algorithm that's used for performance. ChecksumAlgorithm *string `location:"header" locationName:"x-amz-checksum-algorithm" type:"string" enum:"ChecksumAlgorithm"` - // Specifies presentational information for the object. + // Specifies presentational information for the object. Indicates whether an + // object should be displayed in a web browser or downloaded as a file. It allows + // specifying the desired filename for the downloaded file. ContentDisposition *string `location:"header" locationName:"Content-Disposition" type:"string"` // Specifies what content encodings have been applied to the object and thus // what decoding mechanisms must be applied to obtain the media-type referenced // by the Content-Type header field. + // + // For directory buckets, only the aws-chunked value is supported in this header + // field. ContentEncoding *string `location:"header" locationName:"Content-Encoding" type:"string"` // The language the content is in. ContentLanguage *string `location:"header" locationName:"Content-Language" type:"string"` - // A standard MIME type describing the format of the object data. + // A standard MIME type that describes the format of the object data. ContentType *string `location:"header" locationName:"Content-Type" type:"string"` - // Specifies the source object for the copy operation. You specify the value - // in one of two formats, depending on whether you want to access the source - // object through an access point (https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-points.html): + // Specifies the source object for the copy operation. The source object can + // be up to 5 GB. If the source object is an object that was uploaded by using + // a multipart upload, the object copy will be a single part object after the + // source object is copied to the destination bucket. + // + // You specify the value of the copy source in one of two formats, depending + // on whether you want to access the source object through an access point (https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-points.html): // // * For objects not accessed through an access point, specify the name of // the source bucket and the key of the source object, separated by a slash - // (/). For example, to copy the object reports/january.pdf from the bucket - // awsexamplebucket, use awsexamplebucket/reports/january.pdf. The value - // must be URL-encoded. + // (/). For example, to copy the object reports/january.pdf from the general + // purpose bucket awsexamplebucket, use awsexamplebucket/reports/january.pdf. + // The value must be URL-encoded. To copy the object reports/january.pdf + // from the directory bucket awsexamplebucket--use1-az5--x-s3, use awsexamplebucket--use1-az5--x-s3/reports/january.pdf. + // The value must be URL-encoded. // // * For objects accessed through access points, specify the Amazon Resource // Name (ARN) of the object as accessed through the access point, in the @@ -13553,43 +14612,104 @@ type CopyObjectInput struct { // my-access-point owned by account 123456789012 in Region us-west-2, use // the URL encoding of arn:aws:s3:us-west-2:123456789012:accesspoint/my-access-point/object/reports/january.pdf. // The value must be URL encoded. Amazon S3 supports copy operations using - // access points only when the source and destination buckets are in the - // same Amazon Web Services Region. Alternatively, for objects accessed through - // Amazon S3 on Outposts, specify the ARN of the object as accessed in the - // format arn:aws:s3-outposts:::outpost//object/. + // Access points only when the source and destination buckets are in the + // same Amazon Web Services Region. Access points are not supported by directory + // buckets. Alternatively, for objects accessed through Amazon S3 on Outposts, + // specify the ARN of the object as accessed in the format arn:aws:s3-outposts:::outpost//object/. // For example, to copy the object reports/january.pdf through outpost my-outpost // owned by account 123456789012 in Region us-west-2, use the URL encoding // of arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/object/reports/january.pdf. // The value must be URL-encoded. // - // To copy a specific version of an object, append ?versionId= to - // the value (for example, awsexamplebucket/reports/january.pdf?versionId=QUpfdndhfd8438MNFDN93jdnJFkdmqnh893). + // If your source bucket versioning is enabled, the x-amz-copy-source header + // by default identifies the current version of an object to copy. If the current + // version is a delete marker, Amazon S3 behaves as if the object was deleted. + // To copy a different version, use the versionId query parameter. Specifically, + // append ?versionId= to the value (for example, awsexamplebucket/reports/january.pdf?versionId=QUpfdndhfd8438MNFDN93jdnJFkdmqnh893). // If you don't specify a version ID, Amazon S3 copies the latest version of // the source object. // + // If you enable versioning on the destination bucket, Amazon S3 generates a + // unique version ID for the copied object. This version ID is different from + // the version ID of the source object. Amazon S3 returns the version ID of + // the copied object in the x-amz-version-id response header in the response. + // + // If you do not enable versioning or suspend it on the destination bucket, + // the version ID that Amazon S3 generates in the x-amz-version-id response + // header is always null. + // + // Directory buckets - S3 Versioning isn't enabled and supported for directory + // buckets. + // // CopySource is a required field CopySource *string `location:"header" locationName:"x-amz-copy-source" type:"string" required:"true"` // Copies the object if its entity tag (ETag) matches the specified tag. + // + // If both the x-amz-copy-source-if-match and x-amz-copy-source-if-unmodified-since + // headers are present in the request and evaluate as follows, Amazon S3 returns + // 200 OK and copies the data: + // + // * x-amz-copy-source-if-match condition evaluates to true + // + // * x-amz-copy-source-if-unmodified-since condition evaluates to false CopySourceIfMatch *string `location:"header" locationName:"x-amz-copy-source-if-match" type:"string"` // Copies the object if it has been modified since the specified time. + // + // If both the x-amz-copy-source-if-none-match and x-amz-copy-source-if-modified-since + // headers are present in the request and evaluate as follows, Amazon S3 returns + // the 412 Precondition Failed response code: + // + // * x-amz-copy-source-if-none-match condition evaluates to false + // + // * x-amz-copy-source-if-modified-since condition evaluates to true CopySourceIfModifiedSince *time.Time `location:"header" locationName:"x-amz-copy-source-if-modified-since" type:"timestamp"` // Copies the object if its entity tag (ETag) is different than the specified // ETag. + // + // If both the x-amz-copy-source-if-none-match and x-amz-copy-source-if-modified-since + // headers are present in the request and evaluate as follows, Amazon S3 returns + // the 412 Precondition Failed response code: + // + // * x-amz-copy-source-if-none-match condition evaluates to false + // + // * x-amz-copy-source-if-modified-since condition evaluates to true CopySourceIfNoneMatch *string `location:"header" locationName:"x-amz-copy-source-if-none-match" type:"string"` // Copies the object if it hasn't been modified since the specified time. + // + // If both the x-amz-copy-source-if-match and x-amz-copy-source-if-unmodified-since + // headers are present in the request and evaluate as follows, Amazon S3 returns + // 200 OK and copies the data: + // + // * x-amz-copy-source-if-match condition evaluates to true + // + // * x-amz-copy-source-if-unmodified-since condition evaluates to false CopySourceIfUnmodifiedSince *time.Time `location:"header" locationName:"x-amz-copy-source-if-unmodified-since" type:"timestamp"` // Specifies the algorithm to use when decrypting the source object (for example, // AES256). + // + // If the source object for the copy is stored in Amazon S3 using SSE-C, you + // must provide the necessary encryption information in your request so that + // Amazon S3 can decrypt the object for copying. + // + // This functionality is not supported when the source object is in a directory + // bucket. CopySourceSSECustomerAlgorithm *string `location:"header" locationName:"x-amz-copy-source-server-side-encryption-customer-algorithm" type:"string"` // Specifies the customer-provided encryption key for Amazon S3 to use to decrypt - // the source object. The encryption key provided in this header must be one - // that was used when the source object was created. + // the source object. The encryption key provided in this header must be the + // same one that was used when the source object was created. + // + // If the source object for the copy is stored in Amazon S3 using SSE-C, you + // must provide the necessary encryption information in your request so that + // Amazon S3 can decrypt the object for copying. + // + // This functionality is not supported when the source object is in a directory + // bucket. // // CopySourceSSECustomerKey is a sensitive parameter and its value will be // replaced with "sensitive" in string returned by CopyObjectInput's @@ -13599,16 +14719,23 @@ type CopyObjectInput struct { // Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. // Amazon S3 uses this header for a message integrity check to ensure that the // encryption key was transmitted without error. + // + // If the source object for the copy is stored in Amazon S3 using SSE-C, you + // must provide the necessary encryption information in your request so that + // Amazon S3 can decrypt the object for copying. + // + // This functionality is not supported when the source object is in a directory + // bucket. CopySourceSSECustomerKeyMD5 *string `location:"header" locationName:"x-amz-copy-source-server-side-encryption-customer-key-MD5" type:"string"` - // The account ID of the expected destination bucket owner. If the destination - // bucket is owned by a different account, the request fails with the HTTP status - // code 403 Forbidden (access denied). + // The account ID of the expected destination bucket owner. If the account ID + // that you provide does not match the actual owner of the destination bucket, + // the request fails with the HTTP status code 403 Forbidden (access denied). ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` - // The account ID of the expected source bucket owner. If the source bucket - // is owned by a different account, the request fails with the HTTP status code - // 403 Forbidden (access denied). + // The account ID of the expected source bucket owner. If the account ID that + // you provide does not match the actual owner of the source bucket, the request + // fails with the HTTP status code 403 Forbidden (access denied). ExpectedSourceBucketOwner *string `location:"header" locationName:"x-amz-source-expected-bucket-owner" type:"string"` // The date and time at which the object is no longer cacheable. @@ -13616,22 +14743,30 @@ type CopyObjectInput struct { // Gives the grantee READ, READ_ACP, and WRITE_ACP permissions on the object. // - // This action is not supported by Amazon S3 on Outposts. + // * This functionality is not supported for directory buckets. + // + // * This functionality is not supported for Amazon S3 on Outposts. GrantFullControl *string `location:"header" locationName:"x-amz-grant-full-control" type:"string"` // Allows grantee to read the object data and its metadata. // - // This action is not supported by Amazon S3 on Outposts. + // * This functionality is not supported for directory buckets. + // + // * This functionality is not supported for Amazon S3 on Outposts. GrantRead *string `location:"header" locationName:"x-amz-grant-read" type:"string"` // Allows grantee to read the object ACL. // - // This action is not supported by Amazon S3 on Outposts. + // * This functionality is not supported for directory buckets. + // + // * This functionality is not supported for Amazon S3 on Outposts. GrantReadACP *string `location:"header" locationName:"x-amz-grant-read-acp" type:"string"` // Allows grantee to write the ACL for the applicable object. // - // This action is not supported by Amazon S3 on Outposts. + // * This functionality is not supported for directory buckets. + // + // * This functionality is not supported for Amazon S3 on Outposts. GrantWriteACP *string `location:"header" locationName:"x-amz-grant-write-acp" type:"string"` // The key of the destination object. @@ -13643,37 +14778,69 @@ type CopyObjectInput struct { Metadata map[string]*string `location:"headers" locationName:"x-amz-meta-" type:"map"` // Specifies whether the metadata is copied from the source object or replaced - // with metadata provided in the request. + // with metadata that's provided in the request. When copying an object, you + // can preserve all metadata (the default) or specify new metadata. If this + // header isn’t specified, COPY is the default behavior. + // + // General purpose bucket - For general purpose buckets, when you grant permissions, + // you can use the s3:x-amz-metadata-directive condition key to enforce certain + // metadata behavior when objects are uploaded. For more information, see Amazon + // S3 condition key examples (https://docs.aws.amazon.com/AmazonS3/latest/dev/amazon-s3-policy-keys.html) + // in the Amazon S3 User Guide. + // + // x-amz-website-redirect-location is unique to each object and is not copied + // when using the x-amz-metadata-directive header. To copy the value, you must + // specify x-amz-website-redirect-location in the request header. MetadataDirective *string `location:"header" locationName:"x-amz-metadata-directive" type:"string" enum:"MetadataDirective"` - // Specifies whether you want to apply a legal hold to the copied object. + // Specifies whether you want to apply a legal hold to the object copy. + // + // This functionality is not supported for directory buckets. ObjectLockLegalHoldStatus *string `location:"header" locationName:"x-amz-object-lock-legal-hold" type:"string" enum:"ObjectLockLegalHoldStatus"` - // The Object Lock mode that you want to apply to the copied object. + // The Object Lock mode that you want to apply to the object copy. + // + // This functionality is not supported for directory buckets. ObjectLockMode *string `location:"header" locationName:"x-amz-object-lock-mode" type:"string" enum:"ObjectLockMode"` - // The date and time when you want the copied object's Object Lock to expire. + // The date and time when you want the Object Lock of the object copy to expire. + // + // This functionality is not supported for directory buckets. ObjectLockRetainUntilDate *time.Time `location:"header" locationName:"x-amz-object-lock-retain-until-date" type:"timestamp" timestampFormat:"iso8601"` // Confirms that the requester knows that they will be charged for the request. // Bucket owners need not specify this parameter in their requests. If either - // the source or destination Amazon S3 bucket has Requester Pays enabled, the - // requester will pay for corresponding charges to copy the object. For information - // about downloading objects from Requester Pays buckets, see Downloading Objects + // the source or destination S3 bucket has Requester Pays enabled, the requester + // will pay for corresponding charges to copy the object. For information about + // downloading objects from Requester Pays buckets, see Downloading Objects // in Requester Pays Buckets (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html) // in the Amazon S3 User Guide. + // + // This functionality is not supported for directory buckets. RequestPayer *string `location:"header" locationName:"x-amz-request-payer" type:"string" enum:"RequestPayer"` - // Specifies the algorithm to use to when encrypting the object (for example, - // AES256). + // Specifies the algorithm to use when encrypting the object (for example, AES256). + // + // When you perform a CopyObject operation, if you want to use a different type + // of encryption setting for the target object, you can specify appropriate + // encryption-related headers to encrypt the target object with an Amazon S3 + // managed key, a KMS key, or a customer-provided key. If the encryption setting + // in your request is different from the default encryption configuration of + // the destination bucket, the encryption setting in your request takes precedence. + // + // This functionality is not supported when the destination bucket is a directory + // bucket. SSECustomerAlgorithm *string `location:"header" locationName:"x-amz-server-side-encryption-customer-algorithm" type:"string"` // Specifies the customer-provided encryption key for Amazon S3 to use in encrypting - // data. This value is used to store the object and then it is discarded; Amazon + // data. This value is used to store the object and then it is discarded. Amazon // S3 does not store the encryption key. The key must be appropriate for use // with the algorithm specified in the x-amz-server-side-encryption-customer-algorithm // header. // + // This functionality is not supported when the destination bucket is a directory + // bucket. + // // SSECustomerKey is a sensitive parameter and its value will be // replaced with "sensitive" in string returned by CopyObjectInput's // String and GoString methods. @@ -13682,6 +14849,9 @@ type CopyObjectInput struct { // Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. // Amazon S3 uses this header for a message integrity check to ensure that the // encryption key was transmitted without error. + // + // This functionality is not supported when the destination bucket is a directory + // bucket. SSECustomerKeyMD5 *string `location:"header" locationName:"x-amz-server-side-encryption-customer-key-MD5" type:"string"` // Specifies the Amazon Web Services KMS Encryption Context to use for object @@ -13689,6 +14859,9 @@ type CopyObjectInput struct { // JSON with the encryption context key-value pairs. This value must be explicitly // added to specify encryption context for CopyObject requests. // + // This functionality is not supported when the destination bucket is a directory + // bucket. + // // SSEKMSEncryptionContext is a sensitive parameter and its value will be // replaced with "sensitive" in string returned by CopyObjectInput's // String and GoString methods. @@ -13701,38 +14874,176 @@ type CopyObjectInput struct { // CLI, see Specifying the Signature Version in Request Authentication (https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingAWSSDK.html#specify-signature-version) // in the Amazon S3 User Guide. // + // This functionality is not supported when the destination bucket is a directory + // bucket. + // // SSEKMSKeyId is a sensitive parameter and its value will be // replaced with "sensitive" in string returned by CopyObjectInput's // String and GoString methods. SSEKMSKeyId *string `location:"header" locationName:"x-amz-server-side-encryption-aws-kms-key-id" type:"string" sensitive:"true"` // The server-side encryption algorithm used when storing this object in Amazon - // S3 (for example, AES256, aws:kms, aws:kms:dsse). + // S3 (for example, AES256, aws:kms, aws:kms:dsse). Unrecognized or unsupported + // values won’t write a destination object and will receive a 400 Bad Request + // response. + // + // Amazon S3 automatically encrypts all new objects that are copied to an S3 + // bucket. When copying an object, if you don't specify encryption information + // in your copy request, the encryption setting of the target object is set + // to the default encryption configuration of the destination bucket. By default, + // all buckets have a base level of encryption configuration that uses server-side + // encryption with Amazon S3 managed keys (SSE-S3). If the destination bucket + // has a default encryption configuration that uses server-side encryption with + // Key Management Service (KMS) keys (SSE-KMS), dual-layer server-side encryption + // with Amazon Web Services KMS keys (DSSE-KMS), or server-side encryption with + // customer-provided encryption keys (SSE-C), Amazon S3 uses the corresponding + // KMS key, or a customer-provided key to encrypt the target object copy. + // + // When you perform a CopyObject operation, if you want to use a different type + // of encryption setting for the target object, you can specify appropriate + // encryption-related headers to encrypt the target object with an Amazon S3 + // managed key, a KMS key, or a customer-provided key. If the encryption setting + // in your request is different from the default encryption configuration of + // the destination bucket, the encryption setting in your request takes precedence. + // + // With server-side encryption, Amazon S3 encrypts your data as it writes your + // data to disks in its data centers and decrypts the data when you access it. + // For more information about server-side encryption, see Using Server-Side + // Encryption (https://docs.aws.amazon.com/AmazonS3/latest/dev/serv-side-encryption.html) + // in the Amazon S3 User Guide. + // + // For directory buckets, only server-side encryption with Amazon S3 managed + // keys (SSE-S3) (AES256) is supported. ServerSideEncryption *string `location:"header" locationName:"x-amz-server-side-encryption" type:"string" enum:"ServerSideEncryption"` // If the x-amz-storage-class header is not used, the copied object will be // stored in the STANDARD Storage Class by default. The STANDARD storage class // provides high durability and high availability. Depending on performance - // needs, you can specify a different Storage Class. Amazon S3 on Outposts only - // uses the OUTPOSTS Storage Class. For more information, see Storage Classes - // (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html) + // needs, you can specify a different Storage Class. + // + // * Directory buckets - For directory buckets, only the S3 Express One Zone + // storage class is supported to store newly created objects. Unsupported + // storage class values won't write a destination object and will respond + // with the HTTP status code 400 Bad Request. + // + // * Amazon S3 on Outposts - S3 on Outposts only uses the OUTPOSTS Storage + // Class. + // + // You can use the CopyObject action to change the storage class of an object + // that is already stored in Amazon S3 by using the x-amz-storage-class header. + // For more information, see Storage Classes (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html) + // in the Amazon S3 User Guide. + // + // Before using an object as a source object for the copy operation, you must + // restore a copy of it if it meets any of the following conditions: + // + // * The storage class of the source object is GLACIER or DEEP_ARCHIVE. + // + // * The storage class of the source object is INTELLIGENT_TIERING and it's + // S3 Intelligent-Tiering access tier (https://docs.aws.amazon.com/AmazonS3/latest/userguide/intelligent-tiering-overview.html#intel-tiering-tier-definition) + // is Archive Access or Deep Archive Access. + // + // For more information, see RestoreObject (https://docs.aws.amazon.com/AmazonS3/latest/API/API_RestoreObject.html) + // and Copying Objects (https://docs.aws.amazon.com/AmazonS3/latest/dev/CopyingObjectsExamples.html) // in the Amazon S3 User Guide. StorageClass *string `location:"header" locationName:"x-amz-storage-class" type:"string" enum:"StorageClass"` - // The tag-set for the object destination object this value must be used in - // conjunction with the TaggingDirective. The tag-set must be encoded as URL - // Query parameters. + // The tag-set for the object copy in the destination bucket. This value must + // be used in conjunction with the x-amz-tagging-directive if you choose REPLACE + // for the x-amz-tagging-directive. If you choose COPY for the x-amz-tagging-directive, + // you don't need to set the x-amz-tagging header, because the tag-set will + // be copied from the source object directly. The tag-set must be encoded as + // URL Query parameters. + // + // The default value is the empty value. + // + // Directory buckets - For directory buckets in a CopyObject operation, only + // the empty tag-set is supported. Any requests that attempt to write non-empty + // tags into directory buckets will receive a 501 Not Implemented status code. + // When the destination bucket is a directory bucket, you will receive a 501 + // Not Implemented response in any of the following situations: + // + // * When you attempt to COPY the tag-set from an S3 source object that has + // non-empty tags. + // + // * When you attempt to REPLACE the tag-set of a source object and set a + // non-empty value to x-amz-tagging. + // + // * When you don't set the x-amz-tagging-directive header and the source + // object has non-empty tags. This is because the default value of x-amz-tagging-directive + // is COPY. + // + // Because only the empty tag-set is supported for directory buckets in a CopyObject + // operation, the following situations are allowed: + // + // * When you attempt to COPY the tag-set from a directory bucket source + // object that has no tags to a general purpose bucket. It copies an empty + // tag-set to the destination object. + // + // * When you attempt to REPLACE the tag-set of a directory bucket source + // object and set the x-amz-tagging value of the directory bucket destination + // object to empty. + // + // * When you attempt to REPLACE the tag-set of a general purpose bucket + // source object that has non-empty tags and set the x-amz-tagging value + // of the directory bucket destination object to empty. + // + // * When you attempt to REPLACE the tag-set of a directory bucket source + // object and don't set the x-amz-tagging value of the directory bucket destination + // object. This is because the default value of x-amz-tagging is the empty + // value. Tagging *string `location:"header" locationName:"x-amz-tagging" type:"string"` - // Specifies whether the object tag-set are copied from the source object or - // replaced with tag-set provided in the request. + // Specifies whether the object tag-set is copied from the source object or + // replaced with the tag-set that's provided in the request. + // + // The default value is COPY. + // + // Directory buckets - For directory buckets in a CopyObject operation, only + // the empty tag-set is supported. Any requests that attempt to write non-empty + // tags into directory buckets will receive a 501 Not Implemented status code. + // When the destination bucket is a directory bucket, you will receive a 501 + // Not Implemented response in any of the following situations: + // + // * When you attempt to COPY the tag-set from an S3 source object that has + // non-empty tags. + // + // * When you attempt to REPLACE the tag-set of a source object and set a + // non-empty value to x-amz-tagging. + // + // * When you don't set the x-amz-tagging-directive header and the source + // object has non-empty tags. This is because the default value of x-amz-tagging-directive + // is COPY. + // + // Because only the empty tag-set is supported for directory buckets in a CopyObject + // operation, the following situations are allowed: + // + // * When you attempt to COPY the tag-set from a directory bucket source + // object that has no tags to a general purpose bucket. It copies an empty + // tag-set to the destination object. + // + // * When you attempt to REPLACE the tag-set of a directory bucket source + // object and set the x-amz-tagging value of the directory bucket destination + // object to empty. + // + // * When you attempt to REPLACE the tag-set of a general purpose bucket + // source object that has non-empty tags and set the x-amz-tagging value + // of the directory bucket destination object to empty. + // + // * When you attempt to REPLACE the tag-set of a directory bucket source + // object and don't set the x-amz-tagging value of the directory bucket destination + // object. This is because the default value of x-amz-tagging is the empty + // value. TaggingDirective *string `location:"header" locationName:"x-amz-tagging-directive" type:"string" enum:"TaggingDirective"` - // If the bucket is configured as a website, redirects requests for this object - // to another object in the same bucket or to an external URL. Amazon S3 stores - // the value of this header in the object metadata. This value is unique to - // each object and is not copied when using the x-amz-metadata-directive header. - // Instead, you may opt to provide this header in combination with the directive. + // If the destination bucket is configured as a website, redirects requests + // for this object copy to another object in the same bucket or to an external + // URL. Amazon S3 stores the value of this header in the object metadata. This + // value is unique to each object and is not copied when using the x-amz-metadata-directive + // header. Instead, you may opt to provide this header in combination with the + // x-amz-metadata-directive header. + // + // This functionality is not supported for directory buckets. WebsiteRedirectLocation *string `location:"header" locationName:"x-amz-website-redirect-location" type:"string"` } @@ -14078,53 +15389,75 @@ type CopyObjectOutput struct { // Indicates whether the copied object uses an S3 Bucket Key for server-side // encryption with Key Management Service (KMS) keys (SSE-KMS). + // + // This functionality is not supported for directory buckets. BucketKeyEnabled *bool `location:"header" locationName:"x-amz-server-side-encryption-bucket-key-enabled" type:"boolean"` // Container for all response elements. CopyObjectResult *CopyObjectResult `type:"structure"` - // Version of the copied object in the destination bucket. + // Version ID of the source object that was copied. + // + // This functionality is not supported when the source object is in a directory + // bucket. CopySourceVersionId *string `location:"header" locationName:"x-amz-copy-source-version-id" type:"string"` // If the object expiration is configured, the response includes this header. + // + // This functionality is not supported for directory buckets. Expiration *string `location:"header" locationName:"x-amz-expiration" type:"string"` // If present, indicates that the requester was successfully charged for the // request. + // + // This functionality is not supported for directory buckets. RequestCharged *string `location:"header" locationName:"x-amz-request-charged" type:"string" enum:"RequestCharged"` // If server-side encryption with a customer-provided encryption key was requested, - // the response will include this header confirming the encryption algorithm - // used. + // the response will include this header to confirm the encryption algorithm + // that's used. + // + // This functionality is not supported for directory buckets. SSECustomerAlgorithm *string `location:"header" locationName:"x-amz-server-side-encryption-customer-algorithm" type:"string"` // If server-side encryption with a customer-provided encryption key was requested, - // the response will include this header to provide round-trip message integrity + // the response will include this header to provide the round-trip message integrity // verification of the customer-provided encryption key. + // + // This functionality is not supported for directory buckets. SSECustomerKeyMD5 *string `location:"header" locationName:"x-amz-server-side-encryption-customer-key-MD5" type:"string"` - // If present, specifies the Amazon Web Services KMS Encryption Context to use + // If present, indicates the Amazon Web Services KMS Encryption Context to use // for object encryption. The value of this header is a base64-encoded UTF-8 // string holding JSON with the encryption context key-value pairs. // + // This functionality is not supported for directory buckets. + // // SSEKMSEncryptionContext is a sensitive parameter and its value will be // replaced with "sensitive" in string returned by CopyObjectOutput's // String and GoString methods. SSEKMSEncryptionContext *string `location:"header" locationName:"x-amz-server-side-encryption-context" type:"string" sensitive:"true"` - // If present, specifies the ID of the Key Management Service (KMS) symmetric + // If present, indicates the ID of the Key Management Service (KMS) symmetric // encryption customer managed key that was used for the object. // + // This functionality is not supported for directory buckets. + // // SSEKMSKeyId is a sensitive parameter and its value will be // replaced with "sensitive" in string returned by CopyObjectOutput's // String and GoString methods. SSEKMSKeyId *string `location:"header" locationName:"x-amz-server-side-encryption-aws-kms-key-id" type:"string" sensitive:"true"` - // The server-side encryption algorithm used when storing this object in Amazon + // The server-side encryption algorithm used when you store this object in Amazon // S3 (for example, AES256, aws:kms, aws:kms:dsse). + // + // For directory buckets, only server-side encryption with Amazon S3 managed + // keys (SSE-S3) (AES256) is supported. ServerSideEncryption *string `location:"header" locationName:"x-amz-server-side-encryption" type:"string" enum:"ServerSideEncryption"` // Version ID of the newly created copy. + // + // This functionality is not supported for directory buckets. VersionId *string `location:"header" locationName:"x-amz-version-id" type:"string"` } @@ -14217,34 +15550,26 @@ type CopyObjectResult struct { _ struct{} `type:"structure"` // The base64-encoded, 32-bit CRC32 checksum of the object. This will only be - // present if it was uploaded with the object. With multipart uploads, this - // may not be a checksum value of the object. For more information about how - // checksums are calculated with multipart uploads, see Checking object integrity - // (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums) + // present if it was uploaded with the object. For more information, see Checking + // object integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) // in the Amazon S3 User Guide. ChecksumCRC32 *string `type:"string"` // The base64-encoded, 32-bit CRC32C checksum of the object. This will only - // be present if it was uploaded with the object. With multipart uploads, this - // may not be a checksum value of the object. For more information about how - // checksums are calculated with multipart uploads, see Checking object integrity - // (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums) + // be present if it was uploaded with the object. For more information, see + // Checking object integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) // in the Amazon S3 User Guide. ChecksumCRC32C *string `type:"string"` // The base64-encoded, 160-bit SHA-1 digest of the object. This will only be - // present if it was uploaded with the object. With multipart uploads, this - // may not be a checksum value of the object. For more information about how - // checksums are calculated with multipart uploads, see Checking object integrity - // (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums) + // present if it was uploaded with the object. For more information, see Checking + // object integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) // in the Amazon S3 User Guide. ChecksumSHA1 *string `type:"string"` // The base64-encoded, 256-bit SHA-256 digest of the object. This will only - // be present if it was uploaded with the object. With multipart uploads, this - // may not be a checksum value of the object. For more information about how - // checksums are calculated with multipart uploads, see Checking object integrity - // (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums) + // be present if it was uploaded with the object. For more information, see + // Checking object integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) // in the Amazon S3 User Guide. ChecksumSHA256 *string `type:"string"` @@ -14315,34 +15640,42 @@ type CopyPartResult struct { _ struct{} `type:"structure"` // The base64-encoded, 32-bit CRC32 checksum of the object. This will only be - // present if it was uploaded with the object. With multipart uploads, this - // may not be a checksum value of the object. For more information about how - // checksums are calculated with multipart uploads, see Checking object integrity - // (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums) + // present if it was uploaded with the object. When you use an API operation + // on an object that was uploaded using multipart uploads, this value may not + // be a direct checksum value of the full object. Instead, it's a calculation + // based on the checksum values of each individual part. For more information + // about how checksums are calculated with multipart uploads, see Checking object + // integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums) // in the Amazon S3 User Guide. ChecksumCRC32 *string `type:"string"` // The base64-encoded, 32-bit CRC32C checksum of the object. This will only - // be present if it was uploaded with the object. With multipart uploads, this - // may not be a checksum value of the object. For more information about how - // checksums are calculated with multipart uploads, see Checking object integrity - // (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums) + // be present if it was uploaded with the object. When you use an API operation + // on an object that was uploaded using multipart uploads, this value may not + // be a direct checksum value of the full object. Instead, it's a calculation + // based on the checksum values of each individual part. For more information + // about how checksums are calculated with multipart uploads, see Checking object + // integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums) // in the Amazon S3 User Guide. ChecksumCRC32C *string `type:"string"` // The base64-encoded, 160-bit SHA-1 digest of the object. This will only be - // present if it was uploaded with the object. With multipart uploads, this - // may not be a checksum value of the object. For more information about how - // checksums are calculated with multipart uploads, see Checking object integrity - // (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums) + // present if it was uploaded with the object. When you use the API operation + // on an object that was uploaded using multipart uploads, this value may not + // be a direct checksum value of the full object. Instead, it's a calculation + // based on the checksum values of each individual part. For more information + // about how checksums are calculated with multipart uploads, see Checking object + // integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums) // in the Amazon S3 User Guide. ChecksumSHA1 *string `type:"string"` // The base64-encoded, 256-bit SHA-256 digest of the object. This will only - // be present if it was uploaded with the object. With multipart uploads, this - // may not be a checksum value of the object. For more information about how - // checksums are calculated with multipart uploads, see Checking object integrity - // (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums) + // be present if it was uploaded with the object. When you use an API operation + // on an object that was uploaded using multipart uploads, this value may not + // be a direct checksum value of the full object. Instead, it's a calculation + // based on the checksum values of each individual part. For more information + // about how checksums are calculated with multipart uploads, see Checking object + // integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums) // in the Amazon S3 User Guide. ChecksumSHA256 *string `type:"string"` @@ -14411,8 +15744,29 @@ func (s *CopyPartResult) SetLastModified(v time.Time) *CopyPartResult { type CreateBucketConfiguration struct { _ struct{} `type:"structure"` - // Specifies the Region where the bucket will be created. If you don't specify - // a Region, the bucket is created in the US East (N. Virginia) Region (us-east-1). + // Specifies the information about the bucket that will be created. + // + // This functionality is only supported by directory buckets. + Bucket *BucketInfo `type:"structure"` + + // Specifies the location where the bucket will be created. + // + // For directory buckets, the location type is Availability Zone. + // + // This functionality is only supported by directory buckets. + Location *LocationInfo `type:"structure"` + + // Specifies the Region where the bucket will be created. You might choose a + // Region to optimize latency, minimize costs, or address regulatory requirements. + // For example, if you reside in Europe, you will probably find it advantageous + // to create buckets in the Europe (Ireland) Region. For more information, see + // Accessing a bucket (https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingBucket.html#access-bucket-intro) + // in the Amazon S3 User Guide. + // + // If you don't specify a Region, the bucket is created in the US East (N. Virginia) + // Region (us-east-1) by default. + // + // This functionality is not supported for directory buckets. LocationConstraint *string `type:"string" enum:"BucketLocationConstraint"` } @@ -14434,6 +15788,22 @@ func (s CreateBucketConfiguration) GoString() string { return s.String() } +// SetBucket sets the Bucket field's value. +func (s *CreateBucketConfiguration) SetBucket(v *BucketInfo) *CreateBucketConfiguration { + s.Bucket = v + return s +} + +func (s *CreateBucketConfiguration) getBucket() (v *BucketInfo) { + return s.Bucket +} + +// SetLocation sets the Location field's value. +func (s *CreateBucketConfiguration) SetLocation(v *LocationInfo) *CreateBucketConfiguration { + s.Location = v + return s +} + // SetLocationConstraint sets the LocationConstraint field's value. func (s *CreateBucketConfiguration) SetLocationConstraint(v string) *CreateBucketConfiguration { s.LocationConstraint = &v @@ -14444,10 +15814,25 @@ type CreateBucketInput struct { _ struct{} `locationName:"CreateBucketRequest" type:"structure" payload:"CreateBucketConfiguration"` // The canned ACL to apply to the bucket. + // + // This functionality is not supported for directory buckets. ACL *string `location:"header" locationName:"x-amz-acl" type:"string" enum:"BucketCannedACL"` // The name of the bucket to create. // + // General purpose buckets - For information about bucket naming restrictions, + // see Bucket naming rules (https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html) + // in the Amazon S3 User Guide. + // + // Directory buckets - When you use this operation with a directory bucket, + // you must use path-style requests in the format https://s3express-control.region_code.amazonaws.com/bucket-name + // . Virtual-hosted-style requests aren't supported. Directory bucket names + // must be unique in the chosen Availability Zone. Bucket names must also follow + // the format bucket_base_name--az_id--x-s3 (for example, DOC-EXAMPLE-BUCKET--usw2-az2--x-s3). + // For information about bucket naming restrictions, see Directory bucket naming + // rules (https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html) + // in the Amazon S3 User Guide + // // Bucket is a required field Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` @@ -14456,24 +15841,36 @@ type CreateBucketInput struct { // Allows grantee the read, write, read ACP, and write ACP permissions on the // bucket. + // + // This functionality is not supported for directory buckets. GrantFullControl *string `location:"header" locationName:"x-amz-grant-full-control" type:"string"` // Allows grantee to list the objects in the bucket. + // + // This functionality is not supported for directory buckets. GrantRead *string `location:"header" locationName:"x-amz-grant-read" type:"string"` // Allows grantee to read the bucket ACL. + // + // This functionality is not supported for directory buckets. GrantReadACP *string `location:"header" locationName:"x-amz-grant-read-acp" type:"string"` // Allows grantee to create new objects in the bucket. // // For the bucket and object owners of existing objects, also allows deletions // and overwrites of those objects. + // + // This functionality is not supported for directory buckets. GrantWrite *string `location:"header" locationName:"x-amz-grant-write" type:"string"` // Allows grantee to write the ACL for the applicable bucket. + // + // This functionality is not supported for directory buckets. GrantWriteACP *string `location:"header" locationName:"x-amz-grant-write-acp" type:"string"` // Specifies whether you want S3 Object Lock to be enabled for the new bucket. + // + // This functionality is not supported for directory buckets. ObjectLockEnabledForBucket *bool `location:"header" locationName:"x-amz-bucket-object-lock-enabled" type:"boolean"` // The container element for object ownership for a bucket's ownership controls. @@ -14488,8 +15885,19 @@ type CreateBucketInput struct { // BucketOwnerEnforced - Access control lists (ACLs) are disabled and no longer // affect permissions. The bucket owner automatically owns and has full control // over every object in the bucket. The bucket only accepts PUT requests that - // don't specify an ACL or bucket owner full control ACLs, such as the bucket-owner-full-control - // canned ACL or an equivalent form of this ACL expressed in the XML format. + // don't specify an ACL or specify bucket owner full control ACLs (such as the + // predefined bucket-owner-full-control canned ACL or a custom ACL in XML format + // that grants the same permissions). + // + // By default, ObjectOwnership is set to BucketOwnerEnforced and ACLs are disabled. + // We recommend keeping ACLs disabled, except in uncommon use cases where you + // must control access for each object individually. For more information about + // S3 Object Ownership, see Controlling ownership of objects and disabling ACLs + // for your bucket (https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html) + // in the Amazon S3 User Guide. + // + // This functionality is not supported for directory buckets. Directory buckets + // use the bucket owner enforced setting for S3 Object Ownership. ObjectOwnership *string `location:"header" locationName:"x-amz-object-ownership" type:"string" enum:"ObjectOwnership"` } @@ -14628,26 +16036,54 @@ func (s *CreateBucketOutput) SetLocation(v string) *CreateBucketOutput { type CreateMultipartUploadInput struct { _ struct{} `locationName:"CreateMultipartUploadRequest" type:"structure"` - // The canned ACL to apply to the object. + // The canned ACL to apply to the object. Amazon S3 supports a set of predefined + // ACLs, known as canned ACLs. Each canned ACL has a predefined set of grantees + // and permissions. For more information, see Canned ACL (https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#CannedACL) + // in the Amazon S3 User Guide. + // + // By default, all objects are private. Only the owner has full access control. + // When uploading an object, you can grant access permissions to individual + // Amazon Web Services accounts or to predefined groups defined by Amazon S3. + // These permissions are then added to the access control list (ACL) on the + // new object. For more information, see Using ACLs (https://docs.aws.amazon.com/AmazonS3/latest/dev/S3_ACLs_UsingACLs.html). + // One way to grant the permissions using the request headers is to specify + // a canned ACL with the x-amz-acl request header. // - // This action is not supported by Amazon S3 on Outposts. + // * This functionality is not supported for directory buckets. + // + // * This functionality is not supported for Amazon S3 on Outposts. ACL *string `location:"header" locationName:"x-amz-acl" type:"string" enum:"ObjectCannedACL"` - // The name of the bucket to which to initiate the upload + // The name of the bucket where the multipart upload is initiated and where + // the object is uploaded. + // + // Directory buckets - When you use this operation with a directory bucket, + // you must use virtual-hosted-style requests in the format Bucket_name.s3express-az_id.region.amazonaws.com. + // Path-style requests are not supported. Directory bucket names must be unique + // in the chosen Availability Zone. Bucket names must follow the format bucket_base_name--az-id--x-s3 + // (for example, DOC-EXAMPLE-BUCKET--usw2-az2--x-s3). For information about + // bucket naming restrictions, see Directory bucket naming rules (https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html) + // in the Amazon S3 User Guide. // - // When using this action with an access point, you must direct requests to - // the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. + // Access points - When you use this action with an access point, you must provide + // the alias of the access point in place of the bucket name or specify the + // access point ARN. When using the access point ARN, you must direct requests + // to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. // When using this action with an access point through the Amazon Web Services // SDKs, you provide the access point ARN in place of the bucket name. For more // information about access point ARNs, see Using access points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html) // in the Amazon S3 User Guide. // - // When you use this action with Amazon S3 on Outposts, you must direct requests - // to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form - // AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When - // you use this action with S3 on Outposts through the Amazon Web Services SDKs, - // you provide the Outposts access point ARN in place of the bucket name. For - // more information about S3 on Outposts ARNs, see What is S3 on Outposts? (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html) + // Access points and Object Lambda access points are not supported by directory + // buckets. + // + // S3 on Outposts - When you use this action with Amazon S3 on Outposts, you + // must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname + // takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. + // When you use this action with S3 on Outposts through the Amazon Web Services + // SDKs, you provide the Outposts access point ARN in place of the bucket name. + // For more information about S3 on Outposts ARNs, see What is S3 on Outposts? + // (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html) // in the Amazon S3 User Guide. // // Bucket is a required field @@ -14660,12 +16096,14 @@ type CreateMultipartUploadInput struct { // // Specifying this header with an object action doesn’t affect bucket-level // settings for S3 Bucket Key. + // + // This functionality is not supported for directory buckets. BucketKeyEnabled *bool `location:"header" locationName:"x-amz-server-side-encryption-bucket-key-enabled" type:"boolean"` // Specifies caching behavior along the request/reply chain. CacheControl *string `location:"header" locationName:"Cache-Control" type:"string"` - // Indicates the algorithm you want Amazon S3 to use to create the checksum + // Indicates the algorithm that you want Amazon S3 to use to create the checksum // for the object. For more information, see Checking object integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) // in the Amazon S3 User Guide. ChecksumAlgorithm *string `location:"header" locationName:"x-amz-checksum-algorithm" type:"string" enum:"ChecksumAlgorithm"` @@ -14676,40 +16114,175 @@ type CreateMultipartUploadInput struct { // Specifies what content encodings have been applied to the object and thus // what decoding mechanisms must be applied to obtain the media-type referenced // by the Content-Type header field. + // + // For directory buckets, only the aws-chunked value is supported in this header + // field. ContentEncoding *string `location:"header" locationName:"Content-Encoding" type:"string"` - // The language the content is in. + // The language that the content is in. ContentLanguage *string `location:"header" locationName:"Content-Language" type:"string"` // A standard MIME type describing the format of the object data. ContentType *string `location:"header" locationName:"Content-Type" type:"string"` - // The account ID of the expected bucket owner. If the bucket is owned by a - // different account, the request fails with the HTTP status code 403 Forbidden - // (access denied). + // The account ID of the expected bucket owner. If the account ID that you provide + // does not match the actual owner of the bucket, the request fails with the + // HTTP status code 403 Forbidden (access denied). ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` // The date and time at which the object is no longer cacheable. Expires *time.Time `location:"header" locationName:"Expires" type:"timestamp"` - // Gives the grantee READ, READ_ACP, and WRITE_ACP permissions on the object. + // Specify access permissions explicitly to give the grantee READ, READ_ACP, + // and WRITE_ACP permissions on the object. + // + // By default, all objects are private. Only the owner has full access control. + // When uploading an object, you can use this header to explicitly grant access + // permissions to specific Amazon Web Services accounts or groups. This header + // maps to specific permissions that Amazon S3 supports in an ACL. For more + // information, see Access Control List (ACL) Overview (https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html) + // in the Amazon S3 User Guide. + // + // You specify each grantee as a type=value pair, where the type is one of the + // following: + // + // * id – if the value specified is the canonical user ID of an Amazon + // Web Services account // - // This action is not supported by Amazon S3 on Outposts. + // * uri – if you are granting permissions to a predefined group + // + // * emailAddress – if the value specified is the email address of an Amazon + // Web Services account Using email addresses to specify a grantee is only + // supported in the following Amazon Web Services Regions: US East (N. Virginia) + // US West (N. California) US West (Oregon) Asia Pacific (Singapore) Asia + // Pacific (Sydney) Asia Pacific (Tokyo) Europe (Ireland) South America (São + // Paulo) For a list of all the Amazon S3 supported Regions and endpoints, + // see Regions and Endpoints (https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region) + // in the Amazon Web Services General Reference. + // + // For example, the following x-amz-grant-read header grants the Amazon Web + // Services accounts identified by account IDs permissions to read object data + // and its metadata: + // + // x-amz-grant-read: id="11112222333", id="444455556666" + // + // * This functionality is not supported for directory buckets. + // + // * This functionality is not supported for Amazon S3 on Outposts. GrantFullControl *string `location:"header" locationName:"x-amz-grant-full-control" type:"string"` - // Allows grantee to read the object data and its metadata. + // Specify access permissions explicitly to allow grantee to read the object + // data and its metadata. + // + // By default, all objects are private. Only the owner has full access control. + // When uploading an object, you can use this header to explicitly grant access + // permissions to specific Amazon Web Services accounts or groups. This header + // maps to specific permissions that Amazon S3 supports in an ACL. For more + // information, see Access Control List (ACL) Overview (https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html) + // in the Amazon S3 User Guide. // - // This action is not supported by Amazon S3 on Outposts. + // You specify each grantee as a type=value pair, where the type is one of the + // following: + // + // * id – if the value specified is the canonical user ID of an Amazon + // Web Services account + // + // * uri – if you are granting permissions to a predefined group + // + // * emailAddress – if the value specified is the email address of an Amazon + // Web Services account Using email addresses to specify a grantee is only + // supported in the following Amazon Web Services Regions: US East (N. Virginia) + // US West (N. California) US West (Oregon) Asia Pacific (Singapore) Asia + // Pacific (Sydney) Asia Pacific (Tokyo) Europe (Ireland) South America (São + // Paulo) For a list of all the Amazon S3 supported Regions and endpoints, + // see Regions and Endpoints (https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region) + // in the Amazon Web Services General Reference. + // + // For example, the following x-amz-grant-read header grants the Amazon Web + // Services accounts identified by account IDs permissions to read object data + // and its metadata: + // + // x-amz-grant-read: id="11112222333", id="444455556666" + // + // * This functionality is not supported for directory buckets. + // + // * This functionality is not supported for Amazon S3 on Outposts. GrantRead *string `location:"header" locationName:"x-amz-grant-read" type:"string"` - // Allows grantee to read the object ACL. + // Specify access permissions explicitly to allows grantee to read the object + // ACL. + // + // By default, all objects are private. Only the owner has full access control. + // When uploading an object, you can use this header to explicitly grant access + // permissions to specific Amazon Web Services accounts or groups. This header + // maps to specific permissions that Amazon S3 supports in an ACL. For more + // information, see Access Control List (ACL) Overview (https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html) + // in the Amazon S3 User Guide. + // + // You specify each grantee as a type=value pair, where the type is one of the + // following: + // + // * id – if the value specified is the canonical user ID of an Amazon + // Web Services account + // + // * uri – if you are granting permissions to a predefined group + // + // * emailAddress – if the value specified is the email address of an Amazon + // Web Services account Using email addresses to specify a grantee is only + // supported in the following Amazon Web Services Regions: US East (N. Virginia) + // US West (N. California) US West (Oregon) Asia Pacific (Singapore) Asia + // Pacific (Sydney) Asia Pacific (Tokyo) Europe (Ireland) South America (São + // Paulo) For a list of all the Amazon S3 supported Regions and endpoints, + // see Regions and Endpoints (https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region) + // in the Amazon Web Services General Reference. + // + // For example, the following x-amz-grant-read header grants the Amazon Web + // Services accounts identified by account IDs permissions to read object data + // and its metadata: + // + // x-amz-grant-read: id="11112222333", id="444455556666" // - // This action is not supported by Amazon S3 on Outposts. + // * This functionality is not supported for directory buckets. + // + // * This functionality is not supported for Amazon S3 on Outposts. GrantReadACP *string `location:"header" locationName:"x-amz-grant-read-acp" type:"string"` - // Allows grantee to write the ACL for the applicable object. + // Specify access permissions explicitly to allows grantee to allow grantee + // to write the ACL for the applicable object. + // + // By default, all objects are private. Only the owner has full access control. + // When uploading an object, you can use this header to explicitly grant access + // permissions to specific Amazon Web Services accounts or groups. This header + // maps to specific permissions that Amazon S3 supports in an ACL. For more + // information, see Access Control List (ACL) Overview (https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html) + // in the Amazon S3 User Guide. + // + // You specify each grantee as a type=value pair, where the type is one of the + // following: + // + // * id – if the value specified is the canonical user ID of an Amazon + // Web Services account + // + // * uri – if you are granting permissions to a predefined group + // + // * emailAddress – if the value specified is the email address of an Amazon + // Web Services account Using email addresses to specify a grantee is only + // supported in the following Amazon Web Services Regions: US East (N. Virginia) + // US West (N. California) US West (Oregon) Asia Pacific (Singapore) Asia + // Pacific (Sydney) Asia Pacific (Tokyo) Europe (Ireland) South America (São + // Paulo) For a list of all the Amazon S3 supported Regions and endpoints, + // see Regions and Endpoints (https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region) + // in the Amazon Web Services General Reference. // - // This action is not supported by Amazon S3 on Outposts. + // For example, the following x-amz-grant-read header grants the Amazon Web + // Services accounts identified by account IDs permissions to read object data + // and its metadata: + // + // x-amz-grant-read: id="11112222333", id="444455556666" + // + // * This functionality is not supported for directory buckets. + // + // * This functionality is not supported for Amazon S3 on Outposts. GrantWriteACP *string `location:"header" locationName:"x-amz-grant-write-acp" type:"string"` // Object key for which the multipart upload is to be initiated. @@ -14721,25 +16294,34 @@ type CreateMultipartUploadInput struct { Metadata map[string]*string `location:"headers" locationName:"x-amz-meta-" type:"map"` // Specifies whether you want to apply a legal hold to the uploaded object. + // + // This functionality is not supported for directory buckets. ObjectLockLegalHoldStatus *string `location:"header" locationName:"x-amz-object-lock-legal-hold" type:"string" enum:"ObjectLockLegalHoldStatus"` // Specifies the Object Lock mode that you want to apply to the uploaded object. + // + // This functionality is not supported for directory buckets. ObjectLockMode *string `location:"header" locationName:"x-amz-object-lock-mode" type:"string" enum:"ObjectLockMode"` // Specifies the date and time when you want the Object Lock to expire. + // + // This functionality is not supported for directory buckets. ObjectLockRetainUntilDate *time.Time `location:"header" locationName:"x-amz-object-lock-retain-until-date" type:"timestamp" timestampFormat:"iso8601"` // Confirms that the requester knows that they will be charged for the request. // Bucket owners need not specify this parameter in their requests. If either - // the source or destination Amazon S3 bucket has Requester Pays enabled, the - // requester will pay for corresponding charges to copy the object. For information - // about downloading objects from Requester Pays buckets, see Downloading Objects + // the source or destination S3 bucket has Requester Pays enabled, the requester + // will pay for corresponding charges to copy the object. For information about + // downloading objects from Requester Pays buckets, see Downloading Objects // in Requester Pays Buckets (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html) // in the Amazon S3 User Guide. + // + // This functionality is not supported for directory buckets. RequestPayer *string `location:"header" locationName:"x-amz-request-payer" type:"string" enum:"RequestPayer"` - // Specifies the algorithm to use to when encrypting the object (for example, - // AES256). + // Specifies the algorithm to use when encrypting the object (for example, AES256). + // + // This functionality is not supported for directory buckets. SSECustomerAlgorithm *string `location:"header" locationName:"x-amz-server-side-encryption-customer-algorithm" type:"string"` // Specifies the customer-provided encryption key for Amazon S3 to use in encrypting @@ -14748,56 +16330,70 @@ type CreateMultipartUploadInput struct { // with the algorithm specified in the x-amz-server-side-encryption-customer-algorithm // header. // + // This functionality is not supported for directory buckets. + // // SSECustomerKey is a sensitive parameter and its value will be // replaced with "sensitive" in string returned by CreateMultipartUploadInput's // String and GoString methods. SSECustomerKey *string `marshal-as:"blob" location:"header" locationName:"x-amz-server-side-encryption-customer-key" type:"string" sensitive:"true"` - // Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. - // Amazon S3 uses this header for a message integrity check to ensure that the - // encryption key was transmitted without error. + // Specifies the 128-bit MD5 digest of the customer-provided encryption key + // according to RFC 1321. Amazon S3 uses this header for a message integrity + // check to ensure that the encryption key was transmitted without error. + // + // This functionality is not supported for directory buckets. SSECustomerKeyMD5 *string `location:"header" locationName:"x-amz-server-side-encryption-customer-key-MD5" type:"string"` // Specifies the Amazon Web Services KMS Encryption Context to use for object // encryption. The value of this header is a base64-encoded UTF-8 string holding // JSON with the encryption context key-value pairs. // + // This functionality is not supported for directory buckets. + // // SSEKMSEncryptionContext is a sensitive parameter and its value will be // replaced with "sensitive" in string returned by CreateMultipartUploadInput's // String and GoString methods. SSEKMSEncryptionContext *string `location:"header" locationName:"x-amz-server-side-encryption-context" type:"string" sensitive:"true"` // Specifies the ID (Key ID, Key ARN, or Key Alias) of the symmetric encryption - // customer managed key to use for object encryption. All GET and PUT requests - // for an object protected by KMS will fail if they're not made via SSL or using - // SigV4. For information about configuring any of the officially supported - // Amazon Web Services SDKs and Amazon Web Services CLI, see Specifying the - // Signature Version in Request Authentication (https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingAWSSDK.html#specify-signature-version) - // in the Amazon S3 User Guide. + // customer managed key to use for object encryption. + // + // This functionality is not supported for directory buckets. // // SSEKMSKeyId is a sensitive parameter and its value will be // replaced with "sensitive" in string returned by CreateMultipartUploadInput's // String and GoString methods. SSEKMSKeyId *string `location:"header" locationName:"x-amz-server-side-encryption-aws-kms-key-id" type:"string" sensitive:"true"` - // The server-side encryption algorithm used when storing this object in Amazon + // The server-side encryption algorithm used when you store this object in Amazon // S3 (for example, AES256, aws:kms). + // + // For directory buckets, only server-side encryption with Amazon S3 managed + // keys (SSE-S3) (AES256) is supported. ServerSideEncryption *string `location:"header" locationName:"x-amz-server-side-encryption" type:"string" enum:"ServerSideEncryption"` // By default, Amazon S3 uses the STANDARD Storage Class to store newly created // objects. The STANDARD storage class provides high durability and high availability. // Depending on performance needs, you can specify a different Storage Class. - // Amazon S3 on Outposts only uses the OUTPOSTS Storage Class. For more information, - // see Storage Classes (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html) + // For more information, see Storage Classes (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html) // in the Amazon S3 User Guide. + // + // * For directory buckets, only the S3 Express One Zone storage class is + // supported to store newly created objects. + // + // * Amazon S3 on Outposts only uses the OUTPOSTS Storage Class. StorageClass *string `location:"header" locationName:"x-amz-storage-class" type:"string" enum:"StorageClass"` // The tag-set for the object. The tag-set must be encoded as URL Query parameters. + // + // This functionality is not supported for directory buckets. Tagging *string `location:"header" locationName:"x-amz-tagging" type:"string"` // If the bucket is configured as a website, redirects requests for this object // to another object in the same bucket or to an external URL. Amazon S3 stores // the value of this header in the object metadata. + // + // This functionality is not supported for directory buckets. WebsiteRedirectLocation *string `location:"header" locationName:"x-amz-website-redirect-location" type:"string"` } @@ -15070,38 +16666,32 @@ type CreateMultipartUploadOutput struct { // name in the request, the response includes this header. The header indicates // when the initiated multipart upload becomes eligible for an abort operation. // For more information, see Aborting Incomplete Multipart Uploads Using a Bucket - // Lifecycle Configuration (https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview.html#mpu-abort-incomplete-mpu-lifecycle-config). + // Lifecycle Configuration (https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview.html#mpu-abort-incomplete-mpu-lifecycle-config) + // in the Amazon S3 User Guide. // // The response also includes the x-amz-abort-rule-id header that provides the - // ID of the lifecycle configuration rule that defines this action. + // ID of the lifecycle configuration rule that defines the abort action. + // + // This functionality is not supported for directory buckets. AbortDate *time.Time `location:"header" locationName:"x-amz-abort-date" type:"timestamp"` // This header is returned along with the x-amz-abort-date header. It identifies // the applicable lifecycle configuration rule that defines the action to abort // incomplete multipart uploads. + // + // This functionality is not supported for directory buckets. AbortRuleId *string `location:"header" locationName:"x-amz-abort-rule-id" type:"string"` // The name of the bucket to which the multipart upload was initiated. Does // not return the access point ARN or access point alias if used. // - // When using this action with an access point, you must direct requests to - // the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. - // When using this action with an access point through the Amazon Web Services - // SDKs, you provide the access point ARN in place of the bucket name. For more - // information about access point ARNs, see Using access points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html) - // in the Amazon S3 User Guide. - // - // When you use this action with Amazon S3 on Outposts, you must direct requests - // to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form - // AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When - // you use this action with S3 on Outposts through the Amazon Web Services SDKs, - // you provide the Outposts access point ARN in place of the bucket name. For - // more information about S3 on Outposts ARNs, see What is S3 on Outposts? (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html) - // in the Amazon S3 User Guide. + // Access points are not supported by directory buckets. Bucket *string `locationName:"Bucket" type:"string"` // Indicates whether the multipart upload uses an S3 Bucket Key for server-side // encryption with Key Management Service (KMS) keys (SSE-KMS). + // + // This functionality is not supported for directory buckets. BucketKeyEnabled *bool `location:"header" locationName:"x-amz-server-side-encryption-bucket-key-enabled" type:"boolean"` // The algorithm that was used to create a checksum of the object. @@ -15112,37 +16702,50 @@ type CreateMultipartUploadOutput struct { // If present, indicates that the requester was successfully charged for the // request. + // + // This functionality is not supported for directory buckets. RequestCharged *string `location:"header" locationName:"x-amz-request-charged" type:"string" enum:"RequestCharged"` // If server-side encryption with a customer-provided encryption key was requested, - // the response will include this header confirming the encryption algorithm - // used. + // the response will include this header to confirm the encryption algorithm + // that's used. + // + // This functionality is not supported for directory buckets. SSECustomerAlgorithm *string `location:"header" locationName:"x-amz-server-side-encryption-customer-algorithm" type:"string"` // If server-side encryption with a customer-provided encryption key was requested, - // the response will include this header to provide round-trip message integrity + // the response will include this header to provide the round-trip message integrity // verification of the customer-provided encryption key. + // + // This functionality is not supported for directory buckets. SSECustomerKeyMD5 *string `location:"header" locationName:"x-amz-server-side-encryption-customer-key-MD5" type:"string"` - // If present, specifies the Amazon Web Services KMS Encryption Context to use + // If present, indicates the Amazon Web Services KMS Encryption Context to use // for object encryption. The value of this header is a base64-encoded UTF-8 // string holding JSON with the encryption context key-value pairs. // + // This functionality is not supported for directory buckets. + // // SSEKMSEncryptionContext is a sensitive parameter and its value will be // replaced with "sensitive" in string returned by CreateMultipartUploadOutput's // String and GoString methods. SSEKMSEncryptionContext *string `location:"header" locationName:"x-amz-server-side-encryption-context" type:"string" sensitive:"true"` - // If present, specifies the ID of the Key Management Service (KMS) symmetric + // If present, indicates the ID of the Key Management Service (KMS) symmetric // encryption customer managed key that was used for the object. // + // This functionality is not supported for directory buckets. + // // SSEKMSKeyId is a sensitive parameter and its value will be // replaced with "sensitive" in string returned by CreateMultipartUploadOutput's // String and GoString methods. SSEKMSKeyId *string `location:"header" locationName:"x-amz-server-side-encryption-aws-kms-key-id" type:"string" sensitive:"true"` - // The server-side encryption algorithm used when storing this object in Amazon + // The server-side encryption algorithm used when you store this object in Amazon // S3 (for example, AES256, aws:kms). + // + // For directory buckets, only server-side encryption with Amazon S3 managed + // keys (SSE-S3) (AES256) is supported. ServerSideEncryption *string `location:"header" locationName:"x-amz-server-side-encryption" type:"string" enum:"ServerSideEncryption"` // ID for the initiated multipart upload. @@ -15252,6 +16855,136 @@ func (s *CreateMultipartUploadOutput) SetUploadId(v string) *CreateMultipartUplo return s } +type CreateSessionInput struct { + _ struct{} `locationName:"CreateSessionRequest" type:"structure"` + + // The name of the bucket that you create a session for. + // + // Bucket is a required field + Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` + + // Specifies the mode of the session that will be created, either ReadWrite + // or ReadOnly. By default, a ReadWrite session is created. A ReadWrite session + // is capable of executing all the Zonal endpoint APIs on a directory bucket. + // A ReadOnly session is constrained to execute the following Zonal endpoint + // APIs: GetObject, HeadObject, ListObjectsV2, GetObjectAttributes, ListParts, + // and ListMultipartUploads. + SessionMode *string `location:"header" locationName:"x-amz-create-session-mode" type:"string" enum:"SessionMode"` +} + +// 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.Bucket == nil { + invalidParams.Add(request.NewErrParamRequired("Bucket")) + } + if s.Bucket != nil && len(*s.Bucket) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Bucket", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetBucket sets the Bucket field's value. +func (s *CreateSessionInput) SetBucket(v string) *CreateSessionInput { + s.Bucket = &v + return s +} + +func (s *CreateSessionInput) getBucket() (v string) { + if s.Bucket == nil { + return v + } + return *s.Bucket +} + +// SetSessionMode sets the SessionMode field's value. +func (s *CreateSessionInput) SetSessionMode(v string) *CreateSessionInput { + s.SessionMode = &v + return s +} + +func (s *CreateSessionInput) getEndpointARN() (arn.Resource, error) { + if s.Bucket == nil { + return nil, fmt.Errorf("member Bucket is nil") + } + return parseEndpointARN(*s.Bucket) +} + +func (s *CreateSessionInput) hasEndpointARN() bool { + if s.Bucket == nil { + return false + } + return arn.IsARN(*s.Bucket) +} + +// updateArnableField updates the value of the input field that +// takes an ARN as an input. This method is useful to backfill +// the parsed resource name from ARN into the input member. +// It returns a pointer to a modified copy of input and an error. +// Note that original input is not modified. +func (s CreateSessionInput) updateArnableField(v string) (interface{}, error) { + if s.Bucket == nil { + return nil, fmt.Errorf("member Bucket is nil") + } + s.Bucket = aws.String(v) + return &s, nil +} + +type CreateSessionOutput struct { + _ struct{} `type:"structure"` + + // The established temporary security credentials for the created session.. + // + // Credentials is a required field + Credentials *SessionCredentials `locationName:"Credentials" 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 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() +} + +// SetCredentials sets the Credentials field's value. +func (s *CreateSessionOutput) SetCredentials(v *SessionCredentials) *CreateSessionOutput { + s.Credentials = v + return s +} + // The container element for specifying the default Object Lock retention settings // for new objects placed in the specified bucket. // @@ -15317,6 +17050,11 @@ type Delete struct { // The object to delete. // + // Directory buckets - For directory buckets, an object that's composed entirely + // of whitespace characters is not supported by the DeleteObjects API operation. + // The request will receive a 400 Bad Request error and none of the objects + // in the request will be deleted. + // // Objects is a required field Objects []*ObjectIdentifier `locationName:"Object" type:"list" flattened:"true" required:"true"` @@ -15386,9 +17124,9 @@ type DeleteBucketAnalyticsConfigurationInput struct { // Bucket is a required field Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` - // The account ID of the expected bucket owner. If the bucket is owned by a - // different account, the request fails with the HTTP status code 403 Forbidden - // (access denied). + // The account ID of the expected bucket owner. If the account ID that you provide + // does not match the actual owner of the bucket, the request fails with the + // HTTP status code 403 Forbidden (access denied). ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` // The ID that identifies the analytics configuration. @@ -15516,9 +17254,9 @@ type DeleteBucketCorsInput struct { // Bucket is a required field Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` - // The account ID of the expected bucket owner. If the bucket is owned by a - // different account, the request fails with the HTTP status code 403 Forbidden - // (access denied). + // The account ID of the expected bucket owner. If the account ID that you provide + // does not match the actual owner of the bucket, the request fails with the + // HTTP status code 403 Forbidden (access denied). ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` } @@ -15633,9 +17371,9 @@ type DeleteBucketEncryptionInput struct { // Bucket is a required field Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` - // The account ID of the expected bucket owner. If the bucket is owned by a - // different account, the request fails with the HTTP status code 403 Forbidden - // (access denied). + // The account ID of the expected bucket owner. If the account ID that you provide + // does not match the actual owner of the bucket, the request fails with the + // HTTP status code 403 Forbidden (access denied). ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` } @@ -15746,12 +17484,25 @@ type DeleteBucketInput struct { // Specifies the bucket being deleted. // + // Directory buckets - When you use this operation with a directory bucket, + // you must use path-style requests in the format https://s3express-control.region_code.amazonaws.com/bucket-name + // . Virtual-hosted-style requests aren't supported. Directory bucket names + // must be unique in the chosen Availability Zone. Bucket names must also follow + // the format bucket_base_name--az_id--x-s3 (for example, DOC-EXAMPLE-BUCKET--usw2-az2--x-s3). + // For information about bucket naming restrictions, see Directory bucket naming + // rules (https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html) + // in the Amazon S3 User Guide + // // Bucket is a required field Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` - // The account ID of the expected bucket owner. If the bucket is owned by a - // different account, the request fails with the HTTP status code 403 Forbidden - // (access denied). + // The account ID of the expected bucket owner. If the account ID that you provide + // does not match the actual owner of the bucket, the request fails with the + // HTTP status code 403 Forbidden (access denied). + // + // For directory buckets, this header is not supported in this API operation. + // If you specify this header, the request fails with the HTTP status code 501 + // Not Implemented. ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` } @@ -15963,9 +17714,9 @@ type DeleteBucketInventoryConfigurationInput struct { // Bucket is a required field Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` - // The account ID of the expected bucket owner. If the bucket is owned by a - // different account, the request fails with the HTTP status code 403 Forbidden - // (access denied). + // The account ID of the expected bucket owner. If the account ID that you provide + // does not match the actual owner of the bucket, the request fails with the + // HTTP status code 403 Forbidden (access denied). ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` // The ID used to identify the inventory configuration. @@ -16093,9 +17844,9 @@ type DeleteBucketLifecycleInput struct { // Bucket is a required field Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` - // The account ID of the expected bucket owner. If the bucket is owned by a - // different account, the request fails with the HTTP status code 403 Forbidden - // (access denied). + // The account ID of the expected bucket owner. If the account ID that you provide + // does not match the actual owner of the bucket, the request fails with the + // HTTP status code 403 Forbidden (access denied). ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` } @@ -16209,9 +17960,9 @@ type DeleteBucketMetricsConfigurationInput struct { // Bucket is a required field Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` - // The account ID of the expected bucket owner. If the bucket is owned by a - // different account, the request fails with the HTTP status code 403 Forbidden - // (access denied). + // The account ID of the expected bucket owner. If the account ID that you provide + // does not match the actual owner of the bucket, the request fails with the + // HTTP status code 403 Forbidden (access denied). ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` // The ID used to identify the metrics configuration. The ID has a 64 character @@ -16362,9 +18113,9 @@ type DeleteBucketOwnershipControlsInput struct { // Bucket is a required field Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` - // The account ID of the expected bucket owner. If the bucket is owned by a - // different account, the request fails with the HTTP status code 403 Forbidden - // (access denied). + // The account ID of the expected bucket owner. If the account ID that you provide + // does not match the actual owner of the bucket, the request fails with the + // HTTP status code 403 Forbidden (access denied). ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` } @@ -16475,12 +18226,25 @@ type DeleteBucketPolicyInput struct { // The bucket name. // + // Directory buckets - When you use this operation with a directory bucket, + // you must use path-style requests in the format https://s3express-control.region_code.amazonaws.com/bucket-name + // . Virtual-hosted-style requests aren't supported. Directory bucket names + // must be unique in the chosen Availability Zone. Bucket names must also follow + // the format bucket_base_name--az_id--x-s3 (for example, DOC-EXAMPLE-BUCKET--usw2-az2--x-s3). + // For information about bucket naming restrictions, see Directory bucket naming + // rules (https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html) + // in the Amazon S3 User Guide + // // Bucket is a required field Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` - // The account ID of the expected bucket owner. If the bucket is owned by a - // different account, the request fails with the HTTP status code 403 Forbidden - // (access denied). + // The account ID of the expected bucket owner. If the account ID that you provide + // does not match the actual owner of the bucket, the request fails with the + // HTTP status code 403 Forbidden (access denied). + // + // For directory buckets, this header is not supported in this API operation. + // If you specify this header, the request fails with the HTTP status code 501 + // Not Implemented. ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` } @@ -16594,9 +18358,9 @@ type DeleteBucketReplicationInput struct { // Bucket is a required field Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` - // The account ID of the expected bucket owner. If the bucket is owned by a - // different account, the request fails with the HTTP status code 403 Forbidden - // (access denied). + // The account ID of the expected bucket owner. If the account ID that you provide + // does not match the actual owner of the bucket, the request fails with the + // HTTP status code 403 Forbidden (access denied). ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` } @@ -16710,9 +18474,9 @@ type DeleteBucketTaggingInput struct { // Bucket is a required field Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` - // The account ID of the expected bucket owner. If the bucket is owned by a - // different account, the request fails with the HTTP status code 403 Forbidden - // (access denied). + // The account ID of the expected bucket owner. If the account ID that you provide + // does not match the actual owner of the bucket, the request fails with the + // HTTP status code 403 Forbidden (access denied). ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` } @@ -16826,9 +18590,9 @@ type DeleteBucketWebsiteInput struct { // Bucket is a required field Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` - // The account ID of the expected bucket owner. If the bucket is owned by a - // different account, the request fails with the HTTP status code 403 Forbidden - // (access denied). + // The account ID of the expected bucket owner. If the account ID that you provide + // does not match the actual owner of the bucket, the request fails with the + // HTTP status code 403 Forbidden (access denied). ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` } @@ -17054,19 +18818,33 @@ type DeleteObjectInput struct { // The bucket name of the bucket containing the object. // - // When using this action with an access point, you must direct requests to - // the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. + // Directory buckets - When you use this operation with a directory bucket, + // you must use virtual-hosted-style requests in the format Bucket_name.s3express-az_id.region.amazonaws.com. + // Path-style requests are not supported. Directory bucket names must be unique + // in the chosen Availability Zone. Bucket names must follow the format bucket_base_name--az-id--x-s3 + // (for example, DOC-EXAMPLE-BUCKET--usw2-az2--x-s3). For information about + // bucket naming restrictions, see Directory bucket naming rules (https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html) + // in the Amazon S3 User Guide. + // + // Access points - When you use this action with an access point, you must provide + // the alias of the access point in place of the bucket name or specify the + // access point ARN. When using the access point ARN, you must direct requests + // to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. // When using this action with an access point through the Amazon Web Services // SDKs, you provide the access point ARN in place of the bucket name. For more // information about access point ARNs, see Using access points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html) // in the Amazon S3 User Guide. // - // When you use this action with Amazon S3 on Outposts, you must direct requests - // to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form - // AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When - // you use this action with S3 on Outposts through the Amazon Web Services SDKs, - // you provide the Outposts access point ARN in place of the bucket name. For - // more information about S3 on Outposts ARNs, see What is S3 on Outposts? (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html) + // Access points and Object Lambda access points are not supported by directory + // buckets. + // + // S3 on Outposts - When you use this action with Amazon S3 on Outposts, you + // must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname + // takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. + // When you use this action with S3 on Outposts through the Amazon Web Services + // SDKs, you provide the Outposts access point ARN in place of the bucket name. + // For more information about S3 on Outposts ARNs, see What is S3 on Outposts? + // (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html) // in the Amazon S3 User Guide. // // Bucket is a required field @@ -17075,11 +18853,13 @@ type DeleteObjectInput struct { // Indicates whether S3 Object Lock should bypass Governance-mode restrictions // to process this operation. To use this header, you must have the s3:BypassGovernanceRetention // permission. + // + // This functionality is not supported for directory buckets. BypassGovernanceRetention *bool `location:"header" locationName:"x-amz-bypass-governance-retention" type:"boolean"` - // The account ID of the expected bucket owner. If the bucket is owned by a - // different account, the request fails with the HTTP status code 403 Forbidden - // (access denied). + // The account ID of the expected bucket owner. If the account ID that you provide + // does not match the actual owner of the bucket, the request fails with the + // HTTP status code 403 Forbidden (access denied). ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` // Key name of the object to delete. @@ -17091,18 +18871,25 @@ type DeleteObjectInput struct { // and the value that is displayed on your authentication device. Required to // permanently delete a versioned object if versioning is configured with MFA // delete enabled. + // + // This functionality is not supported for directory buckets. MFA *string `location:"header" locationName:"x-amz-mfa" type:"string"` // Confirms that the requester knows that they will be charged for the request. // Bucket owners need not specify this parameter in their requests. If either - // the source or destination Amazon S3 bucket has Requester Pays enabled, the - // requester will pay for corresponding charges to copy the object. For information - // about downloading objects from Requester Pays buckets, see Downloading Objects + // the source or destination S3 bucket has Requester Pays enabled, the requester + // will pay for corresponding charges to copy the object. For information about + // downloading objects from Requester Pays buckets, see Downloading Objects // in Requester Pays Buckets (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html) // in the Amazon S3 User Guide. + // + // This functionality is not supported for directory buckets. RequestPayer *string `location:"header" locationName:"x-amz-request-payer" type:"string" enum:"RequestPayer"` - // VersionId used to reference a specific version of the object. + // Version ID used to reference a specific version of the object. + // + // For directory buckets in this API operation, only the null value of the version + // ID is supported. VersionId *string `location:"querystring" locationName:"versionId" type:"string"` } @@ -17229,14 +19016,20 @@ type DeleteObjectOutput struct { // was (true) or was not (false) a delete marker before deletion. In a simple // DELETE, this header indicates whether (true) or not (false) the current version // of the object is a delete marker. + // + // This functionality is not supported for directory buckets. DeleteMarker *bool `location:"header" locationName:"x-amz-delete-marker" type:"boolean"` // If present, indicates that the requester was successfully charged for the // request. + // + // This functionality is not supported for directory buckets. RequestCharged *string `location:"header" locationName:"x-amz-request-charged" type:"string" enum:"RequestCharged"` // Returns the version ID of the delete marker created as a result of the DELETE // operation. + // + // This functionality is not supported for directory buckets. VersionId *string `location:"header" locationName:"x-amz-version-id" type:"string"` } @@ -17281,27 +19074,30 @@ type DeleteObjectTaggingInput struct { // The bucket name containing the objects from which to remove the tags. // - // When using this action with an access point, you must direct requests to - // the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. + // Access points - When you use this action with an access point, you must provide + // the alias of the access point in place of the bucket name or specify the + // access point ARN. When using the access point ARN, you must direct requests + // to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. // When using this action with an access point through the Amazon Web Services // SDKs, you provide the access point ARN in place of the bucket name. For more // information about access point ARNs, see Using access points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html) // in the Amazon S3 User Guide. // - // When you use this action with Amazon S3 on Outposts, you must direct requests - // to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form - // AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When - // you use this action with S3 on Outposts through the Amazon Web Services SDKs, - // you provide the Outposts access point ARN in place of the bucket name. For - // more information about S3 on Outposts ARNs, see What is S3 on Outposts? (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html) + // S3 on Outposts - When you use this action with Amazon S3 on Outposts, you + // must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname + // takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. + // When you use this action with S3 on Outposts through the Amazon Web Services + // SDKs, you provide the Outposts access point ARN in place of the bucket name. + // For more information about S3 on Outposts ARNs, see What is S3 on Outposts? + // (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html) // in the Amazon S3 User Guide. // // Bucket is a required field Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` - // The account ID of the expected bucket owner. If the bucket is owned by a - // different account, the request fails with the HTTP status code 403 Forbidden - // (access denied). + // The account ID of the expected bucket owner. If the account ID that you provide + // does not match the actual owner of the bucket, the request fails with the + // HTTP status code 403 Forbidden (access denied). ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` // The key that identifies the object in the bucket from which to remove all @@ -17448,19 +19244,33 @@ type DeleteObjectsInput struct { // The bucket name containing the objects to delete. // - // When using this action with an access point, you must direct requests to - // the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. + // Directory buckets - When you use this operation with a directory bucket, + // you must use virtual-hosted-style requests in the format Bucket_name.s3express-az_id.region.amazonaws.com. + // Path-style requests are not supported. Directory bucket names must be unique + // in the chosen Availability Zone. Bucket names must follow the format bucket_base_name--az-id--x-s3 + // (for example, DOC-EXAMPLE-BUCKET--usw2-az2--x-s3). For information about + // bucket naming restrictions, see Directory bucket naming rules (https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html) + // in the Amazon S3 User Guide. + // + // Access points - When you use this action with an access point, you must provide + // the alias of the access point in place of the bucket name or specify the + // access point ARN. When using the access point ARN, you must direct requests + // to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. // When using this action with an access point through the Amazon Web Services // SDKs, you provide the access point ARN in place of the bucket name. For more // information about access point ARNs, see Using access points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html) // in the Amazon S3 User Guide. // - // When you use this action with Amazon S3 on Outposts, you must direct requests - // to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form - // AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When - // you use this action with S3 on Outposts through the Amazon Web Services SDKs, - // you provide the Outposts access point ARN in place of the bucket name. For - // more information about S3 on Outposts ARNs, see What is S3 on Outposts? (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html) + // Access points and Object Lambda access points are not supported by directory + // buckets. + // + // S3 on Outposts - When you use this action with Amazon S3 on Outposts, you + // must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname + // takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. + // When you use this action with S3 on Outposts through the Amazon Web Services + // SDKs, you provide the Outposts access point ARN in place of the bucket name. + // For more information about S3 on Outposts ARNs, see What is S3 on Outposts? + // (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html) // in the Amazon S3 User Guide. // // Bucket is a required field @@ -17469,22 +19279,38 @@ type DeleteObjectsInput struct { // Specifies whether you want to delete this object even if it has a Governance-type // Object Lock in place. To use this header, you must have the s3:BypassGovernanceRetention // permission. + // + // This functionality is not supported for directory buckets. BypassGovernanceRetention *bool `location:"header" locationName:"x-amz-bypass-governance-retention" type:"boolean"` - // Indicates the algorithm used to create the checksum for the object when using - // the SDK. This header will not provide any additional functionality if not - // using the SDK. When sending this header, there must be a corresponding x-amz-checksum - // or x-amz-trailer header sent. Otherwise, Amazon S3 fails the request with - // the HTTP status code 400 Bad Request. For more information, see Checking - // object integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) + // Indicates the algorithm used to create the checksum for the object when you + // use the SDK. This header will not provide any additional functionality if + // you don't use the SDK. When you send this header, there must be a corresponding + // x-amz-checksum-algorithm or x-amz-trailer header sent. Otherwise, Amazon + // S3 fails the request with the HTTP status code 400 Bad Request. + // + // For the x-amz-checksum-algorithm header, replace algorithm with the supported + // algorithm from the following list: + // + // * CRC32 + // + // * CRC32C + // + // * SHA1 + // + // * SHA256 + // + // For more information, see Checking object integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) // in the Amazon S3 User Guide. // + // If the individual checksum value you provide through x-amz-checksum-algorithm + // doesn't match the checksum algorithm you set through x-amz-sdk-checksum-algorithm, + // Amazon S3 ignores any provided ChecksumAlgorithm parameter and uses the checksum + // algorithm that matches the provided value in x-amz-checksum-algorithm . + // // If you provide an individual checksum, Amazon S3 ignores any provided ChecksumAlgorithm // parameter. // - // This checksum algorithm must be the same for all parts and it match the checksum - // value supplied in the CreateMultipartUpload request. - // // The AWS SDK for Go v1 does not support automatic computing request payload // checksum. This feature is available in the AWS SDK for Go v2. If a value // is specified for this parameter, the matching algorithm's checksum member @@ -17500,24 +19326,37 @@ type DeleteObjectsInput struct { // Delete is a required field Delete *Delete `locationName:"Delete" type:"structure" required:"true" xmlURI:"http://s3.amazonaws.com/doc/2006-03-01/"` - // The account ID of the expected bucket owner. If the bucket is owned by a - // different account, the request fails with the HTTP status code 403 Forbidden - // (access denied). + // The account ID of the expected bucket owner. If the account ID that you provide + // does not match the actual owner of the bucket, the request fails with the + // HTTP status code 403 Forbidden (access denied). ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` // The concatenation of the authentication device's serial number, a space, // and the value that is displayed on your authentication device. Required to // permanently delete a versioned object if versioning is configured with MFA // delete enabled. + // + // When performing the DeleteObjects operation on an MFA delete enabled bucket, + // which attempts to delete the specified versioned objects, you must include + // an MFA token. If you don't provide an MFA token, the entire request will + // fail, even if there are non-versioned objects that you are trying to delete. + // If you provide an invalid token, whether there are versioned object keys + // in the request or not, the entire Multi-Object Delete request will fail. + // For information about MFA Delete, see MFA Delete (https://docs.aws.amazon.com/AmazonS3/latest/dev/Versioning.html#MultiFactorAuthenticationDelete) + // in the Amazon S3 User Guide. + // + // This functionality is not supported for directory buckets. MFA *string `location:"header" locationName:"x-amz-mfa" type:"string"` // Confirms that the requester knows that they will be charged for the request. // Bucket owners need not specify this parameter in their requests. If either - // the source or destination Amazon S3 bucket has Requester Pays enabled, the - // requester will pay for corresponding charges to copy the object. For information - // about downloading objects from Requester Pays buckets, see Downloading Objects + // the source or destination S3 bucket has Requester Pays enabled, the requester + // will pay for corresponding charges to copy the object. For information about + // downloading objects from Requester Pays buckets, see Downloading Objects // in Requester Pays Buckets (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html) // in the Amazon S3 User Guide. + // + // This functionality is not supported for directory buckets. RequestPayer *string `location:"header" locationName:"x-amz-request-payer" type:"string" enum:"RequestPayer"` } @@ -17652,6 +19491,8 @@ type DeleteObjectsOutput struct { // If present, indicates that the requester was successfully charged for the // request. + // + // This functionality is not supported for directory buckets. RequestCharged *string `location:"header" locationName:"x-amz-request-charged" type:"string" enum:"RequestCharged"` } @@ -17699,9 +19540,9 @@ type DeletePublicAccessBlockInput struct { // Bucket is a required field Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` - // The account ID of the expected bucket owner. If the bucket is owned by a - // different account, the request fails with the HTTP status code 403 Forbidden - // (access denied). + // The account ID of the expected bucket owner. If the account ID that you provide + // does not match the actual owner of the bucket, the request fails with the + // HTTP status code 403 Forbidden (access denied). ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` } @@ -17815,17 +19656,23 @@ type DeletedObject struct { // was (true) or was not (false) a delete marker before deletion. In a simple // DELETE, this header indicates whether (true) or not (false) the current version // of the object is a delete marker. + // + // This functionality is not supported for directory buckets. DeleteMarker *bool `type:"boolean"` // The version ID of the delete marker created as a result of the DELETE operation. // If you delete a specific object version, the value returned by this header // is the version ID of the object version deleted. + // + // This functionality is not supported for directory buckets. DeleteMarkerVersionId *string `type:"string"` // The name of the deleted object. Key *string `min:"1" type:"string"` // The version ID of the deleted object. + // + // This functionality is not supported for directory buckets. VersionId *string `type:"string"` } @@ -18541,6 +20388,8 @@ type Error struct { Message *string `type:"string"` // The version ID of the error. + // + // This functionality is not supported for directory buckets. VersionId *string `type:"string"` } @@ -18766,18 +20615,20 @@ type GetBucketAccelerateConfigurationInput struct { // Bucket is a required field Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` - // The account ID of the expected bucket owner. If the bucket is owned by a - // different account, the request fails with the HTTP status code 403 Forbidden - // (access denied). + // The account ID of the expected bucket owner. If the account ID that you provide + // does not match the actual owner of the bucket, the request fails with the + // HTTP status code 403 Forbidden (access denied). ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` // Confirms that the requester knows that they will be charged for the request. // Bucket owners need not specify this parameter in their requests. If either - // the source or destination Amazon S3 bucket has Requester Pays enabled, the - // requester will pay for corresponding charges to copy the object. For information - // about downloading objects from Requester Pays buckets, see Downloading Objects + // the source or destination S3 bucket has Requester Pays enabled, the requester + // will pay for corresponding charges to copy the object. For information about + // downloading objects from Requester Pays buckets, see Downloading Objects // in Requester Pays Buckets (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html) // in the Amazon S3 User Guide. + // + // This functionality is not supported for directory buckets. RequestPayer *string `location:"header" locationName:"x-amz-request-payer" type:"string" enum:"RequestPayer"` } @@ -18872,6 +20723,8 @@ type GetBucketAccelerateConfigurationOutput struct { // If present, indicates that the requester was successfully charged for the // request. + // + // This functionality is not supported for directory buckets. RequestCharged *string `location:"header" locationName:"x-amz-request-charged" type:"string" enum:"RequestCharged"` // The accelerate configuration of the bucket. @@ -18913,10 +20766,10 @@ type GetBucketAclInput struct { // Specifies the S3 bucket whose ACL is being requested. // - // To use this API operation against an access point, provide the alias of the - // access point in place of the bucket name. + // When you use this API operation with an access point, provide the alias of + // the access point in place of the bucket name. // - // To use this API operation against an Object Lambda access point, provide + // When you use this API operation with an Object Lambda access point, provide // the alias of the Object Lambda access point in place of the bucket name. // If the Object Lambda access point alias in a request is not valid, the error // code InvalidAccessPointAliasError is returned. For more information about @@ -18925,9 +20778,9 @@ type GetBucketAclInput struct { // Bucket is a required field Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` - // The account ID of the expected bucket owner. If the bucket is owned by a - // different account, the request fails with the HTTP status code 403 Forbidden - // (access denied). + // The account ID of the expected bucket owner. If the account ID that you provide + // does not match the actual owner of the bucket, the request fails with the + // HTTP status code 403 Forbidden (access denied). ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` } @@ -19059,9 +20912,9 @@ type GetBucketAnalyticsConfigurationInput struct { // Bucket is a required field Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` - // The account ID of the expected bucket owner. If the bucket is owned by a - // different account, the request fails with the HTTP status code 403 Forbidden - // (access denied). + // The account ID of the expected bucket owner. If the account ID that you provide + // does not match the actual owner of the bucket, the request fails with the + // HTTP status code 403 Forbidden (access denied). ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` // The ID that identifies the analytics configuration. @@ -19195,10 +21048,10 @@ type GetBucketCorsInput struct { // The bucket name for which to get the cors configuration. // - // To use this API operation against an access point, provide the alias of the - // access point in place of the bucket name. + // When you use this API operation with an access point, provide the alias of + // the access point in place of the bucket name. // - // To use this API operation against an Object Lambda access point, provide + // When you use this API operation with an Object Lambda access point, provide // the alias of the Object Lambda access point in place of the bucket name. // If the Object Lambda access point alias in a request is not valid, the error // code InvalidAccessPointAliasError is returned. For more information about @@ -19207,9 +21060,9 @@ type GetBucketCorsInput struct { // Bucket is a required field Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` - // The account ID of the expected bucket owner. If the bucket is owned by a - // different account, the request fails with the HTTP status code 403 Forbidden - // (access denied). + // The account ID of the expected bucket owner. If the account ID that you provide + // does not match the actual owner of the bucket, the request fails with the + // HTTP status code 403 Forbidden (access denied). ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` } @@ -19334,9 +21187,9 @@ type GetBucketEncryptionInput struct { // Bucket is a required field Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` - // The account ID of the expected bucket owner. If the bucket is owned by a - // different account, the request fails with the HTTP status code 403 Forbidden - // (access denied). + // The account ID of the expected bucket owner. If the account ID that you provide + // does not match the actual owner of the bucket, the request fails with the + // HTTP status code 403 Forbidden (access denied). ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` } @@ -19588,9 +21441,9 @@ type GetBucketInventoryConfigurationInput struct { // Bucket is a required field Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` - // The account ID of the expected bucket owner. If the bucket is owned by a - // different account, the request fails with the HTTP status code 403 Forbidden - // (access denied). + // The account ID of the expected bucket owner. If the account ID that you provide + // does not match the actual owner of the bucket, the request fails with the + // HTTP status code 403 Forbidden (access denied). ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` // The ID used to identify the inventory configuration. @@ -19727,9 +21580,9 @@ type GetBucketLifecycleConfigurationInput struct { // Bucket is a required field Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` - // The account ID of the expected bucket owner. If the bucket is owned by a - // different account, the request fails with the HTTP status code 403 Forbidden - // (access denied). + // The account ID of the expected bucket owner. If the account ID that you provide + // does not match the actual owner of the bucket, the request fails with the + // HTTP status code 403 Forbidden (access denied). ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` } @@ -19852,9 +21705,9 @@ type GetBucketLifecycleInput struct { // Bucket is a required field Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` - // The account ID of the expected bucket owner. If the bucket is owned by a - // different account, the request fails with the HTTP status code 403 Forbidden - // (access denied). + // The account ID of the expected bucket owner. If the account ID that you provide + // does not match the actual owner of the bucket, the request fails with the + // HTTP status code 403 Forbidden (access denied). ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` } @@ -19974,10 +21827,10 @@ type GetBucketLocationInput struct { // The name of the bucket for which to get the location. // - // To use this API operation against an access point, provide the alias of the - // access point in place of the bucket name. + // When you use this API operation with an access point, provide the alias of + // the access point in place of the bucket name. // - // To use this API operation against an Object Lambda access point, provide + // When you use this API operation with an Object Lambda access point, provide // the alias of the Object Lambda access point in place of the bucket name. // If the Object Lambda access point alias in a request is not valid, the error // code InvalidAccessPointAliasError is returned. For more information about @@ -19986,9 +21839,9 @@ type GetBucketLocationInput struct { // Bucket is a required field Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` - // The account ID of the expected bucket owner. If the bucket is owned by a - // different account, the request fails with the HTTP status code 403 Forbidden - // (access denied). + // The account ID of the expected bucket owner. If the account ID that you provide + // does not match the actual owner of the bucket, the request fails with the + // HTTP status code 403 Forbidden (access denied). ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` } @@ -20113,9 +21966,9 @@ type GetBucketLoggingInput struct { // Bucket is a required field Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` - // The account ID of the expected bucket owner. If the bucket is owned by a - // different account, the request fails with the HTTP status code 403 Forbidden - // (access denied). + // The account ID of the expected bucket owner. If the account ID that you provide + // does not match the actual owner of the bucket, the request fails with the + // HTTP status code 403 Forbidden (access denied). ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` } @@ -20241,9 +22094,9 @@ type GetBucketMetricsConfigurationInput struct { // Bucket is a required field Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` - // The account ID of the expected bucket owner. If the bucket is owned by a - // different account, the request fails with the HTTP status code 403 Forbidden - // (access denied). + // The account ID of the expected bucket owner. If the account ID that you provide + // does not match the actual owner of the bucket, the request fails with the + // HTTP status code 403 Forbidden (access denied). ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` // The ID used to identify the metrics configuration. The ID has a 64 character @@ -20378,10 +22231,10 @@ type GetBucketNotificationConfigurationRequest struct { // The name of the bucket for which to get the notification configuration. // - // To use this API operation against an access point, provide the alias of the - // access point in place of the bucket name. + // When you use this API operation with an access point, provide the alias of + // the access point in place of the bucket name. // - // To use this API operation against an Object Lambda access point, provide + // When you use this API operation with an Object Lambda access point, provide // the alias of the Object Lambda access point in place of the bucket name. // If the Object Lambda access point alias in a request is not valid, the error // code InvalidAccessPointAliasError is returned. For more information about @@ -20390,9 +22243,9 @@ type GetBucketNotificationConfigurationRequest struct { // Bucket is a required field Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` - // The account ID of the expected bucket owner. If the bucket is owned by a - // different account, the request fails with the HTTP status code 403 Forbidden - // (access denied). + // The account ID of the expected bucket owner. If the account ID that you provide + // does not match the actual owner of the bucket, the request fails with the + // HTTP status code 403 Forbidden (access denied). ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` } @@ -20484,9 +22337,9 @@ type GetBucketOwnershipControlsInput struct { // Bucket is a required field Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` - // The account ID of the expected bucket owner. If the bucket is owned by a - // different account, the request fails with the HTTP status code 403 Forbidden - // (access denied). + // The account ID of the expected bucket owner. If the account ID that you provide + // does not match the actual owner of the bucket, the request fails with the + // HTTP status code 403 Forbidden (access denied). ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` } @@ -20605,23 +22458,40 @@ func (s *GetBucketOwnershipControlsOutput) SetOwnershipControls(v *OwnershipCont type GetBucketPolicyInput struct { _ struct{} `locationName:"GetBucketPolicyRequest" type:"structure"` - // The bucket name for which to get the bucket policy. + // The bucket name to get the bucket policy for. // - // To use this API operation against an access point, provide the alias of the - // access point in place of the bucket name. + // Directory buckets - When you use this operation with a directory bucket, + // you must use path-style requests in the format https://s3express-control.region_code.amazonaws.com/bucket-name + // . Virtual-hosted-style requests aren't supported. Directory bucket names + // must be unique in the chosen Availability Zone. Bucket names must also follow + // the format bucket_base_name--az_id--x-s3 (for example, DOC-EXAMPLE-BUCKET--usw2-az2--x-s3). + // For information about bucket naming restrictions, see Directory bucket naming + // rules (https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html) + // in the Amazon S3 User Guide // - // To use this API operation against an Object Lambda access point, provide - // the alias of the Object Lambda access point in place of the bucket name. - // If the Object Lambda access point alias in a request is not valid, the error - // code InvalidAccessPointAliasError is returned. For more information about - // InvalidAccessPointAliasError, see List of Error Codes (https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#ErrorCodeList). + // Access points - When you use this API operation with an access point, provide + // the alias of the access point in place of the bucket name. + // + // Object Lambda access points - When you use this API operation with an Object + // Lambda access point, provide the alias of the Object Lambda access point + // in place of the bucket name. If the Object Lambda access point alias in a + // request is not valid, the error code InvalidAccessPointAliasError is returned. + // For more information about InvalidAccessPointAliasError, see List of Error + // Codes (https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#ErrorCodeList). + // + // Access points and Object Lambda access points are not supported by directory + // buckets. // // Bucket is a required field Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` - // The account ID of the expected bucket owner. If the bucket is owned by a - // different account, the request fails with the HTTP status code 403 Forbidden - // (access denied). + // The account ID of the expected bucket owner. If the account ID that you provide + // does not match the actual owner of the bucket, the request fails with the + // HTTP status code 403 Forbidden (access denied). + // + // For directory buckets, this header is not supported in this API operation. + // If you specify this header, the request fails with the HTTP status code 501 + // Not Implemented. ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` } @@ -20744,9 +22614,9 @@ type GetBucketPolicyStatusInput struct { // Bucket is a required field Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` - // The account ID of the expected bucket owner. If the bucket is owned by a - // different account, the request fails with the HTTP status code 403 Forbidden - // (access denied). + // The account ID of the expected bucket owner. If the account ID that you provide + // does not match the actual owner of the bucket, the request fails with the + // HTTP status code 403 Forbidden (access denied). ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` } @@ -20869,9 +22739,9 @@ type GetBucketReplicationInput struct { // Bucket is a required field Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` - // The account ID of the expected bucket owner. If the bucket is owned by a - // different account, the request fails with the HTTP status code 403 Forbidden - // (access denied). + // The account ID of the expected bucket owner. If the account ID that you provide + // does not match the actual owner of the bucket, the request fails with the + // HTTP status code 403 Forbidden (access denied). ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` } @@ -20995,9 +22865,9 @@ type GetBucketRequestPaymentInput struct { // Bucket is a required field Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` - // The account ID of the expected bucket owner. If the bucket is owned by a - // different account, the request fails with the HTTP status code 403 Forbidden - // (access denied). + // The account ID of the expected bucket owner. If the account ID that you provide + // does not match the actual owner of the bucket, the request fails with the + // HTTP status code 403 Forbidden (access denied). ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` } @@ -21120,9 +22990,9 @@ type GetBucketTaggingInput struct { // Bucket is a required field Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` - // The account ID of the expected bucket owner. If the bucket is owned by a - // different account, the request fails with the HTTP status code 403 Forbidden - // (access denied). + // The account ID of the expected bucket owner. If the account ID that you provide + // does not match the actual owner of the bucket, the request fails with the + // HTTP status code 403 Forbidden (access denied). ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` } @@ -21247,9 +23117,9 @@ type GetBucketVersioningInput struct { // Bucket is a required field Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` - // The account ID of the expected bucket owner. If the bucket is owned by a - // different account, the request fails with the HTTP status code 403 Forbidden - // (access denied). + // The account ID of the expected bucket owner. If the account ID that you provide + // does not match the actual owner of the bucket, the request fails with the + // HTTP status code 403 Forbidden (access denied). ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` } @@ -21383,9 +23253,9 @@ type GetBucketWebsiteInput struct { // Bucket is a required field Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` - // The account ID of the expected bucket owner. If the bucket is owned by a - // different account, the request fails with the HTTP status code 403 Forbidden - // (access denied). + // The account ID of the expected bucket owner. If the account ID that you provide + // does not match the actual owner of the bucket, the request fails with the + // HTTP status code 403 Forbidden (access denied). ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` } @@ -21533,8 +23403,10 @@ type GetObjectAclInput struct { // The bucket name that contains the object for which to get the ACL information. // - // When using this action with an access point, you must direct requests to - // the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. + // Access points - When you use this action with an access point, you must provide + // the alias of the access point in place of the bucket name or specify the + // access point ARN. When using the access point ARN, you must direct requests + // to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. // When using this action with an access point through the Amazon Web Services // SDKs, you provide the access point ARN in place of the bucket name. For more // information about access point ARNs, see Using access points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html) @@ -21543,9 +23415,9 @@ type GetObjectAclInput struct { // Bucket is a required field Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` - // The account ID of the expected bucket owner. If the bucket is owned by a - // different account, the request fails with the HTTP status code 403 Forbidden - // (access denied). + // The account ID of the expected bucket owner. If the account ID that you provide + // does not match the actual owner of the bucket, the request fails with the + // HTTP status code 403 Forbidden (access denied). ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` // The key of the object for which to get the ACL information. @@ -21555,14 +23427,18 @@ type GetObjectAclInput struct { // Confirms that the requester knows that they will be charged for the request. // Bucket owners need not specify this parameter in their requests. If either - // the source or destination Amazon S3 bucket has Requester Pays enabled, the - // requester will pay for corresponding charges to copy the object. For information - // about downloading objects from Requester Pays buckets, see Downloading Objects + // the source or destination S3 bucket has Requester Pays enabled, the requester + // will pay for corresponding charges to copy the object. For information about + // downloading objects from Requester Pays buckets, see Downloading Objects // in Requester Pays Buckets (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html) // in the Amazon S3 User Guide. + // + // This functionality is not supported for directory buckets. RequestPayer *string `location:"header" locationName:"x-amz-request-payer" type:"string" enum:"RequestPayer"` - // VersionId used to reference a specific version of the object. + // Version ID used to reference a specific version of the object. + // + // This functionality is not supported for directory buckets. VersionId *string `location:"querystring" locationName:"versionId" type:"string"` } @@ -21681,6 +23557,8 @@ type GetObjectAclOutput struct { // If present, indicates that the requester was successfully charged for the // request. + // + // This functionality is not supported for directory buckets. RequestCharged *string `location:"header" locationName:"x-amz-request-charged" type:"string" enum:"RequestCharged"` } @@ -21725,27 +23603,41 @@ type GetObjectAttributesInput struct { // The name of the bucket that contains the object. // - // When using this action with an access point, you must direct requests to - // the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. + // Directory buckets - When you use this operation with a directory bucket, + // you must use virtual-hosted-style requests in the format Bucket_name.s3express-az_id.region.amazonaws.com. + // Path-style requests are not supported. Directory bucket names must be unique + // in the chosen Availability Zone. Bucket names must follow the format bucket_base_name--az-id--x-s3 + // (for example, DOC-EXAMPLE-BUCKET--usw2-az2--x-s3). For information about + // bucket naming restrictions, see Directory bucket naming rules (https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html) + // in the Amazon S3 User Guide. + // + // Access points - When you use this action with an access point, you must provide + // the alias of the access point in place of the bucket name or specify the + // access point ARN. When using the access point ARN, you must direct requests + // to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. // When using this action with an access point through the Amazon Web Services // SDKs, you provide the access point ARN in place of the bucket name. For more // information about access point ARNs, see Using access points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html) // in the Amazon S3 User Guide. // - // When you use this action with Amazon S3 on Outposts, you must direct requests - // to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form - // AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When - // you use this action with S3 on Outposts through the Amazon Web Services SDKs, - // you provide the Outposts access point ARN in place of the bucket name. For - // more information about S3 on Outposts ARNs, see What is S3 on Outposts? (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html) + // Access points and Object Lambda access points are not supported by directory + // buckets. + // + // S3 on Outposts - When you use this action with Amazon S3 on Outposts, you + // must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname + // takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. + // When you use this action with S3 on Outposts through the Amazon Web Services + // SDKs, you provide the Outposts access point ARN in place of the bucket name. + // For more information about S3 on Outposts ARNs, see What is S3 on Outposts? + // (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html) // in the Amazon S3 User Guide. // // Bucket is a required field Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` - // The account ID of the expected bucket owner. If the bucket is owned by a - // different account, the request fails with the HTTP status code 403 Forbidden - // (access denied). + // The account ID of the expected bucket owner. If the account ID that you provide + // does not match the actual owner of the bucket, the request fails with the + // HTTP status code 403 Forbidden (access denied). ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` // The object key. @@ -21768,14 +23660,18 @@ type GetObjectAttributesInput struct { // Confirms that the requester knows that they will be charged for the request. // Bucket owners need not specify this parameter in their requests. If either - // the source or destination Amazon S3 bucket has Requester Pays enabled, the - // requester will pay for corresponding charges to copy the object. For information - // about downloading objects from Requester Pays buckets, see Downloading Objects + // the source or destination S3 bucket has Requester Pays enabled, the requester + // will pay for corresponding charges to copy the object. For information about + // downloading objects from Requester Pays buckets, see Downloading Objects // in Requester Pays Buckets (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html) // in the Amazon S3 User Guide. + // + // This functionality is not supported for directory buckets. RequestPayer *string `location:"header" locationName:"x-amz-request-payer" type:"string" enum:"RequestPayer"` // Specifies the algorithm to use when encrypting the object (for example, AES256). + // + // This functionality is not supported for directory buckets. SSECustomerAlgorithm *string `location:"header" locationName:"x-amz-server-side-encryption-customer-algorithm" type:"string"` // Specifies the customer-provided encryption key for Amazon S3 to use in encrypting @@ -21784,6 +23680,8 @@ type GetObjectAttributesInput struct { // with the algorithm specified in the x-amz-server-side-encryption-customer-algorithm // header. // + // This functionality is not supported for directory buckets. + // // SSECustomerKey is a sensitive parameter and its value will be // replaced with "sensitive" in string returned by GetObjectAttributesInput's // String and GoString methods. @@ -21792,9 +23690,16 @@ type GetObjectAttributesInput struct { // Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. // Amazon S3 uses this header for a message integrity check to ensure that the // encryption key was transmitted without error. + // + // This functionality is not supported for directory buckets. SSECustomerKeyMD5 *string `location:"header" locationName:"x-amz-server-side-encryption-customer-key-MD5" type:"string"` // The version ID used to reference a specific version of the object. + // + // S3 Versioning isn't enabled and supported for directory buckets. For this + // API operation, only the null value of the version ID is supported by directory + // buckets. You can only specify null to the versionId query parameter in the + // request. VersionId *string `location:"querystring" locationName:"versionId" type:"string"` } @@ -21956,6 +23861,8 @@ type GetObjectAttributesOutput struct { // Specifies whether the object retrieved was (true) or was not (false) a delete // marker. If false, this response header does not appear in the response. + // + // This functionality is not supported for directory buckets. DeleteMarker *bool `location:"header" locationName:"x-amz-delete-marker" type:"boolean"` // An ETag is an opaque identifier assigned by a web server to a specific version @@ -21973,15 +23880,22 @@ type GetObjectAttributesOutput struct { // If present, indicates that the requester was successfully charged for the // request. + // + // This functionality is not supported for directory buckets. RequestCharged *string `location:"header" locationName:"x-amz-request-charged" type:"string" enum:"RequestCharged"` // Provides the storage class information of the object. Amazon S3 returns this // header for all objects except for S3 Standard storage class objects. // // For more information, see Storage Classes (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html). + // + // Directory buckets - Only the S3 Express One Zone storage class is supported + // by directory buckets to store objects. StorageClass *string `type:"string" enum:"StorageClass"` // The version ID of the object. + // + // This functionality is not supported for directory buckets. VersionId *string `location:"header" locationName:"x-amz-version-id" type:"string"` } @@ -22079,6 +23993,15 @@ type GetObjectAttributesParts struct { // A container for elements related to a particular part. A response can contain // zero or more Parts elements. + // + // * General purpose buckets - For GetObjectAttributes, if a additional checksum + // (including x-amz-checksum-crc32, x-amz-checksum-crc32c, x-amz-checksum-sha1, + // or x-amz-checksum-sha256) isn't applied to the object specified in the + // request, the response doesn't return Part. + // + // * Directory buckets - For GetObjectAttributes, no matter whether a additional + // checksum is applied to the object specified in the request, the response + // returns Part. Parts []*ObjectPart `locationName:"Part" type:"list" flattened:"true"` // The total number of parts. @@ -22144,21 +24067,37 @@ type GetObjectInput struct { // The bucket name containing the object. // - // When using this action with an access point, you must direct requests to - // the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. + // Directory buckets - When you use this operation with a directory bucket, + // you must use virtual-hosted-style requests in the format Bucket_name.s3express-az_id.region.amazonaws.com. + // Path-style requests are not supported. Directory bucket names must be unique + // in the chosen Availability Zone. Bucket names must follow the format bucket_base_name--az-id--x-s3 + // (for example, DOC-EXAMPLE-BUCKET--usw2-az2--x-s3). For information about + // bucket naming restrictions, see Directory bucket naming rules (https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html) + // in the Amazon S3 User Guide. + // + // Access points - When you use this action with an access point, you must provide + // the alias of the access point in place of the bucket name or specify the + // access point ARN. When using the access point ARN, you must direct requests + // to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. // When using this action with an access point through the Amazon Web Services // SDKs, you provide the access point ARN in place of the bucket name. For more // information about access point ARNs, see Using access points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html) // in the Amazon S3 User Guide. // - // When using an Object Lambda access point the hostname takes the form AccessPointName-AccountId.s3-object-lambda.Region.amazonaws.com. + // Object Lambda access points - When you use this action with an Object Lambda + // access point, you must direct requests to the Object Lambda access point + // hostname. The Object Lambda access point hostname takes the form AccessPointName-AccountId.s3-object-lambda.Region.amazonaws.com. + // + // Access points and Object Lambda access points are not supported by directory + // buckets. // - // When you use this action with Amazon S3 on Outposts, you must direct requests - // to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form - // AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When - // you use this action with S3 on Outposts through the Amazon Web Services SDKs, - // you provide the Outposts access point ARN in place of the bucket name. For - // more information about S3 on Outposts ARNs, see What is S3 on Outposts? (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html) + // S3 on Outposts - When you use this action with Amazon S3 on Outposts, you + // must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname + // takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. + // When you use this action with S3 on Outposts through the Amazon Web Services + // SDKs, you provide the Outposts access point ARN in place of the bucket name. + // For more information about S3 on Outposts ARNs, see What is S3 on Outposts? + // (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html) // in the Amazon S3 User Guide. // // Bucket is a required field @@ -22170,25 +24109,50 @@ type GetObjectInput struct { // validation. This feature is available in the AWS SDK for Go v2. ChecksumMode *string `location:"header" locationName:"x-amz-checksum-mode" type:"string" enum:"ChecksumMode"` - // The account ID of the expected bucket owner. If the bucket is owned by a - // different account, the request fails with the HTTP status code 403 Forbidden - // (access denied). + // The account ID of the expected bucket owner. If the account ID that you provide + // does not match the actual owner of the bucket, the request fails with the + // HTTP status code 403 Forbidden (access denied). ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` - // Return the object only if its entity tag (ETag) is the same as the one specified; - // otherwise, return a 412 (precondition failed) error. + // Return the object only if its entity tag (ETag) is the same as the one specified + // in this header; otherwise, return a 412 Precondition Failed error. + // + // If both of the If-Match and If-Unmodified-Since headers are present in the + // request as follows: If-Match condition evaluates to true, and; If-Unmodified-Since + // condition evaluates to false; then, S3 returns 200 OK and the data requested. + // + // For more information about conditional requests, see RFC 7232 (https://tools.ietf.org/html/rfc7232). IfMatch *string `location:"header" locationName:"If-Match" type:"string"` // Return the object only if it has been modified since the specified time; - // otherwise, return a 304 (not modified) error. + // otherwise, return a 304 Not Modified error. + // + // If both of the If-None-Match and If-Modified-Since headers are present in + // the request as follows:If-None-Match condition evaluates to false, and; If-Modified-Since + // condition evaluates to true; then, S3 returns 304 Not Modified status code. + // + // For more information about conditional requests, see RFC 7232 (https://tools.ietf.org/html/rfc7232). IfModifiedSince *time.Time `location:"header" locationName:"If-Modified-Since" type:"timestamp"` // Return the object only if its entity tag (ETag) is different from the one - // specified; otherwise, return a 304 (not modified) error. + // specified in this header; otherwise, return a 304 Not Modified error. + // + // If both of the If-None-Match and If-Modified-Since headers are present in + // the request as follows:If-None-Match condition evaluates to false, and; If-Modified-Since + // condition evaluates to true; then, S3 returns 304 Not Modified HTTP status + // code. + // + // For more information about conditional requests, see RFC 7232 (https://tools.ietf.org/html/rfc7232). IfNoneMatch *string `location:"header" locationName:"If-None-Match" type:"string"` // Return the object only if it has not been modified since the specified time; - // otherwise, return a 412 (precondition failed) error. + // otherwise, return a 412 Precondition Failed error. + // + // If both of the If-Match and If-Unmodified-Since headers are present in the + // request as follows: If-Match condition evaluates to true, and; If-Unmodified-Since + // condition evaluates to false; then, S3 returns 200 OK and the data requested. + // + // For more information about conditional requests, see RFC 7232 (https://tools.ietf.org/html/rfc7232). IfUnmodifiedSince *time.Time `location:"header" locationName:"If-Unmodified-Since" type:"timestamp"` // Key of the object to get. @@ -22201,7 +24165,7 @@ type GetObjectInput struct { // Useful for downloading just a part of an object. PartNumber *int64 `location:"querystring" locationName:"partNumber" type:"integer"` - // Downloads the specified range bytes of an object. For more information about + // Downloads the specified byte range of an object. For more information about // the HTTP Range header, see https://www.rfc-editor.org/rfc/rfc9110.html#name-range // (https://www.rfc-editor.org/rfc/rfc9110.html#name-range). // @@ -22210,17 +24174,19 @@ type GetObjectInput struct { // Confirms that the requester knows that they will be charged for the request. // Bucket owners need not specify this parameter in their requests. If either - // the source or destination Amazon S3 bucket has Requester Pays enabled, the - // requester will pay for corresponding charges to copy the object. For information - // about downloading objects from Requester Pays buckets, see Downloading Objects + // the source or destination S3 bucket has Requester Pays enabled, the requester + // will pay for corresponding charges to copy the object. For information about + // downloading objects from Requester Pays buckets, see Downloading Objects // in Requester Pays Buckets (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html) // in the Amazon S3 User Guide. + // + // This functionality is not supported for directory buckets. RequestPayer *string `location:"header" locationName:"x-amz-request-payer" type:"string" enum:"RequestPayer"` // Sets the Cache-Control header of the response. ResponseCacheControl *string `location:"querystring" locationName:"response-cache-control" type:"string"` - // Sets the Content-Disposition header of the response + // Sets the Content-Disposition header of the response. ResponseContentDisposition *string `location:"querystring" locationName:"response-content-disposition" type:"string"` // Sets the Content-Encoding header of the response. @@ -22235,27 +24201,92 @@ type GetObjectInput struct { // Sets the Expires header of the response. ResponseExpires *time.Time `location:"querystring" locationName:"response-expires" type:"timestamp" timestampFormat:"rfc822"` - // Specifies the algorithm to use to when decrypting the object (for example, - // AES256). + // Specifies the algorithm to use when decrypting the object (for example, AES256). + // + // If you encrypt an object by using server-side encryption with customer-provided + // encryption keys (SSE-C) when you store the object in Amazon S3, then when + // you GET the object, you must use the following headers: + // + // * x-amz-server-side-encryption-customer-algorithm + // + // * x-amz-server-side-encryption-customer-key + // + // * x-amz-server-side-encryption-customer-key-MD5 + // + // For more information about SSE-C, see Server-Side Encryption (Using Customer-Provided + // Encryption Keys) (https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html) + // in the Amazon S3 User Guide. + // + // This functionality is not supported for directory buckets. SSECustomerAlgorithm *string `location:"header" locationName:"x-amz-server-side-encryption-customer-algorithm" type:"string"` - // Specifies the customer-provided encryption key for Amazon S3 used to encrypt - // the data. This value is used to decrypt the object when recovering it and - // must match the one used when storing the data. The key must be appropriate - // for use with the algorithm specified in the x-amz-server-side-encryption-customer-algorithm - // header. + // Specifies the customer-provided encryption key that you originally provided + // for Amazon S3 to encrypt the data before storing it. This value is used to + // decrypt the object when recovering it and must match the one used when storing + // the data. The key must be appropriate for use with the algorithm specified + // in the x-amz-server-side-encryption-customer-algorithm header. + // + // If you encrypt an object by using server-side encryption with customer-provided + // encryption keys (SSE-C) when you store the object in Amazon S3, then when + // you GET the object, you must use the following headers: + // + // * x-amz-server-side-encryption-customer-algorithm + // + // * x-amz-server-side-encryption-customer-key + // + // * x-amz-server-side-encryption-customer-key-MD5 + // + // For more information about SSE-C, see Server-Side Encryption (Using Customer-Provided + // Encryption Keys) (https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html) + // in the Amazon S3 User Guide. + // + // This functionality is not supported for directory buckets. // // SSECustomerKey is a sensitive parameter and its value will be // replaced with "sensitive" in string returned by GetObjectInput's // String and GoString methods. SSECustomerKey *string `marshal-as:"blob" location:"header" locationName:"x-amz-server-side-encryption-customer-key" type:"string" sensitive:"true"` - // Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. - // Amazon S3 uses this header for a message integrity check to ensure that the - // encryption key was transmitted without error. + // Specifies the 128-bit MD5 digest of the customer-provided encryption key + // according to RFC 1321. Amazon S3 uses this header for a message integrity + // check to ensure that the encryption key was transmitted without error. + // + // If you encrypt an object by using server-side encryption with customer-provided + // encryption keys (SSE-C) when you store the object in Amazon S3, then when + // you GET the object, you must use the following headers: + // + // * x-amz-server-side-encryption-customer-algorithm + // + // * x-amz-server-side-encryption-customer-key + // + // * x-amz-server-side-encryption-customer-key-MD5 + // + // For more information about SSE-C, see Server-Side Encryption (Using Customer-Provided + // Encryption Keys) (https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html) + // in the Amazon S3 User Guide. + // + // This functionality is not supported for directory buckets. SSECustomerKeyMD5 *string `location:"header" locationName:"x-amz-server-side-encryption-customer-key-MD5" type:"string"` - // VersionId used to reference a specific version of the object. + // Version ID used to reference a specific version of the object. + // + // By default, the GetObject operation returns the current version of an object. + // To return a different version, use the versionId subresource. + // + // * If you include a versionId in your request header, you must have the + // s3:GetObjectVersion permission to access a specific version of an object. + // The s3:GetObject permission is not required in this scenario. + // + // * If you request the current version of an object without a specific versionId + // in the request header, only the s3:GetObject permission is required. The + // s3:GetObjectVersion permission is not required in this scenario. + // + // * Directory buckets - S3 Versioning isn't enabled and supported for directory + // buckets. For this API operation, only the null value of the version ID + // is supported by directory buckets. You can only specify null to the versionId + // query parameter in the request. + // + // For more information about versioning, see PutBucketVersioning (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketVersioning.html). VersionId *string `location:"querystring" locationName:"versionId" type:"string"` } @@ -22472,8 +24503,10 @@ type GetObjectLegalHoldInput struct { // The bucket name containing the object whose legal hold status you want to // retrieve. // - // When using this action with an access point, you must direct requests to - // the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. + // Access points - When you use this action with an access point, you must provide + // the alias of the access point in place of the bucket name or specify the + // access point ARN. When using the access point ARN, you must direct requests + // to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. // When using this action with an access point through the Amazon Web Services // SDKs, you provide the access point ARN in place of the bucket name. For more // information about access point ARNs, see Using access points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html) @@ -22482,9 +24515,9 @@ type GetObjectLegalHoldInput struct { // Bucket is a required field Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` - // The account ID of the expected bucket owner. If the bucket is owned by a - // different account, the request fails with the HTTP status code 403 Forbidden - // (access denied). + // The account ID of the expected bucket owner. If the account ID that you provide + // does not match the actual owner of the bucket, the request fails with the + // HTTP status code 403 Forbidden (access denied). ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` // The key name for the object whose legal hold status you want to retrieve. @@ -22494,11 +24527,13 @@ type GetObjectLegalHoldInput struct { // Confirms that the requester knows that they will be charged for the request. // Bucket owners need not specify this parameter in their requests. If either - // the source or destination Amazon S3 bucket has Requester Pays enabled, the - // requester will pay for corresponding charges to copy the object. For information - // about downloading objects from Requester Pays buckets, see Downloading Objects + // the source or destination S3 bucket has Requester Pays enabled, the requester + // will pay for corresponding charges to copy the object. For information about + // downloading objects from Requester Pays buckets, see Downloading Objects // in Requester Pays Buckets (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html) // in the Amazon S3 User Guide. + // + // This functionality is not supported for directory buckets. RequestPayer *string `location:"header" locationName:"x-amz-request-payer" type:"string" enum:"RequestPayer"` // The version ID of the object whose legal hold status you want to retrieve. @@ -22645,8 +24680,10 @@ type GetObjectLockConfigurationInput struct { // The bucket whose Object Lock configuration you want to retrieve. // - // When using this action with an access point, you must direct requests to - // the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. + // Access points - When you use this action with an access point, you must provide + // the alias of the access point in place of the bucket name or specify the + // access point ARN. When using the access point ARN, you must direct requests + // to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. // When using this action with an access point through the Amazon Web Services // SDKs, you provide the access point ARN in place of the bucket name. For more // information about access point ARNs, see Using access points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html) @@ -22655,9 +24692,9 @@ type GetObjectLockConfigurationInput struct { // Bucket is a required field Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` - // The account ID of the expected bucket owner. If the bucket is owned by a - // different account, the request fails with the HTTP status code 403 Forbidden - // (access denied). + // The account ID of the expected bucket owner. If the account ID that you provide + // does not match the actual owner of the bucket, the request fails with the + // HTTP status code 403 Forbidden (access denied). ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` } @@ -22775,7 +24812,7 @@ func (s *GetObjectLockConfigurationOutput) SetObjectLockConfiguration(v *ObjectL type GetObjectOutput struct { _ struct{} `type:"structure" payload:"Body"` - // Indicates that a range of bytes was specified. + // Indicates that a range of bytes was specified in the request. AcceptRanges *string `location:"header" locationName:"accept-ranges" type:"string"` // Object data. @@ -22783,47 +24820,41 @@ type GetObjectOutput struct { // Indicates whether the object uses an S3 Bucket Key for server-side encryption // with Key Management Service (KMS) keys (SSE-KMS). + // + // This functionality is not supported for directory buckets. BucketKeyEnabled *bool `location:"header" locationName:"x-amz-server-side-encryption-bucket-key-enabled" type:"boolean"` // Specifies caching behavior along the request/reply chain. CacheControl *string `location:"header" locationName:"Cache-Control" type:"string"` // The base64-encoded, 32-bit CRC32 checksum of the object. This will only be - // present if it was uploaded with the object. With multipart uploads, this - // may not be a checksum value of the object. For more information about how - // checksums are calculated with multipart uploads, see Checking object integrity - // (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums) + // present if it was uploaded with the object. For more information, see Checking + // object integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) // in the Amazon S3 User Guide. ChecksumCRC32 *string `location:"header" locationName:"x-amz-checksum-crc32" type:"string"` // The base64-encoded, 32-bit CRC32C checksum of the object. This will only - // be present if it was uploaded with the object. With multipart uploads, this - // may not be a checksum value of the object. For more information about how - // checksums are calculated with multipart uploads, see Checking object integrity - // (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums) + // be present if it was uploaded with the object. For more information, see + // Checking object integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) // in the Amazon S3 User Guide. ChecksumCRC32C *string `location:"header" locationName:"x-amz-checksum-crc32c" type:"string"` // The base64-encoded, 160-bit SHA-1 digest of the object. This will only be - // present if it was uploaded with the object. With multipart uploads, this - // may not be a checksum value of the object. For more information about how - // checksums are calculated with multipart uploads, see Checking object integrity - // (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums) + // present if it was uploaded with the object. For more information, see Checking + // object integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) // in the Amazon S3 User Guide. ChecksumSHA1 *string `location:"header" locationName:"x-amz-checksum-sha1" type:"string"` // The base64-encoded, 256-bit SHA-256 digest of the object. This will only - // be present if it was uploaded with the object. With multipart uploads, this - // may not be a checksum value of the object. For more information about how - // checksums are calculated with multipart uploads, see Checking object integrity - // (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums) + // be present if it was uploaded with the object. For more information, see + // Checking object integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) // in the Amazon S3 User Guide. ChecksumSHA256 *string `location:"header" locationName:"x-amz-checksum-sha256" type:"string"` // Specifies presentational information for the object. ContentDisposition *string `location:"header" locationName:"Content-Disposition" type:"string"` - // Specifies what content encodings have been applied to the object and thus + // Indicates what content encodings have been applied to the object and thus // what decoding mechanisms must be applied to obtain the media-type referenced // by the Content-Type header field. ContentEncoding *string `location:"header" locationName:"Content-Encoding" type:"string"` @@ -22840,23 +24871,40 @@ type GetObjectOutput struct { // A standard MIME type describing the format of the object data. ContentType *string `location:"header" locationName:"Content-Type" type:"string"` - // Specifies whether the object retrieved was (true) or was not (false) a Delete + // Indicates whether the object retrieved was (true) or was not (false) a Delete // Marker. If false, this response header does not appear in the response. + // + // * If the current version of the object is a delete marker, Amazon S3 behaves + // as if the object was deleted and includes x-amz-delete-marker: true in + // the response. + // + // * If the specified version in the request is a delete marker, the response + // returns a 405 Method Not Allowed error and the Last-Modified: timestamp + // response header. DeleteMarker *bool `location:"header" locationName:"x-amz-delete-marker" type:"boolean"` // An entity tag (ETag) is an opaque identifier assigned by a web server to // a specific version of a resource found at a URL. ETag *string `location:"header" locationName:"ETag" type:"string"` - // If the object expiration is configured (see PUT Bucket lifecycle), the response - // includes this header. It includes the expiry-date and rule-id key-value pairs - // providing object expiration information. The value of the rule-id is URL-encoded. + // If the object expiration is configured (see PutBucketLifecycleConfiguration + // (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycleConfiguration.html)), + // the response includes this header. It includes the expiry-date and rule-id + // key-value pairs providing object expiration information. The value of the + // rule-id is URL-encoded. + // + // This functionality is not supported for directory buckets. Expiration *string `location:"header" locationName:"x-amz-expiration" type:"string"` // The date and time at which the object is no longer cacheable. Expires *string `location:"header" locationName:"Expires" type:"string"` // Date and time when the object was last modified. + // + // General purpose buckets - When you specify a versionId of the object in your + // request, if the specified version in the request is a delete marker, the + // response returns a 405 Method Not Allowed error and the Last-Modified: timestamp + // response header. LastModified *time.Time `location:"header" locationName:"Last-Modified" type:"timestamp"` // A map of metadata to store with the object in S3. @@ -22866,20 +24914,29 @@ type GetObjectOutput struct { // Set `aws.Config.LowerCaseHeaderMaps` to `true` to write unmarshaled keys to the map as lowercase. Metadata map[string]*string `location:"headers" locationName:"x-amz-meta-" type:"map"` - // This is set to the number of metadata entries not returned in x-amz-meta - // headers. This can happen if you create metadata using an API like SOAP that - // supports more flexible metadata than the REST API. For example, using SOAP, - // you can create metadata whose values are not legal HTTP headers. + // This is set to the number of metadata entries not returned in the headers + // that are prefixed with x-amz-meta-. This can happen if you create metadata + // using an API like SOAP that supports more flexible metadata than the REST + // API. For example, using SOAP, you can create metadata whose values are not + // legal HTTP headers. + // + // This functionality is not supported for directory buckets. MissingMeta *int64 `location:"header" locationName:"x-amz-missing-meta" type:"integer"` // Indicates whether this object has an active legal hold. This field is only // returned if you have permission to view an object's legal hold status. + // + // This functionality is not supported for directory buckets. ObjectLockLegalHoldStatus *string `location:"header" locationName:"x-amz-object-lock-legal-hold" type:"string" enum:"ObjectLockLegalHoldStatus"` - // The Object Lock mode currently in place for this object. + // The Object Lock mode that's currently in place for this object. + // + // This functionality is not supported for directory buckets. ObjectLockMode *string `location:"header" locationName:"x-amz-object-lock-mode" type:"string" enum:"ObjectLockMode"` // The date and time when this object's Object Lock will expire. + // + // This functionality is not supported for directory buckets. ObjectLockRetainUntilDate *time.Time `location:"header" locationName:"x-amz-object-lock-retain-until-date" type:"timestamp" timestampFormat:"iso8601"` // The count of parts this object has. This value is only returned if you specify @@ -22888,51 +24945,80 @@ type GetObjectOutput struct { // Amazon S3 can return this if your request involves a bucket that is either // a source or destination in a replication rule. + // + // This functionality is not supported for directory buckets. ReplicationStatus *string `location:"header" locationName:"x-amz-replication-status" type:"string" enum:"ReplicationStatus"` // If present, indicates that the requester was successfully charged for the // request. + // + // This functionality is not supported for directory buckets. RequestCharged *string `location:"header" locationName:"x-amz-request-charged" type:"string" enum:"RequestCharged"` // Provides information about object restoration action and expiration time // of the restored object copy. + // + // This functionality is not supported for directory buckets. Only the S3 Express + // One Zone storage class is supported by directory buckets to store objects. Restore *string `location:"header" locationName:"x-amz-restore" type:"string"` // If server-side encryption with a customer-provided encryption key was requested, - // the response will include this header confirming the encryption algorithm - // used. + // the response will include this header to confirm the encryption algorithm + // that's used. + // + // This functionality is not supported for directory buckets. SSECustomerAlgorithm *string `location:"header" locationName:"x-amz-server-side-encryption-customer-algorithm" type:"string"` // If server-side encryption with a customer-provided encryption key was requested, - // the response will include this header to provide round-trip message integrity + // the response will include this header to provide the round-trip message integrity // verification of the customer-provided encryption key. + // + // This functionality is not supported for directory buckets. SSECustomerKeyMD5 *string `location:"header" locationName:"x-amz-server-side-encryption-customer-key-MD5" type:"string"` - // If present, specifies the ID of the Key Management Service (KMS) symmetric + // If present, indicates the ID of the Key Management Service (KMS) symmetric // encryption customer managed key that was used for the object. // + // This functionality is not supported for directory buckets. + // // SSEKMSKeyId is a sensitive parameter and its value will be // replaced with "sensitive" in string returned by GetObjectOutput's // String and GoString methods. SSEKMSKeyId *string `location:"header" locationName:"x-amz-server-side-encryption-aws-kms-key-id" type:"string" sensitive:"true"` - // The server-side encryption algorithm used when storing this object in Amazon + // The server-side encryption algorithm used when you store this object in Amazon // S3 (for example, AES256, aws:kms, aws:kms:dsse). + // + // For directory buckets, only server-side encryption with Amazon S3 managed + // keys (SSE-S3) (AES256) is supported. ServerSideEncryption *string `location:"header" locationName:"x-amz-server-side-encryption" type:"string" enum:"ServerSideEncryption"` // Provides storage class information of the object. Amazon S3 returns this // header for all objects except for S3 Standard storage class objects. + // + // Directory buckets - Only the S3 Express One Zone storage class is supported + // by directory buckets to store objects. StorageClass *string `location:"header" locationName:"x-amz-storage-class" type:"string" enum:"StorageClass"` - // The number of tags, if any, on the object. + // The number of tags, if any, on the object, when you have the relevant permission + // to read object tags. + // + // You can use GetObjectTagging (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectTagging.html) + // to retrieve the tag set associated with an object. + // + // This functionality is not supported for directory buckets. TagCount *int64 `location:"header" locationName:"x-amz-tagging-count" type:"integer"` - // Version of the object. + // Version ID of the object. + // + // This functionality is not supported for directory buckets. VersionId *string `location:"header" locationName:"x-amz-version-id" type:"string"` // If the bucket is configured as a website, redirects requests for this object // to another object in the same bucket or to an external URL. Amazon S3 stores // the value of this header in the object metadata. + // + // This functionality is not supported for directory buckets. WebsiteRedirectLocation *string `location:"header" locationName:"x-amz-website-redirect-location" type:"string"` } @@ -23176,8 +25262,10 @@ type GetObjectRetentionInput struct { // The bucket name containing the object whose retention settings you want to // retrieve. // - // When using this action with an access point, you must direct requests to - // the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. + // Access points - When you use this action with an access point, you must provide + // the alias of the access point in place of the bucket name or specify the + // access point ARN. When using the access point ARN, you must direct requests + // to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. // When using this action with an access point through the Amazon Web Services // SDKs, you provide the access point ARN in place of the bucket name. For more // information about access point ARNs, see Using access points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html) @@ -23186,9 +25274,9 @@ type GetObjectRetentionInput struct { // Bucket is a required field Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` - // The account ID of the expected bucket owner. If the bucket is owned by a - // different account, the request fails with the HTTP status code 403 Forbidden - // (access denied). + // The account ID of the expected bucket owner. If the account ID that you provide + // does not match the actual owner of the bucket, the request fails with the + // HTTP status code 403 Forbidden (access denied). ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` // The key name for the object whose retention settings you want to retrieve. @@ -23198,11 +25286,13 @@ type GetObjectRetentionInput struct { // Confirms that the requester knows that they will be charged for the request. // Bucket owners need not specify this parameter in their requests. If either - // the source or destination Amazon S3 bucket has Requester Pays enabled, the - // requester will pay for corresponding charges to copy the object. For information - // about downloading objects from Requester Pays buckets, see Downloading Objects + // the source or destination S3 bucket has Requester Pays enabled, the requester + // will pay for corresponding charges to copy the object. For information about + // downloading objects from Requester Pays buckets, see Downloading Objects // in Requester Pays Buckets (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html) // in the Amazon S3 User Guide. + // + // This functionality is not supported for directory buckets. RequestPayer *string `location:"header" locationName:"x-amz-request-payer" type:"string" enum:"RequestPayer"` // The version ID for the object whose retention settings you want to retrieve. @@ -23349,27 +25439,30 @@ type GetObjectTaggingInput struct { // The bucket name containing the object for which to get the tagging information. // - // When using this action with an access point, you must direct requests to - // the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. + // Access points - When you use this action with an access point, you must provide + // the alias of the access point in place of the bucket name or specify the + // access point ARN. When using the access point ARN, you must direct requests + // to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. // When using this action with an access point through the Amazon Web Services // SDKs, you provide the access point ARN in place of the bucket name. For more // information about access point ARNs, see Using access points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html) // in the Amazon S3 User Guide. // - // When you use this action with Amazon S3 on Outposts, you must direct requests - // to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form - // AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When - // you use this action with S3 on Outposts through the Amazon Web Services SDKs, - // you provide the Outposts access point ARN in place of the bucket name. For - // more information about S3 on Outposts ARNs, see What is S3 on Outposts? (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html) + // S3 on Outposts - When you use this action with Amazon S3 on Outposts, you + // must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname + // takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. + // When you use this action with S3 on Outposts through the Amazon Web Services + // SDKs, you provide the Outposts access point ARN in place of the bucket name. + // For more information about S3 on Outposts ARNs, see What is S3 on Outposts? + // (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html) // in the Amazon S3 User Guide. // // Bucket is a required field Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` - // The account ID of the expected bucket owner. If the bucket is owned by a - // different account, the request fails with the HTTP status code 403 Forbidden - // (access denied). + // The account ID of the expected bucket owner. If the account ID that you provide + // does not match the actual owner of the bucket, the request fails with the + // HTTP status code 403 Forbidden (access denied). ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` // Object key for which to get the tagging information. @@ -23379,11 +25472,13 @@ type GetObjectTaggingInput struct { // Confirms that the requester knows that they will be charged for the request. // Bucket owners need not specify this parameter in their requests. If either - // the source or destination Amazon S3 bucket has Requester Pays enabled, the - // requester will pay for corresponding charges to copy the object. For information - // about downloading objects from Requester Pays buckets, see Downloading Objects + // the source or destination S3 bucket has Requester Pays enabled, the requester + // will pay for corresponding charges to copy the object. For information about + // downloading objects from Requester Pays buckets, see Downloading Objects // in Requester Pays Buckets (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html) // in the Amazon S3 User Guide. + // + // This functionality is not supported for directory buckets. RequestPayer *string `location:"header" locationName:"x-amz-request-payer" type:"string" enum:"RequestPayer"` // The versionId of the object for which to get the tagging information. @@ -23545,9 +25640,9 @@ type GetObjectTorrentInput struct { // Bucket is a required field Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` - // The account ID of the expected bucket owner. If the bucket is owned by a - // different account, the request fails with the HTTP status code 403 Forbidden - // (access denied). + // The account ID of the expected bucket owner. If the account ID that you provide + // does not match the actual owner of the bucket, the request fails with the + // HTTP status code 403 Forbidden (access denied). ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` // The object key for which to get the information. @@ -23557,11 +25652,13 @@ type GetObjectTorrentInput struct { // Confirms that the requester knows that they will be charged for the request. // Bucket owners need not specify this parameter in their requests. If either - // the source or destination Amazon S3 bucket has Requester Pays enabled, the - // requester will pay for corresponding charges to copy the object. For information - // about downloading objects from Requester Pays buckets, see Downloading Objects + // the source or destination S3 bucket has Requester Pays enabled, the requester + // will pay for corresponding charges to copy the object. For information about + // downloading objects from Requester Pays buckets, see Downloading Objects // in Requester Pays Buckets (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html) // in the Amazon S3 User Guide. + // + // This functionality is not supported for directory buckets. RequestPayer *string `location:"header" locationName:"x-amz-request-payer" type:"string" enum:"RequestPayer"` } @@ -23671,6 +25768,8 @@ type GetObjectTorrentOutput struct { // If present, indicates that the requester was successfully charged for the // request. + // + // This functionality is not supported for directory buckets. RequestCharged *string `location:"header" locationName:"x-amz-request-charged" type:"string" enum:"RequestCharged"` } @@ -23713,9 +25812,9 @@ type GetPublicAccessBlockInput struct { // Bucket is a required field Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` - // The account ID of the expected bucket owner. If the bucket is owned by a - // different account, the request fails with the HTTP status code 403 Forbidden - // (access denied). + // The account ID of the expected bucket owner. If the account ID that you provide + // does not match the actual owner of the bucket, the request fails with the + // HTTP status code 403 Forbidden (access denied). ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` } @@ -24045,33 +26144,48 @@ type HeadBucketInput struct { // The bucket name. // - // When using this action with an access point, you must direct requests to - // the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. + // Directory buckets - When you use this operation with a directory bucket, + // you must use virtual-hosted-style requests in the format Bucket_name.s3express-az_id.region.amazonaws.com. + // Path-style requests are not supported. Directory bucket names must be unique + // in the chosen Availability Zone. Bucket names must follow the format bucket_base_name--az-id--x-s3 + // (for example, DOC-EXAMPLE-BUCKET--usw2-az2--x-s3). For information about + // bucket naming restrictions, see Directory bucket naming rules (https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html) + // in the Amazon S3 User Guide. + // + // Access points - When you use this action with an access point, you must provide + // the alias of the access point in place of the bucket name or specify the + // access point ARN. When using the access point ARN, you must direct requests + // to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. // When using this action with an access point through the Amazon Web Services // SDKs, you provide the access point ARN in place of the bucket name. For more // information about access point ARNs, see Using access points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html) // in the Amazon S3 User Guide. // - // When you use this action with an Object Lambda access point, provide the - // alias of the Object Lambda access point in place of the bucket name. If the - // Object Lambda access point alias in a request is not valid, the error code - // InvalidAccessPointAliasError is returned. For more information about InvalidAccessPointAliasError, - // see List of Error Codes (https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#ErrorCodeList). - // - // When you use this action with Amazon S3 on Outposts, you must direct requests - // to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form - // AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When - // you use this action with S3 on Outposts through the Amazon Web Services SDKs, - // you provide the Outposts access point ARN in place of the bucket name. For - // more information about S3 on Outposts ARNs, see What is S3 on Outposts? (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html) + // Object Lambda access points - When you use this API operation with an Object + // Lambda access point, provide the alias of the Object Lambda access point + // in place of the bucket name. If the Object Lambda access point alias in a + // request is not valid, the error code InvalidAccessPointAliasError is returned. + // For more information about InvalidAccessPointAliasError, see List of Error + // Codes (https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#ErrorCodeList). + // + // Access points and Object Lambda access points are not supported by directory + // buckets. + // + // S3 on Outposts - When you use this action with Amazon S3 on Outposts, you + // must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname + // takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. + // When you use this action with S3 on Outposts through the Amazon Web Services + // SDKs, you provide the Outposts access point ARN in place of the bucket name. + // For more information about S3 on Outposts ARNs, see What is S3 on Outposts? + // (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html) // in the Amazon S3 User Guide. // // Bucket is a required field Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` - // The account ID of the expected bucket owner. If the bucket is owned by a - // different account, the request fails with the HTTP status code 403 Forbidden - // (access denied). + // The account ID of the expected bucket owner. If the account ID that you provide + // does not match the actual owner of the bucket, the request fails with the + // HTTP status code 403 Forbidden (access denied). ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` } @@ -24157,6 +26271,30 @@ func (s HeadBucketInput) updateArnableField(v string) (interface{}, error) { type HeadBucketOutput struct { _ struct{} `type:"structure"` + + // Indicates whether the bucket name used in the request is an access point + // alias. + // + // This functionality is not supported for directory buckets. + AccessPointAlias *bool `location:"header" locationName:"x-amz-access-point-alias" type:"boolean"` + + // The name of the location where the bucket will be created. + // + // For directory buckets, the AZ ID of the Availability Zone where the bucket + // is created. An example AZ ID value is usw2-az2. + // + // This functionality is only supported by directory buckets. + BucketLocationName *string `location:"header" locationName:"x-amz-bucket-location-name" type:"string"` + + // The type of location where the bucket is created. + // + // This functionality is only supported by directory buckets. + BucketLocationType *string `location:"header" locationName:"x-amz-bucket-location-type" type:"string" enum:"LocationType"` + + // The Region that the bucket is located. + // + // This functionality is not supported for directory buckets. + BucketRegion *string `location:"header" locationName:"x-amz-bucket-region" type:"string"` } // String returns the string representation. @@ -24177,24 +26315,62 @@ func (s HeadBucketOutput) GoString() string { return s.String() } +// SetAccessPointAlias sets the AccessPointAlias field's value. +func (s *HeadBucketOutput) SetAccessPointAlias(v bool) *HeadBucketOutput { + s.AccessPointAlias = &v + return s +} + +// SetBucketLocationName sets the BucketLocationName field's value. +func (s *HeadBucketOutput) SetBucketLocationName(v string) *HeadBucketOutput { + s.BucketLocationName = &v + return s +} + +// SetBucketLocationType sets the BucketLocationType field's value. +func (s *HeadBucketOutput) SetBucketLocationType(v string) *HeadBucketOutput { + s.BucketLocationType = &v + return s +} + +// SetBucketRegion sets the BucketRegion field's value. +func (s *HeadBucketOutput) SetBucketRegion(v string) *HeadBucketOutput { + s.BucketRegion = &v + return s +} + type HeadObjectInput struct { _ struct{} `locationName:"HeadObjectRequest" type:"structure"` - // The name of the bucket containing the object. + // The name of the bucket that contains the object. + // + // Directory buckets - When you use this operation with a directory bucket, + // you must use virtual-hosted-style requests in the format Bucket_name.s3express-az_id.region.amazonaws.com. + // Path-style requests are not supported. Directory bucket names must be unique + // in the chosen Availability Zone. Bucket names must follow the format bucket_base_name--az-id--x-s3 + // (for example, DOC-EXAMPLE-BUCKET--usw2-az2--x-s3). For information about + // bucket naming restrictions, see Directory bucket naming rules (https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html) + // in the Amazon S3 User Guide. // - // When using this action with an access point, you must direct requests to - // the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. + // Access points - When you use this action with an access point, you must provide + // the alias of the access point in place of the bucket name or specify the + // access point ARN. When using the access point ARN, you must direct requests + // to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. // When using this action with an access point through the Amazon Web Services // SDKs, you provide the access point ARN in place of the bucket name. For more // information about access point ARNs, see Using access points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html) // in the Amazon S3 User Guide. // - // When you use this action with Amazon S3 on Outposts, you must direct requests - // to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form - // AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When - // you use this action with S3 on Outposts through the Amazon Web Services SDKs, - // you provide the Outposts access point ARN in place of the bucket name. For - // more information about S3 on Outposts ARNs, see What is S3 on Outposts? (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html) + // Access points and Object Lambda access points are not supported by directory + // buckets. + // + // S3 on Outposts - When you use this action with Amazon S3 on Outposts, you + // must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname + // takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. + // When you use this action with S3 on Outposts through the Amazon Web Services + // SDKs, you provide the Outposts access point ARN in place of the bucket name. + // For more information about S3 on Outposts ARNs, see What is S3 on Outposts? + // (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html) // in the Amazon S3 User Guide. // // Bucket is a required field @@ -24207,25 +26383,69 @@ type HeadObjectInput struct { // must have permission to use the kms:Decrypt action for the request to succeed. ChecksumMode *string `location:"header" locationName:"x-amz-checksum-mode" type:"string" enum:"ChecksumMode"` - // The account ID of the expected bucket owner. If the bucket is owned by a - // different account, the request fails with the HTTP status code 403 Forbidden - // (access denied). + // The account ID of the expected bucket owner. If the account ID that you provide + // does not match the actual owner of the bucket, the request fails with the + // HTTP status code 403 Forbidden (access denied). ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` // Return the object only if its entity tag (ETag) is the same as the one specified; // otherwise, return a 412 (precondition failed) error. + // + // If both of the If-Match and If-Unmodified-Since headers are present in the + // request as follows: + // + // * If-Match condition evaluates to true, and; + // + // * If-Unmodified-Since condition evaluates to false; + // + // Then Amazon S3 returns 200 OK and the data requested. + // + // For more information about conditional requests, see RFC 7232 (https://tools.ietf.org/html/rfc7232). IfMatch *string `location:"header" locationName:"If-Match" type:"string"` // Return the object only if it has been modified since the specified time; // otherwise, return a 304 (not modified) error. + // + // If both of the If-None-Match and If-Modified-Since headers are present in + // the request as follows: + // + // * If-None-Match condition evaluates to false, and; + // + // * If-Modified-Since condition evaluates to true; + // + // Then Amazon S3 returns the 304 Not Modified response code. + // + // For more information about conditional requests, see RFC 7232 (https://tools.ietf.org/html/rfc7232). IfModifiedSince *time.Time `location:"header" locationName:"If-Modified-Since" type:"timestamp"` // Return the object only if its entity tag (ETag) is different from the one // specified; otherwise, return a 304 (not modified) error. + // + // If both of the If-None-Match and If-Modified-Since headers are present in + // the request as follows: + // + // * If-None-Match condition evaluates to false, and; + // + // * If-Modified-Since condition evaluates to true; + // + // Then Amazon S3 returns the 304 Not Modified response code. + // + // For more information about conditional requests, see RFC 7232 (https://tools.ietf.org/html/rfc7232). IfNoneMatch *string `location:"header" locationName:"If-None-Match" type:"string"` // Return the object only if it has not been modified since the specified time; // otherwise, return a 412 (precondition failed) error. + // + // If both of the If-Match and If-Unmodified-Since headers are present in the + // request as follows: + // + // * If-Match condition evaluates to true, and; + // + // * If-Unmodified-Since condition evaluates to false; + // + // Then Amazon S3 returns 200 OK and the data requested. + // + // For more information about conditional requests, see RFC 7232 (https://tools.ietf.org/html/rfc7232). IfUnmodifiedSince *time.Time `location:"header" locationName:"If-Unmodified-Since" type:"timestamp"` // The object key. @@ -24246,15 +26466,18 @@ type HeadObjectInput struct { // Confirms that the requester knows that they will be charged for the request. // Bucket owners need not specify this parameter in their requests. If either - // the source or destination Amazon S3 bucket has Requester Pays enabled, the - // requester will pay for corresponding charges to copy the object. For information - // about downloading objects from Requester Pays buckets, see Downloading Objects + // the source or destination S3 bucket has Requester Pays enabled, the requester + // will pay for corresponding charges to copy the object. For information about + // downloading objects from Requester Pays buckets, see Downloading Objects // in Requester Pays Buckets (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html) // in the Amazon S3 User Guide. + // + // This functionality is not supported for directory buckets. RequestPayer *string `location:"header" locationName:"x-amz-request-payer" type:"string" enum:"RequestPayer"` - // Specifies the algorithm to use to when encrypting the object (for example, - // AES256). + // Specifies the algorithm to use when encrypting the object (for example, AES256). + // + // This functionality is not supported for directory buckets. SSECustomerAlgorithm *string `location:"header" locationName:"x-amz-server-side-encryption-customer-algorithm" type:"string"` // Specifies the customer-provided encryption key for Amazon S3 to use in encrypting @@ -24263,6 +26486,8 @@ type HeadObjectInput struct { // with the algorithm specified in the x-amz-server-side-encryption-customer-algorithm // header. // + // This functionality is not supported for directory buckets. + // // SSECustomerKey is a sensitive parameter and its value will be // replaced with "sensitive" in string returned by HeadObjectInput's // String and GoString methods. @@ -24271,9 +26496,14 @@ type HeadObjectInput struct { // Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. // Amazon S3 uses this header for a message integrity check to ensure that the // encryption key was transmitted without error. + // + // This functionality is not supported for directory buckets. SSECustomerKeyMD5 *string `location:"header" locationName:"x-amz-server-side-encryption-customer-key-MD5" type:"string"` - // VersionId used to reference a specific version of the object. + // Version ID used to reference a specific version of the object. + // + // For directory buckets in this API operation, only the null value of the version + // ID is supported. VersionId *string `location:"querystring" locationName:"versionId" type:"string"` } @@ -24455,51 +26685,63 @@ type HeadObjectOutput struct { AcceptRanges *string `location:"header" locationName:"accept-ranges" type:"string"` // The archive state of the head object. + // + // This functionality is not supported for directory buckets. ArchiveStatus *string `location:"header" locationName:"x-amz-archive-status" type:"string" enum:"ArchiveStatus"` // Indicates whether the object uses an S3 Bucket Key for server-side encryption // with Key Management Service (KMS) keys (SSE-KMS). + // + // This functionality is not supported for directory buckets. BucketKeyEnabled *bool `location:"header" locationName:"x-amz-server-side-encryption-bucket-key-enabled" type:"boolean"` // Specifies caching behavior along the request/reply chain. CacheControl *string `location:"header" locationName:"Cache-Control" type:"string"` // The base64-encoded, 32-bit CRC32 checksum of the object. This will only be - // present if it was uploaded with the object. With multipart uploads, this - // may not be a checksum value of the object. For more information about how - // checksums are calculated with multipart uploads, see Checking object integrity - // (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums) + // present if it was uploaded with the object. When you use an API operation + // on an object that was uploaded using multipart uploads, this value may not + // be a direct checksum value of the full object. Instead, it's a calculation + // based on the checksum values of each individual part. For more information + // about how checksums are calculated with multipart uploads, see Checking object + // integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums) // in the Amazon S3 User Guide. ChecksumCRC32 *string `location:"header" locationName:"x-amz-checksum-crc32" type:"string"` // The base64-encoded, 32-bit CRC32C checksum of the object. This will only - // be present if it was uploaded with the object. With multipart uploads, this - // may not be a checksum value of the object. For more information about how - // checksums are calculated with multipart uploads, see Checking object integrity - // (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums) + // be present if it was uploaded with the object. When you use an API operation + // on an object that was uploaded using multipart uploads, this value may not + // be a direct checksum value of the full object. Instead, it's a calculation + // based on the checksum values of each individual part. For more information + // about how checksums are calculated with multipart uploads, see Checking object + // integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums) // in the Amazon S3 User Guide. ChecksumCRC32C *string `location:"header" locationName:"x-amz-checksum-crc32c" type:"string"` // The base64-encoded, 160-bit SHA-1 digest of the object. This will only be - // present if it was uploaded with the object. With multipart uploads, this - // may not be a checksum value of the object. For more information about how - // checksums are calculated with multipart uploads, see Checking object integrity - // (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums) + // present if it was uploaded with the object. When you use the API operation + // on an object that was uploaded using multipart uploads, this value may not + // be a direct checksum value of the full object. Instead, it's a calculation + // based on the checksum values of each individual part. For more information + // about how checksums are calculated with multipart uploads, see Checking object + // integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums) // in the Amazon S3 User Guide. ChecksumSHA1 *string `location:"header" locationName:"x-amz-checksum-sha1" type:"string"` // The base64-encoded, 256-bit SHA-256 digest of the object. This will only - // be present if it was uploaded with the object. With multipart uploads, this - // may not be a checksum value of the object. For more information about how - // checksums are calculated with multipart uploads, see Checking object integrity - // (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums) + // be present if it was uploaded with the object. When you use an API operation + // on an object that was uploaded using multipart uploads, this value may not + // be a direct checksum value of the full object. Instead, it's a calculation + // based on the checksum values of each individual part. For more information + // about how checksums are calculated with multipart uploads, see Checking object + // integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums) // in the Amazon S3 User Guide. ChecksumSHA256 *string `location:"header" locationName:"x-amz-checksum-sha256" type:"string"` // Specifies presentational information for the object. ContentDisposition *string `location:"header" locationName:"Content-Disposition" type:"string"` - // Specifies what content encodings have been applied to the object and thus + // Indicates what content encodings have been applied to the object and thus // what decoding mechanisms must be applied to obtain the media-type referenced // by the Content-Type header field. ContentEncoding *string `location:"header" locationName:"Content-Encoding" type:"string"` @@ -24515,15 +26757,21 @@ type HeadObjectOutput struct { // Specifies whether the object retrieved was (true) or was not (false) a Delete // Marker. If false, this response header does not appear in the response. + // + // This functionality is not supported for directory buckets. DeleteMarker *bool `location:"header" locationName:"x-amz-delete-marker" type:"boolean"` // An entity tag (ETag) is an opaque identifier assigned by a web server to // a specific version of a resource found at a URL. ETag *string `location:"header" locationName:"ETag" type:"string"` - // If the object expiration is configured (see PUT Bucket lifecycle), the response - // includes this header. It includes the expiry-date and rule-id key-value pairs - // providing object expiration information. The value of the rule-id is URL-encoded. + // If the object expiration is configured (see PutBucketLifecycleConfiguration + // (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycleConfiguration.html)), + // the response includes this header. It includes the expiry-date and rule-id + // key-value pairs providing object expiration information. The value of the + // rule-id is URL-encoded. + // + // This functionality is not supported for directory buckets. Expiration *string `location:"header" locationName:"x-amz-expiration" type:"string"` // The date and time at which the object is no longer cacheable. @@ -24543,6 +26791,8 @@ type HeadObjectOutput struct { // headers. This can happen if you create metadata using an API like SOAP that // supports more flexible metadata than the REST API. For example, using SOAP, // you can create metadata whose values are not legal HTTP headers. + // + // This functionality is not supported for directory buckets. MissingMeta *int64 `location:"header" locationName:"x-amz-missing-meta" type:"integer"` // Specifies whether a legal hold is in effect for this object. This header @@ -24550,15 +26800,21 @@ type HeadObjectOutput struct { // This header is not returned if the specified version of this object has never // had a legal hold applied. For more information about S3 Object Lock, see // Object Lock (https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html). + // + // This functionality is not supported for directory buckets. ObjectLockLegalHoldStatus *string `location:"header" locationName:"x-amz-object-lock-legal-hold" type:"string" enum:"ObjectLockLegalHoldStatus"` // The Object Lock mode, if any, that's in effect for this object. This header // is only returned if the requester has the s3:GetObjectRetention permission. // For more information about S3 Object Lock, see Object Lock (https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html). + // + // This functionality is not supported for directory buckets. ObjectLockMode *string `location:"header" locationName:"x-amz-object-lock-mode" type:"string" enum:"ObjectLockMode"` // The date and time when the Object Lock retention period expires. This header // is only returned if the requester has the s3:GetObjectRetention permission. + // + // This functionality is not supported for directory buckets. ObjectLockRetainUntilDate *time.Time `location:"header" locationName:"x-amz-object-lock-retain-until-date" type:"timestamp" timestampFormat:"iso8601"` // The count of parts this object has. This value is only returned if you specify @@ -24597,10 +26853,14 @@ type HeadObjectOutput struct { // header will return FAILED. // // For more information, see Replication (https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html). + // + // This functionality is not supported for directory buckets. ReplicationStatus *string `location:"header" locationName:"x-amz-replication-status" type:"string" enum:"ReplicationStatus"` // If present, indicates that the requester was successfully charged for the // request. + // + // This functionality is not supported for directory buckets. RequestCharged *string `location:"header" locationName:"x-amz-request-charged" type:"string" enum:"RequestCharged"` // If the object is an archived object (an object whose storage class is GLACIER), @@ -24618,42 +26878,61 @@ type HeadObjectOutput struct { // // For more information about archiving objects, see Transitioning Objects: // General Considerations (https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html#lifecycle-transition-general-considerations). + // + // This functionality is not supported for directory buckets. Only the S3 Express + // One Zone storage class is supported by directory buckets to store objects. Restore *string `location:"header" locationName:"x-amz-restore" type:"string"` // If server-side encryption with a customer-provided encryption key was requested, - // the response will include this header confirming the encryption algorithm - // used. + // the response will include this header to confirm the encryption algorithm + // that's used. + // + // This functionality is not supported for directory buckets. SSECustomerAlgorithm *string `location:"header" locationName:"x-amz-server-side-encryption-customer-algorithm" type:"string"` // If server-side encryption with a customer-provided encryption key was requested, - // the response will include this header to provide round-trip message integrity + // the response will include this header to provide the round-trip message integrity // verification of the customer-provided encryption key. + // + // This functionality is not supported for directory buckets. SSECustomerKeyMD5 *string `location:"header" locationName:"x-amz-server-side-encryption-customer-key-MD5" type:"string"` - // If present, specifies the ID of the Key Management Service (KMS) symmetric + // If present, indicates the ID of the Key Management Service (KMS) symmetric // encryption customer managed key that was used for the object. // + // This functionality is not supported for directory buckets. + // // SSEKMSKeyId is a sensitive parameter and its value will be // replaced with "sensitive" in string returned by HeadObjectOutput's // String and GoString methods. SSEKMSKeyId *string `location:"header" locationName:"x-amz-server-side-encryption-aws-kms-key-id" type:"string" sensitive:"true"` - // The server-side encryption algorithm used when storing this object in Amazon + // The server-side encryption algorithm used when you store this object in Amazon // S3 (for example, AES256, aws:kms, aws:kms:dsse). + // + // For directory buckets, only server-side encryption with Amazon S3 managed + // keys (SSE-S3) (AES256) is supported. ServerSideEncryption *string `location:"header" locationName:"x-amz-server-side-encryption" type:"string" enum:"ServerSideEncryption"` // Provides storage class information of the object. Amazon S3 returns this // header for all objects except for S3 Standard storage class objects. // // For more information, see Storage Classes (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html). + // + // Directory buckets - Only the S3 Express One Zone storage class is supported + // by directory buckets to store objects. StorageClass *string `location:"header" locationName:"x-amz-storage-class" type:"string" enum:"StorageClass"` - // Version of the object. + // Version ID of the object. + // + // This functionality is not supported for directory buckets. VersionId *string `location:"header" locationName:"x-amz-version-id" type:"string"` // If the bucket is configured as a website, redirects requests for this object // to another object in the same bucket or to an external URL. Amazon S3 stores // the value of this header in the object metadata. + // + // This functionality is not supported for directory buckets. WebsiteRedirectLocation *string `location:"header" locationName:"x-amz-website-redirect-location" type:"string"` } @@ -24939,10 +27218,16 @@ type Initiator struct { _ struct{} `type:"structure"` // Name of the Principal. + // + // This functionality is not supported for directory buckets. DisplayName *string `type:"string"` // If the principal is an Amazon Web Services account, it provides the Canonical // User ID. If the principal is an IAM User, it provides a user ARN value. + // + // Directory buckets - If the principal is an Amazon Web Services account, it + // provides the Amazon Web Services account ID. If the principal is an IAM User, + // it provides a user ARN value. ID *string `type:"string"` } @@ -26378,9 +28663,9 @@ type ListBucketAnalyticsConfigurationsInput struct { // should begin. ContinuationToken *string `location:"querystring" locationName:"continuation-token" type:"string"` - // The account ID of the expected bucket owner. If the bucket is owned by a - // different account, the request fails with the HTTP status code 403 Forbidden - // (access denied). + // The account ID of the expected bucket owner. If the account ID that you provide + // does not match the actual owner of the bucket, the request fails with the + // HTTP status code 403 Forbidden (access denied). ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` } @@ -26704,9 +28989,9 @@ type ListBucketInventoryConfigurationsInput struct { // that Amazon S3 understands. ContinuationToken *string `location:"querystring" locationName:"continuation-token" type:"string"` - // The account ID of the expected bucket owner. If the bucket is owned by a - // different account, the request fails with the HTTP status code 403 Forbidden - // (access denied). + // The account ID of the expected bucket owner. If the account ID that you provide + // does not match the actual owner of the bucket, the request fails with the + // HTTP status code 403 Forbidden (access denied). ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` } @@ -26873,9 +29158,9 @@ type ListBucketMetricsConfigurationsInput struct { // value that Amazon S3 understands. ContinuationToken *string `location:"querystring" locationName:"continuation-token" type:"string"` - // The account ID of the expected bucket owner. If the bucket is owned by a - // different account, the request fails with the HTTP status code 403 Forbidden - // (access denied). + // The account ID of the expected bucket owner. If the account ID that you provide + // does not match the actual owner of the bucket, the request fails with the + // HTTP status code 403 Forbidden (access denied). ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` } @@ -27091,24 +29376,123 @@ func (s *ListBucketsOutput) SetOwner(v *Owner) *ListBucketsOutput { return s } +type ListDirectoryBucketsInput struct { + _ struct{} `locationName:"ListDirectoryBucketsRequest" type:"structure"` + + // ContinuationToken indicates to Amazon S3 that the list is being continued + // on this bucket with a token. ContinuationToken is obfuscated and is not a + // real key. You can use this ContinuationToken for pagination of the list results. + ContinuationToken *string `location:"querystring" locationName:"continuation-token" type:"string"` + + // Maximum number of buckets to be returned in response. When the number is + // more than the count of buckets that are owned by an Amazon Web Services account, + // return all the buckets in response. + MaxDirectoryBuckets *int64 `location:"querystring" locationName:"max-directory-buckets" 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 ListDirectoryBucketsInput) 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 ListDirectoryBucketsInput) GoString() string { + return s.String() +} + +// SetContinuationToken sets the ContinuationToken field's value. +func (s *ListDirectoryBucketsInput) SetContinuationToken(v string) *ListDirectoryBucketsInput { + s.ContinuationToken = &v + return s +} + +// SetMaxDirectoryBuckets sets the MaxDirectoryBuckets field's value. +func (s *ListDirectoryBucketsInput) SetMaxDirectoryBuckets(v int64) *ListDirectoryBucketsInput { + s.MaxDirectoryBuckets = &v + return s +} + +type ListDirectoryBucketsOutput struct { + _ struct{} `type:"structure"` + + // The list of buckets owned by the requester. + Buckets []*Bucket `locationNameList:"Bucket" type:"list"` + + // If ContinuationToken was sent with the request, it is included in the response. + // You can use the returned ContinuationToken for pagination of the list response. + ContinuationToken *string `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 ListDirectoryBucketsOutput) 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 ListDirectoryBucketsOutput) GoString() string { + return s.String() +} + +// SetBuckets sets the Buckets field's value. +func (s *ListDirectoryBucketsOutput) SetBuckets(v []*Bucket) *ListDirectoryBucketsOutput { + s.Buckets = v + return s +} + +// SetContinuationToken sets the ContinuationToken field's value. +func (s *ListDirectoryBucketsOutput) SetContinuationToken(v string) *ListDirectoryBucketsOutput { + s.ContinuationToken = &v + return s +} + type ListMultipartUploadsInput struct { _ struct{} `locationName:"ListMultipartUploadsRequest" type:"structure"` // The name of the bucket to which the multipart upload was initiated. // - // When using this action with an access point, you must direct requests to - // the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. + // Directory buckets - When you use this operation with a directory bucket, + // you must use virtual-hosted-style requests in the format Bucket_name.s3express-az_id.region.amazonaws.com. + // Path-style requests are not supported. Directory bucket names must be unique + // in the chosen Availability Zone. Bucket names must follow the format bucket_base_name--az-id--x-s3 + // (for example, DOC-EXAMPLE-BUCKET--usw2-az2--x-s3). For information about + // bucket naming restrictions, see Directory bucket naming rules (https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html) + // in the Amazon S3 User Guide. + // + // Access points - When you use this action with an access point, you must provide + // the alias of the access point in place of the bucket name or specify the + // access point ARN. When using the access point ARN, you must direct requests + // to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. // When using this action with an access point through the Amazon Web Services // SDKs, you provide the access point ARN in place of the bucket name. For more // information about access point ARNs, see Using access points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html) // in the Amazon S3 User Guide. // - // When you use this action with Amazon S3 on Outposts, you must direct requests - // to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form - // AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When - // you use this action with S3 on Outposts through the Amazon Web Services SDKs, - // you provide the Outposts access point ARN in place of the bucket name. For - // more information about S3 on Outposts ARNs, see What is S3 on Outposts? (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html) + // Access points and Object Lambda access points are not supported by directory + // buckets. + // + // S3 on Outposts - When you use this action with Amazon S3 on Outposts, you + // must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname + // takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. + // When you use this action with S3 on Outposts through the Amazon Web Services + // SDKs, you provide the Outposts access point ARN in place of the bucket name. + // For more information about S3 on Outposts ARNs, see What is S3 on Outposts? + // (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html) // in the Amazon S3 User Guide. // // Bucket is a required field @@ -27122,6 +29506,8 @@ type ListMultipartUploadsInput struct { // parameter, then the substring starts at the beginning of the key. The keys // that are grouped under CommonPrefixes result element are not returned elsewhere // in the response. + // + // Directory buckets - For directory buckets, / is the only supported delimiter. Delimiter *string `location:"querystring" locationName:"delimiter" type:"string"` // Requests Amazon S3 to encode the object keys in the response and specifies @@ -27132,20 +29518,28 @@ type ListMultipartUploadsInput struct { // keys in the response. EncodingType *string `location:"querystring" locationName:"encoding-type" type:"string" enum:"EncodingType"` - // The account ID of the expected bucket owner. If the bucket is owned by a - // different account, the request fails with the HTTP status code 403 Forbidden - // (access denied). + // The account ID of the expected bucket owner. If the account ID that you provide + // does not match the actual owner of the bucket, the request fails with the + // HTTP status code 403 Forbidden (access denied). ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` - // Together with upload-id-marker, this parameter specifies the multipart upload - // after which listing should begin. - // - // If upload-id-marker is not specified, only the keys lexicographically greater - // than the specified key-marker will be included in the list. - // - // If upload-id-marker is specified, any multipart uploads for a key equal to - // the key-marker might also be included, provided those multipart uploads have - // upload IDs lexicographically greater than the specified upload-id-marker. + // Specifies the multipart upload after which listing should begin. + // + // * General purpose buckets - For general purpose buckets, key-marker is + // an object key. Together with upload-id-marker, this parameter specifies + // the multipart upload after which listing should begin. If upload-id-marker + // is not specified, only the keys lexicographically greater than the specified + // key-marker will be included in the list. If upload-id-marker is specified, + // any multipart uploads for a key equal to the key-marker might also be + // included, provided those multipart uploads have upload IDs lexicographically + // greater than the specified upload-id-marker. + // + // * Directory buckets - For directory buckets, key-marker is obfuscated + // and isn't a real object key. The upload-id-marker parameter isn't supported + // by directory buckets. To list the additional multipart uploads, you only + // need to set the value of key-marker to the NextKeyMarker value from the + // previous response. In the ListMultipartUploads response, the multipart + // uploads aren't sorted lexicographically based on the object keys. KeyMarker *string `location:"querystring" locationName:"key-marker" type:"string"` // Sets the maximum number of multipart uploads, from 1 to 1,000, to return @@ -27157,15 +29551,20 @@ type ListMultipartUploadsInput struct { // prefix. You can use prefixes to separate a bucket into different grouping // of keys. (You can think of using prefix to make groups in the same way that // you'd use a folder in a file system.) + // + // Directory buckets - For directory buckets, only prefixes that end in a delimiter + // (/) are supported. Prefix *string `location:"querystring" locationName:"prefix" type:"string"` // Confirms that the requester knows that they will be charged for the request. // Bucket owners need not specify this parameter in their requests. If either - // the source or destination Amazon S3 bucket has Requester Pays enabled, the - // requester will pay for corresponding charges to copy the object. For information - // about downloading objects from Requester Pays buckets, see Downloading Objects + // the source or destination S3 bucket has Requester Pays enabled, the requester + // will pay for corresponding charges to copy the object. For information about + // downloading objects from Requester Pays buckets, see Downloading Objects // in Requester Pays Buckets (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html) // in the Amazon S3 User Guide. + // + // This functionality is not supported for directory buckets. RequestPayer *string `location:"header" locationName:"x-amz-request-payer" type:"string" enum:"RequestPayer"` // Together with key-marker, specifies the multipart upload after which listing @@ -27173,6 +29572,8 @@ type ListMultipartUploadsInput struct { // is ignored. Otherwise, any multipart uploads for a key equal to the key-marker // might be included in the list only if they have an upload ID lexicographically // greater than the specified upload-id-marker. + // + // This functionality is not supported for directory buckets. UploadIdMarker *string `location:"querystring" locationName:"upload-id-marker" type:"string"` } @@ -27308,10 +29709,15 @@ type ListMultipartUploadsOutput struct { // If you specify a delimiter in the request, then the result returns each distinct // key prefix containing the delimiter in a CommonPrefixes element. The distinct // key prefixes are returned in the Prefix child element. + // + // Directory buckets - For directory buckets, only prefixes that end in a delimiter + // (/) are supported. CommonPrefixes []*CommonPrefix `type:"list" flattened:"true"` // Contains the delimiter you specified in the request. If you don't specify // a delimiter in your request, this element is absent from the response. + // + // Directory buckets - For directory buckets, / is the only supported delimiter. Delimiter *string `type:"string"` // Encoding type used by Amazon S3 to encode object keys in the response. @@ -27342,17 +29748,26 @@ type ListMultipartUploadsOutput struct { // When a list is truncated, this element specifies the value that should be // used for the upload-id-marker request parameter in a subsequent request. + // + // This functionality is not supported for directory buckets. NextUploadIdMarker *string `type:"string"` // When a prefix is provided in the request, this field contains the specified // prefix. The result contains only keys starting with the specified prefix. + // + // Directory buckets - For directory buckets, only prefixes that end in a delimiter + // (/) are supported. Prefix *string `type:"string"` // If present, indicates that the requester was successfully charged for the // request. + // + // This functionality is not supported for directory buckets. RequestCharged *string `location:"header" locationName:"x-amz-request-charged" type:"string" enum:"RequestCharged"` // Upload ID after which listing began. + // + // This functionality is not supported for directory buckets. UploadIdMarker *string `type:"string"` // Container for elements related to a particular multipart upload. A response @@ -27486,9 +29901,9 @@ type ListObjectVersionsInput struct { // keys in the response. EncodingType *string `location:"querystring" locationName:"encoding-type" type:"string" enum:"EncodingType"` - // The account ID of the expected bucket owner. If the bucket is owned by a - // different account, the request fails with the HTTP status code 403 Forbidden - // (access denied). + // The account ID of the expected bucket owner. If the account ID that you provide + // does not match the actual owner of the bucket, the request fails with the + // HTTP status code 403 Forbidden (access denied). ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` // Specifies the key to start with when listing objects in a bucket. @@ -27515,11 +29930,13 @@ type ListObjectVersionsInput struct { // Confirms that the requester knows that they will be charged for the request. // Bucket owners need not specify this parameter in their requests. If either - // the source or destination Amazon S3 bucket has Requester Pays enabled, the - // requester will pay for corresponding charges to copy the object. For information - // about downloading objects from Requester Pays buckets, see Downloading Objects + // the source or destination S3 bucket has Requester Pays enabled, the requester + // will pay for corresponding charges to copy the object. For information about + // downloading objects from Requester Pays buckets, see Downloading Objects // in Requester Pays Buckets (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html) // in the Amazon S3 User Guide. + // + // This functionality is not supported for directory buckets. RequestPayer *string `location:"header" locationName:"x-amz-request-payer" type:"string" enum:"RequestPayer"` // Specifies the object version you want to start listing from. @@ -27713,6 +30130,8 @@ type ListObjectVersionsOutput struct { // If present, indicates that the requester was successfully charged for the // request. + // + // This functionality is not supported for directory buckets. RequestCharged *string `location:"header" locationName:"x-amz-request-charged" type:"string" enum:"RequestCharged"` // Marks the last version of the key returned in a truncated response. @@ -27829,19 +30248,33 @@ type ListObjectsInput struct { // The name of the bucket containing the objects. // - // When using this action with an access point, you must direct requests to - // the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. + // Directory buckets - When you use this operation with a directory bucket, + // you must use virtual-hosted-style requests in the format Bucket_name.s3express-az_id.region.amazonaws.com. + // Path-style requests are not supported. Directory bucket names must be unique + // in the chosen Availability Zone. Bucket names must follow the format bucket_base_name--az-id--x-s3 + // (for example, DOC-EXAMPLE-BUCKET--usw2-az2--x-s3). For information about + // bucket naming restrictions, see Directory bucket naming rules (https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html) + // in the Amazon S3 User Guide. + // + // Access points - When you use this action with an access point, you must provide + // the alias of the access point in place of the bucket name or specify the + // access point ARN. When using the access point ARN, you must direct requests + // to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. // When using this action with an access point through the Amazon Web Services // SDKs, you provide the access point ARN in place of the bucket name. For more // information about access point ARNs, see Using access points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html) // in the Amazon S3 User Guide. // - // When you use this action with Amazon S3 on Outposts, you must direct requests - // to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form - // AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When - // you use this action with S3 on Outposts through the Amazon Web Services SDKs, - // you provide the Outposts access point ARN in place of the bucket name. For - // more information about S3 on Outposts ARNs, see What is S3 on Outposts? (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html) + // Access points and Object Lambda access points are not supported by directory + // buckets. + // + // S3 on Outposts - When you use this action with Amazon S3 on Outposts, you + // must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname + // takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. + // When you use this action with S3 on Outposts through the Amazon Web Services + // SDKs, you provide the Outposts access point ARN in place of the bucket name. + // For more information about S3 on Outposts ARNs, see What is S3 on Outposts? + // (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html) // in the Amazon S3 User Guide. // // Bucket is a required field @@ -27858,9 +30291,9 @@ type ListObjectsInput struct { // keys in the response. EncodingType *string `location:"querystring" locationName:"encoding-type" type:"string" enum:"EncodingType"` - // The account ID of the expected bucket owner. If the bucket is owned by a - // different account, the request fails with the HTTP status code 403 Forbidden - // (access denied). + // The account ID of the expected bucket owner. If the account ID that you provide + // does not match the actual owner of the bucket, the request fails with the + // HTTP status code 403 Forbidden (access denied). ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` // Marker is where you want Amazon S3 to start listing from. Amazon S3 starts @@ -28071,6 +30504,8 @@ type ListObjectsOutput struct { // If present, indicates that the requester was successfully charged for the // request. + // + // This functionality is not supported for directory buckets. RequestCharged *string `location:"header" locationName:"x-amz-request-charged" type:"string" enum:"RequestCharged"` } @@ -28161,21 +30596,33 @@ func (s *ListObjectsOutput) SetRequestCharged(v string) *ListObjectsOutput { type ListObjectsV2Input struct { _ struct{} `locationName:"ListObjectsV2Request" type:"structure"` - // Bucket name to list. + // Directory buckets - When you use this operation with a directory bucket, + // you must use virtual-hosted-style requests in the format Bucket_name.s3express-az_id.region.amazonaws.com. + // Path-style requests are not supported. Directory bucket names must be unique + // in the chosen Availability Zone. Bucket names must follow the format bucket_base_name--az-id--x-s3 + // (for example, DOC-EXAMPLE-BUCKET--usw2-az2--x-s3). For information about + // bucket naming restrictions, see Directory bucket naming rules (https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html) + // in the Amazon S3 User Guide. // - // When using this action with an access point, you must direct requests to - // the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. + // Access points - When you use this action with an access point, you must provide + // the alias of the access point in place of the bucket name or specify the + // access point ARN. When using the access point ARN, you must direct requests + // to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. // When using this action with an access point through the Amazon Web Services // SDKs, you provide the access point ARN in place of the bucket name. For more // information about access point ARNs, see Using access points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html) // in the Amazon S3 User Guide. // - // When you use this action with Amazon S3 on Outposts, you must direct requests - // to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form - // AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When - // you use this action with S3 on Outposts through the Amazon Web Services SDKs, - // you provide the Outposts access point ARN in place of the bucket name. For - // more information about S3 on Outposts ARNs, see What is S3 on Outposts? (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html) + // Access points and Object Lambda access points are not supported by directory + // buckets. + // + // S3 on Outposts - When you use this action with Amazon S3 on Outposts, you + // must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname + // takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. + // When you use this action with S3 on Outposts through the Amazon Web Services + // SDKs, you provide the Outposts access point ARN in place of the bucket name. + // For more information about S3 on Outposts ARNs, see What is S3 on Outposts? + // (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html) // in the Amazon S3 User Guide. // // Bucket is a required field @@ -28183,23 +30630,35 @@ type ListObjectsV2Input struct { // ContinuationToken indicates to Amazon S3 that the list is being continued // on this bucket with a token. ContinuationToken is obfuscated and is not a - // real key. + // real key. You can use this ContinuationToken for pagination of the list results. ContinuationToken *string `location:"querystring" locationName:"continuation-token" type:"string"` // A delimiter is a character that you use to group keys. + // + // * Directory buckets - For directory buckets, / is the only supported delimiter. + // + // * Directory buckets - When you query ListObjectsV2 with a delimiter during + // in-progress multipart uploads, the CommonPrefixes response parameter contains + // the prefixes that are associated with the in-progress multipart uploads. + // For more information about multipart uploads, see Multipart Upload Overview + // (https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview.html) in + // the Amazon S3 User Guide. Delimiter *string `location:"querystring" locationName:"delimiter" type:"string"` // Encoding type used by Amazon S3 to encode object keys in the response. EncodingType *string `location:"querystring" locationName:"encoding-type" type:"string" enum:"EncodingType"` - // The account ID of the expected bucket owner. If the bucket is owned by a - // different account, the request fails with the HTTP status code 403 Forbidden - // (access denied). + // The account ID of the expected bucket owner. If the account ID that you provide + // does not match the actual owner of the bucket, the request fails with the + // HTTP status code 403 Forbidden (access denied). ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` // The owner field is not present in ListObjectsV2 by default. If you want to // return the owner field with each key in the result, then set the FetchOwner // field to true. + // + // Directory buckets - For directory buckets, the bucket owner is returned as + // the object owner for all objects. FetchOwner *bool `location:"querystring" locationName:"fetch-owner" type:"boolean"` // Sets the maximum number of keys returned in the response. By default, the @@ -28209,18 +30668,27 @@ type ListObjectsV2Input struct { // Specifies the optional fields that you want returned in the response. Fields // that you do not specify are not returned. + // + // This functionality is not supported for directory buckets. OptionalObjectAttributes []*string `location:"header" locationName:"x-amz-optional-object-attributes" type:"list" enum:"OptionalObjectAttributes"` // Limits the response to keys that begin with the specified prefix. + // + // Directory buckets - For directory buckets, only prefixes that end in a delimiter + // (/) are supported. Prefix *string `location:"querystring" locationName:"prefix" type:"string"` // Confirms that the requester knows that she or he will be charged for the // list objects request in V2 style. Bucket owners need not specify this parameter // in their requests. + // + // This functionality is not supported for directory buckets. RequestPayer *string `location:"header" locationName:"x-amz-request-payer" type:"string" enum:"RequestPayer"` // StartAfter is where you want Amazon S3 to start listing from. Amazon S3 starts // listing after this specified key. StartAfter can be any key in the bucket. + // + // This functionality is not supported for directory buckets. StartAfter *string `location:"querystring" locationName:"start-after" type:"string"` } @@ -28361,8 +30829,9 @@ func (s ListObjectsV2Input) updateArnableField(v string) (interface{}, error) { type ListObjectsV2Output struct { _ struct{} `type:"structure"` - // All of the keys (up to 1,000) rolled up into a common prefix count as a single - // return when calculating the number of returns. + // All of the keys (up to 1,000) that share the same prefix are grouped together. + // When counting the total numbers of returns by this API operation, this group + // of keys is considered as one item. // // A response can contain CommonPrefixes only if you specify a delimiter. // @@ -28376,12 +30845,24 @@ type ListObjectsV2Output struct { // in notes/summer/july, the common prefix is notes/summer/. All of the keys // that roll up into a common prefix count as a single return when calculating // the number of returns. + // + // * Directory buckets - For directory buckets, only prefixes that end in + // a delimiter (/) are supported. + // + // * Directory buckets - When you query ListObjectsV2 with a delimiter during + // in-progress multipart uploads, the CommonPrefixes response parameter contains + // the prefixes that are associated with the in-progress multipart uploads. + // For more information about multipart uploads, see Multipart Upload Overview + // (https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview.html) in + // the Amazon S3 User Guide. CommonPrefixes []*CommonPrefix `type:"list" flattened:"true"` // Metadata about each object returned. Contents []*Object `type:"list" flattened:"true"` // If ContinuationToken was sent with the request, it is included in the response. + // You can use the returned ContinuationToken for pagination of the list response. + // You can use this ContinuationToken for pagination of the list results. ContinuationToken *string `type:"string"` // Causes keys that contain the same string between the prefix and the first @@ -28389,6 +30870,8 @@ type ListObjectsV2Output struct { // in the CommonPrefixes collection. These rolled-up keys are not returned elsewhere // in the response. Each rolled-up result counts as only one return against // the MaxKeys value. + // + // Directory buckets - For directory buckets, / is the only supported delimiter. Delimiter *string `type:"string"` // Encoding type used by Amazon S3 to encode object key names in the XML response. @@ -28416,21 +30899,6 @@ type ListObjectsV2Output struct { MaxKeys *int64 `type:"integer"` // The bucket name. - // - // When using this action with an access point, you must direct requests to - // the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. - // When using this action with an access point through the Amazon Web Services - // SDKs, you provide the access point ARN in place of the bucket name. For more - // information about access point ARNs, see Using access points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html) - // in the Amazon S3 User Guide. - // - // When you use this action with Amazon S3 on Outposts, you must direct requests - // to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form - // AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When - // you use this action with S3 on Outposts through the Amazon Web Services SDKs, - // you provide the Outposts access point ARN in place of the bucket name. For - // more information about S3 on Outposts ARNs, see What is S3 on Outposts? (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html) - // in the Amazon S3 User Guide. Name *string `type:"string"` // NextContinuationToken is sent when isTruncated is true, which means there @@ -28440,13 +30908,20 @@ type ListObjectsV2Output struct { NextContinuationToken *string `type:"string"` // Keys that begin with the indicated prefix. + // + // Directory buckets - For directory buckets, only prefixes that end in a delimiter + // (/) are supported. Prefix *string `type:"string"` // If present, indicates that the requester was successfully charged for the // request. + // + // This functionality is not supported for directory buckets. RequestCharged *string `location:"header" locationName:"x-amz-request-charged" type:"string" enum:"RequestCharged"` // If StartAfter was sent with the request, it is included in the response. + // + // This functionality is not supported for directory buckets. StartAfter *string `type:"string"` } @@ -28551,27 +31026,41 @@ type ListPartsInput struct { // The name of the bucket to which the parts are being uploaded. // - // When using this action with an access point, you must direct requests to - // the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. + // Directory buckets - When you use this operation with a directory bucket, + // you must use virtual-hosted-style requests in the format Bucket_name.s3express-az_id.region.amazonaws.com. + // Path-style requests are not supported. Directory bucket names must be unique + // in the chosen Availability Zone. Bucket names must follow the format bucket_base_name--az-id--x-s3 + // (for example, DOC-EXAMPLE-BUCKET--usw2-az2--x-s3). For information about + // bucket naming restrictions, see Directory bucket naming rules (https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html) + // in the Amazon S3 User Guide. + // + // Access points - When you use this action with an access point, you must provide + // the alias of the access point in place of the bucket name or specify the + // access point ARN. When using the access point ARN, you must direct requests + // to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. // When using this action with an access point through the Amazon Web Services // SDKs, you provide the access point ARN in place of the bucket name. For more // information about access point ARNs, see Using access points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html) // in the Amazon S3 User Guide. // - // When you use this action with Amazon S3 on Outposts, you must direct requests - // to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form - // AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When - // you use this action with S3 on Outposts through the Amazon Web Services SDKs, - // you provide the Outposts access point ARN in place of the bucket name. For - // more information about S3 on Outposts ARNs, see What is S3 on Outposts? (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html) + // Access points and Object Lambda access points are not supported by directory + // buckets. + // + // S3 on Outposts - When you use this action with Amazon S3 on Outposts, you + // must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname + // takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. + // When you use this action with S3 on Outposts through the Amazon Web Services + // SDKs, you provide the Outposts access point ARN in place of the bucket name. + // For more information about S3 on Outposts ARNs, see What is S3 on Outposts? + // (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html) // in the Amazon S3 User Guide. // // Bucket is a required field Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` - // The account ID of the expected bucket owner. If the bucket is owned by a - // different account, the request fails with the HTTP status code 403 Forbidden - // (access denied). + // The account ID of the expected bucket owner. If the account ID that you provide + // does not match the actual owner of the bucket, the request fails with the + // HTTP status code 403 Forbidden (access denied). ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` // Object key for which the multipart upload was initiated. @@ -28588,17 +31077,21 @@ type ListPartsInput struct { // Confirms that the requester knows that they will be charged for the request. // Bucket owners need not specify this parameter in their requests. If either - // the source or destination Amazon S3 bucket has Requester Pays enabled, the - // requester will pay for corresponding charges to copy the object. For information - // about downloading objects from Requester Pays buckets, see Downloading Objects + // the source or destination S3 bucket has Requester Pays enabled, the requester + // will pay for corresponding charges to copy the object. For information about + // downloading objects from Requester Pays buckets, see Downloading Objects // in Requester Pays Buckets (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html) // in the Amazon S3 User Guide. + // + // This functionality is not supported for directory buckets. RequestPayer *string `location:"header" locationName:"x-amz-request-payer" type:"string" enum:"RequestPayer"` // The server-side encryption (SSE) algorithm used to encrypt the object. This // parameter is needed only when the object was created using a checksum algorithm. // For more information, see Protecting data using SSE-C keys (https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html) // in the Amazon S3 User Guide. + // + // This functionality is not supported for directory buckets. SSECustomerAlgorithm *string `location:"header" locationName:"x-amz-server-side-encryption-customer-algorithm" type:"string"` // The server-side encryption (SSE) customer managed key. This parameter is @@ -28606,6 +31099,8 @@ type ListPartsInput struct { // information, see Protecting data using SSE-C keys (https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html) // in the Amazon S3 User Guide. // + // This functionality is not supported for directory buckets. + // // SSECustomerKey is a sensitive parameter and its value will be // replaced with "sensitive" in string returned by ListPartsInput's // String and GoString methods. @@ -28615,6 +31110,8 @@ type ListPartsInput struct { // is needed only when the object was created using a checksum algorithm. For // more information, see Protecting data using SSE-C keys (https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html) // in the Amazon S3 User Guide. + // + // This functionality is not supported for directory buckets. SSECustomerKeyMD5 *string `location:"header" locationName:"x-amz-server-side-encryption-customer-key-MD5" type:"string"` // Upload ID identifying the multipart upload whose parts are being listed. @@ -28779,11 +31276,15 @@ type ListPartsOutput struct { // // The response will also include the x-amz-abort-rule-id header that will provide // the ID of the lifecycle configuration rule that defines this action. + // + // This functionality is not supported for directory buckets. AbortDate *time.Time `location:"header" locationName:"x-amz-abort-date" type:"timestamp"` // This header is returned along with the x-amz-abort-date header. It identifies // applicable lifecycle configuration rule that defines the action to abort // incomplete multipart uploads. + // + // This functionality is not supported for directory buckets. AbortRuleId *string `location:"header" locationName:"x-amz-abort-rule-id" type:"string"` // The name of the bucket to which the multipart upload was initiated. Does @@ -28818,6 +31319,9 @@ type ListPartsOutput struct { // Container element that identifies the object owner, after the object is created. // If multipart upload is initiated by an IAM user, this element provides the // parent account ID and display name. + // + // Directory buckets - The bucket owner is returned as the object owner for + // all the parts. Owner *Owner `type:"structure"` // When a list is truncated, this element specifies the last part in the list, @@ -28831,10 +31335,14 @@ type ListPartsOutput struct { // If present, indicates that the requester was successfully charged for the // request. + // + // This functionality is not supported for directory buckets. RequestCharged *string `location:"header" locationName:"x-amz-request-charged" type:"string" enum:"RequestCharged"` - // Class of storage (STANDARD or REDUCED_REDUNDANCY) used to store the uploaded - // object. + // The class of storage used to store the uploaded object. + // + // Directory buckets - Only the S3 Express One Zone storage class is supported + // by directory buckets to store objects. StorageClass *string `type:"string" enum:"StorageClass"` // Upload ID identifying the multipart upload whose parts are being listed. @@ -29092,6 +31600,56 @@ func (s *Location) SetUserMetadata(v []*MetadataEntry) *Location { return s } +// Specifies the location where the bucket will be created. +// +// For directory buckets, the location type is Availability Zone. For more information +// about directory buckets, see Directory buckets (https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-buckets-overview.html) +// in the Amazon S3 User Guide. +// +// This functionality is only supported by directory buckets. +type LocationInfo struct { + _ struct{} `type:"structure"` + + // The name of the location where the bucket will be created. + // + // For directory buckets, the AZ ID of the Availability Zone where the bucket + // will be created. An example AZ ID value is usw2-az2. + Name *string `type:"string"` + + // The type of location where the bucket will be created. + Type *string `type:"string" enum:"LocationType"` +} + +// 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 LocationInfo) 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 LocationInfo) GoString() string { + return s.String() +} + +// SetName sets the Name field's value. +func (s *LocationInfo) SetName(v string) *LocationInfo { + s.Name = &v + return s +} + +// SetType sets the Type field's value. +func (s *LocationInfo) SetType(v string) *LocationInfo { + s.Type = &v + return s +} + // Describes where logs are stored and the prefix that Amazon S3 assigns to // all log object keys for a bucket. For more information, see PUT Bucket logging // (https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTlogging.html) @@ -29537,9 +32095,15 @@ type MultipartUpload struct { Key *string `min:"1" type:"string"` // Specifies the owner of the object that is part of the multipart upload. + // + // Directory buckets - The bucket owner is returned as the object owner for + // all the objects. Owner *Owner `type:"structure"` // The class of storage used to store the object. + // + // Directory buckets - Only the S3 Express One Zone storage class is supported + // by directory buckets to store objects. StorageClass *string `type:"string" enum:"StorageClass"` // Upload ID that identifies the multipart upload. @@ -29943,6 +32507,8 @@ type Object struct { // encryption. If an object is larger than 16 MB, the Amazon Web Services // Management Console will upload or copy that object as a Multipart Upload, // and therefore the ETag will not be an MD5 digest. + // + // Directory buckets - MD5 is not supported by directory buckets. ETag *string `type:"string"` // The name that you assign to an object. You use the object key to retrieve @@ -29953,6 +32519,8 @@ type Object struct { LastModified *time.Time `type:"timestamp"` // The owner of the object + // + // Directory buckets - The bucket owner is returned as the object owner. Owner *Owner `type:"structure"` // Specifies the restoration status of an object. Objects in certain storage @@ -29960,12 +32528,18 @@ type Object struct { // about these storage classes and how to work with archived objects, see Working // with archived objects (https://docs.aws.amazon.com/AmazonS3/latest/userguide/archived-objects.html) // in the Amazon S3 User Guide. + // + // This functionality is not supported for directory buckets. Only the S3 Express + // One Zone storage class is supported by directory buckets to store objects. RestoreStatus *RestoreStatus `type:"structure"` // Size in bytes of the object Size *int64 `type:"long"` // The class of storage used to store the object. + // + // Directory buckets - Only the S3 Express One Zone storage class is supported + // by directory buckets to store objects. StorageClass *string `type:"string" enum:"ObjectStorageClass"` } @@ -30048,7 +32622,9 @@ type ObjectIdentifier struct { // Key is a required field Key *string `min:"1" type:"string" required:"true"` - // VersionId for the specific version of the object to delete. + // Version ID for the specific version of the object to delete. + // + // This functionality is not supported for directory buckets. VersionId *string `type:"string"` } @@ -30263,26 +32839,32 @@ type ObjectPart struct { ChecksumCRC32 *string `type:"string"` // The base64-encoded, 32-bit CRC32C checksum of the object. This will only - // be present if it was uploaded with the object. With multipart uploads, this - // may not be a checksum value of the object. For more information about how - // checksums are calculated with multipart uploads, see Checking object integrity - // (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums) + // be present if it was uploaded with the object. When you use an API operation + // on an object that was uploaded using multipart uploads, this value may not + // be a direct checksum value of the full object. Instead, it's a calculation + // based on the checksum values of each individual part. For more information + // about how checksums are calculated with multipart uploads, see Checking object + // integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums) // in the Amazon S3 User Guide. ChecksumCRC32C *string `type:"string"` // The base64-encoded, 160-bit SHA-1 digest of the object. This will only be - // present if it was uploaded with the object. With multipart uploads, this - // may not be a checksum value of the object. For more information about how - // checksums are calculated with multipart uploads, see Checking object integrity - // (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums) + // present if it was uploaded with the object. When you use the API operation + // on an object that was uploaded using multipart uploads, this value may not + // be a direct checksum value of the full object. Instead, it's a calculation + // based on the checksum values of each individual part. For more information + // about how checksums are calculated with multipart uploads, see Checking object + // integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums) // in the Amazon S3 User Guide. ChecksumSHA1 *string `type:"string"` // The base64-encoded, 256-bit SHA-256 digest of the object. This will only - // be present if it was uploaded with the object. With multipart uploads, this - // may not be a checksum value of the object. For more information about how - // checksums are calculated with multipart uploads, see Checking object integrity - // (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums) + // be present if it was uploaded with the object. When you use an API operation + // on an object that was uploaded using multipart uploads, this value may not + // be a direct checksum value of the full object. Instead, it's a calculation + // based on the checksum values of each individual part. For more information + // about how checksums are calculated with multipart uploads, see Checking object + // integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums) // in the Amazon S3 User Guide. ChecksumSHA256 *string `type:"string"` @@ -30576,6 +33158,8 @@ type Owner struct { // * Europe (Ireland) // // * South America (São Paulo) + // + // This functionality is not supported for directory buckets. DisplayName *string `type:"string"` // Container for the ID of the owner. @@ -30685,8 +33269,19 @@ type OwnershipControlsRule struct { // BucketOwnerEnforced - Access control lists (ACLs) are disabled and no longer // affect permissions. The bucket owner automatically owns and has full control // over every object in the bucket. The bucket only accepts PUT requests that - // don't specify an ACL or bucket owner full control ACLs, such as the bucket-owner-full-control - // canned ACL or an equivalent form of this ACL expressed in the XML format. + // don't specify an ACL or specify bucket owner full control ACLs (such as the + // predefined bucket-owner-full-control canned ACL or a custom ACL in XML format + // that grants the same permissions). + // + // By default, ObjectOwnership is set to BucketOwnerEnforced and ACLs are disabled. + // We recommend keeping ACLs disabled, except in uncommon use cases where you + // must control access for each object individually. For more information about + // S3 Object Ownership, see Controlling ownership of objects and disabling ACLs + // for your bucket (https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html) + // in the Amazon S3 User Guide. + // + // This functionality is not supported for directory buckets. Directory buckets + // use the bucket owner enforced setting for S3 Object Ownership. // // ObjectOwnership is a required field ObjectOwnership *string `type:"string" required:"true" enum:"ObjectOwnership"` @@ -30764,18 +33359,22 @@ type Part struct { ChecksumCRC32 *string `type:"string"` // The base64-encoded, 32-bit CRC32C checksum of the object. This will only - // be present if it was uploaded with the object. With multipart uploads, this - // may not be a checksum value of the object. For more information about how - // checksums are calculated with multipart uploads, see Checking object integrity - // (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums) + // be present if it was uploaded with the object. When you use an API operation + // on an object that was uploaded using multipart uploads, this value may not + // be a direct checksum value of the full object. Instead, it's a calculation + // based on the checksum values of each individual part. For more information + // about how checksums are calculated with multipart uploads, see Checking object + // integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums) // in the Amazon S3 User Guide. ChecksumCRC32C *string `type:"string"` // The base64-encoded, 160-bit SHA-1 digest of the object. This will only be - // present if it was uploaded with the object. With multipart uploads, this - // may not be a checksum value of the object. For more information about how - // checksums are calculated with multipart uploads, see Checking object integrity - // (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums) + // present if it was uploaded with the object. When you use the API operation + // on an object that was uploaded using multipart uploads, this value may not + // be a direct checksum value of the full object. Instead, it's a calculation + // based on the checksum values of each individual part. For more information + // about how checksums are calculated with multipart uploads, see Checking object + // integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums) // in the Amazon S3 User Guide. ChecksumSHA1 *string `type:"string"` @@ -31151,12 +33750,12 @@ type PutBucketAccelerateConfigurationInput struct { // Bucket is a required field Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` - // Indicates the algorithm used to create the checksum for the object when using - // the SDK. This header will not provide any additional functionality if not - // using the SDK. When sending this header, there must be a corresponding x-amz-checksum - // or x-amz-trailer header sent. Otherwise, Amazon S3 fails the request with - // the HTTP status code 400 Bad Request. For more information, see Checking - // object integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) + // Indicates the algorithm used to create the checksum for the object when you + // use the SDK. This header will not provide any additional functionality if + // you don't use the SDK. When you send this header, there must be a corresponding + // x-amz-checksum or x-amz-trailer header sent. Otherwise, Amazon S3 fails the + // request with the HTTP status code 400 Bad Request. For more information, + // see Checking object integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) // in the Amazon S3 User Guide. // // If you provide an individual checksum, Amazon S3 ignores any provided ChecksumAlgorithm @@ -31168,9 +33767,9 @@ type PutBucketAccelerateConfigurationInput struct { // must be populated with the algorithm's checksum of the request payload. ChecksumAlgorithm *string `location:"header" locationName:"x-amz-sdk-checksum-algorithm" type:"string" enum:"ChecksumAlgorithm"` - // The account ID of the expected bucket owner. If the bucket is owned by a - // different account, the request fails with the HTTP status code 403 Forbidden - // (access denied). + // The account ID of the expected bucket owner. If the account ID that you provide + // does not match the actual owner of the bucket, the request fails with the + // HTTP status code 403 Forbidden (access denied). ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` } @@ -31305,12 +33904,12 @@ type PutBucketAclInput struct { // Bucket is a required field Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` - // Indicates the algorithm used to create the checksum for the object when using - // the SDK. This header will not provide any additional functionality if not - // using the SDK. When sending this header, there must be a corresponding x-amz-checksum - // or x-amz-trailer header sent. Otherwise, Amazon S3 fails the request with - // the HTTP status code 400 Bad Request. For more information, see Checking - // object integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) + // Indicates the algorithm used to create the checksum for the object when you + // use the SDK. This header will not provide any additional functionality if + // you don't use the SDK. When you send this header, there must be a corresponding + // x-amz-checksum or x-amz-trailer header sent. Otherwise, Amazon S3 fails the + // request with the HTTP status code 400 Bad Request. For more information, + // see Checking object integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) // in the Amazon S3 User Guide. // // If you provide an individual checksum, Amazon S3 ignores any provided ChecksumAlgorithm @@ -31326,9 +33925,9 @@ type PutBucketAclInput struct { // to be used. ChecksumAlgorithm *string `location:"header" locationName:"x-amz-sdk-checksum-algorithm" type:"string" enum:"ChecksumAlgorithm"` - // The account ID of the expected bucket owner. If the bucket is owned by a - // different account, the request fails with the HTTP status code 403 Forbidden - // (access denied). + // The account ID of the expected bucket owner. If the account ID that you provide + // does not match the actual owner of the bucket, the request fails with the + // HTTP status code 403 Forbidden (access denied). ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` // Allows grantee the read, write, read ACP, and write ACP permissions on the @@ -31519,9 +34118,9 @@ type PutBucketAnalyticsConfigurationInput struct { // Bucket is a required field Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` - // The account ID of the expected bucket owner. If the bucket is owned by a - // different account, the request fails with the HTTP status code 403 Forbidden - // (access denied). + // The account ID of the expected bucket owner. If the account ID that you provide + // does not match the actual owner of the bucket, the request fails with the + // HTTP status code 403 Forbidden (access denied). ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` // The ID that identifies the analytics configuration. @@ -31671,12 +34270,12 @@ type PutBucketCorsInput struct { // CORSConfiguration is a required field CORSConfiguration *CORSConfiguration `locationName:"CORSConfiguration" type:"structure" required:"true" xmlURI:"http://s3.amazonaws.com/doc/2006-03-01/"` - // Indicates the algorithm used to create the checksum for the object when using - // the SDK. This header will not provide any additional functionality if not - // using the SDK. When sending this header, there must be a corresponding x-amz-checksum - // or x-amz-trailer header sent. Otherwise, Amazon S3 fails the request with - // the HTTP status code 400 Bad Request. For more information, see Checking - // object integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) + // Indicates the algorithm used to create the checksum for the object when you + // use the SDK. This header will not provide any additional functionality if + // you don't use the SDK. When you send this header, there must be a corresponding + // x-amz-checksum or x-amz-trailer header sent. Otherwise, Amazon S3 fails the + // request with the HTTP status code 400 Bad Request. For more information, + // see Checking object integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) // in the Amazon S3 User Guide. // // If you provide an individual checksum, Amazon S3 ignores any provided ChecksumAlgorithm @@ -31692,9 +34291,9 @@ type PutBucketCorsInput struct { // to be used. ChecksumAlgorithm *string `location:"header" locationName:"x-amz-sdk-checksum-algorithm" type:"string" enum:"ChecksumAlgorithm"` - // The account ID of the expected bucket owner. If the bucket is owned by a - // different account, the request fails with the HTTP status code 403 Forbidden - // (access denied). + // The account ID of the expected bucket owner. If the account ID that you provide + // does not match the actual owner of the bucket, the request fails with the + // HTTP status code 403 Forbidden (access denied). ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` } @@ -31835,12 +34434,12 @@ type PutBucketEncryptionInput struct { // Bucket is a required field Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` - // Indicates the algorithm used to create the checksum for the object when using - // the SDK. This header will not provide any additional functionality if not - // using the SDK. When sending this header, there must be a corresponding x-amz-checksum - // or x-amz-trailer header sent. Otherwise, Amazon S3 fails the request with - // the HTTP status code 400 Bad Request. For more information, see Checking - // object integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) + // Indicates the algorithm used to create the checksum for the object when you + // use the SDK. This header will not provide any additional functionality if + // you don't use the SDK. When you send this header, there must be a corresponding + // x-amz-checksum or x-amz-trailer header sent. Otherwise, Amazon S3 fails the + // request with the HTTP status code 400 Bad Request. For more information, + // see Checking object integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) // in the Amazon S3 User Guide. // // If you provide an individual checksum, Amazon S3 ignores any provided ChecksumAlgorithm @@ -31856,9 +34455,9 @@ type PutBucketEncryptionInput struct { // to be used. ChecksumAlgorithm *string `location:"header" locationName:"x-amz-sdk-checksum-algorithm" type:"string" enum:"ChecksumAlgorithm"` - // The account ID of the expected bucket owner. If the bucket is owned by a - // different account, the request fails with the HTTP status code 403 Forbidden - // (access denied). + // The account ID of the expected bucket owner. If the account ID that you provide + // does not match the actual owner of the bucket, the request fails with the + // HTTP status code 403 Forbidden (access denied). ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` // Specifies the default server-side-encryption configuration. @@ -32136,9 +34735,9 @@ type PutBucketInventoryConfigurationInput struct { // Bucket is a required field Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` - // The account ID of the expected bucket owner. If the bucket is owned by a - // different account, the request fails with the HTTP status code 403 Forbidden - // (access denied). + // The account ID of the expected bucket owner. If the account ID that you provide + // does not match the actual owner of the bucket, the request fails with the + // HTTP status code 403 Forbidden (access denied). ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` // The ID used to identify the inventory configuration. @@ -32285,12 +34884,12 @@ type PutBucketLifecycleConfigurationInput struct { // Bucket is a required field Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` - // Indicates the algorithm used to create the checksum for the object when using - // the SDK. This header will not provide any additional functionality if not - // using the SDK. When sending this header, there must be a corresponding x-amz-checksum - // or x-amz-trailer header sent. Otherwise, Amazon S3 fails the request with - // the HTTP status code 400 Bad Request. For more information, see Checking - // object integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) + // Indicates the algorithm used to create the checksum for the object when you + // use the SDK. This header will not provide any additional functionality if + // you don't use the SDK. When you send this header, there must be a corresponding + // x-amz-checksum or x-amz-trailer header sent. Otherwise, Amazon S3 fails the + // request with the HTTP status code 400 Bad Request. For more information, + // see Checking object integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) // in the Amazon S3 User Guide. // // If you provide an individual checksum, Amazon S3 ignores any provided ChecksumAlgorithm @@ -32306,9 +34905,9 @@ type PutBucketLifecycleConfigurationInput struct { // to be used. ChecksumAlgorithm *string `location:"header" locationName:"x-amz-sdk-checksum-algorithm" type:"string" enum:"ChecksumAlgorithm"` - // The account ID of the expected bucket owner. If the bucket is owned by a - // different account, the request fails with the HTTP status code 403 Forbidden - // (access denied). + // The account ID of the expected bucket owner. If the account ID that you provide + // does not match the actual owner of the bucket, the request fails with the + // HTTP status code 403 Forbidden (access denied). ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` // Container for lifecycle rules. You can add as many as 1,000 rules. @@ -32440,12 +35039,12 @@ type PutBucketLifecycleInput struct { // Bucket is a required field Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` - // Indicates the algorithm used to create the checksum for the object when using - // the SDK. This header will not provide any additional functionality if not - // using the SDK. When sending this header, there must be a corresponding x-amz-checksum - // or x-amz-trailer header sent. Otherwise, Amazon S3 fails the request with - // the HTTP status code 400 Bad Request. For more information, see Checking - // object integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) + // Indicates the algorithm used to create the checksum for the object when you + // use the SDK. This header will not provide any additional functionality if + // you don't use the SDK. When you send this header, there must be a corresponding + // x-amz-checksum or x-amz-trailer header sent. Otherwise, Amazon S3 fails the + // request with the HTTP status code 400 Bad Request. For more information, + // see Checking object integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) // in the Amazon S3 User Guide. // // If you provide an individual checksum, Amazon S3 ignores any provided ChecksumAlgorithm @@ -32461,9 +35060,9 @@ type PutBucketLifecycleInput struct { // to be used. ChecksumAlgorithm *string `location:"header" locationName:"x-amz-sdk-checksum-algorithm" type:"string" enum:"ChecksumAlgorithm"` - // The account ID of the expected bucket owner. If the bucket is owned by a - // different account, the request fails with the HTTP status code 403 Forbidden - // (access denied). + // The account ID of the expected bucket owner. If the account ID that you provide + // does not match the actual owner of the bucket, the request fails with the + // HTTP status code 403 Forbidden (access denied). ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` // Container for lifecycle rules. You can add as many as 1000 rules. @@ -32605,12 +35204,12 @@ type PutBucketLoggingInput struct { // BucketLoggingStatus is a required field BucketLoggingStatus *BucketLoggingStatus `locationName:"BucketLoggingStatus" type:"structure" required:"true" xmlURI:"http://s3.amazonaws.com/doc/2006-03-01/"` - // Indicates the algorithm used to create the checksum for the object when using - // the SDK. This header will not provide any additional functionality if not - // using the SDK. When sending this header, there must be a corresponding x-amz-checksum - // or x-amz-trailer header sent. Otherwise, Amazon S3 fails the request with - // the HTTP status code 400 Bad Request. For more information, see Checking - // object integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) + // Indicates the algorithm used to create the checksum for the object when you + // use the SDK. This header will not provide any additional functionality if + // you don't use the SDK. When you send this header, there must be a corresponding + // x-amz-checksum or x-amz-trailer header sent. Otherwise, Amazon S3 fails the + // request with the HTTP status code 400 Bad Request. For more information, + // see Checking object integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) // in the Amazon S3 User Guide. // // If you provide an individual checksum, Amazon S3 ignores any provided ChecksumAlgorithm @@ -32626,9 +35225,9 @@ type PutBucketLoggingInput struct { // to be used. ChecksumAlgorithm *string `location:"header" locationName:"x-amz-sdk-checksum-algorithm" type:"string" enum:"ChecksumAlgorithm"` - // The account ID of the expected bucket owner. If the bucket is owned by a - // different account, the request fails with the HTTP status code 403 Forbidden - // (access denied). + // The account ID of the expected bucket owner. If the account ID that you provide + // does not match the actual owner of the bucket, the request fails with the + // HTTP status code 403 Forbidden (access denied). ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` } @@ -32762,9 +35361,9 @@ type PutBucketMetricsConfigurationInput struct { // Bucket is a required field Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` - // The account ID of the expected bucket owner. If the bucket is owned by a - // different account, the request fails with the HTTP status code 403 Forbidden - // (access denied). + // The account ID of the expected bucket owner. If the account ID that you provide + // does not match the actual owner of the bucket, the request fails with the + // HTTP status code 403 Forbidden (access denied). ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` // The ID used to identify the metrics configuration. The ID has a 64 character @@ -32912,9 +35511,9 @@ type PutBucketNotificationConfigurationInput struct { // Bucket is a required field Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` - // The account ID of the expected bucket owner. If the bucket is owned by a - // different account, the request fails with the HTTP status code 403 Forbidden - // (access denied). + // The account ID of the expected bucket owner. If the account ID that you provide + // does not match the actual owner of the bucket, the request fails with the + // HTTP status code 403 Forbidden (access denied). ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` // A container for specifying the notification configuration of the bucket. @@ -33058,12 +35657,12 @@ type PutBucketNotificationInput struct { // Bucket is a required field Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` - // Indicates the algorithm used to create the checksum for the object when using - // the SDK. This header will not provide any additional functionality if not - // using the SDK. When sending this header, there must be a corresponding x-amz-checksum - // or x-amz-trailer header sent. Otherwise, Amazon S3 fails the request with - // the HTTP status code 400 Bad Request. For more information, see Checking - // object integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) + // Indicates the algorithm used to create the checksum for the object when you + // use the SDK. This header will not provide any additional functionality if + // you don't use the SDK. When you send this header, there must be a corresponding + // x-amz-checksum or x-amz-trailer header sent. Otherwise, Amazon S3 fails the + // request with the HTTP status code 400 Bad Request. For more information, + // see Checking object integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) // in the Amazon S3 User Guide. // // If you provide an individual checksum, Amazon S3 ignores any provided ChecksumAlgorithm @@ -33079,9 +35678,9 @@ type PutBucketNotificationInput struct { // to be used. ChecksumAlgorithm *string `location:"header" locationName:"x-amz-sdk-checksum-algorithm" type:"string" enum:"ChecksumAlgorithm"` - // The account ID of the expected bucket owner. If the bucket is owned by a - // different account, the request fails with the HTTP status code 403 Forbidden - // (access denied). + // The account ID of the expected bucket owner. If the account ID that you provide + // does not match the actual owner of the bucket, the request fails with the + // HTTP status code 403 Forbidden (access denied). ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` // The container for the configuration. @@ -33215,9 +35814,9 @@ type PutBucketOwnershipControlsInput struct { // Bucket is a required field Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` - // The account ID of the expected bucket owner. If the bucket is owned by a - // different account, the request fails with the HTTP status code 403 Forbidden - // (access denied). + // The account ID of the expected bucket owner. If the account ID that you provide + // does not match the actual owner of the bucket, the request fails with the + // HTTP status code 403 Forbidden (access denied). ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` // The OwnershipControls (BucketOwnerEnforced, BucketOwnerPreferred, or ObjectWriter) @@ -33348,19 +35947,45 @@ type PutBucketPolicyInput struct { // The name of the bucket. // + // Directory buckets - When you use this operation with a directory bucket, + // you must use path-style requests in the format https://s3express-control.region_code.amazonaws.com/bucket-name + // . Virtual-hosted-style requests aren't supported. Directory bucket names + // must be unique in the chosen Availability Zone. Bucket names must also follow + // the format bucket_base_name--az_id--x-s3 (for example, DOC-EXAMPLE-BUCKET--usw2-az2--x-s3). + // For information about bucket naming restrictions, see Directory bucket naming + // rules (https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html) + // in the Amazon S3 User Guide + // // Bucket is a required field Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` - // Indicates the algorithm used to create the checksum for the object when using - // the SDK. This header will not provide any additional functionality if not - // using the SDK. When sending this header, there must be a corresponding x-amz-checksum - // or x-amz-trailer header sent. Otherwise, Amazon S3 fails the request with - // the HTTP status code 400 Bad Request. For more information, see Checking - // object integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) + // Indicates the algorithm used to create the checksum for the object when you + // use the SDK. This header will not provide any additional functionality if + // you don't use the SDK. When you send this header, there must be a corresponding + // x-amz-checksum-algorithm or x-amz-trailer header sent. Otherwise, Amazon + // S3 fails the request with the HTTP status code 400 Bad Request. + // + // For the x-amz-checksum-algorithm header, replace algorithm with the supported + // algorithm from the following list: + // + // * CRC32 + // + // * CRC32C + // + // * SHA1 + // + // * SHA256 + // + // For more information, see Checking object integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) // in the Amazon S3 User Guide. // - // If you provide an individual checksum, Amazon S3 ignores any provided ChecksumAlgorithm - // parameter. + // If the individual checksum value you provide through x-amz-checksum-algorithm + // doesn't match the checksum algorithm you set through x-amz-sdk-checksum-algorithm, + // Amazon S3 ignores any provided ChecksumAlgorithm parameter and uses the checksum + // algorithm that matches the provided value in x-amz-checksum-algorithm . + // + // For directory buckets, when you use Amazon Web Services SDKs, CRC32 is the + // default checksum algorithm that's used for performance. // // The AWS SDK for Go v1 does not support automatic computing request payload // checksum. This feature is available in the AWS SDK for Go v2. If a value @@ -33374,15 +35999,24 @@ type PutBucketPolicyInput struct { // Set this parameter to true to confirm that you want to remove your permissions // to change this bucket policy in the future. + // + // This functionality is not supported for directory buckets. ConfirmRemoveSelfBucketAccess *bool `location:"header" locationName:"x-amz-confirm-remove-self-bucket-access" type:"boolean"` - // The account ID of the expected bucket owner. If the bucket is owned by a - // different account, the request fails with the HTTP status code 403 Forbidden - // (access denied). + // The account ID of the expected bucket owner. If the account ID that you provide + // does not match the actual owner of the bucket, the request fails with the + // HTTP status code 403 Forbidden (access denied). + // + // For directory buckets, this header is not supported in this API operation. + // If you specify this header, the request fails with the HTTP status code 501 + // Not Implemented. ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` // The bucket policy as a JSON document. // + // For directory buckets, the only IAM action supported in the bucket policy + // is s3express:CreateSession. + // // Policy is a required field Policy *string `type:"string" required:"true"` } @@ -33518,12 +36152,12 @@ type PutBucketReplicationInput struct { // Bucket is a required field Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` - // Indicates the algorithm used to create the checksum for the object when using - // the SDK. This header will not provide any additional functionality if not - // using the SDK. When sending this header, there must be a corresponding x-amz-checksum - // or x-amz-trailer header sent. Otherwise, Amazon S3 fails the request with - // the HTTP status code 400 Bad Request. For more information, see Checking - // object integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) + // Indicates the algorithm used to create the checksum for the object when you + // use the SDK. This header will not provide any additional functionality if + // you don't use the SDK. When you send this header, there must be a corresponding + // x-amz-checksum or x-amz-trailer header sent. Otherwise, Amazon S3 fails the + // request with the HTTP status code 400 Bad Request. For more information, + // see Checking object integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) // in the Amazon S3 User Guide. // // If you provide an individual checksum, Amazon S3 ignores any provided ChecksumAlgorithm @@ -33539,9 +36173,9 @@ type PutBucketReplicationInput struct { // to be used. ChecksumAlgorithm *string `location:"header" locationName:"x-amz-sdk-checksum-algorithm" type:"string" enum:"ChecksumAlgorithm"` - // The account ID of the expected bucket owner. If the bucket is owned by a - // different account, the request fails with the HTTP status code 403 Forbidden - // (access denied). + // The account ID of the expected bucket owner. If the account ID that you provide + // does not match the actual owner of the bucket, the request fails with the + // HTTP status code 403 Forbidden (access denied). ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` // A container for replication rules. You can add up to 1,000 rules. The maximum @@ -33690,12 +36324,12 @@ type PutBucketRequestPaymentInput struct { // Bucket is a required field Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` - // Indicates the algorithm used to create the checksum for the object when using - // the SDK. This header will not provide any additional functionality if not - // using the SDK. When sending this header, there must be a corresponding x-amz-checksum - // or x-amz-trailer header sent. Otherwise, Amazon S3 fails the request with - // the HTTP status code 400 Bad Request. For more information, see Checking - // object integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) + // Indicates the algorithm used to create the checksum for the object when you + // use the SDK. This header will not provide any additional functionality if + // you don't use the SDK. When you send this header, there must be a corresponding + // x-amz-checksum or x-amz-trailer header sent. Otherwise, Amazon S3 fails the + // request with the HTTP status code 400 Bad Request. For more information, + // see Checking object integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) // in the Amazon S3 User Guide. // // If you provide an individual checksum, Amazon S3 ignores any provided ChecksumAlgorithm @@ -33711,9 +36345,9 @@ type PutBucketRequestPaymentInput struct { // to be used. ChecksumAlgorithm *string `location:"header" locationName:"x-amz-sdk-checksum-algorithm" type:"string" enum:"ChecksumAlgorithm"` - // The account ID of the expected bucket owner. If the bucket is owned by a - // different account, the request fails with the HTTP status code 403 Forbidden - // (access denied). + // The account ID of the expected bucket owner. If the account ID that you provide + // does not match the actual owner of the bucket, the request fails with the + // HTTP status code 403 Forbidden (access denied). ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` // Container for Payer. @@ -33852,12 +36486,12 @@ type PutBucketTaggingInput struct { // Bucket is a required field Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` - // Indicates the algorithm used to create the checksum for the object when using - // the SDK. This header will not provide any additional functionality if not - // using the SDK. When sending this header, there must be a corresponding x-amz-checksum - // or x-amz-trailer header sent. Otherwise, Amazon S3 fails the request with - // the HTTP status code 400 Bad Request. For more information, see Checking - // object integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) + // Indicates the algorithm used to create the checksum for the object when you + // use the SDK. This header will not provide any additional functionality if + // you don't use the SDK. When you send this header, there must be a corresponding + // x-amz-checksum or x-amz-trailer header sent. Otherwise, Amazon S3 fails the + // request with the HTTP status code 400 Bad Request. For more information, + // see Checking object integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) // in the Amazon S3 User Guide. // // If you provide an individual checksum, Amazon S3 ignores any provided ChecksumAlgorithm @@ -33873,9 +36507,9 @@ type PutBucketTaggingInput struct { // to be used. ChecksumAlgorithm *string `location:"header" locationName:"x-amz-sdk-checksum-algorithm" type:"string" enum:"ChecksumAlgorithm"` - // The account ID of the expected bucket owner. If the bucket is owned by a - // different account, the request fails with the HTTP status code 403 Forbidden - // (access denied). + // The account ID of the expected bucket owner. If the account ID that you provide + // does not match the actual owner of the bucket, the request fails with the + // HTTP status code 403 Forbidden (access denied). ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` // Container for the TagSet and Tag elements. @@ -34014,12 +36648,12 @@ type PutBucketVersioningInput struct { // Bucket is a required field Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` - // Indicates the algorithm used to create the checksum for the object when using - // the SDK. This header will not provide any additional functionality if not - // using the SDK. When sending this header, there must be a corresponding x-amz-checksum - // or x-amz-trailer header sent. Otherwise, Amazon S3 fails the request with - // the HTTP status code 400 Bad Request. For more information, see Checking - // object integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) + // Indicates the algorithm used to create the checksum for the object when you + // use the SDK. This header will not provide any additional functionality if + // you don't use the SDK. When you send this header, there must be a corresponding + // x-amz-checksum or x-amz-trailer header sent. Otherwise, Amazon S3 fails the + // request with the HTTP status code 400 Bad Request. For more information, + // see Checking object integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) // in the Amazon S3 User Guide. // // If you provide an individual checksum, Amazon S3 ignores any provided ChecksumAlgorithm @@ -34035,9 +36669,9 @@ type PutBucketVersioningInput struct { // to be used. ChecksumAlgorithm *string `location:"header" locationName:"x-amz-sdk-checksum-algorithm" type:"string" enum:"ChecksumAlgorithm"` - // The account ID of the expected bucket owner. If the bucket is owned by a - // different account, the request fails with the HTTP status code 403 Forbidden - // (access denied). + // The account ID of the expected bucket owner. If the account ID that you provide + // does not match the actual owner of the bucket, the request fails with the + // HTTP status code 403 Forbidden (access denied). ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` // The concatenation of the authentication device's serial number, a space, @@ -34181,12 +36815,12 @@ type PutBucketWebsiteInput struct { // Bucket is a required field Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` - // Indicates the algorithm used to create the checksum for the object when using - // the SDK. This header will not provide any additional functionality if not - // using the SDK. When sending this header, there must be a corresponding x-amz-checksum - // or x-amz-trailer header sent. Otherwise, Amazon S3 fails the request with - // the HTTP status code 400 Bad Request. For more information, see Checking - // object integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) + // Indicates the algorithm used to create the checksum for the object when you + // use the SDK. This header will not provide any additional functionality if + // you don't use the SDK. When you send this header, there must be a corresponding + // x-amz-checksum or x-amz-trailer header sent. Otherwise, Amazon S3 fails the + // request with the HTTP status code 400 Bad Request. For more information, + // see Checking object integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) // in the Amazon S3 User Guide. // // If you provide an individual checksum, Amazon S3 ignores any provided ChecksumAlgorithm @@ -34202,9 +36836,9 @@ type PutBucketWebsiteInput struct { // to be used. ChecksumAlgorithm *string `location:"header" locationName:"x-amz-sdk-checksum-algorithm" type:"string" enum:"ChecksumAlgorithm"` - // The account ID of the expected bucket owner. If the bucket is owned by a - // different account, the request fails with the HTTP status code 403 Forbidden - // (access denied). + // The account ID of the expected bucket owner. If the account ID that you provide + // does not match the actual owner of the bucket, the request fails with the + // HTTP status code 403 Forbidden (access denied). ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` // Container for the request. @@ -34348,22 +36982,33 @@ type PutObjectAclInput struct { // The bucket name that contains the object to which you want to attach the // ACL. // - // When using this action with an access point, you must direct requests to - // the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. + // Access points - When you use this action with an access point, you must provide + // the alias of the access point in place of the bucket name or specify the + // access point ARN. When using the access point ARN, you must direct requests + // to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. // When using this action with an access point through the Amazon Web Services // SDKs, you provide the access point ARN in place of the bucket name. For more // information about access point ARNs, see Using access points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html) // in the Amazon S3 User Guide. // + // S3 on Outposts - When you use this action with Amazon S3 on Outposts, you + // must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname + // takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. + // When you use this action with S3 on Outposts through the Amazon Web Services + // SDKs, you provide the Outposts access point ARN in place of the bucket name. + // For more information about S3 on Outposts ARNs, see What is S3 on Outposts? + // (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html) + // in the Amazon S3 User Guide. + // // Bucket is a required field Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` - // Indicates the algorithm used to create the checksum for the object when using - // the SDK. This header will not provide any additional functionality if not - // using the SDK. When sending this header, there must be a corresponding x-amz-checksum - // or x-amz-trailer header sent. Otherwise, Amazon S3 fails the request with - // the HTTP status code 400 Bad Request. For more information, see Checking - // object integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) + // Indicates the algorithm used to create the checksum for the object when you + // use the SDK. This header will not provide any additional functionality if + // you don't use the SDK. When you send this header, there must be a corresponding + // x-amz-checksum or x-amz-trailer header sent. Otherwise, Amazon S3 fails the + // request with the HTTP status code 400 Bad Request. For more information, + // see Checking object integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) // in the Amazon S3 User Guide. // // If you provide an individual checksum, Amazon S3 ignores any provided ChecksumAlgorithm @@ -34379,25 +37024,25 @@ type PutObjectAclInput struct { // to be used. ChecksumAlgorithm *string `location:"header" locationName:"x-amz-sdk-checksum-algorithm" type:"string" enum:"ChecksumAlgorithm"` - // The account ID of the expected bucket owner. If the bucket is owned by a - // different account, the request fails with the HTTP status code 403 Forbidden - // (access denied). + // The account ID of the expected bucket owner. If the account ID that you provide + // does not match the actual owner of the bucket, the request fails with the + // HTTP status code 403 Forbidden (access denied). ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` // Allows grantee the read, write, read ACP, and write ACP permissions on the // bucket. // - // This action is not supported by Amazon S3 on Outposts. + // This functionality is not supported for Amazon S3 on Outposts. GrantFullControl *string `location:"header" locationName:"x-amz-grant-full-control" type:"string"` // Allows grantee to list the objects in the bucket. // - // This action is not supported by Amazon S3 on Outposts. + // This functionality is not supported for Amazon S3 on Outposts. GrantRead *string `location:"header" locationName:"x-amz-grant-read" type:"string"` // Allows grantee to read the bucket ACL. // - // This action is not supported by Amazon S3 on Outposts. + // This functionality is not supported for Amazon S3 on Outposts. GrantReadACP *string `location:"header" locationName:"x-amz-grant-read-acp" type:"string"` // Allows grantee to create new objects in the bucket. @@ -34408,39 +37053,28 @@ type PutObjectAclInput struct { // Allows grantee to write the ACL for the applicable bucket. // - // This action is not supported by Amazon S3 on Outposts. + // This functionality is not supported for Amazon S3 on Outposts. GrantWriteACP *string `location:"header" locationName:"x-amz-grant-write-acp" type:"string"` // Key for which the PUT action was initiated. // - // When using this action with an access point, you must direct requests to - // the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. - // When using this action with an access point through the Amazon Web Services - // SDKs, you provide the access point ARN in place of the bucket name. For more - // information about access point ARNs, see Using access points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html) - // in the Amazon S3 User Guide. - // - // When you use this action with Amazon S3 on Outposts, you must direct requests - // to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form - // AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When - // you use this action with S3 on Outposts through the Amazon Web Services SDKs, - // you provide the Outposts access point ARN in place of the bucket name. For - // more information about S3 on Outposts ARNs, see What is S3 on Outposts? (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html) - // in the Amazon S3 User Guide. - // // Key is a required field Key *string `location:"uri" locationName:"Key" min:"1" type:"string" required:"true"` // Confirms that the requester knows that they will be charged for the request. // Bucket owners need not specify this parameter in their requests. If either - // the source or destination Amazon S3 bucket has Requester Pays enabled, the - // requester will pay for corresponding charges to copy the object. For information - // about downloading objects from Requester Pays buckets, see Downloading Objects + // the source or destination S3 bucket has Requester Pays enabled, the requester + // will pay for corresponding charges to copy the object. For information about + // downloading objects from Requester Pays buckets, see Downloading Objects // in Requester Pays Buckets (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html) // in the Amazon S3 User Guide. + // + // This functionality is not supported for directory buckets. RequestPayer *string `location:"header" locationName:"x-amz-request-payer" type:"string" enum:"RequestPayer"` - // VersionId used to reference a specific version of the object. + // Version ID used to reference a specific version of the object. + // + // This functionality is not supported for directory buckets. VersionId *string `location:"querystring" locationName:"versionId" type:"string"` } @@ -34606,6 +37240,8 @@ type PutObjectAclOutput struct { // If present, indicates that the requester was successfully charged for the // request. + // + // This functionality is not supported for directory buckets. RequestCharged *string `location:"header" locationName:"x-amz-request-charged" type:"string" enum:"RequestCharged"` } @@ -34637,9 +37273,32 @@ type PutObjectInput struct { _ struct{} `locationName:"PutObjectRequest" type:"structure" payload:"Body"` // The canned ACL to apply to the object. For more information, see Canned ACL - // (https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#CannedACL). + // (https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#CannedACL) + // in the Amazon S3 User Guide. + // + // When adding a new object, you can use headers to grant ACL-based permissions + // to individual Amazon Web Services accounts or to predefined groups defined + // by Amazon S3. These permissions are then added to the ACL on the object. + // By default, all objects are private. Only the owner has full access control. + // For more information, see Access Control List (ACL) Overview (https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html) + // and Managing ACLs Using the REST API (https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-using-rest-api.html) + // in the Amazon S3 User Guide. + // + // If the bucket that you're uploading objects to uses the bucket owner enforced + // setting for S3 Object Ownership, ACLs are disabled and no longer affect permissions. + // Buckets that use this setting only accept PUT requests that don't specify + // an ACL or PUT requests that specify bucket owner full control ACLs, such + // as the bucket-owner-full-control canned ACL or an equivalent form of this + // ACL expressed in the XML format. PUT requests that contain other ACLs (for + // example, custom grants to certain Amazon Web Services accounts) fail and + // return a 400 error with the error code AccessControlListNotSupported. For + // more information, see Controlling ownership of objects and disabling ACLs + // (https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html) + // in the Amazon S3 User Guide. // - // This action is not supported by Amazon S3 on Outposts. + // * This functionality is not supported for directory buckets. + // + // * This functionality is not supported for Amazon S3 on Outposts. ACL *string `location:"header" locationName:"x-amz-acl" type:"string" enum:"ObjectCannedACL"` // Object data. @@ -34647,19 +37306,33 @@ type PutObjectInput struct { // The bucket name to which the PUT action was initiated. // - // When using this action with an access point, you must direct requests to - // the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. + // Directory buckets - When you use this operation with a directory bucket, + // you must use virtual-hosted-style requests in the format Bucket_name.s3express-az_id.region.amazonaws.com. + // Path-style requests are not supported. Directory bucket names must be unique + // in the chosen Availability Zone. Bucket names must follow the format bucket_base_name--az-id--x-s3 + // (for example, DOC-EXAMPLE-BUCKET--usw2-az2--x-s3). For information about + // bucket naming restrictions, see Directory bucket naming rules (https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html) + // in the Amazon S3 User Guide. + // + // Access points - When you use this action with an access point, you must provide + // the alias of the access point in place of the bucket name or specify the + // access point ARN. When using the access point ARN, you must direct requests + // to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. // When using this action with an access point through the Amazon Web Services // SDKs, you provide the access point ARN in place of the bucket name. For more // information about access point ARNs, see Using access points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html) // in the Amazon S3 User Guide. // - // When you use this action with Amazon S3 on Outposts, you must direct requests - // to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form - // AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When - // you use this action with S3 on Outposts through the Amazon Web Services SDKs, - // you provide the Outposts access point ARN in place of the bucket name. For - // more information about S3 on Outposts ARNs, see What is S3 on Outposts? (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html) + // Access points and Object Lambda access points are not supported by directory + // buckets. + // + // S3 on Outposts - When you use this action with Amazon S3 on Outposts, you + // must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname + // takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. + // When you use this action with S3 on Outposts through the Amazon Web Services + // SDKs, you provide the Outposts access point ARN in place of the bucket name. + // For more information about S3 on Outposts ARNs, see What is S3 on Outposts? + // (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html) // in the Amazon S3 User Guide. // // Bucket is a required field @@ -34672,6 +37345,8 @@ type PutObjectInput struct { // // Specifying this header with a PUT action doesn’t affect bucket-level settings // for S3 Bucket Key. + // + // This functionality is not supported for directory buckets. BucketKeyEnabled *bool `location:"header" locationName:"x-amz-server-side-encryption-bucket-key-enabled" type:"boolean"` // Can be used to specify caching behavior along the request/reply chain. For @@ -34679,16 +37354,33 @@ type PutObjectInput struct { // (http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9). CacheControl *string `location:"header" locationName:"Cache-Control" type:"string"` - // Indicates the algorithm used to create the checksum for the object when using - // the SDK. This header will not provide any additional functionality if not - // using the SDK. When sending this header, there must be a corresponding x-amz-checksum - // or x-amz-trailer header sent. Otherwise, Amazon S3 fails the request with - // the HTTP status code 400 Bad Request. For more information, see Checking - // object integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) + // Indicates the algorithm used to create the checksum for the object when you + // use the SDK. This header will not provide any additional functionality if + // you don't use the SDK. When you send this header, there must be a corresponding + // x-amz-checksum-algorithm or x-amz-trailer header sent. Otherwise, Amazon + // S3 fails the request with the HTTP status code 400 Bad Request. + // + // For the x-amz-checksum-algorithm header, replace algorithm with the supported + // algorithm from the following list: + // + // * CRC32 + // + // * CRC32C + // + // * SHA1 + // + // * SHA256 + // + // For more information, see Checking object integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) // in the Amazon S3 User Guide. // - // If you provide an individual checksum, Amazon S3 ignores any provided ChecksumAlgorithm - // parameter. + // If the individual checksum value you provide through x-amz-checksum-algorithm + // doesn't match the checksum algorithm you set through x-amz-sdk-checksum-algorithm, + // Amazon S3 ignores any provided ChecksumAlgorithm parameter and uses the checksum + // algorithm that matches the provided value in x-amz-checksum-algorithm . + // + // For directory buckets, when you use Amazon Web Services SDKs, CRC32 is the + // default checksum algorithm that's used for performance. // // The AWS SDK for Go v1 does not support automatic computing request payload // checksum. This feature is available in the AWS SDK for Go v2. If a value @@ -34748,15 +37440,22 @@ type PutObjectInput struct { // it is optional, we recommend using the Content-MD5 mechanism as an end-to-end // integrity check. For more information about REST request authentication, // see REST Authentication (https://docs.aws.amazon.com/AmazonS3/latest/dev/RESTAuthentication.html). + // + // The Content-MD5 header is required for any request to upload an object with + // a retention period configured using Amazon S3 Object Lock. For more information + // about Amazon S3 Object Lock, see Amazon S3 Object Lock Overview (https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock-overview.html) + // in the Amazon S3 User Guide. + // + // This functionality is not supported for directory buckets. ContentMD5 *string `location:"header" locationName:"Content-MD5" type:"string"` // A standard MIME type describing the format of the contents. For more information, // see https://www.rfc-editor.org/rfc/rfc9110.html#name-content-type (https://www.rfc-editor.org/rfc/rfc9110.html#name-content-type). ContentType *string `location:"header" locationName:"Content-Type" type:"string"` - // The account ID of the expected bucket owner. If the bucket is owned by a - // different account, the request fails with the HTTP status code 403 Forbidden - // (access denied). + // The account ID of the expected bucket owner. If the account ID that you provide + // does not match the actual owner of the bucket, the request fails with the + // HTTP status code 403 Forbidden (access denied). ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` // The date and time at which the object is no longer cacheable. For more information, @@ -34765,22 +37464,30 @@ type PutObjectInput struct { // Gives the grantee READ, READ_ACP, and WRITE_ACP permissions on the object. // - // This action is not supported by Amazon S3 on Outposts. + // * This functionality is not supported for directory buckets. + // + // * This functionality is not supported for Amazon S3 on Outposts. GrantFullControl *string `location:"header" locationName:"x-amz-grant-full-control" type:"string"` // Allows grantee to read the object data and its metadata. // - // This action is not supported by Amazon S3 on Outposts. + // * This functionality is not supported for directory buckets. + // + // * This functionality is not supported for Amazon S3 on Outposts. GrantRead *string `location:"header" locationName:"x-amz-grant-read" type:"string"` // Allows grantee to read the object ACL. // - // This action is not supported by Amazon S3 on Outposts. + // * This functionality is not supported for directory buckets. + // + // * This functionality is not supported for Amazon S3 on Outposts. GrantReadACP *string `location:"header" locationName:"x-amz-grant-read-acp" type:"string"` // Allows grantee to write the ACL for the applicable object. // - // This action is not supported by Amazon S3 on Outposts. + // * This functionality is not supported for directory buckets. + // + // * This functionality is not supported for Amazon S3 on Outposts. GrantWriteACP *string `location:"header" locationName:"x-amz-grant-write-acp" type:"string"` // Object key for which the PUT action was initiated. @@ -34792,27 +37499,37 @@ type PutObjectInput struct { Metadata map[string]*string `location:"headers" locationName:"x-amz-meta-" type:"map"` // Specifies whether a legal hold will be applied to this object. For more information - // about S3 Object Lock, see Object Lock (https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html). + // about S3 Object Lock, see Object Lock (https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html) + // in the Amazon S3 User Guide. + // + // This functionality is not supported for directory buckets. ObjectLockLegalHoldStatus *string `location:"header" locationName:"x-amz-object-lock-legal-hold" type:"string" enum:"ObjectLockLegalHoldStatus"` // The Object Lock mode that you want to apply to this object. + // + // This functionality is not supported for directory buckets. ObjectLockMode *string `location:"header" locationName:"x-amz-object-lock-mode" type:"string" enum:"ObjectLockMode"` // The date and time when you want this object's Object Lock to expire. Must // be formatted as a timestamp parameter. + // + // This functionality is not supported for directory buckets. ObjectLockRetainUntilDate *time.Time `location:"header" locationName:"x-amz-object-lock-retain-until-date" type:"timestamp" timestampFormat:"iso8601"` // Confirms that the requester knows that they will be charged for the request. // Bucket owners need not specify this parameter in their requests. If either - // the source or destination Amazon S3 bucket has Requester Pays enabled, the - // requester will pay for corresponding charges to copy the object. For information - // about downloading objects from Requester Pays buckets, see Downloading Objects + // the source or destination S3 bucket has Requester Pays enabled, the requester + // will pay for corresponding charges to copy the object. For information about + // downloading objects from Requester Pays buckets, see Downloading Objects // in Requester Pays Buckets (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html) // in the Amazon S3 User Guide. + // + // This functionality is not supported for directory buckets. RequestPayer *string `location:"header" locationName:"x-amz-request-payer" type:"string" enum:"RequestPayer"` - // Specifies the algorithm to use to when encrypting the object (for example, - // AES256). + // Specifies the algorithm to use when encrypting the object (for example, AES256). + // + // This functionality is not supported for directory buckets. SSECustomerAlgorithm *string `location:"header" locationName:"x-amz-server-side-encryption-customer-algorithm" type:"string"` // Specifies the customer-provided encryption key for Amazon S3 to use in encrypting @@ -34821,6 +37538,8 @@ type PutObjectInput struct { // with the algorithm specified in the x-amz-server-side-encryption-customer-algorithm // header. // + // This functionality is not supported for directory buckets. + // // SSECustomerKey is a sensitive parameter and its value will be // replaced with "sensitive" in string returned by PutObjectInput's // String and GoString methods. @@ -34829,6 +37548,8 @@ type PutObjectInput struct { // Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. // Amazon S3 uses this header for a message integrity check to ensure that the // encryption key was transmitted without error. + // + // This functionality is not supported for directory buckets. SSECustomerKeyMD5 *string `location:"header" locationName:"x-amz-server-side-encryption-customer-key-MD5" type:"string"` // Specifies the Amazon Web Services KMS Encryption Context to use for object @@ -34838,6 +37559,8 @@ type PutObjectInput struct { // for future GetObject or CopyObject operations on this object. This value // must be explicitly added during CopyObject operations. // + // This functionality is not supported for directory buckets. + // // SSEKMSEncryptionContext is a sensitive parameter and its value will be // replaced with "sensitive" in string returned by PutObjectInput's // String and GoString methods. @@ -34852,31 +37575,54 @@ type PutObjectInput struct { // the KMS key does not exist in the same account that's issuing the command, // you must use the full ARN and not just the ID. // + // This functionality is not supported for directory buckets. + // // SSEKMSKeyId is a sensitive parameter and its value will be // replaced with "sensitive" in string returned by PutObjectInput's // String and GoString methods. SSEKMSKeyId *string `location:"header" locationName:"x-amz-server-side-encryption-aws-kms-key-id" type:"string" sensitive:"true"` - // The server-side encryption algorithm used when storing this object in Amazon - // S3 (for example, AES256, aws:kms, aws:kms:dsse). + // The server-side encryption algorithm that was used when you store this object + // in Amazon S3 (for example, AES256, aws:kms, aws:kms:dsse). + // + // General purpose buckets - You have four mutually exclusive options to protect + // data using server-side encryption in Amazon S3, depending on how you choose + // to manage the encryption keys. Specifically, the encryption key options are + // Amazon S3 managed keys (SSE-S3), Amazon Web Services KMS keys (SSE-KMS or + // DSSE-KMS), and customer-provided keys (SSE-C). Amazon S3 encrypts data with + // server-side encryption by using Amazon S3 managed keys (SSE-S3) by default. + // You can optionally tell Amazon S3 to encrypt data at rest by using server-side + // encryption with other key options. For more information, see Using Server-Side + // Encryption (https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingServerSideEncryption.html) + // in the Amazon S3 User Guide. + // + // Directory buckets - For directory buckets, only the server-side encryption + // with Amazon S3 managed keys (SSE-S3) (AES256) value is supported. ServerSideEncryption *string `location:"header" locationName:"x-amz-server-side-encryption" type:"string" enum:"ServerSideEncryption"` // By default, Amazon S3 uses the STANDARD Storage Class to store newly created // objects. The STANDARD storage class provides high durability and high availability. // Depending on performance needs, you can specify a different Storage Class. - // Amazon S3 on Outposts only uses the OUTPOSTS Storage Class. For more information, - // see Storage Classes (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html) + // For more information, see Storage Classes (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html) // in the Amazon S3 User Guide. + // + // * For directory buckets, only the S3 Express One Zone storage class is + // supported to store newly created objects. + // + // * Amazon S3 on Outposts only uses the OUTPOSTS Storage Class. StorageClass *string `location:"header" locationName:"x-amz-storage-class" type:"string" enum:"StorageClass"` // The tag-set for the object. The tag-set must be encoded as URL Query parameters. // (For example, "Key1=Value1") + // + // This functionality is not supported for directory buckets. Tagging *string `location:"header" locationName:"x-amz-tagging" type:"string"` // If the bucket is configured as a website, redirects requests for this object // to another object in the same bucket or to an external URL. Amazon S3 stores // the value of this header in the object metadata. For information about object - // metadata, see Object Key and Metadata (https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingMetadata.html). + // metadata, see Object Key and Metadata (https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingMetadata.html) + // in the Amazon S3 User Guide. // // In the following example, the request header sets the redirect to an object // (anotherPage.html) in the same bucket: @@ -34890,7 +37636,10 @@ type PutObjectInput struct { // // For more information about website hosting in Amazon S3, see Hosting Websites // on Amazon S3 (https://docs.aws.amazon.com/AmazonS3/latest/dev/WebsiteHosting.html) - // and How to Configure Website Page Redirects (https://docs.aws.amazon.com/AmazonS3/latest/dev/how-to-page-redirect.html). + // and How to Configure Website Page Redirects (https://docs.aws.amazon.com/AmazonS3/latest/dev/how-to-page-redirect.html) + // in the Amazon S3 User Guide. + // + // This functionality is not supported for directory buckets. WebsiteRedirectLocation *string `location:"header" locationName:"x-amz-website-redirect-location" type:"string"` } @@ -35203,8 +37952,10 @@ type PutObjectLegalHoldInput struct { // The bucket name containing the object that you want to place a legal hold // on. // - // When using this action with an access point, you must direct requests to - // the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. + // Access points - When you use this action with an access point, you must provide + // the alias of the access point in place of the bucket name or specify the + // access point ARN. When using the access point ARN, you must direct requests + // to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. // When using this action with an access point through the Amazon Web Services // SDKs, you provide the access point ARN in place of the bucket name. For more // information about access point ARNs, see Using access points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html) @@ -35213,12 +37964,12 @@ type PutObjectLegalHoldInput struct { // Bucket is a required field Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` - // Indicates the algorithm used to create the checksum for the object when using - // the SDK. This header will not provide any additional functionality if not - // using the SDK. When sending this header, there must be a corresponding x-amz-checksum - // or x-amz-trailer header sent. Otherwise, Amazon S3 fails the request with - // the HTTP status code 400 Bad Request. For more information, see Checking - // object integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) + // Indicates the algorithm used to create the checksum for the object when you + // use the SDK. This header will not provide any additional functionality if + // you don't use the SDK. When you send this header, there must be a corresponding + // x-amz-checksum or x-amz-trailer header sent. Otherwise, Amazon S3 fails the + // request with the HTTP status code 400 Bad Request. For more information, + // see Checking object integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) // in the Amazon S3 User Guide. // // If you provide an individual checksum, Amazon S3 ignores any provided ChecksumAlgorithm @@ -35234,9 +37985,9 @@ type PutObjectLegalHoldInput struct { // to be used. ChecksumAlgorithm *string `location:"header" locationName:"x-amz-sdk-checksum-algorithm" type:"string" enum:"ChecksumAlgorithm"` - // The account ID of the expected bucket owner. If the bucket is owned by a - // different account, the request fails with the HTTP status code 403 Forbidden - // (access denied). + // The account ID of the expected bucket owner. If the account ID that you provide + // does not match the actual owner of the bucket, the request fails with the + // HTTP status code 403 Forbidden (access denied). ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` // The key name for the object that you want to place a legal hold on. @@ -35250,11 +38001,13 @@ type PutObjectLegalHoldInput struct { // Confirms that the requester knows that they will be charged for the request. // Bucket owners need not specify this parameter in their requests. If either - // the source or destination Amazon S3 bucket has Requester Pays enabled, the - // requester will pay for corresponding charges to copy the object. For information - // about downloading objects from Requester Pays buckets, see Downloading Objects + // the source or destination S3 bucket has Requester Pays enabled, the requester + // will pay for corresponding charges to copy the object. For information about + // downloading objects from Requester Pays buckets, see Downloading Objects // in Requester Pays Buckets (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html) // in the Amazon S3 User Guide. + // + // This functionality is not supported for directory buckets. RequestPayer *string `location:"header" locationName:"x-amz-request-payer" type:"string" enum:"RequestPayer"` // The version ID of the object that you want to place a legal hold on. @@ -35382,6 +38135,8 @@ type PutObjectLegalHoldOutput struct { // If present, indicates that the requester was successfully charged for the // request. + // + // This functionality is not supported for directory buckets. RequestCharged *string `location:"header" locationName:"x-amz-request-charged" type:"string" enum:"RequestCharged"` } @@ -35417,12 +38172,12 @@ type PutObjectLockConfigurationInput struct { // Bucket is a required field Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` - // Indicates the algorithm used to create the checksum for the object when using - // the SDK. This header will not provide any additional functionality if not - // using the SDK. When sending this header, there must be a corresponding x-amz-checksum - // or x-amz-trailer header sent. Otherwise, Amazon S3 fails the request with - // the HTTP status code 400 Bad Request. For more information, see Checking - // object integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) + // Indicates the algorithm used to create the checksum for the object when you + // use the SDK. This header will not provide any additional functionality if + // you don't use the SDK. When you send this header, there must be a corresponding + // x-amz-checksum or x-amz-trailer header sent. Otherwise, Amazon S3 fails the + // request with the HTTP status code 400 Bad Request. For more information, + // see Checking object integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) // in the Amazon S3 User Guide. // // If you provide an individual checksum, Amazon S3 ignores any provided ChecksumAlgorithm @@ -35438,9 +38193,9 @@ type PutObjectLockConfigurationInput struct { // to be used. ChecksumAlgorithm *string `location:"header" locationName:"x-amz-sdk-checksum-algorithm" type:"string" enum:"ChecksumAlgorithm"` - // The account ID of the expected bucket owner. If the bucket is owned by a - // different account, the request fails with the HTTP status code 403 Forbidden - // (access denied). + // The account ID of the expected bucket owner. If the account ID that you provide + // does not match the actual owner of the bucket, the request fails with the + // HTTP status code 403 Forbidden (access denied). ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` // The Object Lock configuration that you want to apply to the specified bucket. @@ -35448,11 +38203,13 @@ type PutObjectLockConfigurationInput struct { // Confirms that the requester knows that they will be charged for the request. // Bucket owners need not specify this parameter in their requests. If either - // the source or destination Amazon S3 bucket has Requester Pays enabled, the - // requester will pay for corresponding charges to copy the object. For information - // about downloading objects from Requester Pays buckets, see Downloading Objects + // the source or destination S3 bucket has Requester Pays enabled, the requester + // will pay for corresponding charges to copy the object. For information about + // downloading objects from Requester Pays buckets, see Downloading Objects // in Requester Pays Buckets (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html) // in the Amazon S3 User Guide. + // + // This functionality is not supported for directory buckets. RequestPayer *string `location:"header" locationName:"x-amz-request-payer" type:"string" enum:"RequestPayer"` // A token to allow Object Lock to be enabled for an existing bucket. @@ -35568,6 +38325,8 @@ type PutObjectLockConfigurationOutput struct { // If present, indicates that the requester was successfully charged for the // request. + // + // This functionality is not supported for directory buckets. RequestCharged *string `location:"header" locationName:"x-amz-request-charged" type:"string" enum:"RequestCharged"` } @@ -35600,89 +38359,133 @@ type PutObjectOutput struct { // Indicates whether the uploaded object uses an S3 Bucket Key for server-side // encryption with Key Management Service (KMS) keys (SSE-KMS). + // + // This functionality is not supported for directory buckets. BucketKeyEnabled *bool `location:"header" locationName:"x-amz-server-side-encryption-bucket-key-enabled" type:"boolean"` // The base64-encoded, 32-bit CRC32 checksum of the object. This will only be - // present if it was uploaded with the object. With multipart uploads, this - // may not be a checksum value of the object. For more information about how - // checksums are calculated with multipart uploads, see Checking object integrity - // (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums) + // present if it was uploaded with the object. When you use an API operation + // on an object that was uploaded using multipart uploads, this value may not + // be a direct checksum value of the full object. Instead, it's a calculation + // based on the checksum values of each individual part. For more information + // about how checksums are calculated with multipart uploads, see Checking object + // integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums) // in the Amazon S3 User Guide. ChecksumCRC32 *string `location:"header" locationName:"x-amz-checksum-crc32" type:"string"` // The base64-encoded, 32-bit CRC32C checksum of the object. This will only - // be present if it was uploaded with the object. With multipart uploads, this - // may not be a checksum value of the object. For more information about how - // checksums are calculated with multipart uploads, see Checking object integrity - // (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums) + // be present if it was uploaded with the object. When you use an API operation + // on an object that was uploaded using multipart uploads, this value may not + // be a direct checksum value of the full object. Instead, it's a calculation + // based on the checksum values of each individual part. For more information + // about how checksums are calculated with multipart uploads, see Checking object + // integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums) // in the Amazon S3 User Guide. ChecksumCRC32C *string `location:"header" locationName:"x-amz-checksum-crc32c" type:"string"` // The base64-encoded, 160-bit SHA-1 digest of the object. This will only be - // present if it was uploaded with the object. With multipart uploads, this - // may not be a checksum value of the object. For more information about how - // checksums are calculated with multipart uploads, see Checking object integrity - // (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums) + // present if it was uploaded with the object. When you use the API operation + // on an object that was uploaded using multipart uploads, this value may not + // be a direct checksum value of the full object. Instead, it's a calculation + // based on the checksum values of each individual part. For more information + // about how checksums are calculated with multipart uploads, see Checking object + // integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums) // in the Amazon S3 User Guide. ChecksumSHA1 *string `location:"header" locationName:"x-amz-checksum-sha1" type:"string"` // The base64-encoded, 256-bit SHA-256 digest of the object. This will only - // be present if it was uploaded with the object. With multipart uploads, this - // may not be a checksum value of the object. For more information about how - // checksums are calculated with multipart uploads, see Checking object integrity - // (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums) + // be present if it was uploaded with the object. When you use an API operation + // on an object that was uploaded using multipart uploads, this value may not + // be a direct checksum value of the full object. Instead, it's a calculation + // based on the checksum values of each individual part. For more information + // about how checksums are calculated with multipart uploads, see Checking object + // integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums) // in the Amazon S3 User Guide. ChecksumSHA256 *string `location:"header" locationName:"x-amz-checksum-sha256" type:"string"` // Entity tag for the uploaded object. + // + // General purpose buckets - To ensure that data is not corrupted traversing + // the network, for objects where the ETag is the MD5 digest of the object, + // you can calculate the MD5 while putting an object to Amazon S3 and compare + // the returned ETag to the calculated MD5 value. + // + // Directory buckets - The ETag for the object in a directory bucket isn't the + // MD5 digest of the object. ETag *string `location:"header" locationName:"ETag" type:"string"` // If the expiration is configured for the object (see PutBucketLifecycleConfiguration - // (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycleConfiguration.html)), - // the response includes this header. It includes the expiry-date and rule-id - // key-value pairs that provide information about object expiration. The value - // of the rule-id is URL-encoded. + // (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycleConfiguration.html)) + // in the Amazon S3 User Guide, the response includes this header. It includes + // the expiry-date and rule-id key-value pairs that provide information about + // object expiration. The value of the rule-id is URL-encoded. + // + // This functionality is not supported for directory buckets. Expiration *string `location:"header" locationName:"x-amz-expiration" type:"string"` // If present, indicates that the requester was successfully charged for the // request. + // + // This functionality is not supported for directory buckets. RequestCharged *string `location:"header" locationName:"x-amz-request-charged" type:"string" enum:"RequestCharged"` // If server-side encryption with a customer-provided encryption key was requested, - // the response will include this header confirming the encryption algorithm - // used. + // the response will include this header to confirm the encryption algorithm + // that's used. + // + // This functionality is not supported for directory buckets. SSECustomerAlgorithm *string `location:"header" locationName:"x-amz-server-side-encryption-customer-algorithm" type:"string"` // If server-side encryption with a customer-provided encryption key was requested, - // the response will include this header to provide round-trip message integrity + // the response will include this header to provide the round-trip message integrity // verification of the customer-provided encryption key. + // + // This functionality is not supported for directory buckets. SSECustomerKeyMD5 *string `location:"header" locationName:"x-amz-server-side-encryption-customer-key-MD5" type:"string"` - // If present, specifies the Amazon Web Services KMS Encryption Context to use + // If present, indicates the Amazon Web Services KMS Encryption Context to use // for object encryption. The value of this header is a base64-encoded UTF-8 // string holding JSON with the encryption context key-value pairs. This value // is stored as object metadata and automatically gets passed on to Amazon Web // Services KMS for future GetObject or CopyObject operations on this object. // + // This functionality is not supported for directory buckets. + // // SSEKMSEncryptionContext is a sensitive parameter and its value will be // replaced with "sensitive" in string returned by PutObjectOutput's // String and GoString methods. SSEKMSEncryptionContext *string `location:"header" locationName:"x-amz-server-side-encryption-context" type:"string" sensitive:"true"` // If x-amz-server-side-encryption has a valid value of aws:kms or aws:kms:dsse, - // this header specifies the ID of the Key Management Service (KMS) symmetric + // this header indicates the ID of the Key Management Service (KMS) symmetric // encryption customer managed key that was used for the object. // + // This functionality is not supported for directory buckets. + // // SSEKMSKeyId is a sensitive parameter and its value will be // replaced with "sensitive" in string returned by PutObjectOutput's // String and GoString methods. SSEKMSKeyId *string `location:"header" locationName:"x-amz-server-side-encryption-aws-kms-key-id" type:"string" sensitive:"true"` - // The server-side encryption algorithm used when storing this object in Amazon + // The server-side encryption algorithm used when you store this object in Amazon // S3 (for example, AES256, aws:kms, aws:kms:dsse). + // + // For directory buckets, only server-side encryption with Amazon S3 managed + // keys (SSE-S3) (AES256) is supported. ServerSideEncryption *string `location:"header" locationName:"x-amz-server-side-encryption" type:"string" enum:"ServerSideEncryption"` - // Version of the object. + // Version ID of the object. + // + // If you enable versioning for a bucket, Amazon S3 automatically generates + // a unique version ID for the object being stored. Amazon S3 returns this ID + // in the response. When you enable versioning for a bucket, if Amazon S3 receives + // multiple write requests for the same object simultaneously, it stores all + // of the objects. For more information about versioning, see Adding Objects + // to Versioning-Enabled Buckets (https://docs.aws.amazon.com/AmazonS3/latest/dev/AddingObjectstoVersioningEnabledBuckets.html) + // in the Amazon S3 User Guide. For information about returning the versioning + // state of a bucket, see GetBucketVersioning (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketVersioning.html). + // + // This functionality is not supported for directory buckets. VersionId *string `location:"header" locationName:"x-amz-version-id" type:"string"` } @@ -35794,8 +38597,10 @@ type PutObjectRetentionInput struct { // The bucket name that contains the object you want to apply this Object Retention // configuration to. // - // When using this action with an access point, you must direct requests to - // the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. + // Access points - When you use this action with an access point, you must provide + // the alias of the access point in place of the bucket name or specify the + // access point ARN. When using the access point ARN, you must direct requests + // to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. // When using this action with an access point through the Amazon Web Services // SDKs, you provide the access point ARN in place of the bucket name. For more // information about access point ARNs, see Using access points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html) @@ -35807,12 +38612,12 @@ type PutObjectRetentionInput struct { // Indicates whether this action should bypass Governance-mode restrictions. BypassGovernanceRetention *bool `location:"header" locationName:"x-amz-bypass-governance-retention" type:"boolean"` - // Indicates the algorithm used to create the checksum for the object when using - // the SDK. This header will not provide any additional functionality if not - // using the SDK. When sending this header, there must be a corresponding x-amz-checksum - // or x-amz-trailer header sent. Otherwise, Amazon S3 fails the request with - // the HTTP status code 400 Bad Request. For more information, see Checking - // object integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) + // Indicates the algorithm used to create the checksum for the object when you + // use the SDK. This header will not provide any additional functionality if + // you don't use the SDK. When you send this header, there must be a corresponding + // x-amz-checksum or x-amz-trailer header sent. Otherwise, Amazon S3 fails the + // request with the HTTP status code 400 Bad Request. For more information, + // see Checking object integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) // in the Amazon S3 User Guide. // // If you provide an individual checksum, Amazon S3 ignores any provided ChecksumAlgorithm @@ -35828,9 +38633,9 @@ type PutObjectRetentionInput struct { // to be used. ChecksumAlgorithm *string `location:"header" locationName:"x-amz-sdk-checksum-algorithm" type:"string" enum:"ChecksumAlgorithm"` - // The account ID of the expected bucket owner. If the bucket is owned by a - // different account, the request fails with the HTTP status code 403 Forbidden - // (access denied). + // The account ID of the expected bucket owner. If the account ID that you provide + // does not match the actual owner of the bucket, the request fails with the + // HTTP status code 403 Forbidden (access denied). ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` // The key name for the object that you want to apply this Object Retention @@ -35841,11 +38646,13 @@ type PutObjectRetentionInput struct { // Confirms that the requester knows that they will be charged for the request. // Bucket owners need not specify this parameter in their requests. If either - // the source or destination Amazon S3 bucket has Requester Pays enabled, the - // requester will pay for corresponding charges to copy the object. For information - // about downloading objects from Requester Pays buckets, see Downloading Objects + // the source or destination S3 bucket has Requester Pays enabled, the requester + // will pay for corresponding charges to copy the object. For information about + // downloading objects from Requester Pays buckets, see Downloading Objects // in Requester Pays Buckets (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html) // in the Amazon S3 User Guide. + // + // This functionality is not supported for directory buckets. RequestPayer *string `location:"header" locationName:"x-amz-request-payer" type:"string" enum:"RequestPayer"` // The container element for the Object Retention configuration. @@ -35983,6 +38790,8 @@ type PutObjectRetentionOutput struct { // If present, indicates that the requester was successfully charged for the // request. + // + // This functionality is not supported for directory buckets. RequestCharged *string `location:"header" locationName:"x-amz-request-charged" type:"string" enum:"RequestCharged"` } @@ -36015,30 +38824,33 @@ type PutObjectTaggingInput struct { // The bucket name containing the object. // - // When using this action with an access point, you must direct requests to - // the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. + // Access points - When you use this action with an access point, you must provide + // the alias of the access point in place of the bucket name or specify the + // access point ARN. When using the access point ARN, you must direct requests + // to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. // When using this action with an access point through the Amazon Web Services // SDKs, you provide the access point ARN in place of the bucket name. For more // information about access point ARNs, see Using access points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html) // in the Amazon S3 User Guide. // - // When you use this action with Amazon S3 on Outposts, you must direct requests - // to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form - // AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When - // you use this action with S3 on Outposts through the Amazon Web Services SDKs, - // you provide the Outposts access point ARN in place of the bucket name. For - // more information about S3 on Outposts ARNs, see What is S3 on Outposts? (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html) + // S3 on Outposts - When you use this action with Amazon S3 on Outposts, you + // must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname + // takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. + // When you use this action with S3 on Outposts through the Amazon Web Services + // SDKs, you provide the Outposts access point ARN in place of the bucket name. + // For more information about S3 on Outposts ARNs, see What is S3 on Outposts? + // (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html) // in the Amazon S3 User Guide. // // Bucket is a required field Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` - // Indicates the algorithm used to create the checksum for the object when using - // the SDK. This header will not provide any additional functionality if not - // using the SDK. When sending this header, there must be a corresponding x-amz-checksum - // or x-amz-trailer header sent. Otherwise, Amazon S3 fails the request with - // the HTTP status code 400 Bad Request. For more information, see Checking - // object integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) + // Indicates the algorithm used to create the checksum for the object when you + // use the SDK. This header will not provide any additional functionality if + // you don't use the SDK. When you send this header, there must be a corresponding + // x-amz-checksum or x-amz-trailer header sent. Otherwise, Amazon S3 fails the + // request with the HTTP status code 400 Bad Request. For more information, + // see Checking object integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) // in the Amazon S3 User Guide. // // If you provide an individual checksum, Amazon S3 ignores any provided ChecksumAlgorithm @@ -36054,9 +38866,9 @@ type PutObjectTaggingInput struct { // to be used. ChecksumAlgorithm *string `location:"header" locationName:"x-amz-sdk-checksum-algorithm" type:"string" enum:"ChecksumAlgorithm"` - // The account ID of the expected bucket owner. If the bucket is owned by a - // different account, the request fails with the HTTP status code 403 Forbidden - // (access denied). + // The account ID of the expected bucket owner. If the account ID that you provide + // does not match the actual owner of the bucket, the request fails with the + // HTTP status code 403 Forbidden (access denied). ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` // Name of the object key. @@ -36066,11 +38878,13 @@ type PutObjectTaggingInput struct { // Confirms that the requester knows that they will be charged for the request. // Bucket owners need not specify this parameter in their requests. If either - // the source or destination Amazon S3 bucket has Requester Pays enabled, the - // requester will pay for corresponding charges to copy the object. For information - // about downloading objects from Requester Pays buckets, see Downloading Objects + // the source or destination S3 bucket has Requester Pays enabled, the requester + // will pay for corresponding charges to copy the object. For information about + // downloading objects from Requester Pays buckets, see Downloading Objects // in Requester Pays Buckets (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html) // in the Amazon S3 User Guide. + // + // This functionality is not supported for directory buckets. RequestPayer *string `location:"header" locationName:"x-amz-request-payer" type:"string" enum:"RequestPayer"` // Container for the TagSet and Tag elements @@ -36246,12 +39060,12 @@ type PutPublicAccessBlockInput struct { // Bucket is a required field Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` - // Indicates the algorithm used to create the checksum for the object when using - // the SDK. This header will not provide any additional functionality if not - // using the SDK. When sending this header, there must be a corresponding x-amz-checksum - // or x-amz-trailer header sent. Otherwise, Amazon S3 fails the request with - // the HTTP status code 400 Bad Request. For more information, see Checking - // object integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) + // Indicates the algorithm used to create the checksum for the object when you + // use the SDK. This header will not provide any additional functionality if + // you don't use the SDK. When you send this header, there must be a corresponding + // x-amz-checksum or x-amz-trailer header sent. Otherwise, Amazon S3 fails the + // request with the HTTP status code 400 Bad Request. For more information, + // see Checking object integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) // in the Amazon S3 User Guide. // // If you provide an individual checksum, Amazon S3 ignores any provided ChecksumAlgorithm @@ -36267,9 +39081,9 @@ type PutPublicAccessBlockInput struct { // to be used. ChecksumAlgorithm *string `location:"header" locationName:"x-amz-sdk-checksum-algorithm" type:"string" enum:"ChecksumAlgorithm"` - // The account ID of the expected bucket owner. If the bucket is owned by a - // different account, the request fails with the HTTP status code 403 Forbidden - // (access denied). + // The account ID of the expected bucket owner. If the account ID that you provide + // does not match the actual owner of the bucket, the request fails with the + // HTTP status code 403 Forbidden (access denied). ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` // The PublicAccessBlock configuration that you want to apply to this Amazon @@ -37404,30 +40218,33 @@ type RestoreObjectInput struct { // The bucket name containing the object to restore. // - // When using this action with an access point, you must direct requests to - // the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. + // Access points - When you use this action with an access point, you must provide + // the alias of the access point in place of the bucket name or specify the + // access point ARN. When using the access point ARN, you must direct requests + // to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. // When using this action with an access point through the Amazon Web Services // SDKs, you provide the access point ARN in place of the bucket name. For more // information about access point ARNs, see Using access points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html) // in the Amazon S3 User Guide. // - // When you use this action with Amazon S3 on Outposts, you must direct requests - // to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form - // AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When - // you use this action with S3 on Outposts through the Amazon Web Services SDKs, - // you provide the Outposts access point ARN in place of the bucket name. For - // more information about S3 on Outposts ARNs, see What is S3 on Outposts? (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html) + // S3 on Outposts - When you use this action with Amazon S3 on Outposts, you + // must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname + // takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. + // When you use this action with S3 on Outposts through the Amazon Web Services + // SDKs, you provide the Outposts access point ARN in place of the bucket name. + // For more information about S3 on Outposts ARNs, see What is S3 on Outposts? + // (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html) // in the Amazon S3 User Guide. // // Bucket is a required field Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` - // Indicates the algorithm used to create the checksum for the object when using - // the SDK. This header will not provide any additional functionality if not - // using the SDK. When sending this header, there must be a corresponding x-amz-checksum - // or x-amz-trailer header sent. Otherwise, Amazon S3 fails the request with - // the HTTP status code 400 Bad Request. For more information, see Checking - // object integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) + // Indicates the algorithm used to create the checksum for the object when you + // use the SDK. This header will not provide any additional functionality if + // you don't use the SDK. When you send this header, there must be a corresponding + // x-amz-checksum or x-amz-trailer header sent. Otherwise, Amazon S3 fails the + // request with the HTTP status code 400 Bad Request. For more information, + // see Checking object integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) // in the Amazon S3 User Guide. // // If you provide an individual checksum, Amazon S3 ignores any provided ChecksumAlgorithm @@ -37439,9 +40256,9 @@ type RestoreObjectInput struct { // must be populated with the algorithm's checksum of the request payload. ChecksumAlgorithm *string `location:"header" locationName:"x-amz-sdk-checksum-algorithm" type:"string" enum:"ChecksumAlgorithm"` - // The account ID of the expected bucket owner. If the bucket is owned by a - // different account, the request fails with the HTTP status code 403 Forbidden - // (access denied). + // The account ID of the expected bucket owner. If the account ID that you provide + // does not match the actual owner of the bucket, the request fails with the + // HTTP status code 403 Forbidden (access denied). ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` // Object key for which the action was initiated. @@ -37451,11 +40268,13 @@ type RestoreObjectInput struct { // Confirms that the requester knows that they will be charged for the request. // Bucket owners need not specify this parameter in their requests. If either - // the source or destination Amazon S3 bucket has Requester Pays enabled, the - // requester will pay for corresponding charges to copy the object. For information - // about downloading objects from Requester Pays buckets, see Downloading Objects + // the source or destination S3 bucket has Requester Pays enabled, the requester + // will pay for corresponding charges to copy the object. For information about + // downloading objects from Requester Pays buckets, see Downloading Objects // in Requester Pays Buckets (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html) // in the Amazon S3 User Guide. + // + // This functionality is not supported for directory buckets. RequestPayer *string `location:"header" locationName:"x-amz-request-payer" type:"string" enum:"RequestPayer"` // Container for restore job parameters. @@ -37591,6 +40410,8 @@ type RestoreObjectOutput struct { // If present, indicates that the requester was successfully charged for the // request. + // + // This functionality is not supported for directory buckets. RequestCharged *string `location:"header" locationName:"x-amz-request-charged" type:"string" enum:"RequestCharged"` // Indicates the path in the provided S3 output location where Select results @@ -37749,6 +40570,9 @@ func (s *RestoreRequest) SetType(v string) *RestoreRequest { // about these storage classes and how to work with archived objects, see Working // with archived objects (https://docs.aws.amazon.com/AmazonS3/latest/userguide/archived-objects.html) // in the Amazon S3 User Guide. +// +// This functionality is not supported for directory buckets. Only the S3 Express +// One Zone storage class is supported by directory buckets to store objects. type RestoreStatus struct { _ struct{} `type:"structure"` @@ -38316,9 +41140,9 @@ type SelectObjectContentInput struct { // Bucket is a required field Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` - // The account ID of the expected bucket owner. If the bucket is owned by a - // different account, the request fails with the HTTP status code 403 Forbidden - // (access denied). + // The account ID of the expected bucket owner. If the account ID that you provide + // does not match the actual owner of the bucket, the request fails with the + // HTTP status code 403 Forbidden (access denied). ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` // The expression that is used to query the object. @@ -38893,6 +41717,92 @@ func (s *ServerSideEncryptionRule) SetBucketKeyEnabled(v bool) *ServerSideEncryp return s } +// The established temporary security credentials of the session. +// +// Directory buckets - These session credentials are only supported for the +// authentication and authorization of Zonal endpoint APIs on directory buckets. +type SessionCredentials struct { + _ struct{} `type:"structure"` + + // A unique identifier that's associated with a secret access key. The access + // key ID and the secret access key are used together to sign programmatic Amazon + // Web Services requests cryptographically. + // + // AccessKeyId is a required field + AccessKeyId *string `locationName:"AccessKeyId" type:"string" required:"true"` + + // Temporary security credentials expire after a specified interval. After temporary + // credentials expire, any calls that you make with those credentials will fail. + // So you must generate a new set of temporary credentials. Temporary credentials + // cannot be extended or refreshed beyond the original specified interval. + // + // Expiration is a required field + Expiration *time.Time `locationName:"Expiration" type:"timestamp" required:"true"` + + // A key that's used with the access key ID to cryptographically sign programmatic + // Amazon Web Services requests. Signing a request identifies the sender and + // prevents the request from being altered. + // + // SecretAccessKey is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by SessionCredentials's + // String and GoString methods. + // + // SecretAccessKey is a required field + SecretAccessKey *string `locationName:"SecretAccessKey" type:"string" required:"true" sensitive:"true"` + + // A part of the temporary security credentials. The session token is used to + // validate the temporary security credentials. + // + // SessionToken is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by SessionCredentials's + // String and GoString methods. + // + // SessionToken is a required field + SessionToken *string `locationName:"SessionToken" type:"string" required:"true" 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 SessionCredentials) 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 SessionCredentials) GoString() string { + return s.String() +} + +// SetAccessKeyId sets the AccessKeyId field's value. +func (s *SessionCredentials) SetAccessKeyId(v string) *SessionCredentials { + s.AccessKeyId = &v + return s +} + +// SetExpiration sets the Expiration field's value. +func (s *SessionCredentials) SetExpiration(v time.Time) *SessionCredentials { + s.Expiration = &v + return s +} + +// SetSecretAccessKey sets the SecretAccessKey field's value. +func (s *SessionCredentials) SetSecretAccessKey(v string) *SessionCredentials { + s.SecretAccessKey = &v + return s +} + +// SetSessionToken sets the SessionToken field's value. +func (s *SessionCredentials) SetSessionToken(v string) *SessionCredentials { + s.SessionToken = &v + return s +} + // To use simple format for S3 keys for log objects, set SimplePrefix to an // empty object. // @@ -39782,19 +42692,33 @@ type UploadPartCopyInput struct { // The bucket name. // - // When using this action with an access point, you must direct requests to - // the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. + // Directory buckets - When you use this operation with a directory bucket, + // you must use virtual-hosted-style requests in the format Bucket_name.s3express-az_id.region.amazonaws.com. + // Path-style requests are not supported. Directory bucket names must be unique + // in the chosen Availability Zone. Bucket names must follow the format bucket_base_name--az-id--x-s3 + // (for example, DOC-EXAMPLE-BUCKET--usw2-az2--x-s3). For information about + // bucket naming restrictions, see Directory bucket naming rules (https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html) + // in the Amazon S3 User Guide. + // + // Access points - When you use this action with an access point, you must provide + // the alias of the access point in place of the bucket name or specify the + // access point ARN. When using the access point ARN, you must direct requests + // to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. // When using this action with an access point through the Amazon Web Services // SDKs, you provide the access point ARN in place of the bucket name. For more // information about access point ARNs, see Using access points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html) // in the Amazon S3 User Guide. // - // When you use this action with Amazon S3 on Outposts, you must direct requests - // to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form - // AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When - // you use this action with S3 on Outposts through the Amazon Web Services SDKs, - // you provide the Outposts access point ARN in place of the bucket name. For - // more information about S3 on Outposts ARNs, see What is S3 on Outposts? (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html) + // Access points and Object Lambda access points are not supported by directory + // buckets. + // + // S3 on Outposts - When you use this action with Amazon S3 on Outposts, you + // must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname + // takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. + // When you use this action with S3 on Outposts through the Amazon Web Services + // SDKs, you provide the Outposts access point ARN in place of the bucket name. + // For more information about S3 on Outposts ARNs, see What is S3 on Outposts? + // (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html) // in the Amazon S3 User Guide. // // Bucket is a required field @@ -39816,34 +42740,81 @@ type UploadPartCopyInput struct { // my-access-point owned by account 123456789012 in Region us-west-2, use // the URL encoding of arn:aws:s3:us-west-2:123456789012:accesspoint/my-access-point/object/reports/january.pdf. // The value must be URL encoded. Amazon S3 supports copy operations using - // access points only when the source and destination buckets are in the - // same Amazon Web Services Region. Alternatively, for objects accessed through - // Amazon S3 on Outposts, specify the ARN of the object as accessed in the - // format arn:aws:s3-outposts:::outpost//object/. + // Access points only when the source and destination buckets are in the + // same Amazon Web Services Region. Access points are not supported by directory + // buckets. Alternatively, for objects accessed through Amazon S3 on Outposts, + // specify the ARN of the object as accessed in the format arn:aws:s3-outposts:::outpost//object/. // For example, to copy the object reports/january.pdf through outpost my-outpost // owned by account 123456789012 in Region us-west-2, use the URL encoding // of arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/object/reports/january.pdf. // The value must be URL-encoded. // - // To copy a specific version of an object, append ?versionId= to - // the value (for example, awsexamplebucket/reports/january.pdf?versionId=QUpfdndhfd8438MNFDN93jdnJFkdmqnh893). - // If you don't specify a version ID, Amazon S3 copies the latest version of - // the source object. + // If your bucket has versioning enabled, you could have multiple versions of + // the same object. By default, x-amz-copy-source identifies the current version + // of the source object to copy. To copy a specific version of the source object + // to copy, append ?versionId= to the x-amz-copy-source request + // header (for example, x-amz-copy-source: /awsexamplebucket/reports/january.pdf?versionId=QUpfdndhfd8438MNFDN93jdnJFkdmqnh893). + // + // If the current version is a delete marker and you don't specify a versionId + // in the x-amz-copy-source request header, Amazon S3 returns a 404 Not Found + // error, because the object does not exist. If you specify versionId in the + // x-amz-copy-source and the versionId is a delete marker, Amazon S3 returns + // an HTTP 400 Bad Request error, because you are not allowed to specify a delete + // marker as a version for the x-amz-copy-source. + // + // Directory buckets - S3 Versioning isn't enabled and supported for directory + // buckets. // // CopySource is a required field CopySource *string `location:"header" locationName:"x-amz-copy-source" type:"string" required:"true"` // Copies the object if its entity tag (ETag) matches the specified tag. + // + // If both of the x-amz-copy-source-if-match and x-amz-copy-source-if-unmodified-since + // headers are present in the request as follows: + // + // x-amz-copy-source-if-match condition evaluates to true, and; + // + // x-amz-copy-source-if-unmodified-since condition evaluates to false; + // + // Amazon S3 returns 200 OK and copies the data. CopySourceIfMatch *string `location:"header" locationName:"x-amz-copy-source-if-match" type:"string"` // Copies the object if it has been modified since the specified time. + // + // If both of the x-amz-copy-source-if-none-match and x-amz-copy-source-if-modified-since + // headers are present in the request as follows: + // + // x-amz-copy-source-if-none-match condition evaluates to false, and; + // + // x-amz-copy-source-if-modified-since condition evaluates to true; + // + // Amazon S3 returns 412 Precondition Failed response code. CopySourceIfModifiedSince *time.Time `location:"header" locationName:"x-amz-copy-source-if-modified-since" type:"timestamp"` // Copies the object if its entity tag (ETag) is different than the specified // ETag. + // + // If both of the x-amz-copy-source-if-none-match and x-amz-copy-source-if-modified-since + // headers are present in the request as follows: + // + // x-amz-copy-source-if-none-match condition evaluates to false, and; + // + // x-amz-copy-source-if-modified-since condition evaluates to true; + // + // Amazon S3 returns 412 Precondition Failed response code. CopySourceIfNoneMatch *string `location:"header" locationName:"x-amz-copy-source-if-none-match" type:"string"` // Copies the object if it hasn't been modified since the specified time. + // + // If both of the x-amz-copy-source-if-match and x-amz-copy-source-if-unmodified-since + // headers are present in the request as follows: + // + // x-amz-copy-source-if-match condition evaluates to true, and; + // + // x-amz-copy-source-if-unmodified-since condition evaluates to false; + // + // Amazon S3 returns 200 OK and copies the data. CopySourceIfUnmodifiedSince *time.Time `location:"header" locationName:"x-amz-copy-source-if-unmodified-since" type:"timestamp"` // The range of bytes to copy from the source object. The range value must use @@ -39855,12 +42826,18 @@ type UploadPartCopyInput struct { // Specifies the algorithm to use when decrypting the source object (for example, // AES256). + // + // This functionality is not supported when the source object is in a directory + // bucket. CopySourceSSECustomerAlgorithm *string `location:"header" locationName:"x-amz-copy-source-server-side-encryption-customer-algorithm" type:"string"` // Specifies the customer-provided encryption key for Amazon S3 to use to decrypt // the source object. The encryption key provided in this header must be one // that was used when the source object was created. // + // This functionality is not supported when the source object is in a directory + // bucket. + // // CopySourceSSECustomerKey is a sensitive parameter and its value will be // replaced with "sensitive" in string returned by UploadPartCopyInput's // String and GoString methods. @@ -39869,16 +42846,19 @@ type UploadPartCopyInput struct { // Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. // Amazon S3 uses this header for a message integrity check to ensure that the // encryption key was transmitted without error. + // + // This functionality is not supported when the source object is in a directory + // bucket. CopySourceSSECustomerKeyMD5 *string `location:"header" locationName:"x-amz-copy-source-server-side-encryption-customer-key-MD5" type:"string"` - // The account ID of the expected destination bucket owner. If the destination - // bucket is owned by a different account, the request fails with the HTTP status - // code 403 Forbidden (access denied). + // The account ID of the expected destination bucket owner. If the account ID + // that you provide does not match the actual owner of the destination bucket, + // the request fails with the HTTP status code 403 Forbidden (access denied). ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` - // The account ID of the expected source bucket owner. If the source bucket - // is owned by a different account, the request fails with the HTTP status code - // 403 Forbidden (access denied). + // The account ID of the expected source bucket owner. If the account ID that + // you provide does not match the actual owner of the source bucket, the request + // fails with the HTTP status code 403 Forbidden (access denied). ExpectedSourceBucketOwner *string `location:"header" locationName:"x-amz-source-expected-bucket-owner" type:"string"` // Object key for which the multipart upload was initiated. @@ -39894,15 +42874,19 @@ type UploadPartCopyInput struct { // Confirms that the requester knows that they will be charged for the request. // Bucket owners need not specify this parameter in their requests. If either - // the source or destination Amazon S3 bucket has Requester Pays enabled, the - // requester will pay for corresponding charges to copy the object. For information - // about downloading objects from Requester Pays buckets, see Downloading Objects + // the source or destination S3 bucket has Requester Pays enabled, the requester + // will pay for corresponding charges to copy the object. For information about + // downloading objects from Requester Pays buckets, see Downloading Objects // in Requester Pays Buckets (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html) // in the Amazon S3 User Guide. + // + // This functionality is not supported for directory buckets. RequestPayer *string `location:"header" locationName:"x-amz-request-payer" type:"string" enum:"RequestPayer"` - // Specifies the algorithm to use to when encrypting the object (for example, - // AES256). + // Specifies the algorithm to use when encrypting the object (for example, AES256). + // + // This functionality is not supported when the destination bucket is a directory + // bucket. SSECustomerAlgorithm *string `location:"header" locationName:"x-amz-server-side-encryption-customer-algorithm" type:"string"` // Specifies the customer-provided encryption key for Amazon S3 to use in encrypting @@ -39912,6 +42896,9 @@ type UploadPartCopyInput struct { // header. This must be the same encryption key specified in the initiate multipart // upload request. // + // This functionality is not supported when the destination bucket is a directory + // bucket. + // // SSECustomerKey is a sensitive parameter and its value will be // replaced with "sensitive" in string returned by UploadPartCopyInput's // String and GoString methods. @@ -39920,6 +42907,9 @@ type UploadPartCopyInput struct { // Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. // Amazon S3 uses this header for a message integrity check to ensure that the // encryption key was transmitted without error. + // + // This functionality is not supported when the destination bucket is a directory + // bucket. SSECustomerKeyMD5 *string `location:"header" locationName:"x-amz-server-side-encryption-customer-key-MD5" type:"string"` // Upload ID identifying the multipart upload whose part is being copied. @@ -40144,6 +43134,8 @@ type UploadPartCopyOutput struct { // Indicates whether the multipart upload uses an S3 Bucket Key for server-side // encryption with Key Management Service (KMS) keys (SSE-KMS). + // + // This functionality is not supported for directory buckets. BucketKeyEnabled *bool `location:"header" locationName:"x-amz-server-side-encryption-bucket-key-enabled" type:"boolean"` // Container for all response elements. @@ -40151,32 +43143,46 @@ type UploadPartCopyOutput struct { // The version of the source object that was copied, if you have enabled versioning // on the source bucket. + // + // This functionality is not supported when the source object is in a directory + // bucket. CopySourceVersionId *string `location:"header" locationName:"x-amz-copy-source-version-id" type:"string"` // If present, indicates that the requester was successfully charged for the // request. + // + // This functionality is not supported for directory buckets. RequestCharged *string `location:"header" locationName:"x-amz-request-charged" type:"string" enum:"RequestCharged"` // If server-side encryption with a customer-provided encryption key was requested, - // the response will include this header confirming the encryption algorithm - // used. + // the response will include this header to confirm the encryption algorithm + // that's used. + // + // This functionality is not supported for directory buckets. SSECustomerAlgorithm *string `location:"header" locationName:"x-amz-server-side-encryption-customer-algorithm" type:"string"` // If server-side encryption with a customer-provided encryption key was requested, - // the response will include this header to provide round-trip message integrity + // the response will include this header to provide the round-trip message integrity // verification of the customer-provided encryption key. + // + // This functionality is not supported for directory buckets. SSECustomerKeyMD5 *string `location:"header" locationName:"x-amz-server-side-encryption-customer-key-MD5" type:"string"` - // If present, specifies the ID of the Key Management Service (KMS) symmetric + // If present, indicates the ID of the Key Management Service (KMS) symmetric // encryption customer managed key that was used for the object. // + // This functionality is not supported for directory buckets. + // // SSEKMSKeyId is a sensitive parameter and its value will be // replaced with "sensitive" in string returned by UploadPartCopyOutput's // String and GoString methods. SSEKMSKeyId *string `location:"header" locationName:"x-amz-server-side-encryption-aws-kms-key-id" type:"string" sensitive:"true"` - // The server-side encryption algorithm used when storing this object in Amazon + // The server-side encryption algorithm used when you store this object in Amazon // S3 (for example, AES256, aws:kms). + // + // For directory buckets, only server-side encryption with Amazon S3 managed + // keys (SSE-S3) (AES256) is supported. ServerSideEncryption *string `location:"header" locationName:"x-amz-server-side-encryption" type:"string" enum:"ServerSideEncryption"` } @@ -40254,30 +43260,44 @@ type UploadPartInput struct { // The name of the bucket to which the multipart upload was initiated. // - // When using this action with an access point, you must direct requests to - // the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. + // Directory buckets - When you use this operation with a directory bucket, + // you must use virtual-hosted-style requests in the format Bucket_name.s3express-az_id.region.amazonaws.com. + // Path-style requests are not supported. Directory bucket names must be unique + // in the chosen Availability Zone. Bucket names must follow the format bucket_base_name--az-id--x-s3 + // (for example, DOC-EXAMPLE-BUCKET--usw2-az2--x-s3). For information about + // bucket naming restrictions, see Directory bucket naming rules (https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html) + // in the Amazon S3 User Guide. + // + // Access points - When you use this action with an access point, you must provide + // the alias of the access point in place of the bucket name or specify the + // access point ARN. When using the access point ARN, you must direct requests + // to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. // When using this action with an access point through the Amazon Web Services // SDKs, you provide the access point ARN in place of the bucket name. For more // information about access point ARNs, see Using access points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html) // in the Amazon S3 User Guide. // - // When you use this action with Amazon S3 on Outposts, you must direct requests - // to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form - // AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When - // you use this action with S3 on Outposts through the Amazon Web Services SDKs, - // you provide the Outposts access point ARN in place of the bucket name. For - // more information about S3 on Outposts ARNs, see What is S3 on Outposts? (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html) + // Access points and Object Lambda access points are not supported by directory + // buckets. + // + // S3 on Outposts - When you use this action with Amazon S3 on Outposts, you + // must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname + // takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. + // When you use this action with S3 on Outposts through the Amazon Web Services + // SDKs, you provide the Outposts access point ARN in place of the bucket name. + // For more information about S3 on Outposts ARNs, see What is S3 on Outposts? + // (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html) // in the Amazon S3 User Guide. // // Bucket is a required field Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` - // Indicates the algorithm used to create the checksum for the object when using - // the SDK. This header will not provide any additional functionality if not - // using the SDK. When sending this header, there must be a corresponding x-amz-checksum - // or x-amz-trailer header sent. Otherwise, Amazon S3 fails the request with - // the HTTP status code 400 Bad Request. For more information, see Checking - // object integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) + // Indicates the algorithm used to create the checksum for the object when you + // use the SDK. This header will not provide any additional functionality if + // you don't use the SDK. When you send this header, there must be a corresponding + // x-amz-checksum or x-amz-trailer header sent. Otherwise, Amazon S3 fails the + // request with the HTTP status code 400 Bad Request. For more information, + // see Checking object integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) // in the Amazon S3 User Guide. // // If you provide an individual checksum, Amazon S3 ignores any provided ChecksumAlgorithm @@ -40327,11 +43347,13 @@ type UploadPartInput struct { // The base64-encoded 128-bit MD5 digest of the part data. This parameter is // auto-populated when using the command from the CLI. This parameter is required // if object lock parameters are specified. + // + // This functionality is not supported for directory buckets. ContentMD5 *string `location:"header" locationName:"Content-MD5" type:"string"` - // The account ID of the expected bucket owner. If the bucket is owned by a - // different account, the request fails with the HTTP status code 403 Forbidden - // (access denied). + // The account ID of the expected bucket owner. If the account ID that you provide + // does not match the actual owner of the bucket, the request fails with the + // HTTP status code 403 Forbidden (access denied). ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` // Object key for which the multipart upload was initiated. @@ -40347,15 +43369,18 @@ type UploadPartInput struct { // Confirms that the requester knows that they will be charged for the request. // Bucket owners need not specify this parameter in their requests. If either - // the source or destination Amazon S3 bucket has Requester Pays enabled, the - // requester will pay for corresponding charges to copy the object. For information - // about downloading objects from Requester Pays buckets, see Downloading Objects + // the source or destination S3 bucket has Requester Pays enabled, the requester + // will pay for corresponding charges to copy the object. For information about + // downloading objects from Requester Pays buckets, see Downloading Objects // in Requester Pays Buckets (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html) // in the Amazon S3 User Guide. + // + // This functionality is not supported for directory buckets. RequestPayer *string `location:"header" locationName:"x-amz-request-payer" type:"string" enum:"RequestPayer"` - // Specifies the algorithm to use to when encrypting the object (for example, - // AES256). + // Specifies the algorithm to use when encrypting the object (for example, AES256). + // + // This functionality is not supported for directory buckets. SSECustomerAlgorithm *string `location:"header" locationName:"x-amz-server-side-encryption-customer-algorithm" type:"string"` // Specifies the customer-provided encryption key for Amazon S3 to use in encrypting @@ -40365,6 +43390,8 @@ type UploadPartInput struct { // header. This must be the same encryption key specified in the initiate multipart // upload request. // + // This functionality is not supported for directory buckets. + // // SSECustomerKey is a sensitive parameter and its value will be // replaced with "sensitive" in string returned by UploadPartInput's // String and GoString methods. @@ -40373,6 +43400,8 @@ type UploadPartInput struct { // Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. // Amazon S3 uses this header for a message integrity check to ensure that the // encryption key was transmitted without error. + // + // This functionality is not supported for directory buckets. SSECustomerKeyMD5 *string `location:"header" locationName:"x-amz-server-side-encryption-customer-key-MD5" type:"string"` // Upload ID identifying the multipart upload whose part is being uploaded. @@ -40575,37 +43604,47 @@ type UploadPartOutput struct { // Indicates whether the multipart upload uses an S3 Bucket Key for server-side // encryption with Key Management Service (KMS) keys (SSE-KMS). + // + // This functionality is not supported for directory buckets. BucketKeyEnabled *bool `location:"header" locationName:"x-amz-server-side-encryption-bucket-key-enabled" type:"boolean"` // The base64-encoded, 32-bit CRC32 checksum of the object. This will only be - // present if it was uploaded with the object. With multipart uploads, this - // may not be a checksum value of the object. For more information about how - // checksums are calculated with multipart uploads, see Checking object integrity - // (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums) + // present if it was uploaded with the object. When you use an API operation + // on an object that was uploaded using multipart uploads, this value may not + // be a direct checksum value of the full object. Instead, it's a calculation + // based on the checksum values of each individual part. For more information + // about how checksums are calculated with multipart uploads, see Checking object + // integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums) // in the Amazon S3 User Guide. ChecksumCRC32 *string `location:"header" locationName:"x-amz-checksum-crc32" type:"string"` // The base64-encoded, 32-bit CRC32C checksum of the object. This will only - // be present if it was uploaded with the object. With multipart uploads, this - // may not be a checksum value of the object. For more information about how - // checksums are calculated with multipart uploads, see Checking object integrity - // (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums) + // be present if it was uploaded with the object. When you use an API operation + // on an object that was uploaded using multipart uploads, this value may not + // be a direct checksum value of the full object. Instead, it's a calculation + // based on the checksum values of each individual part. For more information + // about how checksums are calculated with multipart uploads, see Checking object + // integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums) // in the Amazon S3 User Guide. ChecksumCRC32C *string `location:"header" locationName:"x-amz-checksum-crc32c" type:"string"` // The base64-encoded, 160-bit SHA-1 digest of the object. This will only be - // present if it was uploaded with the object. With multipart uploads, this - // may not be a checksum value of the object. For more information about how - // checksums are calculated with multipart uploads, see Checking object integrity - // (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums) + // present if it was uploaded with the object. When you use the API operation + // on an object that was uploaded using multipart uploads, this value may not + // be a direct checksum value of the full object. Instead, it's a calculation + // based on the checksum values of each individual part. For more information + // about how checksums are calculated with multipart uploads, see Checking object + // integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums) // in the Amazon S3 User Guide. ChecksumSHA1 *string `location:"header" locationName:"x-amz-checksum-sha1" type:"string"` // The base64-encoded, 256-bit SHA-256 digest of the object. This will only - // be present if it was uploaded with the object. With multipart uploads, this - // may not be a checksum value of the object. For more information about how - // checksums are calculated with multipart uploads, see Checking object integrity - // (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums) + // be present if it was uploaded with the object. When you use an API operation + // on an object that was uploaded using multipart uploads, this value may not + // be a direct checksum value of the full object. Instead, it's a calculation + // based on the checksum values of each individual part. For more information + // about how checksums are calculated with multipart uploads, see Checking object + // integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums) // in the Amazon S3 User Guide. ChecksumSHA256 *string `location:"header" locationName:"x-amz-checksum-sha256" type:"string"` @@ -40614,28 +43653,39 @@ type UploadPartOutput struct { // If present, indicates that the requester was successfully charged for the // request. + // + // This functionality is not supported for directory buckets. RequestCharged *string `location:"header" locationName:"x-amz-request-charged" type:"string" enum:"RequestCharged"` // If server-side encryption with a customer-provided encryption key was requested, - // the response will include this header confirming the encryption algorithm - // used. + // the response will include this header to confirm the encryption algorithm + // that's used. + // + // This functionality is not supported for directory buckets. SSECustomerAlgorithm *string `location:"header" locationName:"x-amz-server-side-encryption-customer-algorithm" type:"string"` // If server-side encryption with a customer-provided encryption key was requested, - // the response will include this header to provide round-trip message integrity + // the response will include this header to provide the round-trip message integrity // verification of the customer-provided encryption key. + // + // This functionality is not supported for directory buckets. SSECustomerKeyMD5 *string `location:"header" locationName:"x-amz-server-side-encryption-customer-key-MD5" type:"string"` - // If present, specifies the ID of the Key Management Service (KMS) symmetric - // encryption customer managed key was used for the object. + // If present, indicates the ID of the Key Management Service (KMS) symmetric + // encryption customer managed key that was used for the object. + // + // This functionality is not supported for directory buckets. // // SSEKMSKeyId is a sensitive parameter and its value will be // replaced with "sensitive" in string returned by UploadPartOutput's // String and GoString methods. SSEKMSKeyId *string `location:"header" locationName:"x-amz-server-side-encryption-aws-kms-key-id" type:"string" sensitive:"true"` - // The server-side encryption algorithm used when storing this object in Amazon + // The server-side encryption algorithm used when you store this object in Amazon // S3 (for example, AES256, aws:kms). + // + // For directory buckets, only server-side encryption with Amazon S3 managed + // keys (SSE-S3) (AES256) is supported. ServerSideEncryption *string `location:"header" locationName:"x-amz-server-side-encryption" type:"string" enum:"ServerSideEncryption"` } @@ -41019,6 +44069,8 @@ type WriteGetObjectResponseInput struct { // If present, indicates that the requester was successfully charged for the // request. + // + // This functionality is not supported for directory buckets. RequestCharged *string `location:"header" locationName:"x-amz-fwd-header-x-amz-request-charged" type:"string" enum:"RequestCharged"` // Route prefix to the HTTP URL generated. @@ -41495,6 +44547,9 @@ const ( // BucketLocationConstraintApSouth1 is a BucketLocationConstraint enum value BucketLocationConstraintApSouth1 = "ap-south-1" + // BucketLocationConstraintApSouth2 is a BucketLocationConstraint enum value + BucketLocationConstraintApSouth2 = "ap-south-2" + // BucketLocationConstraintApSoutheast1 is a BucketLocationConstraint enum value BucketLocationConstraintApSoutheast1 = "ap-southeast-1" @@ -41525,6 +44580,9 @@ const ( // BucketLocationConstraintEuSouth1 is a BucketLocationConstraint enum value BucketLocationConstraintEuSouth1 = "eu-south-1" + // BucketLocationConstraintEuSouth2 is a BucketLocationConstraint enum value + BucketLocationConstraintEuSouth2 = "eu-south-2" + // BucketLocationConstraintEuWest1 is a BucketLocationConstraint enum value BucketLocationConstraintEuWest1 = "eu-west-1" @@ -41554,12 +44612,6 @@ const ( // BucketLocationConstraintUsWest2 is a BucketLocationConstraint enum value BucketLocationConstraintUsWest2 = "us-west-2" - - // BucketLocationConstraintApSouth2 is a BucketLocationConstraint enum value - BucketLocationConstraintApSouth2 = "ap-south-2" - - // BucketLocationConstraintEuSouth2 is a BucketLocationConstraint enum value - BucketLocationConstraintEuSouth2 = "eu-south-2" ) // BucketLocationConstraint_Values returns all elements of the BucketLocationConstraint enum @@ -41571,6 +44623,7 @@ func BucketLocationConstraint_Values() []string { BucketLocationConstraintApNortheast2, BucketLocationConstraintApNortheast3, BucketLocationConstraintApSouth1, + BucketLocationConstraintApSouth2, BucketLocationConstraintApSoutheast1, BucketLocationConstraintApSoutheast2, BucketLocationConstraintApSoutheast3, @@ -41581,6 +44634,7 @@ func BucketLocationConstraint_Values() []string { BucketLocationConstraintEuCentral1, BucketLocationConstraintEuNorth1, BucketLocationConstraintEuSouth1, + BucketLocationConstraintEuSouth2, BucketLocationConstraintEuWest1, BucketLocationConstraintEuWest2, BucketLocationConstraintEuWest3, @@ -41591,8 +44645,6 @@ func BucketLocationConstraint_Values() []string { BucketLocationConstraintUsGovWest1, BucketLocationConstraintUsWest1, BucketLocationConstraintUsWest2, - BucketLocationConstraintApSouth2, - BucketLocationConstraintEuSouth2, } } @@ -41616,6 +44668,18 @@ func BucketLogsPermission_Values() []string { } } +const ( + // BucketTypeDirectory is a BucketType enum value + BucketTypeDirectory = "Directory" +) + +// BucketType_Values returns all elements of the BucketType enum +func BucketType_Values() []string { + return []string{ + BucketTypeDirectory, + } +} + const ( // BucketVersioningStatusEnabled is a BucketVersioningStatus enum value BucketVersioningStatusEnabled = "Enabled" @@ -41688,6 +44752,18 @@ func CompressionType_Values() []string { } } +const ( + // DataRedundancySingleAvailabilityZone is a DataRedundancy enum value + DataRedundancySingleAvailabilityZone = "SingleAvailabilityZone" +) + +// DataRedundancy_Values returns all elements of the DataRedundancy enum +func DataRedundancy_Values() []string { + return []string{ + DataRedundancySingleAvailabilityZone, + } +} + const ( // DeleteMarkerReplicationStatusEnabled is a DeleteMarkerReplicationStatus enum value DeleteMarkerReplicationStatusEnabled = "Enabled" @@ -42087,6 +45163,18 @@ func JSONType_Values() []string { } } +const ( + // LocationTypeAvailabilityZone is a LocationType enum value + LocationTypeAvailabilityZone = "AvailabilityZone" +) + +// LocationType_Values returns all elements of the LocationType enum +func LocationType_Values() []string { + return []string{ + LocationTypeAvailabilityZone, + } +} + const ( // MFADeleteEnabled is a MFADelete enum value MFADeleteEnabled = "Enabled" @@ -42287,8 +45375,19 @@ func ObjectLockRetentionMode_Values() []string { // BucketOwnerEnforced - Access control lists (ACLs) are disabled and no longer // affect permissions. The bucket owner automatically owns and has full control // over every object in the bucket. The bucket only accepts PUT requests that -// don't specify an ACL or bucket owner full control ACLs, such as the bucket-owner-full-control -// canned ACL or an equivalent form of this ACL expressed in the XML format. +// don't specify an ACL or specify bucket owner full control ACLs (such as the +// predefined bucket-owner-full-control canned ACL or a custom ACL in XML format +// that grants the same permissions). +// +// By default, ObjectOwnership is set to BucketOwnerEnforced and ACLs are disabled. +// We recommend keeping ACLs disabled, except in uncommon use cases where you +// must control access for each object individually. For more information about +// S3 Object Ownership, see Controlling ownership of objects and disabling ACLs +// for your bucket (https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html) +// in the Amazon S3 User Guide. +// +// This functionality is not supported for directory buckets. Directory buckets +// use the bucket owner enforced setting for S3 Object Ownership. const ( // ObjectOwnershipBucketOwnerPreferred is a ObjectOwnership enum value ObjectOwnershipBucketOwnerPreferred = "BucketOwnerPreferred" @@ -42339,6 +45438,9 @@ const ( // ObjectStorageClassSnow is a ObjectStorageClass enum value ObjectStorageClassSnow = "SNOW" + + // ObjectStorageClassExpressOnezone is a ObjectStorageClass enum value + ObjectStorageClassExpressOnezone = "EXPRESS_ONEZONE" ) // ObjectStorageClass_Values returns all elements of the ObjectStorageClass enum @@ -42354,6 +45456,7 @@ func ObjectStorageClass_Values() []string { ObjectStorageClassOutposts, ObjectStorageClassGlacierIr, ObjectStorageClassSnow, + ObjectStorageClassExpressOnezone, } } @@ -42563,6 +45666,8 @@ func ReplicationTimeStatus_Values() []string { // If present, indicates that the requester was successfully charged for the // request. +// +// This functionality is not supported for directory buckets. const ( // RequestChargedRequester is a RequestCharged enum value RequestChargedRequester = "requester" @@ -42577,11 +45682,13 @@ func RequestCharged_Values() []string { // Confirms that the requester knows that they will be charged for the request. // Bucket owners need not specify this parameter in their requests. If either -// the source or destination Amazon S3 bucket has Requester Pays enabled, the -// requester will pay for corresponding charges to copy the object. For information -// about downloading objects from Requester Pays buckets, see Downloading Objects +// the source or destination S3 bucket has Requester Pays enabled, the requester +// will pay for corresponding charges to copy the object. For information about +// downloading objects from Requester Pays buckets, see Downloading Objects // in Requester Pays Buckets (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html) // in the Amazon S3 User Guide. +// +// This functionality is not supported for directory buckets. const ( // RequestPayerRequester is a RequestPayer enum value RequestPayerRequester = "requester" @@ -42626,6 +45733,22 @@ func ServerSideEncryption_Values() []string { } } +const ( + // SessionModeReadOnly is a SessionMode enum value + SessionModeReadOnly = "ReadOnly" + + // SessionModeReadWrite is a SessionMode enum value + SessionModeReadWrite = "ReadWrite" +) + +// SessionMode_Values returns all elements of the SessionMode enum +func SessionMode_Values() []string { + return []string{ + SessionModeReadOnly, + SessionModeReadWrite, + } +} + const ( // SseKmsEncryptedObjectsStatusEnabled is a SseKmsEncryptedObjectsStatus enum value SseKmsEncryptedObjectsStatusEnabled = "Enabled" @@ -42672,6 +45795,9 @@ const ( // StorageClassSnow is a StorageClass enum value StorageClassSnow = "SNOW" + + // StorageClassExpressOnezone is a StorageClass enum value + StorageClassExpressOnezone = "EXPRESS_ONEZONE" ) // StorageClass_Values returns all elements of the StorageClass enum @@ -42687,6 +45813,7 @@ func StorageClass_Values() []string { StorageClassOutposts, StorageClassGlacierIr, StorageClassSnow, + StorageClassExpressOnezone, } } diff --git a/service/s3/errors.go b/service/s3/errors.go index cd6a2e8ae49..8a67333ab26 100644 --- a/service/s3/errors.go +++ b/service/s3/errors.go @@ -25,6 +25,15 @@ const ( // "InvalidObjectState". // // Object is archived and inaccessible until restored. + // + // If the object you are retrieving is stored in the S3 Glacier Flexible Retrieval + // storage class, the S3 Glacier Deep Archive storage class, the S3 Intelligent-Tiering + // Archive Access tier, or the S3 Intelligent-Tiering Deep Archive Access tier, + // before you can retrieve the object you must first restore a copy using RestoreObject + // (https://docs.aws.amazon.com/AmazonS3/latest/API/API_RestoreObject.html). + // Otherwise, this operation returns an InvalidObjectState error. For information + // about restoring archived objects, see Restoring Archived Objects (https://docs.aws.amazon.com/AmazonS3/latest/dev/restoring-objects.html) + // in the Amazon S3 User Guide. ErrCodeInvalidObjectState = "InvalidObjectState" // ErrCodeNoSuchBucket for service response error code diff --git a/service/s3/examples_test.go b/service/s3/examples_test.go index c8a871cdaa0..448738ca983 100644 --- a/service/s3/examples_test.go +++ b/service/s3/examples_test.go @@ -398,13 +398,13 @@ func ExampleS3_DeleteBucketWebsite_shared00() { fmt.Println(result) } -// To delete an object (from a non-versioned bucket) -// The following example deletes an object from a non-versioned bucket. +// To delete an object +// The following example deletes an object from an S3 bucket. func ExampleS3_DeleteObject_shared00() { svc := s3.New(session.New()) input := &s3.DeleteObjectInput{ - Bucket: aws.String("ExampleBucket"), - Key: aws.String("HappyFace.jpg"), + Bucket: aws.String("examplebucket"), + Key: aws.String("objectkey.jpg"), } result, err := svc.DeleteObject(input) @@ -425,13 +425,13 @@ func ExampleS3_DeleteObject_shared00() { fmt.Println(result) } -// To delete an object -// The following example deletes an object from an S3 bucket. +// To delete an object (from a non-versioned bucket) +// The following example deletes an object from a non-versioned bucket. func ExampleS3_DeleteObject_shared01() { svc := s3.New(session.New()) input := &s3.DeleteObjectInput{ - Bucket: aws.String("examplebucket"), - Key: aws.String("objectkey.jpg"), + Bucket: aws.String("ExampleBucket"), + Key: aws.String("HappyFace.jpg"), } result, err := svc.DeleteObject(input) @@ -452,15 +452,15 @@ func ExampleS3_DeleteObject_shared01() { fmt.Println(result) } -// To remove tag set from an object -// The following example removes tag set associated with the specified object. If the -// bucket is versioning enabled, the operation removes tag set from the latest object -// version. +// To remove tag set from an object version +// The following example removes tag set associated with the specified object version. +// The request specifies both the object key and object version. func ExampleS3_DeleteObjectTagging_shared00() { svc := s3.New(session.New()) input := &s3.DeleteObjectTaggingInput{ - Bucket: aws.String("examplebucket"), - Key: aws.String("HappyFace.jpg"), + Bucket: aws.String("examplebucket"), + Key: aws.String("HappyFace.jpg"), + VersionId: aws.String("ydlaNkwWm0SfKJR.T1b1fIdPRbldTYRI"), } result, err := svc.DeleteObjectTagging(input) @@ -481,15 +481,15 @@ func ExampleS3_DeleteObjectTagging_shared00() { fmt.Println(result) } -// To remove tag set from an object version -// The following example removes tag set associated with the specified object version. -// The request specifies both the object key and object version. +// To remove tag set from an object +// The following example removes tag set associated with the specified object. If the +// bucket is versioning enabled, the operation removes tag set from the latest object +// version. func ExampleS3_DeleteObjectTagging_shared01() { svc := s3.New(session.New()) input := &s3.DeleteObjectTaggingInput{ - Bucket: aws.String("examplebucket"), - Key: aws.String("HappyFace.jpg"), - VersionId: aws.String("ydlaNkwWm0SfKJR.T1b1fIdPRbldTYRI"), + Bucket: aws.String("examplebucket"), + Key: aws.String("HappyFace.jpg"), } result, err := svc.DeleteObjectTagging(input) @@ -996,15 +996,13 @@ func ExampleS3_GetObjectAcl_shared00() { fmt.Println(result) } -// To retrieve tag set of a specific object version -// The following example retrieves tag set of an object. The request specifies object -// version. +// To retrieve tag set of an object +// The following example retrieves tag set of an object. func ExampleS3_GetObjectTagging_shared00() { svc := s3.New(session.New()) input := &s3.GetObjectTaggingInput{ - Bucket: aws.String("examplebucket"), - Key: aws.String("exampleobject"), - VersionId: aws.String("ydlaNkwWm0SfKJR.T1b1fIdPRbldTYRI"), + Bucket: aws.String("examplebucket"), + Key: aws.String("HappyFace.jpg"), } result, err := svc.GetObjectTagging(input) @@ -1025,13 +1023,15 @@ func ExampleS3_GetObjectTagging_shared00() { fmt.Println(result) } -// To retrieve tag set of an object -// The following example retrieves tag set of an object. +// To retrieve tag set of a specific object version +// The following example retrieves tag set of an object. The request specifies object +// version. func ExampleS3_GetObjectTagging_shared01() { svc := s3.New(session.New()) input := &s3.GetObjectTaggingInput{ - Bucket: aws.String("examplebucket"), - Key: aws.String("HappyFace.jpg"), + Bucket: aws.String("examplebucket"), + Key: aws.String("exampleobject"), + VersionId: aws.String("ydlaNkwWm0SfKJR.T1b1fIdPRbldTYRI"), } result, err := svc.GetObjectTagging(input) @@ -1158,12 +1158,16 @@ func ExampleS3_ListBuckets_shared00() { fmt.Println(result) } -// To list in-progress multipart uploads on a bucket -// The following example lists in-progress multipart uploads on a specific bucket. +// List next set of multipart uploads when previous result is truncated +// The following example specifies the upload-id-marker and key-marker from previous +// truncated response to retrieve next setup of multipart uploads. func ExampleS3_ListMultipartUploads_shared00() { svc := s3.New(session.New()) input := &s3.ListMultipartUploadsInput{ - Bucket: aws.String("examplebucket"), + Bucket: aws.String("examplebucket"), + KeyMarker: aws.String("nextkeyfrompreviousresponse"), + MaxUploads: aws.Int64(2), + UploadIdMarker: aws.String("valuefrompreviousresponse"), } result, err := svc.ListMultipartUploads(input) @@ -1184,16 +1188,12 @@ func ExampleS3_ListMultipartUploads_shared00() { fmt.Println(result) } -// List next set of multipart uploads when previous result is truncated -// The following example specifies the upload-id-marker and key-marker from previous -// truncated response to retrieve next setup of multipart uploads. +// To list in-progress multipart uploads on a bucket +// The following example lists in-progress multipart uploads on a specific bucket. func ExampleS3_ListMultipartUploads_shared01() { svc := s3.New(session.New()) input := &s3.ListMultipartUploadsInput{ - Bucket: aws.String("examplebucket"), - KeyMarker: aws.String("nextkeyfrompreviousresponse"), - MaxUploads: aws.Int64(2), - UploadIdMarker: aws.String("valuefrompreviousresponse"), + Bucket: aws.String("examplebucket"), } result, err := svc.ListMultipartUploads(input) @@ -1748,16 +1748,15 @@ func ExampleS3_PutBucketWebsite_shared00() { fmt.Println(result) } -// To upload an object and specify optional tags -// The following example uploads an object. The request specifies optional object tags. -// The bucket is versioned, therefore S3 returns version ID of the newly created object. +// To create an object. +// The following example creates an object. If the bucket is versioning enabled, S3 +// returns version ID in response. func ExampleS3_PutObject_shared00() { svc := s3.New(session.New()) input := &s3.PutObjectInput{ - Body: aws.ReadSeekCloser(strings.NewReader("c:\\HappyFace.jpg")), - Bucket: aws.String("examplebucket"), - Key: aws.String("HappyFace.jpg"), - Tagging: aws.String("key1=value1&key2=value2"), + Body: aws.ReadSeekCloser(strings.NewReader("filetoupload")), + Bucket: aws.String("examplebucket"), + Key: aws.String("objectkey"), } result, err := svc.PutObject(input) @@ -1778,15 +1777,16 @@ func ExampleS3_PutObject_shared00() { fmt.Println(result) } -// To create an object. -// The following example creates an object. If the bucket is versioning enabled, S3 -// returns version ID in response. +// To upload an object +// The following example uploads an object to a versioning-enabled bucket. The source +// file is specified using Windows file syntax. S3 returns VersionId of the newly created +// object. func ExampleS3_PutObject_shared01() { svc := s3.New(session.New()) input := &s3.PutObjectInput{ - Body: aws.ReadSeekCloser(strings.NewReader("filetoupload")), + Body: aws.ReadSeekCloser(strings.NewReader("HappyFace.jpg")), Bucket: aws.String("examplebucket"), - Key: aws.String("objectkey"), + Key: aws.String("HappyFace.jpg"), } result, err := svc.PutObject(input) @@ -1840,16 +1840,16 @@ func ExampleS3_PutObject_shared02() { fmt.Println(result) } -// To upload an object -// The following example uploads an object to a versioning-enabled bucket. The source -// file is specified using Windows file syntax. S3 returns VersionId of the newly created -// object. +// To upload an object and specify optional tags +// The following example uploads an object. The request specifies optional object tags. +// The bucket is versioned, therefore S3 returns version ID of the newly created object. func ExampleS3_PutObject_shared03() { svc := s3.New(session.New()) input := &s3.PutObjectInput{ - Body: aws.ReadSeekCloser(strings.NewReader("HappyFace.jpg")), - Bucket: aws.String("examplebucket"), - Key: aws.String("HappyFace.jpg"), + Body: aws.ReadSeekCloser(strings.NewReader("c:\\HappyFace.jpg")), + Bucket: aws.String("examplebucket"), + Key: aws.String("HappyFace.jpg"), + Tagging: aws.String("key1=value1&key2=value2"), } result, err := svc.PutObject(input) @@ -1870,18 +1870,17 @@ func ExampleS3_PutObject_shared03() { fmt.Println(result) } -// To upload an object and specify server-side encryption and object tags -// The following example uploads an object. The request specifies the optional server-side -// encryption option. The request also specifies optional object tags. If the bucket -// is versioning enabled, S3 returns version ID in response. +// To upload an object (specify optional headers) +// The following example uploads an object. The request specifies optional request headers +// to directs S3 to use specific storage class and use server-side encryption. func ExampleS3_PutObject_shared04() { svc := s3.New(session.New()) input := &s3.PutObjectInput{ - Body: aws.ReadSeekCloser(strings.NewReader("filetoupload")), + Body: aws.ReadSeekCloser(strings.NewReader("HappyFace.jpg")), Bucket: aws.String("examplebucket"), - Key: aws.String("exampleobject"), + Key: aws.String("HappyFace.jpg"), ServerSideEncryption: aws.String("AES256"), - Tagging: aws.String("key1=value1&key2=value2"), + StorageClass: aws.String("STANDARD_IA"), } result, err := svc.PutObject(input) @@ -1902,17 +1901,18 @@ func ExampleS3_PutObject_shared04() { fmt.Println(result) } -// To upload an object and specify canned ACL. -// The following example uploads and object. The request specifies optional canned ACL -// (access control list) to all READ access to authenticated users. If the bucket is -// versioning enabled, S3 returns version ID in response. +// To upload an object and specify server-side encryption and object tags +// The following example uploads an object. The request specifies the optional server-side +// encryption option. The request also specifies optional object tags. If the bucket +// is versioning enabled, S3 returns version ID in response. func ExampleS3_PutObject_shared05() { svc := s3.New(session.New()) input := &s3.PutObjectInput{ - ACL: aws.String("authenticated-read"), - Body: aws.ReadSeekCloser(strings.NewReader("filetoupload")), - Bucket: aws.String("examplebucket"), - Key: aws.String("exampleobject"), + Body: aws.ReadSeekCloser(strings.NewReader("filetoupload")), + Bucket: aws.String("examplebucket"), + Key: aws.String("exampleobject"), + ServerSideEncryption: aws.String("AES256"), + Tagging: aws.String("key1=value1&key2=value2"), } result, err := svc.PutObject(input) @@ -1933,17 +1933,17 @@ func ExampleS3_PutObject_shared05() { fmt.Println(result) } -// To upload an object (specify optional headers) -// The following example uploads an object. The request specifies optional request headers -// to directs S3 to use specific storage class and use server-side encryption. +// To upload an object and specify canned ACL. +// The following example uploads and object. The request specifies optional canned ACL +// (access control list) to all READ access to authenticated users. If the bucket is +// versioning enabled, S3 returns version ID in response. func ExampleS3_PutObject_shared06() { svc := s3.New(session.New()) input := &s3.PutObjectInput{ - Body: aws.ReadSeekCloser(strings.NewReader("HappyFace.jpg")), - Bucket: aws.String("examplebucket"), - Key: aws.String("HappyFace.jpg"), - ServerSideEncryption: aws.String("AES256"), - StorageClass: aws.String("STANDARD_IA"), + ACL: aws.String("authenticated-read"), + Body: aws.ReadSeekCloser(strings.NewReader("filetoupload")), + Bucket: aws.String("examplebucket"), + Key: aws.String("exampleobject"), } result, err := svc.PutObject(input) @@ -2104,18 +2104,17 @@ func ExampleS3_UploadPart_shared00() { fmt.Println(result) } -// To upload a part by copying byte range from an existing object as data source -// The following example uploads a part of a multipart upload by copying a specified -// byte range from an existing object as data source. +// To upload a part by copying data from an existing object as data source +// The following example uploads a part of a multipart upload by copying data from an +// existing object as data source. func ExampleS3_UploadPartCopy_shared00() { svc := s3.New(session.New()) input := &s3.UploadPartCopyInput{ - Bucket: aws.String("examplebucket"), - CopySource: aws.String("/bucketname/sourceobjectkey"), - CopySourceRange: aws.String("bytes=1-100000"), - Key: aws.String("examplelargeobject"), - PartNumber: aws.Int64(2), - UploadId: aws.String("exampleuoh_10OhKhT7YukE9bjzTPRiuaCotmZM_pFngJFir9OZNrSr5cWa3cq3LZSUsfjI4FI7PkP91We7Nrw--"), + Bucket: aws.String("examplebucket"), + CopySource: aws.String("/bucketname/sourceobjectkey"), + Key: aws.String("examplelargeobject"), + PartNumber: aws.Int64(1), + UploadId: aws.String("exampleuoh_10OhKhT7YukE9bjzTPRiuaCotmZM_pFngJFir9OZNrSr5cWa3cq3LZSUsfjI4FI7PkP91We7Nrw--"), } result, err := svc.UploadPartCopy(input) @@ -2136,17 +2135,18 @@ func ExampleS3_UploadPartCopy_shared00() { fmt.Println(result) } -// To upload a part by copying data from an existing object as data source -// The following example uploads a part of a multipart upload by copying data from an -// existing object as data source. +// To upload a part by copying byte range from an existing object as data source +// The following example uploads a part of a multipart upload by copying a specified +// byte range from an existing object as data source. func ExampleS3_UploadPartCopy_shared01() { svc := s3.New(session.New()) input := &s3.UploadPartCopyInput{ - Bucket: aws.String("examplebucket"), - CopySource: aws.String("/bucketname/sourceobjectkey"), - Key: aws.String("examplelargeobject"), - PartNumber: aws.Int64(1), - UploadId: aws.String("exampleuoh_10OhKhT7YukE9bjzTPRiuaCotmZM_pFngJFir9OZNrSr5cWa3cq3LZSUsfjI4FI7PkP91We7Nrw--"), + Bucket: aws.String("examplebucket"), + CopySource: aws.String("/bucketname/sourceobjectkey"), + CopySourceRange: aws.String("bytes=1-100000"), + Key: aws.String("examplelargeobject"), + PartNumber: aws.Int64(2), + UploadId: aws.String("exampleuoh_10OhKhT7YukE9bjzTPRiuaCotmZM_pFngJFir9OZNrSr5cWa3cq3LZSUsfjI4FI7PkP91We7Nrw--"), } result, err := svc.UploadPartCopy(input) diff --git a/service/s3/s3iface/interface.go b/service/s3/s3iface/interface.go index 6d679a2990f..d13b4617030 100644 --- a/service/s3/s3iface/interface.go +++ b/service/s3/s3iface/interface.go @@ -80,6 +80,10 @@ type S3API interface { CreateMultipartUploadWithContext(aws.Context, *s3.CreateMultipartUploadInput, ...request.Option) (*s3.CreateMultipartUploadOutput, error) CreateMultipartUploadRequest(*s3.CreateMultipartUploadInput) (*request.Request, *s3.CreateMultipartUploadOutput) + CreateSession(*s3.CreateSessionInput) (*s3.CreateSessionOutput, error) + CreateSessionWithContext(aws.Context, *s3.CreateSessionInput, ...request.Option) (*s3.CreateSessionOutput, error) + CreateSessionRequest(*s3.CreateSessionInput) (*request.Request, *s3.CreateSessionOutput) + DeleteBucket(*s3.DeleteBucketInput) (*s3.DeleteBucketOutput, error) DeleteBucketWithContext(aws.Context, *s3.DeleteBucketInput, ...request.Option) (*s3.DeleteBucketOutput, error) DeleteBucketRequest(*s3.DeleteBucketInput) (*request.Request, *s3.DeleteBucketOutput) @@ -300,6 +304,13 @@ type S3API interface { ListBucketsWithContext(aws.Context, *s3.ListBucketsInput, ...request.Option) (*s3.ListBucketsOutput, error) ListBucketsRequest(*s3.ListBucketsInput) (*request.Request, *s3.ListBucketsOutput) + ListDirectoryBuckets(*s3.ListDirectoryBucketsInput) (*s3.ListDirectoryBucketsOutput, error) + ListDirectoryBucketsWithContext(aws.Context, *s3.ListDirectoryBucketsInput, ...request.Option) (*s3.ListDirectoryBucketsOutput, error) + ListDirectoryBucketsRequest(*s3.ListDirectoryBucketsInput) (*request.Request, *s3.ListDirectoryBucketsOutput) + + ListDirectoryBucketsPages(*s3.ListDirectoryBucketsInput, func(*s3.ListDirectoryBucketsOutput, bool) bool) error + ListDirectoryBucketsPagesWithContext(aws.Context, *s3.ListDirectoryBucketsInput, func(*s3.ListDirectoryBucketsOutput, bool) bool, ...request.Option) error + ListMultipartUploads(*s3.ListMultipartUploadsInput) (*s3.ListMultipartUploadsOutput, error) ListMultipartUploadsWithContext(aws.Context, *s3.ListMultipartUploadsInput, ...request.Option) (*s3.ListMultipartUploadsOutput, error) ListMultipartUploadsRequest(*s3.ListMultipartUploadsInput) (*request.Request, *s3.ListMultipartUploadsOutput) diff --git a/service/s3/s3manager/upload_input.go b/service/s3/s3manager/upload_input.go index 75ae68726fa..8f9e068f75f 100644 --- a/service/s3/s3manager/upload_input.go +++ b/service/s3/s3manager/upload_input.go @@ -23,9 +23,32 @@ type UploadInput struct { _ struct{} `locationName:"PutObjectRequest" type:"structure" payload:"Body"` // The canned ACL to apply to the object. For more information, see Canned ACL - // (https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#CannedACL). + // (https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#CannedACL) + // in the Amazon S3 User Guide. + // + // When adding a new object, you can use headers to grant ACL-based permissions + // to individual Amazon Web Services accounts or to predefined groups defined + // by Amazon S3. These permissions are then added to the ACL on the object. + // By default, all objects are private. Only the owner has full access control. + // For more information, see Access Control List (ACL) Overview (https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html) + // and Managing ACLs Using the REST API (https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-using-rest-api.html) + // in the Amazon S3 User Guide. + // + // If the bucket that you're uploading objects to uses the bucket owner enforced + // setting for S3 Object Ownership, ACLs are disabled and no longer affect permissions. + // Buckets that use this setting only accept PUT requests that don't specify + // an ACL or PUT requests that specify bucket owner full control ACLs, such + // as the bucket-owner-full-control canned ACL or an equivalent form of this + // ACL expressed in the XML format. PUT requests that contain other ACLs (for + // example, custom grants to certain Amazon Web Services accounts) fail and + // return a 400 error with the error code AccessControlListNotSupported. For + // more information, see Controlling ownership of objects and disabling ACLs + // (https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html) + // in the Amazon S3 User Guide. + // + // * This functionality is not supported for directory buckets. // - // This action is not supported by Amazon S3 on Outposts. + // * This functionality is not supported for Amazon S3 on Outposts. ACL *string `location:"header" locationName:"x-amz-acl" type:"string" enum:"ObjectCannedACL"` // The readable body payload to send to S3. @@ -33,19 +56,33 @@ type UploadInput struct { // The bucket name to which the PUT action was initiated. // - // When using this action with an access point, you must direct requests to - // the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. + // Directory buckets - When you use this operation with a directory bucket, + // you must use virtual-hosted-style requests in the format Bucket_name.s3express-az_id.region.amazonaws.com. + // Path-style requests are not supported. Directory bucket names must be unique + // in the chosen Availability Zone. Bucket names must follow the format bucket_base_name--az-id--x-s3 + // (for example, DOC-EXAMPLE-BUCKET--usw2-az2--x-s3). For information about + // bucket naming restrictions, see Directory bucket naming rules (https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html) + // in the Amazon S3 User Guide. + // + // Access points - When you use this action with an access point, you must provide + // the alias of the access point in place of the bucket name or specify the + // access point ARN. When using the access point ARN, you must direct requests + // to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. // When using this action with an access point through the Amazon Web Services // SDKs, you provide the access point ARN in place of the bucket name. For more // information about access point ARNs, see Using access points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html) // in the Amazon S3 User Guide. // - // When you use this action with Amazon S3 on Outposts, you must direct requests - // to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form - // AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When - // you use this action with S3 on Outposts through the Amazon Web Services SDKs, - // you provide the Outposts access point ARN in place of the bucket name. For - // more information about S3 on Outposts ARNs, see What is S3 on Outposts? (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html) + // Access points and Object Lambda access points are not supported by directory + // buckets. + // + // S3 on Outposts - When you use this action with Amazon S3 on Outposts, you + // must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname + // takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. + // When you use this action with S3 on Outposts through the Amazon Web Services + // SDKs, you provide the Outposts access point ARN in place of the bucket name. + // For more information about S3 on Outposts ARNs, see What is S3 on Outposts? + // (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html) // in the Amazon S3 User Guide. // // Bucket is a required field @@ -58,6 +95,8 @@ type UploadInput struct { // // Specifying this header with a PUT action doesn’t affect bucket-level settings // for S3 Bucket Key. + // + // This functionality is not supported for directory buckets. BucketKeyEnabled *bool `location:"header" locationName:"x-amz-server-side-encryption-bucket-key-enabled" type:"boolean"` // Can be used to specify caching behavior along the request/reply chain. For @@ -65,16 +104,33 @@ type UploadInput struct { // (http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9). CacheControl *string `location:"header" locationName:"Cache-Control" type:"string"` - // Indicates the algorithm used to create the checksum for the object when using - // the SDK. This header will not provide any additional functionality if not - // using the SDK. When sending this header, there must be a corresponding x-amz-checksum - // or x-amz-trailer header sent. Otherwise, Amazon S3 fails the request with - // the HTTP status code 400 Bad Request. For more information, see Checking - // object integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) + // Indicates the algorithm used to create the checksum for the object when you + // use the SDK. This header will not provide any additional functionality if + // you don't use the SDK. When you send this header, there must be a corresponding + // x-amz-checksum-algorithm or x-amz-trailer header sent. Otherwise, Amazon + // S3 fails the request with the HTTP status code 400 Bad Request. + // + // For the x-amz-checksum-algorithm header, replace algorithm with the supported + // algorithm from the following list: + // + // * CRC32 + // + // * CRC32C + // + // * SHA1 + // + // * SHA256 + // + // For more information, see Checking object integrity (https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) // in the Amazon S3 User Guide. // - // If you provide an individual checksum, Amazon S3 ignores any provided ChecksumAlgorithm - // parameter. + // If the individual checksum value you provide through x-amz-checksum-algorithm + // doesn't match the checksum algorithm you set through x-amz-sdk-checksum-algorithm, + // Amazon S3 ignores any provided ChecksumAlgorithm parameter and uses the checksum + // algorithm that matches the provided value in x-amz-checksum-algorithm . + // + // For directory buckets, when you use Amazon Web Services SDKs, CRC32 is the + // default checksum algorithm that's used for performance. // // The AWS SDK for Go v1 does not support automatic computing request payload // checksum. This feature is available in the AWS SDK for Go v2. If a value @@ -130,6 +186,13 @@ type UploadInput struct { // integrity check. For more information about REST request authentication, // see REST Authentication (https://docs.aws.amazon.com/AmazonS3/latest/dev/RESTAuthentication.html). // + // The Content-MD5 header is required for any request to upload an object with + // a retention period configured using Amazon S3 Object Lock. For more information + // about Amazon S3 Object Lock, see Amazon S3 Object Lock Overview (https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock-overview.html) + // in the Amazon S3 User Guide. + // + // This functionality is not supported for directory buckets. + // // If the ContentMD5 is provided for a multipart upload, it will be ignored. // Objects that will be uploaded in a single part, the ContentMD5 will be used. ContentMD5 *string `location:"header" locationName:"Content-MD5" type:"string"` @@ -138,9 +201,9 @@ type UploadInput struct { // see https://www.rfc-editor.org/rfc/rfc9110.html#name-content-type (https://www.rfc-editor.org/rfc/rfc9110.html#name-content-type). ContentType *string `location:"header" locationName:"Content-Type" type:"string"` - // The account ID of the expected bucket owner. If the bucket is owned by a - // different account, the request fails with the HTTP status code 403 Forbidden - // (access denied). + // The account ID of the expected bucket owner. If the account ID that you provide + // does not match the actual owner of the bucket, the request fails with the + // HTTP status code 403 Forbidden (access denied). ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` // The date and time at which the object is no longer cacheable. For more information, @@ -149,22 +212,30 @@ type UploadInput struct { // Gives the grantee READ, READ_ACP, and WRITE_ACP permissions on the object. // - // This action is not supported by Amazon S3 on Outposts. + // * This functionality is not supported for directory buckets. + // + // * This functionality is not supported for Amazon S3 on Outposts. GrantFullControl *string `location:"header" locationName:"x-amz-grant-full-control" type:"string"` // Allows grantee to read the object data and its metadata. // - // This action is not supported by Amazon S3 on Outposts. + // * This functionality is not supported for directory buckets. + // + // * This functionality is not supported for Amazon S3 on Outposts. GrantRead *string `location:"header" locationName:"x-amz-grant-read" type:"string"` // Allows grantee to read the object ACL. // - // This action is not supported by Amazon S3 on Outposts. + // * This functionality is not supported for directory buckets. + // + // * This functionality is not supported for Amazon S3 on Outposts. GrantReadACP *string `location:"header" locationName:"x-amz-grant-read-acp" type:"string"` // Allows grantee to write the ACL for the applicable object. // - // This action is not supported by Amazon S3 on Outposts. + // * This functionality is not supported for directory buckets. + // + // * This functionality is not supported for Amazon S3 on Outposts. GrantWriteACP *string `location:"header" locationName:"x-amz-grant-write-acp" type:"string"` // Object key for which the PUT action was initiated. @@ -176,27 +247,37 @@ type UploadInput struct { Metadata map[string]*string `location:"headers" locationName:"x-amz-meta-" type:"map"` // Specifies whether a legal hold will be applied to this object. For more information - // about S3 Object Lock, see Object Lock (https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html). + // about S3 Object Lock, see Object Lock (https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html) + // in the Amazon S3 User Guide. + // + // This functionality is not supported for directory buckets. ObjectLockLegalHoldStatus *string `location:"header" locationName:"x-amz-object-lock-legal-hold" type:"string" enum:"ObjectLockLegalHoldStatus"` // The Object Lock mode that you want to apply to this object. + // + // This functionality is not supported for directory buckets. ObjectLockMode *string `location:"header" locationName:"x-amz-object-lock-mode" type:"string" enum:"ObjectLockMode"` // The date and time when you want this object's Object Lock to expire. Must // be formatted as a timestamp parameter. + // + // This functionality is not supported for directory buckets. ObjectLockRetainUntilDate *time.Time `location:"header" locationName:"x-amz-object-lock-retain-until-date" type:"timestamp" timestampFormat:"iso8601"` // Confirms that the requester knows that they will be charged for the request. // Bucket owners need not specify this parameter in their requests. If either - // the source or destination Amazon S3 bucket has Requester Pays enabled, the - // requester will pay for corresponding charges to copy the object. For information - // about downloading objects from Requester Pays buckets, see Downloading Objects + // the source or destination S3 bucket has Requester Pays enabled, the requester + // will pay for corresponding charges to copy the object. For information about + // downloading objects from Requester Pays buckets, see Downloading Objects // in Requester Pays Buckets (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html) // in the Amazon S3 User Guide. + // + // This functionality is not supported for directory buckets. RequestPayer *string `location:"header" locationName:"x-amz-request-payer" type:"string" enum:"RequestPayer"` - // Specifies the algorithm to use to when encrypting the object (for example, - // AES256). + // Specifies the algorithm to use when encrypting the object (for example, AES256). + // + // This functionality is not supported for directory buckets. SSECustomerAlgorithm *string `location:"header" locationName:"x-amz-server-side-encryption-customer-algorithm" type:"string"` // Specifies the customer-provided encryption key for Amazon S3 to use in encrypting @@ -204,11 +285,15 @@ type UploadInput struct { // S3 does not store the encryption key. The key must be appropriate for use // with the algorithm specified in the x-amz-server-side-encryption-customer-algorithm // header. + // + // This functionality is not supported for directory buckets. SSECustomerKey *string `marshal-as:"blob" location:"header" locationName:"x-amz-server-side-encryption-customer-key" type:"string" sensitive:"true"` // Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. // Amazon S3 uses this header for a message integrity check to ensure that the // encryption key was transmitted without error. + // + // This functionality is not supported for directory buckets. SSECustomerKeyMD5 *string `location:"header" locationName:"x-amz-server-side-encryption-customer-key-MD5" type:"string"` // Specifies the Amazon Web Services KMS Encryption Context to use for object @@ -217,6 +302,8 @@ type UploadInput struct { // object metadata and automatically gets passed on to Amazon Web Services KMS // for future GetObject or CopyObject operations on this object. This value // must be explicitly added during CopyObject operations. + // + // This functionality is not supported for directory buckets. SSEKMSEncryptionContext *string `location:"header" locationName:"x-amz-server-side-encryption-context" type:"string" sensitive:"true"` // If x-amz-server-side-encryption has a valid value of aws:kms or aws:kms:dsse, @@ -227,28 +314,51 @@ type UploadInput struct { // uses the Amazon Web Services managed key (aws/s3) to protect the data. If // the KMS key does not exist in the same account that's issuing the command, // you must use the full ARN and not just the ID. + // + // This functionality is not supported for directory buckets. SSEKMSKeyId *string `location:"header" locationName:"x-amz-server-side-encryption-aws-kms-key-id" type:"string" sensitive:"true"` - // The server-side encryption algorithm used when storing this object in Amazon - // S3 (for example, AES256, aws:kms, aws:kms:dsse). + // The server-side encryption algorithm that was used when you store this object + // in Amazon S3 (for example, AES256, aws:kms, aws:kms:dsse). + // + // General purpose buckets - You have four mutually exclusive options to protect + // data using server-side encryption in Amazon S3, depending on how you choose + // to manage the encryption keys. Specifically, the encryption key options are + // Amazon S3 managed keys (SSE-S3), Amazon Web Services KMS keys (SSE-KMS or + // DSSE-KMS), and customer-provided keys (SSE-C). Amazon S3 encrypts data with + // server-side encryption by using Amazon S3 managed keys (SSE-S3) by default. + // You can optionally tell Amazon S3 to encrypt data at rest by using server-side + // encryption with other key options. For more information, see Using Server-Side + // Encryption (https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingServerSideEncryption.html) + // in the Amazon S3 User Guide. + // + // Directory buckets - For directory buckets, only the server-side encryption + // with Amazon S3 managed keys (SSE-S3) (AES256) value is supported. ServerSideEncryption *string `location:"header" locationName:"x-amz-server-side-encryption" type:"string" enum:"ServerSideEncryption"` // By default, Amazon S3 uses the STANDARD Storage Class to store newly created // objects. The STANDARD storage class provides high durability and high availability. // Depending on performance needs, you can specify a different Storage Class. - // Amazon S3 on Outposts only uses the OUTPOSTS Storage Class. For more information, - // see Storage Classes (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html) + // For more information, see Storage Classes (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html) // in the Amazon S3 User Guide. + // + // * For directory buckets, only the S3 Express One Zone storage class is + // supported to store newly created objects. + // + // * Amazon S3 on Outposts only uses the OUTPOSTS Storage Class. StorageClass *string `location:"header" locationName:"x-amz-storage-class" type:"string" enum:"StorageClass"` // The tag-set for the object. The tag-set must be encoded as URL Query parameters. // (For example, "Key1=Value1") + // + // This functionality is not supported for directory buckets. Tagging *string `location:"header" locationName:"x-amz-tagging" type:"string"` // If the bucket is configured as a website, redirects requests for this object // to another object in the same bucket or to an external URL. Amazon S3 stores // the value of this header in the object metadata. For information about object - // metadata, see Object Key and Metadata (https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingMetadata.html). + // metadata, see Object Key and Metadata (https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingMetadata.html) + // in the Amazon S3 User Guide. // // In the following example, the request header sets the redirect to an object // (anotherPage.html) in the same bucket: @@ -262,6 +372,9 @@ type UploadInput struct { // // For more information about website hosting in Amazon S3, see Hosting Websites // on Amazon S3 (https://docs.aws.amazon.com/AmazonS3/latest/dev/WebsiteHosting.html) - // and How to Configure Website Page Redirects (https://docs.aws.amazon.com/AmazonS3/latest/dev/how-to-page-redirect.html). + // and How to Configure Website Page Redirects (https://docs.aws.amazon.com/AmazonS3/latest/dev/how-to-page-redirect.html) + // in the Amazon S3 User Guide. + // + // This functionality is not supported for directory buckets. WebsiteRedirectLocation *string `location:"header" locationName:"x-amz-website-redirect-location" type:"string"` } diff --git a/service/s3control/api.go b/service/s3control/api.go index 2cbb68ab1c1..cd1b83c221c 100644 --- a/service/s3control/api.go +++ b/service/s3control/api.go @@ -447,6 +447,8 @@ func (c *S3Control) CreateAccessPointRequest(input *CreateAccessPointInput) (req // CreateAccessPoint API operation for AWS S3 Control. // +// This operation is not supported by directory buckets. +// // Creates an access point and associates it with the specified bucket. For // more information, see Managing Data Access with Amazon S3 Access Points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-points.html) // in the Amazon S3 User Guide. @@ -546,6 +548,8 @@ func (c *S3Control) CreateAccessPointForObjectLambdaRequest(input *CreateAccessP // CreateAccessPointForObjectLambda API operation for AWS S3 Control. // +// This operation is not supported by directory buckets. +// // Creates an Object Lambda Access Point. For more information, see Transforming // objects with Object Lambda Access Points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/transforming-objects.html) // in the Amazon S3 User Guide. @@ -755,12 +759,18 @@ func (c *S3Control) CreateJobRequest(input *CreateJobInput) (req *request.Reques // CreateJob API operation for AWS S3 Control. // +// This operation creates an S3 Batch Operations job. +// // You can use S3 Batch Operations to perform large-scale batch actions on Amazon // S3 objects. Batch Operations can run a single action on lists of Amazon S3 // objects that you specify. For more information, see S3 Batch Operations (https://docs.aws.amazon.com/AmazonS3/latest/userguide/batch-ops.html) // in the Amazon S3 User Guide. // -// This action creates a S3 Batch Operations job. +// # Permissions +// +// For information about permissions required to use the Batch Operations, see +// Granting permissions for S3 Batch Operations (https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuAndPermissions.html) +// in the Amazon S3 User Guide. // // Related actions include: // @@ -862,6 +872,8 @@ func (c *S3Control) CreateMultiRegionAccessPointRequest(input *CreateMultiRegion // CreateMultiRegionAccessPoint API operation for AWS S3 Control. // +// This operation is not supported by directory buckets. +// // Creates a Multi-Region Access Point and associates it with the specified // buckets. For more information about creating Multi-Region Access Points, // see Creating Multi-Region Access Points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/CreatingMultiRegionAccessPoints.html) @@ -1408,6 +1420,8 @@ func (c *S3Control) DeleteAccessPointRequest(input *DeleteAccessPointInput) (req // DeleteAccessPoint API operation for AWS S3 Control. // +// This operation is not supported by directory buckets. +// // Deletes the specified access point. // // All Amazon S3 on Outposts REST API requests for this action require an additional @@ -1500,6 +1514,8 @@ func (c *S3Control) DeleteAccessPointForObjectLambdaRequest(input *DeleteAccessP // DeleteAccessPointForObjectLambda API operation for AWS S3 Control. // +// This operation is not supported by directory buckets. +// // Deletes the specified Object Lambda Access Point. // // The following actions are related to DeleteAccessPointForObjectLambda: @@ -1587,6 +1603,8 @@ func (c *S3Control) DeleteAccessPointPolicyRequest(input *DeleteAccessPointPolic // DeleteAccessPointPolicy API operation for AWS S3 Control. // +// This operation is not supported by directory buckets. +// // Deletes the access point policy for the specified access point. // // All Amazon S3 on Outposts REST API requests for this action require an additional @@ -1677,6 +1695,8 @@ func (c *S3Control) DeleteAccessPointPolicyForObjectLambdaRequest(input *DeleteA // DeleteAccessPointPolicyForObjectLambda API operation for AWS S3 Control. // +// This operation is not supported by directory buckets. +// // Removes the resource policy for an Object Lambda Access Point. // // The following actions are related to DeleteAccessPointPolicyForObjectLambda: @@ -2308,9 +2328,12 @@ func (c *S3Control) DeleteJobTaggingRequest(input *DeleteJobTaggingInput) (req * // DeleteJobTagging API operation for AWS S3 Control. // -// Removes the entire tag set from the specified S3 Batch Operations job. To -// use the DeleteJobTagging operation, you must have permission to perform the -// s3:DeleteJobTagging action. For more information, see Controlling access +// Removes the entire tag set from the specified S3 Batch Operations job. +// +// # Permissions +// +// To use the DeleteJobTagging operation, you must have permission to perform +// the s3:DeleteJobTagging action. For more information, see Controlling access // and labeling jobs using tags (https://docs.aws.amazon.com/AmazonS3/latest/dev/batch-ops-managing-jobs.html#batch-ops-job-tags) // in the Amazon S3 User Guide. // @@ -2408,6 +2431,8 @@ func (c *S3Control) DeleteMultiRegionAccessPointRequest(input *DeleteMultiRegion // DeleteMultiRegionAccessPoint API operation for AWS S3 Control. // +// This operation is not supported by directory buckets. +// // Deletes a Multi-Region Access Point. This action does not delete the buckets // associated with the Multi-Region Access Point, only the Multi-Region Access // Point itself. @@ -2505,6 +2530,8 @@ func (c *S3Control) DeletePublicAccessBlockRequest(input *DeletePublicAccessBloc // DeletePublicAccessBlock API operation for AWS S3 Control. // +// This operation is not supported by directory buckets. +// // Removes the PublicAccessBlock configuration for an Amazon Web Services account. // For more information, see Using Amazon S3 block public access (https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html). // @@ -2588,6 +2615,8 @@ func (c *S3Control) DeleteStorageLensConfigurationRequest(input *DeleteStorageLe // DeleteStorageLensConfiguration API operation for AWS S3 Control. // +// This operation is not supported by directory buckets. +// // Deletes the Amazon S3 Storage Lens configuration. For more information about // S3 Storage Lens, see Assessing your storage activity and usage with Amazon // S3 Storage Lens (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage_lens.html) @@ -2672,6 +2701,8 @@ func (c *S3Control) DeleteStorageLensConfigurationTaggingRequest(input *DeleteSt // DeleteStorageLensConfigurationTagging API operation for AWS S3 Control. // +// This operation is not supported by directory buckets. +// // Deletes the Amazon S3 Storage Lens configuration tags. For more information // about S3 Storage Lens, see Assessing your storage activity and usage with // Amazon S3 Storage Lens (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage_lens.html) @@ -2842,6 +2873,11 @@ func (c *S3Control) DescribeJobRequest(input *DescribeJobInput) (req *request.Re // job. For more information, see S3 Batch Operations (https://docs.aws.amazon.com/AmazonS3/latest/userguide/batch-ops.html) // in the Amazon S3 User Guide. // +// # Permissions +// +// To use the DescribeJob operation, you must have permission to perform the +// s3:DescribeJob action. +// // Related actions include: // // - CreateJob (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateJob.html) @@ -2940,6 +2976,8 @@ func (c *S3Control) DescribeMultiRegionAccessPointOperationRequest(input *Descri // DescribeMultiRegionAccessPointOperation API operation for AWS S3 Control. // +// This operation is not supported by directory buckets. +// // Retrieves the status of an asynchronous request to manage a Multi-Region // Access Point. For more information about managing Multi-Region Access Points // and how asynchronous requests work, see Managing Multi-Region Access Points @@ -3545,6 +3583,8 @@ func (c *S3Control) GetAccessPointRequest(input *GetAccessPointInput) (req *requ // GetAccessPoint API operation for AWS S3 Control. // +// This operation is not supported by directory buckets. +// // Returns configuration information about the specified access point. // // All Amazon S3 on Outposts REST API requests for this action require an additional @@ -3636,6 +3676,8 @@ func (c *S3Control) GetAccessPointConfigurationForObjectLambdaRequest(input *Get // GetAccessPointConfigurationForObjectLambda API operation for AWS S3 Control. // +// This operation is not supported by directory buckets. +// // Returns configuration for an Object Lambda Access Point. // // The following actions are related to GetAccessPointConfigurationForObjectLambda: @@ -3715,6 +3757,8 @@ func (c *S3Control) GetAccessPointForObjectLambdaRequest(input *GetAccessPointFo // GetAccessPointForObjectLambda API operation for AWS S3 Control. // +// This operation is not supported by directory buckets. +// // Returns configuration information about the specified Object Lambda Access // Point // @@ -3802,6 +3846,8 @@ func (c *S3Control) GetAccessPointPolicyRequest(input *GetAccessPointPolicyInput // GetAccessPointPolicy API operation for AWS S3 Control. // +// This operation is not supported by directory buckets. +// // Returns the access point policy associated with the specified access point. // // The following actions are related to GetAccessPointPolicy: @@ -3883,6 +3929,8 @@ func (c *S3Control) GetAccessPointPolicyForObjectLambdaRequest(input *GetAccessP // GetAccessPointPolicyForObjectLambda API operation for AWS S3 Control. // +// This operation is not supported by directory buckets. +// // Returns the resource policy for an Object Lambda Access Point. // // The following actions are related to GetAccessPointPolicyForObjectLambda: @@ -3964,6 +4012,8 @@ func (c *S3Control) GetAccessPointPolicyStatusRequest(input *GetAccessPointPolic // GetAccessPointPolicyStatus API operation for AWS S3 Control. // +// This operation is not supported by directory buckets. +// // Indicates whether the specified access point currently has a policy that // allows public access. For more information about public access through access // points, see Managing Data Access with Amazon S3 access points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-points.html) @@ -4042,6 +4092,8 @@ func (c *S3Control) GetAccessPointPolicyStatusForObjectLambdaRequest(input *GetA // GetAccessPointPolicyStatusForObjectLambda API operation for AWS S3 Control. // +// This operation is not supported by directory buckets. +// // Returns the status of the resource policy associated with an Object Lambda // Access Point. // @@ -4885,10 +4937,13 @@ func (c *S3Control) GetJobTaggingRequest(input *GetJobTaggingInput) (req *reques // GetJobTagging API operation for AWS S3 Control. // -// Returns the tags on an S3 Batch Operations job. To use the GetJobTagging -// operation, you must have permission to perform the s3:GetJobTagging action. -// For more information, see Controlling access and labeling jobs using tags -// (https://docs.aws.amazon.com/AmazonS3/latest/dev/batch-ops-managing-jobs.html#batch-ops-job-tags) +// Returns the tags on an S3 Batch Operations job. +// +// # Permissions +// +// To use the GetJobTagging operation, you must have permission to perform the +// s3:GetJobTagging action. For more information, see Controlling access and +// labeling jobs using tags (https://docs.aws.amazon.com/AmazonS3/latest/dev/batch-ops-managing-jobs.html#batch-ops-job-tags) // in the Amazon S3 User Guide. // // Related actions include: @@ -4985,6 +5040,8 @@ func (c *S3Control) GetMultiRegionAccessPointRequest(input *GetMultiRegionAccess // GetMultiRegionAccessPoint API operation for AWS S3 Control. // +// This operation is not supported by directory buckets. +// // Returns configuration information about the specified Multi-Region Access // Point. // @@ -5080,6 +5137,8 @@ func (c *S3Control) GetMultiRegionAccessPointPolicyRequest(input *GetMultiRegion // GetMultiRegionAccessPointPolicy API operation for AWS S3 Control. // +// This operation is not supported by directory buckets. +// // Returns the access control policy of the specified Multi-Region Access Point. // // This action will always be routed to the US West (Oregon) Region. For more @@ -5170,6 +5229,8 @@ func (c *S3Control) GetMultiRegionAccessPointPolicyStatusRequest(input *GetMulti // GetMultiRegionAccessPointPolicyStatus API operation for AWS S3 Control. // +// This operation is not supported by directory buckets. +// // Indicates whether the specified Multi-Region Access Point has an access control // policy that allows public access. // @@ -5261,6 +5322,8 @@ func (c *S3Control) GetMultiRegionAccessPointRoutesRequest(input *GetMultiRegion // GetMultiRegionAccessPointRoutes API operation for AWS S3 Control. // +// This operation is not supported by directory buckets. +// // Returns the routing configuration for a Multi-Region Access Point, indicating // which Regions are active or passive. // @@ -5353,6 +5416,8 @@ func (c *S3Control) GetPublicAccessBlockRequest(input *GetPublicAccessBlockInput // GetPublicAccessBlock API operation for AWS S3 Control. // +// This operation is not supported by directory buckets. +// // Retrieves the PublicAccessBlock configuration for an Amazon Web Services // account. For more information, see Using Amazon S3 block public access (https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html). // @@ -5441,6 +5506,8 @@ func (c *S3Control) GetStorageLensConfigurationRequest(input *GetStorageLensConf // GetStorageLensConfiguration API operation for AWS S3 Control. // +// This operation is not supported by directory buckets. +// // Gets the Amazon S3 Storage Lens configuration. For more information, see // Assessing your storage activity and usage with Amazon S3 Storage Lens (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage_lens.html) // in the Amazon S3 User Guide. For a complete list of S3 Storage Lens metrics, @@ -5525,6 +5592,8 @@ func (c *S3Control) GetStorageLensConfigurationTaggingRequest(input *GetStorageL // GetStorageLensConfigurationTagging API operation for AWS S3 Control. // +// This operation is not supported by directory buckets. +// // Gets the tags of Amazon S3 Storage Lens configuration. For more information // about S3 Storage Lens, see Assessing your storage activity and usage with // Amazon S3 Storage Lens (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage_lens.html) @@ -6121,6 +6190,8 @@ func (c *S3Control) ListAccessPointsRequest(input *ListAccessPointsInput) (req * // ListAccessPoints API operation for AWS S3 Control. // +// This operation is not supported by directory buckets. +// // Returns a list of the access points that are owned by the current account // that's associated with the specified bucket. You can retrieve up to 1000 // access points per call. If the specified bucket has more than 1,000 access @@ -6274,6 +6345,8 @@ func (c *S3Control) ListAccessPointsForObjectLambdaRequest(input *ListAccessPoin // ListAccessPointsForObjectLambda API operation for AWS S3 Control. // +// This operation is not supported by directory buckets. +// // Returns some or all (up to 1,000) access points associated with the Object // Lambda Access Point per call. If there are more access points than what can // be returned in one call, the response will include a continuation token that @@ -6417,11 +6490,16 @@ func (c *S3Control) ListJobsRequest(input *ListJobsInput) (req *request.Request, // ListJobs API operation for AWS S3 Control. // -// Lists current S3 Batch Operations jobs and jobs that have ended within the -// last 30 days for the Amazon Web Services account making the request. For -// more information, see S3 Batch Operations (https://docs.aws.amazon.com/AmazonS3/latest/userguide/batch-ops.html) +// Lists current S3 Batch Operations jobs as well as the jobs that have ended +// within the last 30 days for the Amazon Web Services account making the request. +// For more information, see S3 Batch Operations (https://docs.aws.amazon.com/AmazonS3/latest/userguide/batch-ops.html) // in the Amazon S3 User Guide. // +// # Permissions +// +// To use the ListJobs operation, you must have permission to perform the s3:ListJobs +// action. +// // Related actions include: // // - CreateJob (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateJob.html) @@ -6575,6 +6653,8 @@ func (c *S3Control) ListMultiRegionAccessPointsRequest(input *ListMultiRegionAcc // ListMultiRegionAccessPoints API operation for AWS S3 Control. // +// This operation is not supported by directory buckets. +// // Returns a list of the Multi-Region Access Points currently associated with // the specified Amazon Web Services account. Each call can return up to 100 // Multi-Region Access Points, the maximum number of Multi-Region Access Points @@ -6725,6 +6805,8 @@ func (c *S3Control) ListRegionalBucketsRequest(input *ListRegionalBucketsInput) // ListRegionalBuckets API operation for AWS S3 Control. // +// This operation is not supported by directory buckets. +// // Returns a list of all Outposts buckets in an Outpost that are owned by the // authenticated sender of the request. For more information, see Using Amazon // S3 on Outposts (https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html) @@ -6865,6 +6947,8 @@ func (c *S3Control) ListStorageLensConfigurationsRequest(input *ListStorageLensC // ListStorageLensConfigurations API operation for AWS S3 Control. // +// This operation is not supported by directory buckets. +// // Gets a list of Amazon S3 Storage Lens configurations. For more information // about S3 Storage Lens, see Assessing your storage activity and usage with // Amazon S3 Storage Lens (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage_lens.html) @@ -7316,6 +7400,8 @@ func (c *S3Control) PutAccessPointConfigurationForObjectLambdaRequest(input *Put // PutAccessPointConfigurationForObjectLambda API operation for AWS S3 Control. // +// This operation is not supported by directory buckets. +// // Replaces configuration for an Object Lambda Access Point. // // The following actions are related to PutAccessPointConfigurationForObjectLambda: @@ -7399,6 +7485,8 @@ func (c *S3Control) PutAccessPointPolicyRequest(input *PutAccessPointPolicyInput // PutAccessPointPolicy API operation for AWS S3 Control. // +// This operation is not supported by directory buckets. +// // Associates an access policy with the specified access point. Each access // point can have only one policy, so a request made to this API replaces any // existing policy associated with the specified access point. @@ -7491,6 +7579,8 @@ func (c *S3Control) PutAccessPointPolicyForObjectLambdaRequest(input *PutAccessP // PutAccessPointPolicyForObjectLambda API operation for AWS S3 Control. // +// This operation is not supported by directory buckets. +// // Creates or replaces resource policy for an Object Lambda Access Point. For // an example policy, see Creating Object Lambda Access Points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/olap-create.html#olap-create-cli) // in the Amazon S3 User Guide. @@ -8241,7 +8331,7 @@ func (c *S3Control) PutJobTaggingRequest(input *PutJobTaggingInput) (req *reques // associated with the job. To modify the existing tag set, you can either replace // the existing tag set entirely, or make changes within the existing tag set // by retrieving the existing tag set using GetJobTagging (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetJobTagging.html), -// modify that tag set, and use this action to replace the tag set with the +// modify that tag set, and use this operation to replace the tag set with the // one you modified. For more information, see Controlling access and labeling // jobs using tags (https://docs.aws.amazon.com/AmazonS3/latest/dev/batch-ops-managing-jobs.html#batch-ops-job-tags) // in the Amazon S3 User Guide. @@ -8265,6 +8355,8 @@ func (c *S3Control) PutJobTaggingRequest(input *PutJobTaggingInput) (req *reques // Restrictions (https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/allocation-tag-restrictions.html) // in the Billing and Cost Management User Guide. // +// # Permissions +// // To use the PutJobTagging operation, you must have permission to perform the // s3:PutJobTagging action. // @@ -8365,6 +8457,8 @@ func (c *S3Control) PutMultiRegionAccessPointPolicyRequest(input *PutMultiRegion // PutMultiRegionAccessPointPolicy API operation for AWS S3 Control. // +// This operation is not supported by directory buckets. +// // Associates an access control policy with the specified Multi-Region Access // Point. Each Multi-Region Access Point can have only one policy, so a request // made to this action replaces any existing policy that is associated with @@ -8455,6 +8549,8 @@ func (c *S3Control) PutPublicAccessBlockRequest(input *PutPublicAccessBlockInput // PutPublicAccessBlock API operation for AWS S3 Control. // +// This operation is not supported by directory buckets. +// // Creates or modifies the PublicAccessBlock configuration for an Amazon Web // Services account. For this operation, users must have the s3:PutAccountPublicAccessBlock // permission. For more information, see Using Amazon S3 block public access @@ -8540,6 +8636,8 @@ func (c *S3Control) PutStorageLensConfigurationRequest(input *PutStorageLensConf // PutStorageLensConfiguration API operation for AWS S3 Control. // +// This operation is not supported by directory buckets. +// // Puts an Amazon S3 Storage Lens configuration. For more information about // S3 Storage Lens, see Working with Amazon S3 Storage Lens (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage_lens.html) // in the Amazon S3 User Guide. For a complete list of S3 Storage Lens metrics, @@ -8625,6 +8723,8 @@ func (c *S3Control) PutStorageLensConfigurationTaggingRequest(input *PutStorageL // PutStorageLensConfigurationTagging API operation for AWS S3 Control. // +// This operation is not supported by directory buckets. +// // Put or replace tags on an existing Amazon S3 Storage Lens configuration. // For more information about S3 Storage Lens, see Assessing your storage activity // and usage with Amazon S3 Storage Lens (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage_lens.html) @@ -8713,6 +8813,8 @@ func (c *S3Control) SubmitMultiRegionAccessPointRoutesRequest(input *SubmitMulti // SubmitMultiRegionAccessPointRoutes API operation for AWS S3 Control. // +// This operation is not supported by directory buckets. +// // Submits an updated route configuration for a Multi-Region Access Point. This // API operation updates the routing status for the specified Regions from active // to passive, or from passive to active. A value of 0 indicates a passive status, @@ -9096,6 +9198,11 @@ func (c *S3Control) UpdateJobPriorityRequest(input *UpdateJobPriorityInput) (req // see S3 Batch Operations (https://docs.aws.amazon.com/AmazonS3/latest/userguide/batch-ops.html) // in the Amazon S3 User Guide. // +// # Permissions +// +// To use the UpdateJobPriority operation, you must have permission to perform +// the s3:UpdateJobPriority action. +// // Related actions include: // // - CreateJob (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateJob.html) @@ -9190,11 +9297,16 @@ func (c *S3Control) UpdateJobStatusRequest(input *UpdateJobStatusInput) (req *re // UpdateJobStatus API operation for AWS S3 Control. // -// Updates the status for the specified job. Use this action to confirm that +// Updates the status for the specified job. Use this operation to confirm that // you want to run a job or to cancel an existing job. For more information, // see S3 Batch Operations (https://docs.aws.amazon.com/AmazonS3/latest/userguide/batch-ops.html) // in the Amazon S3 User Guide. // +// # Permissions +// +// To use the UpdateJobStatus operation, you must have permission to perform +// the s3:UpdateJobStatus action. +// // Related actions include: // // - CreateJob (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateJob.html) @@ -14752,7 +14864,7 @@ type Destination struct { // S3 on Outposts are stored in the OUTPOSTS storage class. S3 on Outposts uses // the OUTPOSTS storage class to create the object replicas. // - // Values other than OUTPOSTS are not supported by Amazon S3 on Outposts. + // Values other than OUTPOSTS aren't supported by Amazon S3 on Outposts. StorageClass *string `type:"string" enum:"ReplicationStorageClass"` } @@ -19368,6 +19480,8 @@ type JobManifest struct { _ struct{} `type:"structure"` // Contains the information required to locate the specified job's manifest. + // Manifests can't be imported from directory buckets. For more information, + // see Directory buckets (https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-buckets-overview.html). // // Location is a required field Location *JobManifestLocation `type:"structure" required:"true"` @@ -19586,7 +19700,9 @@ func (s *JobManifestGeneratorFilter) SetObjectSizeLessThanBytes(v int64) *JobMan return s } -// Contains the information required to locate a manifest object. +// Contains the information required to locate a manifest object. Manifests +// can't be imported from directory buckets. For more information, see Directory +// buckets (https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-buckets-overview.html). type JobManifestLocation struct { _ struct{} `type:"structure"` @@ -19741,14 +19857,20 @@ type JobOperation struct { // Directs the specified job to execute a DELETE Object tagging call on every // object in the manifest. + // + // This functionality is not supported by directory buckets. S3DeleteObjectTagging *S3DeleteObjectTaggingOperation `type:"structure"` // Directs the specified job to initiate restore requests for every archived // object in the manifest. + // + // This functionality is not supported by directory buckets. S3InitiateRestoreObject *S3InitiateRestoreObjectOperation `type:"structure"` // Directs the specified job to run a PutObjectAcl call on every object in the // manifest. + // + // This functionality is not supported by directory buckets. S3PutObjectAcl *S3SetObjectAclOperation `type:"structure"` // Directs the specified job to run a PUT Copy object call on every object in @@ -19760,6 +19882,8 @@ type JobOperation struct { // API operation. For more information, see Using S3 Object Lock legal hold // with S3 Batch Operations (https://docs.aws.amazon.com/AmazonS3/latest/dev/batch-ops-legal-hold.html) // in the Amazon S3 User Guide. + // + // This functionality is not supported by directory buckets. S3PutObjectLegalHold *S3SetObjectLegalHoldOperation `type:"structure"` // Contains the configuration parameters for the Object Lock retention action @@ -19767,14 +19891,20 @@ type JobOperation struct { // underlying PutObjectRetention API operation. For more information, see Using // S3 Object Lock retention with S3 Batch Operations (https://docs.aws.amazon.com/AmazonS3/latest/dev/batch-ops-retention-date.html) // in the Amazon S3 User Guide. + // + // This functionality is not supported by directory buckets. S3PutObjectRetention *S3SetObjectRetentionOperation `type:"structure"` // Directs the specified job to run a PUT Object tagging call on every object // in the manifest. + // + // This functionality is not supported by directory buckets. S3PutObjectTagging *S3SetObjectTaggingOperation `type:"structure"` // Directs the specified job to invoke ReplicateObject on every object in the // job's manifest. + // + // This functionality is not supported by directory buckets. S3ReplicateObject *S3ReplicateObjectOperation `type:"structure"` } @@ -19953,6 +20083,9 @@ type JobReport struct { // The Amazon Resource Name (ARN) for the bucket where specified job-completion // report will be stored. + // + // Directory buckets - Directory buckets aren't supported as a location for + // Batch Operations to store job completion reports. Bucket *string `min:"1" type:"string"` // Indicates whether the specified job will generate a job-completion report. @@ -20134,6 +20267,31 @@ type LambdaInvokeOperation struct { // The Amazon Resource Name (ARN) for the Lambda function that the specified // job will invoke on every object in the manifest. FunctionArn *string `min:"1" type:"string"` + + // Specifies the schema version for the payload that Batch Operations sends + // when invoking an Lambda function. Version 1.0 is the default. Version 2.0 + // is required when you use Batch Operations to invoke Lambda functions that + // act on directory buckets, or if you need to specify UserArguments. For more + // information, see Using Lambda with Amazon S3 Batch Operations and Amazon + // S3 Express One Zone (https://aws.amazon.com/blogs/storage/using-lambda-with-s3-batch-operations-and-s3-express-one-zone/) + // in the Amazon Web Services Storage Blog. + // + // Ensure that your Lambda function code expects InvocationSchemaVersion 2.0 + // and uses bucket name rather than bucket ARN. If the InvocationSchemaVersion + // does not match what your Lambda function expects, your function might not + // work as expected. + // + // Directory buckets - To initiate Amazon Web Services Lambda function to perform + // custom actions on objects in directory buckets, you must specify 2.0. + InvocationSchemaVersion *string `min:"1" type:"string"` + + // Key-value pairs that are passed in the payload that Batch Operations sends + // when invoking an Lambda function. You must specify InvocationSchemaVersion + // 2.0 for LambdaInvoke operations that include UserArguments. For more information, + // see Using Lambda with Amazon S3 Batch Operations and Amazon S3 Express One + // Zone (https://aws.amazon.com/blogs/storage/using-lambda-with-s3-batch-operations-and-s3-express-one-zone/) + // in the Amazon Web Services Storage Blog. + UserArguments map[string]*string `min:"1" type:"map"` } // String returns the string representation. @@ -20160,6 +20318,12 @@ func (s *LambdaInvokeOperation) Validate() error { if s.FunctionArn != nil && len(*s.FunctionArn) < 1 { invalidParams.Add(request.NewErrParamMinLen("FunctionArn", 1)) } + if s.InvocationSchemaVersion != nil && len(*s.InvocationSchemaVersion) < 1 { + invalidParams.Add(request.NewErrParamMinLen("InvocationSchemaVersion", 1)) + } + if s.UserArguments != nil && len(s.UserArguments) < 1 { + invalidParams.Add(request.NewErrParamMinLen("UserArguments", 1)) + } if invalidParams.Len() > 0 { return invalidParams @@ -20173,6 +20337,18 @@ func (s *LambdaInvokeOperation) SetFunctionArn(v string) *LambdaInvokeOperation return s } +// SetInvocationSchemaVersion sets the InvocationSchemaVersion field's value. +func (s *LambdaInvokeOperation) SetInvocationSchemaVersion(v string) *LambdaInvokeOperation { + s.InvocationSchemaVersion = &v + return s +} + +// SetUserArguments sets the UserArguments field's value. +func (s *LambdaInvokeOperation) SetUserArguments(v map[string]*string) *LambdaInvokeOperation { + s.UserArguments = v + return s +} + // The container for the Outposts bucket lifecycle configuration. type LifecycleConfiguration struct { _ struct{} `type:"structure"` @@ -26597,6 +26773,8 @@ func (s *S3BucketDestination) SetPrefix(v string) *S3BucketDestination { type S3CopyObjectOperation struct { _ struct{} `type:"structure"` + // + // This functionality is not supported by directory buckets. AccessControlGrants []*S3Grant `type:"list"` // Specifies whether Amazon S3 should use an S3 Bucket Key for object encryption @@ -26606,8 +26784,12 @@ type S3CopyObjectOperation struct { // // Specifying this header with an object action doesn’t affect bucket-level // settings for S3 Bucket Key. + // + // This functionality is not supported by directory buckets. BucketKeyEnabled *bool `type:"boolean"` + // + // This functionality is not supported by directory buckets. CannedAccessControlList *string `type:"string" enum:"S3CannedAccessControlList"` // Indicates the algorithm that you want Amazon S3 to use to create the checksum. @@ -26624,27 +26806,52 @@ type S3CopyObjectOperation struct { // no tags. Otherwise, Amazon S3 assigns the supplied tags to the new objects. NewObjectMetadata *S3ObjectMetadata `type:"structure"` + // Specifies a list of tags to add to the destination objects after they are + // copied. If NewObjectTagging is not specified, the tags of the source objects + // are copied to destination objects by default. + // + // Directory buckets - Tags aren't supported by directory buckets. If your source + // objects have tags and your destination bucket is a directory bucket, specify + // an empty tag set in the NewObjectTagging field to prevent copying the source + // object tags to the directory bucket. NewObjectTagging []*S3Tag `type:"list"` // The legal hold status to be applied to all objects in the Batch Operations // job. + // + // This functionality is not supported by directory buckets. ObjectLockLegalHoldStatus *string `type:"string" enum:"S3ObjectLockLegalHoldStatus"` // The retention mode to be applied to all objects in the Batch Operations job. + // + // This functionality is not supported by directory buckets. ObjectLockMode *string `type:"string" enum:"S3ObjectLockMode"` // The date when the applied object retention configuration expires on all objects // in the Batch Operations job. + // + // This functionality is not supported by directory buckets. ObjectLockRetainUntilDate *time.Time `type:"timestamp"` - // Specifies an optional metadata property for website redirects, x-amz-website-redirect-location. - // Allows webpage redirects if the object is accessed through a website endpoint. + // If the destination bucket is configured as a website, specifies an optional + // metadata property for website redirects, x-amz-website-redirect-location. + // Allows webpage redirects if the object copy is accessed through a website + // endpoint. + // + // This functionality is not supported by directory buckets. RedirectLocation *string `min:"1" type:"string"` + // + // This functionality is not supported by directory buckets. RequesterPays *bool `type:"boolean"` + // + // This functionality is not supported by directory buckets. SSEAwsKmsKeyId *string `min:"1" type:"string"` + // Specify the storage class for the destination objects in a Copy operation. + // + // Directory buckets - This functionality is not supported by directory buckets. StorageClass *string `type:"string" enum:"S3StorageClass"` // Specifies the folder prefix that you want the objects to be copied into. @@ -26653,8 +26860,15 @@ type S3CopyObjectOperation struct { TargetKeyPrefix *string `min:"1" type:"string"` // Specifies the destination bucket Amazon Resource Name (ARN) for the batch - // copy operation. For example, to copy objects to a bucket named destinationBucket, - // set the TargetResource property to arn:aws:s3:::destinationBucket. + // copy operation. + // + // * General purpose buckets - For example, to copy objects to a general + // purpose bucket named destinationBucket, set the TargetResource property + // to arn:aws:s3:::destinationBucket. + // + // * Directory buckets - For example, to copy objects to a directory bucket + // named destinationBucket in the Availability Zone; identified by the AZ + // ID usw2-az2, set the TargetResource property to arn:aws:s3express:region:account_id:/bucket/destination_bucket_base_name--usw2-az2--x-s3. TargetResource *string `min:"1" type:"string"` UnModifiedSinceConstraint *time.Time `type:"timestamp"` @@ -26867,7 +27081,9 @@ type S3GeneratedManifestDescriptor struct { // The format of the generated manifest. Format *string `type:"string" enum:"GeneratedManifestFormat"` - // Contains the information required to locate a manifest object. + // Contains the information required to locate a manifest object. Manifests + // can't be imported from directory buckets. For more information, see Directory + // buckets (https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-buckets-overview.html). Location *JobManifestLocation `type:"structure"` } @@ -27090,16 +27306,21 @@ type S3JobManifestGenerator struct { // Services account ID must match this value, else the job fails. ExpectedBucketOwner *string `type:"string"` - // Specifies rules the S3JobManifestGenerator should use to use to decide whether - // an object in the source bucket should or should not be included in the generated + // Specifies rules the S3JobManifestGenerator should use to decide whether an + // object in the source bucket should or should not be included in the generated // job manifest. Filter *JobManifestGeneratorFilter `type:"structure"` - // Specifies the location the generated manifest will be written to. + // Specifies the location the generated manifest will be written to. Manifests + // can't be written to directory buckets. For more information, see Directory + // buckets (https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-buckets-overview.html). ManifestOutputLocation *S3ManifestOutputLocation `type:"structure"` // The source bucket used by the ManifestGenerator. // + // Directory buckets - Directory buckets aren't supported as the source buckets + // used by S3JobManifestGenerator to generate the job manifest. + // // SourceBucket is a required field SourceBucket *string `min:"1" type:"string" required:"true"` } @@ -27182,6 +27403,9 @@ type S3ManifestOutputLocation struct { // The bucket ARN the generated manifest should be written to. // + // Directory buckets - Directory buckets aren't supported as the buckets to + // store the generated manifest. + // // Bucket is a required field Bucket *string `min:"1" type:"string" required:"true"` @@ -27336,16 +27560,22 @@ type S3ObjectMetadata struct { ContentLanguage *string `min:"1" type:"string"` + // This member has been deprecated. ContentLength *int64 `type:"long"` + // This member has been deprecated. ContentMD5 *string `min:"1" type:"string"` ContentType *string `min:"1" type:"string"` HttpExpiresDate *time.Time `type:"timestamp"` + // This member has been deprecated. RequesterCharged *bool `type:"boolean"` + // + // For directory buckets, only the server-side encryption with Amazon S3 managed + // keys (SSE-S3) (AES256) is supported. SSEAlgorithm *string `type:"string" enum:"S3SSEAlgorithm"` UserMetadata map[string]*string `type:"map"` @@ -27643,6 +27873,8 @@ func (s *S3SetObjectAclOperation) SetAccessControlPolicy(v *S3AccessControlPolic // API operation. For more information, see Using S3 Object Lock legal hold // with S3 Batch Operations (https://docs.aws.amazon.com/AmazonS3/latest/dev/batch-ops-legal-hold.html) // in the Amazon S3 User Guide. +// +// This functionality is not supported by directory buckets. type S3SetObjectLegalHoldOperation struct { _ struct{} `type:"structure"` @@ -27700,6 +27932,8 @@ func (s *S3SetObjectLegalHoldOperation) SetLegalHold(v *S3ObjectLockLegalHold) * // underlying PutObjectRetention API operation. For more information, see Using // S3 Object Lock retention with S3 Batch Operations (https://docs.aws.amazon.com/AmazonS3/latest/dev/batch-ops-retention-date.html) // in the Amazon S3 User Guide. +// +// This functionality is not supported by directory buckets. type S3SetObjectRetentionOperation struct { _ struct{} `type:"structure"`