diff --git a/CHANGELOG.md b/CHANGELOG.md index 4e5a5f7066f..3b6dca2d02f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,12 @@ +Release v1.44.334 (2023-08-29) +=== + +### Service Client Updates +* `service/cognito-idp`: Updates service API, documentation, and examples +* `service/fsx`: Updates service documentation +* `service/omics`: Updates service API and documentation +* `service/sesv2`: Updates service API, documentation, paginators, and examples + Release v1.44.333 (2023-08-28) === diff --git a/aws/version.go b/aws/version.go index 96b11c71c79..da19250d573 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.44.333" +const SDKVersion = "1.44.334" diff --git a/models/apis/cognito-idp/2016-04-18/api-2.json b/models/apis/cognito-idp/2016-04-18/api-2.json index 1b519d9f278..c96db61a592 100644 --- a/models/apis/cognito-idp/2016-04-18/api-2.json +++ b/models/apis/cognito-idp/2016-04-18/api-2.json @@ -543,7 +543,8 @@ {"shape":"InternalErrorException"}, {"shape":"SoftwareTokenMFANotFoundException"}, {"shape":"ForbiddenException"} - ] + ], + "authtype":"none" }, "ChangePassword":{ "name":"ChangePassword", @@ -590,7 +591,8 @@ {"shape":"UserNotConfirmedException"}, {"shape":"InternalErrorException"}, {"shape":"ForbiddenException"} - ] + ], + "authtype":"none" }, "ConfirmForgotPassword":{ "name":"ConfirmForgotPassword", @@ -1039,7 +1041,8 @@ {"shape":"UserNotConfirmedException"}, {"shape":"InternalErrorException"}, {"shape":"ForbiddenException"} - ] + ], + "authtype":"none" }, "ForgotPassword":{ "name":"ForgotPassword", @@ -1103,7 +1106,8 @@ {"shape":"UserNotConfirmedException"}, {"shape":"InternalErrorException"}, {"shape":"ForbiddenException"} - ] + ], + "authtype":"none" }, "GetGroup":{ "name":"GetGroup", @@ -1266,7 +1270,8 @@ {"shape":"UserNotConfirmedException"}, {"shape":"InternalErrorException"}, {"shape":"ForbiddenException"} - ] + ], + "authtype":"none" }, "InitiateAuth":{ "name":"InitiateAuth", @@ -1314,7 +1319,8 @@ {"shape":"UserNotConfirmedException"}, {"shape":"InternalErrorException"}, {"shape":"ForbiddenException"} - ] + ], + "authtype":"none" }, "ListGroups":{ "name":"ListGroups", @@ -1535,7 +1541,8 @@ {"shape":"UnsupportedOperationException"}, {"shape":"UnsupportedTokenTypeException"}, {"shape":"ForbiddenException"} - ] + ], + "authtype":"none" }, "SetLogDeliveryConfiguration":{ "name":"SetLogDeliveryConfiguration", @@ -1605,7 +1612,8 @@ {"shape":"UserNotConfirmedException"}, {"shape":"InternalErrorException"}, {"shape":"ForbiddenException"} - ] + ], + "authtype":"none" }, "SetUserPoolMfaConfig":{ "name":"SetUserPoolMfaConfig", @@ -1754,7 +1762,8 @@ {"shape":"UserNotFoundException"}, {"shape":"UserPoolAddOnNotEnabledException"}, {"shape":"InternalErrorException"} - ] + ], + "authtype":"none" }, "UpdateDeviceStatus":{ "name":"UpdateDeviceStatus", @@ -1775,7 +1784,8 @@ {"shape":"UserNotConfirmedException"}, {"shape":"InternalErrorException"}, {"shape":"ForbiddenException"} - ] + ], + "authtype":"none" }, "UpdateGroup":{ "name":"UpdateGroup", @@ -1938,7 +1948,8 @@ {"shape":"SoftwareTokenMFANotFoundException"}, {"shape":"CodeMismatchException"}, {"shape":"ForbiddenException"} - ] + ], + "authtype":"none" }, "VerifyUserAttribute":{ "name":"VerifyUserAttribute", @@ -2759,7 +2770,8 @@ "ChallengeResponsesType":{ "type":"map", "key":{"shape":"StringType"}, - "value":{"shape":"StringType"} + "value":{"shape":"StringType"}, + "sensitive":true }, "ChangePasswordRequest":{ "type":"structure", @@ -2998,7 +3010,7 @@ ], "members":{ "UserPoolId":{"shape":"UserPoolIdType"}, - "ProviderName":{"shape":"ProviderNameTypeV1"}, + "ProviderName":{"shape":"ProviderNameTypeV2"}, "ProviderType":{"shape":"IdentityProviderTypeType"}, "ProviderDetails":{"shape":"ProviderDetailsType"}, "AttributeMapping":{"shape":"AttributeMappingType"}, @@ -4401,6 +4413,7 @@ }, "PaginationKey":{ "type":"string", + "max":131072, "min":1, "pattern":"[\\S]+" }, @@ -4489,13 +4502,13 @@ "type":"string", "max":32, "min":1, - "pattern":"[\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]+" + "pattern":"[\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\p{Z}]+" }, - "ProviderNameTypeV1":{ + "ProviderNameTypeV2":{ "type":"string", "max":32, - "min":3, - "pattern":"[^_][\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}][^_]+" + "min":1, + "pattern":"[^_\\p{Z}][\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}][^_\\p{Z}]+" }, "ProviderUserIdentifierType":{ "type":"structure", @@ -4807,7 +4820,8 @@ "SessionType":{ "type":"string", "max":2048, - "min":20 + "min":20, + "sensitive":true }, "SetLogDeliveryConfigurationRequest":{ "type":"structure", @@ -4978,7 +4992,8 @@ "type":"string", "max":6, "min":6, - "pattern":"[0-9]+" + "pattern":"[0-9]+", + "sensitive":true }, "SoftwareTokenMfaConfigType":{ "type":"structure", @@ -5403,7 +5418,8 @@ "members":{ "IpAddress":{"shape":"StringType"}, "EncodedData":{"shape":"StringType"} - } + }, + "sensitive":true }, "UserFilterType":{ "type":"string", diff --git a/models/apis/cognito-idp/2016-04-18/docs-2.json b/models/apis/cognito-idp/2016-04-18/docs-2.json index 29927ff2f36..1c75e970833 100644 --- a/models/apis/cognito-idp/2016-04-18/docs-2.json +++ b/models/apis/cognito-idp/2016-04-18/docs-2.json @@ -27,7 +27,7 @@ "AdminSetUserSettings": "

This action is no longer supported. You can use it to configure only SMS MFA. You can't use it to configure time-based one-time password (TOTP) software token MFA. To configure either type of MFA, use AdminSetUserMFAPreference instead.

Amazon Cognito evaluates Identity and Access Management (IAM) policies in requests for this API operation. For this operation, you must use IAM credentials to authorize requests, and you must grant yourself the corresponding IAM permission in a policy.

Learn more

", "AdminUpdateAuthEventFeedback": "

Provides feedback for an authentication event indicating if it was from a valid user. This feedback is used for improving the risk evaluation decision for the user pool as part of Amazon Cognito advanced security.

Amazon Cognito evaluates Identity and Access Management (IAM) policies in requests for this API operation. For this operation, you must use IAM credentials to authorize requests, and you must grant yourself the corresponding IAM permission in a policy.

Learn more

", "AdminUpdateDeviceStatus": "

Updates the device status as an administrator.

Amazon Cognito evaluates Identity and Access Management (IAM) policies in requests for this API operation. For this operation, you must use IAM credentials to authorize requests, and you must grant yourself the corresponding IAM permission in a policy.

Learn more

", - "AdminUpdateUserAttributes": "

This action might generate an SMS text message. Starting June 1, 2021, US telecom carriers require you to register an origination phone number before you can send SMS messages to US phone numbers. If you use SMS text messages in Amazon Cognito, you must register a phone number with Amazon Pinpoint. Amazon Cognito uses the registered number automatically. Otherwise, Amazon Cognito users who must receive SMS messages might not be able to sign up, activate their accounts, or sign in.

If you have never used SMS text messages with Amazon Cognito or any other Amazon Web Service, Amazon Simple Notification Service might place your account in the SMS sandbox. In sandbox mode , you can send messages only to verified phone numbers. After you test your app while in the sandbox environment, you can move out of the sandbox and into production. For more information, see SMS message settings for Amazon Cognito user pools in the Amazon Cognito Developer Guide.

Updates the specified user's attributes, including developer attributes, as an administrator. Works on any user.

For custom attributes, you must prepend the custom: prefix to the attribute name.

In addition to updating user attributes, this API can also be used to mark phone and email as verified.

Amazon Cognito evaluates Identity and Access Management (IAM) policies in requests for this API operation. For this operation, you must use IAM credentials to authorize requests, and you must grant yourself the corresponding IAM permission in a policy.

Learn more

", + "AdminUpdateUserAttributes": "

This action might generate an SMS text message. Starting June 1, 2021, US telecom carriers require you to register an origination phone number before you can send SMS messages to US phone numbers. If you use SMS text messages in Amazon Cognito, you must register a phone number with Amazon Pinpoint. Amazon Cognito uses the registered number automatically. Otherwise, Amazon Cognito users who must receive SMS messages might not be able to sign up, activate their accounts, or sign in.

If you have never used SMS text messages with Amazon Cognito or any other Amazon Web Service, Amazon Simple Notification Service might place your account in the SMS sandbox. In sandbox mode , you can send messages only to verified phone numbers. After you test your app while in the sandbox environment, you can move out of the sandbox and into production. For more information, see SMS message settings for Amazon Cognito user pools in the Amazon Cognito Developer Guide.

Updates the specified user's attributes, including developer attributes, as an administrator. Works on any user. To delete an attribute from your user, submit the attribute in your API request with a blank value.

For custom attributes, you must prepend the custom: prefix to the attribute name.

In addition to updating user attributes, this API can also be used to mark phone and email as verified.

Amazon Cognito evaluates Identity and Access Management (IAM) policies in requests for this API operation. For this operation, you must use IAM credentials to authorize requests, and you must grant yourself the corresponding IAM permission in a policy.

Learn more

", "AdminUserGlobalSignOut": "

Signs out a user from all devices. AdminUserGlobalSignOut invalidates all identity, access and refresh tokens that Amazon Cognito has issued to a user. A user can still use a hosted UI cookie to retrieve new tokens for the duration of the 1-hour cookie validity period.

Your app isn't aware that a user's access token is revoked unless it attempts to authorize a user pools API request with an access token that contains the scope aws.cognito.signin.user.admin. Your app might otherwise accept access tokens until they expire.

Amazon Cognito evaluates Identity and Access Management (IAM) policies in requests for this API operation. For this operation, you must use IAM credentials to authorize requests, and you must grant yourself the corresponding IAM permission in a policy.

Learn more

", "AssociateSoftwareToken": "

Begins setup of time-based one-time password (TOTP) multi-factor authentication (MFA) for a user, with a unique private key that Amazon Cognito generates and returns in the API response. You can authorize an AssociateSoftwareToken request with either the user's access token, or a session string from a challenge response that you received from Amazon Cognito.

Amazon Cognito disassociates an existing software token when you verify the new token in a VerifySoftwareToken API request. If you don't verify the software token and your user pool doesn't require MFA, the user can then authenticate with user name and password credentials alone. If your user pool requires TOTP MFA, Amazon Cognito generates an MFA_SETUP or SOFTWARE_TOKEN_SETUP challenge each time your user signs. Complete setup with AssociateSoftwareToken and VerifySoftwareToken.

After you set up software token MFA for your user, Amazon Cognito generates a SOFTWARE_TOKEN_MFA challenge when they authenticate. Respond to this challenge with your user's TOTP.

Amazon Cognito doesn't evaluate Identity and Access Management (IAM) policies in requests for this API operation. For this operation, you can't use IAM credentials to authorize requests, and you can't grant IAM permissions in policies. For more information about authorization models in Amazon Cognito, see Using the Amazon Cognito native and OIDC APIs.

", "ChangePassword": "

Changes the password for a specified user in a user pool.

Amazon Cognito doesn't evaluate Identity and Access Management (IAM) policies in requests for this API operation. For this operation, you can't use IAM credentials to authorize requests, and you can't grant IAM permissions in policies. For more information about authorization models in Amazon Cognito, see Using the Amazon Cognito native and OIDC APIs.

", @@ -477,7 +477,7 @@ "refs": { "AnalyticsConfigurationType$ApplicationArn": "

The Amazon Resource Name (ARN) of an Amazon Pinpoint project. You can use the Amazon Pinpoint project to integrate with the chosen user pool Client. Amazon Cognito publishes events to the Amazon Pinpoint project that the app ARN declares.

", "AnalyticsConfigurationType$RoleArn": "

The ARN of an Identity and Access Management role that authorizes Amazon Cognito to publish events to Amazon Pinpoint analytics.

", - "CloudWatchLogsConfigurationType$LogGroupArn": "

The Amazon Resource Name (arn) of a CloudWatch Logs log group where your user pool sends logs. The log group must not be encrypted with Key Management Service and must be in the same Amazon Web Services account as your user pool.

", + "CloudWatchLogsConfigurationType$LogGroupArn": "

The Amazon Resource Name (arn) of a CloudWatch Logs log group where your user pool sends logs. The log group must not be encrypted with Key Management Service and must be in the same Amazon Web Services account as your user pool.

To send logs to log groups with a resource policy of a size greater than 5120 characters, configure a log group with a path that starts with /aws/vendedlogs. For more information, see Enabling logging from certain Amazon Web Services services.

", "CreateGroupRequest$RoleArn": "

The role Amazon Resource Name (ARN) for the group.

", "CreateUserImportJobRequest$CloudWatchLogsRoleArn": "

The role ARN for the Amazon CloudWatch Logs Logging role for the user import job.

", "CustomDomainConfigType$CertificateArn": "

The Amazon Resource Name (ARN) of an Certificate Manager SSL certificate. You use this certificate for the subdomain of your custom domain.

", @@ -2210,7 +2210,7 @@ "UpdateIdentityProviderRequest$ProviderName": "

The IdP name.

" } }, - "ProviderNameTypeV1": { + "ProviderNameTypeV2": { "base": null, "refs": { "CreateIdentityProviderRequest$ProviderName": "

The IdP name.

" diff --git a/models/apis/cognito-idp/2016-04-18/endpoint-rule-set-1.json b/models/apis/cognito-idp/2016-04-18/endpoint-rule-set-1.json index e6566d99ff9..0f514686ef3 100644 --- a/models/apis/cognito-idp/2016-04-18/endpoint-rule-set-1.json +++ b/models/apis/cognito-idp/2016-04-18/endpoint-rule-set-1.json @@ -58,52 +58,56 @@ "type": "error" }, { - "conditions": [], - "type": "tree", - "rules": [ + "conditions": [ { - "conditions": [ + "fn": "booleanEquals", + "argv": [ { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", - "type": "error" - }, - { - "conditions": [], - "endpoint": { - "url": { - "ref": "Endpoint" + "ref": "UseDualStack" }, - "properties": {}, - "headers": {} - }, - "type": "endpoint" + true + ] } - ] + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ] }, { - "conditions": [], + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Region" + } + ] + } + ], "type": "tree", "rules": [ { "conditions": [ { - "fn": "isSet", + "fn": "aws.partition", "argv": [ { "ref": "Region" } - ] + ], + "assign": "PartitionResult" } ], "type": "tree", @@ -111,13 +115,22 @@ { "conditions": [ { - "fn": "aws.partition", + "fn": "booleanEquals", "argv": [ { - "ref": "Region" - } - ], - "assign": "PartitionResult" + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] } ], "type": "tree", @@ -127,224 +140,175 @@ { "fn": "booleanEquals", "argv": [ + true, { - "ref": "UseFIPS" - }, - true + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } ] }, { "fn": "booleanEquals", "argv": [ + true, { - "ref": "UseDualStack" - }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - true, - { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "supportsFIPS" - ] - } - ] - }, - { - "fn": "booleanEquals", + "fn": "getAttr", "argv": [ - true, { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "supportsDualStack" - ] - } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://cognito-idp-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } + "ref": "PartitionResult" + }, + "supportsDualStack" ] } ] - }, + } + ], + "type": "tree", + "rules": [ { "conditions": [], - "error": "FIPS and DualStack are enabled, but this partition does not support one or both", - "type": "error" + "endpoint": { + "url": "https://cognito-idp-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ] }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ { "conditions": [ { "fn": "booleanEquals", "argv": [ + true, { - "ref": "UseFIPS" - }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", + "fn": "getAttr", "argv": [ - true, - { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "supportsFIPS" - ] - } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "type": "tree", - "rules": [ { - "conditions": [], - "endpoint": { - "url": "https://cognito-idp-fips.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } + "ref": "PartitionResult" + }, + "supportsFIPS" ] } ] - }, + } + ], + "type": "tree", + "rules": [ { "conditions": [], - "error": "FIPS is enabled but this partition does not support FIPS", - "type": "error" + "endpoint": { + "url": "https://cognito-idp-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ] }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ { "conditions": [ { "fn": "booleanEquals", "argv": [ + true, { - "ref": "UseDualStack" - }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", + "fn": "getAttr", "argv": [ - true, { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "supportsDualStack" - ] - } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://cognito-idp.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } + "ref": "PartitionResult" + }, + "supportsDualStack" ] } ] - }, - { - "conditions": [], - "error": "DualStack is enabled but this partition does not support DualStack", - "type": "error" } - ] - }, - { - "conditions": [], + ], "type": "tree", "rules": [ { "conditions": [], "endpoint": { - "url": "https://cognito-idp.{Region}.{PartitionResult#dnsSuffix}", + "url": "https://cognito-idp.{Region}.{PartitionResult#dualStackDnsSuffix}", "properties": {}, "headers": {} }, "type": "endpoint" } ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" } ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://cognito-idp.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ] - }, - { - "conditions": [], - "error": "Invalid Configuration: Missing Region", - "type": "error" } ] + }, + { + "conditions": [], + "error": "Invalid Configuration: Missing Region", + "type": "error" } ] } \ No newline at end of file diff --git a/models/apis/cognito-idp/2016-04-18/examples-1.json b/models/apis/cognito-idp/2016-04-18/examples-1.json index 0ea7e3b0bbe..b97bf83357e 100644 --- a/models/apis/cognito-idp/2016-04-18/examples-1.json +++ b/models/apis/cognito-idp/2016-04-18/examples-1.json @@ -1,5 +1,854 @@ { "version": "1.0", "examples": { + "AdminCreateUser": [ + { + "input": { + "DesiredDeliveryMediums": [ + "SMS" + ], + "MessageAction": "SUPPRESS", + "TemporaryPassword": "This-is-my-test-99!", + "UserAttributes": [ + { + "Name": "name", + "Value": "John" + }, + { + "Name": "phone_number", + "Value": "+12065551212" + }, + { + "Name": "email", + "Value": "testuser@example.com" + } + ], + "UserPoolId": "us-east-1_EXAMPLE", + "Username": "testuser" + }, + "output": { + "User": { + "Attributes": [ + { + "Name": "sub", + "Value": "d16b4aa8-8633-4abd-93b3-5062a8e1b5f8" + }, + { + "Name": "name", + "Value": "John" + }, + { + "Name": "phone_number", + "Value": "+12065551212" + }, + { + "Name": "email", + "Value": "testuser@example.com" + } + ], + "Enabled": true, + "UserCreateDate": 1689980857.949, + "UserLastModifiedDate": 1689980857.949, + "UserStatus": "FORCE_CHANGE_PASSWORD", + "Username": "testuser" + } + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "This request submits a value for all possible parameters for AdminCreateUser.", + "id": "an-admincreateuser-request-for-for-a-test-user-named-john-1689980900481", + "title": "An AdminCreateUser request for for a test user named John." + } + ], + "CreateUserPool": [ + { + "input": { + "AccountRecoverySetting": { + "RecoveryMechanisms": [ + { + "Name": "verified_email", + "Priority": 1 + } + ] + }, + "AdminCreateUserConfig": { + "AllowAdminCreateUserOnly": false, + "InviteMessageTemplate": { + "EmailMessage": "Your username is {username} and temporary password is {####}.", + "EmailSubject": "Your sign-in information", + "SMSMessage": "Your username is {username} and temporary password is {####}." + } + }, + "AliasAttributes": [ + "email" + ], + "AutoVerifiedAttributes": [ + "email" + ], + "DeletionProtection": "ACTIVE", + "DeviceConfiguration": { + "ChallengeRequiredOnNewDevice": true, + "DeviceOnlyRememberedOnUserPrompt": true + }, + "EmailConfiguration": { + "ConfigurationSet": "my-test-ses-configuration-set", + "EmailSendingAccount": "DEVELOPER", + "From": "support@example.com", + "ReplyToEmailAddress": "support@example.com", + "SourceArn": "arn:aws:ses:us-east-1:123456789012:identity/support@example.com" + }, + "EmailVerificationMessage": "Your verification code is {####}.", + "EmailVerificationSubject": "Verify your email address", + "LambdaConfig": { + "CustomEmailSender": { + "LambdaArn": "arn:aws:lambda:us-east-1:123456789012:function:MyFunction", + "LambdaVersion": "V1_0" + }, + "CustomMessage": "arn:aws:lambda:us-east-1:123456789012:function:MyFunction", + "CustomSMSSender": { + "LambdaArn": "arn:aws:lambda:us-east-1:123456789012:function:MyFunction", + "LambdaVersion": "V1_0" + }, + "DefineAuthChallenge": "arn:aws:lambda:us-east-1:123456789012:function:MyFunction", + "KMSKeyID": "arn:aws:kms:us-east-1:123456789012:key/a6c4f8e2-0c45-47db-925f-87854bc9e357", + "PostAuthentication": "arn:aws:lambda:us-east-1:123456789012:function:MyFunction", + "PostConfirmation": "arn:aws:lambda:us-east-1:123456789012:function:MyFunction", + "PreAuthentication": "arn:aws:lambda:us-east-1:123456789012:function:MyFunction", + "PreSignUp": "arn:aws:lambda:us-east-1:123456789012:function:MyFunction", + "PreTokenGeneration": "arn:aws:lambda:us-east-1:123456789012:function:MyFunction", + "UserMigration": "arn:aws:lambda:us-east-1:123456789012:function:MyFunction", + "VerifyAuthChallengeResponse": "arn:aws:lambda:us-east-1:123456789012:function:MyFunction" + }, + "MfaConfiguration": "OPTIONAL", + "Policies": { + "PasswordPolicy": { + "MinimumLength": 6, + "RequireLowercase": true, + "RequireNumbers": true, + "RequireSymbols": true, + "RequireUppercase": true, + "TemporaryPasswordValidityDays": 7 + } + }, + "PoolName": "my-test-user-pool", + "Schema": [ + { + "AttributeDataType": "Number", + "DeveloperOnlyAttribute": true, + "Mutable": true, + "Name": "mydev", + "NumberAttributeConstraints": { + "MaxValue": "99", + "MinValue": "1" + }, + "Required": false, + "StringAttributeConstraints": { + "MaxLength": "99", + "MinLength": "1" + } + } + ], + "SmsAuthenticationMessage": "Your verification code is {####}.", + "SmsConfiguration": { + "ExternalId": "my-role-external-id", + "SnsCallerArn": "arn:aws:iam::123456789012:role/service-role/test-cognito-SMS-Role" + }, + "SmsVerificationMessage": "Your verification code is {####}.", + "UserAttributeUpdateSettings": { + "AttributesRequireVerificationBeforeUpdate": [ + "email" + ] + }, + "UserPoolAddOns": { + "AdvancedSecurityMode": "OFF" + }, + "UserPoolTags": { + "my-test-tag-key": "my-test-tag-key" + }, + "UsernameConfiguration": { + "CaseSensitive": true + }, + "VerificationMessageTemplate": { + "DefaultEmailOption": "CONFIRM_WITH_CODE", + "EmailMessage": "Your confirmation code is {####}", + "EmailMessageByLink": "Choose this link to {##verify your email##}", + "EmailSubject": "Here is your confirmation code", + "EmailSubjectByLink": "Here is your confirmation link", + "SmsMessage": "Your confirmation code is {####}" + } + }, + "output": { + "UserPool": { + "AccountRecoverySetting": { + "RecoveryMechanisms": [ + { + "Name": "verified_email", + "Priority": 1 + } + ] + }, + "AdminCreateUserConfig": { + "AllowAdminCreateUserOnly": false, + "InviteMessageTemplate": { + "EmailMessage": "Your username is {username} and temporary password is {####}.", + "EmailSubject": "Your sign-in information", + "SMSMessage": "Your username is {username} and temporary password is {####}." + }, + "UnusedAccountValidityDays": 7 + }, + "AliasAttributes": [ + "email" + ], + "Arn": "arn:aws:cognito-idp:us-east-1:123456789012:userpool/us-east-1_EXAMPLE", + "AutoVerifiedAttributes": [ + "email" + ], + "CreationDate": 1689721665.239, + "DeletionProtection": "ACTIVE", + "DeviceConfiguration": { + "ChallengeRequiredOnNewDevice": true, + "DeviceOnlyRememberedOnUserPrompt": true + }, + "EmailConfiguration": { + "ConfigurationSet": "my-test-ses-configuration-set", + "EmailSendingAccount": "DEVELOPER", + "From": "support@example.com", + "ReplyToEmailAddress": "support@example.com", + "SourceArn": "arn:aws:ses:us-east-1:123456789012:identity/support@example.com" + }, + "EmailVerificationMessage": "Your verification code is {####}.", + "EmailVerificationSubject": "Verify your email address", + "EstimatedNumberOfUsers": 0, + "Id": "us-east-1_EXAMPLE", + "LambdaConfig": { + "CustomEmailSender": { + "LambdaArn": "arn:aws:lambda:us-east-1:123456789012:function:MyFunction", + "LambdaVersion": "V1_0" + }, + "CustomMessage": "arn:aws:lambda:us-east-1:123456789012:function:MyFunction", + "CustomSMSSender": { + "LambdaArn": "arn:aws:lambda:us-east-1:123456789012:function:MyFunction", + "LambdaVersion": "V1_0" + }, + "DefineAuthChallenge": "arn:aws:lambda:us-east-1:123456789012:function:MyFunction", + "KMSKeyID": "arn:aws:kms:us-east-1:767671399759:key/4d43904c-8edf-4bb4-9fca-fb1a80e41cbe", + "PostAuthentication": "arn:aws:lambda:us-east-1:123456789012:function:MyFunction", + "PostConfirmation": "arn:aws:lambda:us-east-1:123456789012:function:MyFunction", + "PreAuthentication": "arn:aws:lambda:us-east-1:123456789012:function:MyFunction", + "PreSignUp": "arn:aws:lambda:us-east-1:123456789012:function:MyFunction", + "PreTokenGeneration": "arn:aws:lambda:us-east-1:123456789012:function:MyFunction", + "UserMigration": "arn:aws:lambda:us-east-1:123456789012:function:MyFunction", + "VerifyAuthChallengeResponse": "arn:aws:lambda:us-east-1:123456789012:function:MyFunction" + }, + "LastModifiedDate": 1689721665.239, + "MfaConfiguration": "OPTIONAL", + "Name": "my-test-user-pool", + "Policies": { + "PasswordPolicy": { + "MinimumLength": 6, + "RequireLowercase": true, + "RequireNumbers": true, + "RequireSymbols": true, + "RequireUppercase": true, + "TemporaryPasswordValidityDays": 7 + } + }, + "SchemaAttributes": [ + { + "AttributeDataType": "String", + "DeveloperOnlyAttribute": false, + "Mutable": false, + "Name": "sub", + "Required": true, + "StringAttributeConstraints": { + "MaxLength": "2048", + "MinLength": "1" + } + }, + { + "AttributeDataType": "String", + "DeveloperOnlyAttribute": false, + "Mutable": true, + "Name": "name", + "Required": false, + "StringAttributeConstraints": { + "MaxLength": "2048", + "MinLength": "0" + } + }, + { + "AttributeDataType": "String", + "DeveloperOnlyAttribute": false, + "Mutable": true, + "Name": "given_name", + "Required": false, + "StringAttributeConstraints": { + "MaxLength": "2048", + "MinLength": "0" + } + }, + { + "AttributeDataType": "String", + "DeveloperOnlyAttribute": false, + "Mutable": true, + "Name": "family_name", + "Required": false, + "StringAttributeConstraints": { + "MaxLength": "2048", + "MinLength": "0" + } + }, + { + "AttributeDataType": "String", + "DeveloperOnlyAttribute": false, + "Mutable": true, + "Name": "middle_name", + "Required": false, + "StringAttributeConstraints": { + "MaxLength": "2048", + "MinLength": "0" + } + }, + { + "AttributeDataType": "String", + "DeveloperOnlyAttribute": false, + "Mutable": true, + "Name": "nickname", + "Required": false, + "StringAttributeConstraints": { + "MaxLength": "2048", + "MinLength": "0" + } + }, + { + "AttributeDataType": "String", + "DeveloperOnlyAttribute": false, + "Mutable": true, + "Name": "preferred_username", + "Required": false, + "StringAttributeConstraints": { + "MaxLength": "2048", + "MinLength": "0" + } + }, + { + "AttributeDataType": "String", + "DeveloperOnlyAttribute": false, + "Mutable": true, + "Name": "profile", + "Required": false, + "StringAttributeConstraints": { + "MaxLength": "2048", + "MinLength": "0" + } + }, + { + "AttributeDataType": "String", + "DeveloperOnlyAttribute": false, + "Mutable": true, + "Name": "picture", + "Required": false, + "StringAttributeConstraints": { + "MaxLength": "2048", + "MinLength": "0" + } + }, + { + "AttributeDataType": "String", + "DeveloperOnlyAttribute": false, + "Mutable": true, + "Name": "website", + "Required": false, + "StringAttributeConstraints": { + "MaxLength": "2048", + "MinLength": "0" + } + }, + { + "AttributeDataType": "String", + "DeveloperOnlyAttribute": false, + "Mutable": true, + "Name": "email", + "Required": false, + "StringAttributeConstraints": { + "MaxLength": "2048", + "MinLength": "0" + } + }, + { + "AttributeDataType": "Boolean", + "DeveloperOnlyAttribute": false, + "Mutable": true, + "Name": "email_verified", + "Required": false + }, + { + "AttributeDataType": "String", + "DeveloperOnlyAttribute": false, + "Mutable": true, + "Name": "gender", + "Required": false, + "StringAttributeConstraints": { + "MaxLength": "2048", + "MinLength": "0" + } + }, + { + "AttributeDataType": "String", + "DeveloperOnlyAttribute": false, + "Mutable": true, + "Name": "birthdate", + "Required": false, + "StringAttributeConstraints": { + "MaxLength": "10", + "MinLength": "10" + } + }, + { + "AttributeDataType": "String", + "DeveloperOnlyAttribute": false, + "Mutable": true, + "Name": "zoneinfo", + "Required": false, + "StringAttributeConstraints": { + "MaxLength": "2048", + "MinLength": "0" + } + }, + { + "AttributeDataType": "String", + "DeveloperOnlyAttribute": false, + "Mutable": true, + "Name": "locale", + "Required": false, + "StringAttributeConstraints": { + "MaxLength": "2048", + "MinLength": "0" + } + }, + { + "AttributeDataType": "String", + "DeveloperOnlyAttribute": false, + "Mutable": true, + "Name": "phone_number", + "Required": false, + "StringAttributeConstraints": { + "MaxLength": "2048", + "MinLength": "0" + } + }, + { + "AttributeDataType": "Boolean", + "DeveloperOnlyAttribute": false, + "Mutable": true, + "Name": "phone_number_verifie", + "Required": false + }, + { + "AttributeDataType": "String", + "DeveloperOnlyAttribute": false, + "Mutable": true, + "Name": "address", + "Required": false, + "StringAttributeConstraints": { + "MaxLength": "2048", + "MinLength": "0" + } + }, + { + "AttributeDataType": "Number", + "DeveloperOnlyAttribute": false, + "Mutable": true, + "Name": "updated_at", + "NumberAttributeConstraints": { + "MinValue": "0" + }, + "Required": false + }, + { + "AttributeDataType": "Number", + "DeveloperOnlyAttribute": true, + "Mutable": true, + "Name": "dev:custom:mydev", + "NumberAttributeConstraints": { + "MaxValue": "99", + "MinValue": "1" + }, + "Required": false + } + ], + "SmsAuthenticationMessage": "Your verification code is {####}.", + "SmsConfiguration": { + "ExternalId": "my-role-external-id", + "SnsCallerArn": "arn:aws:iam::123456789012:role/service-role/test-cognito-SMS-Role", + "SnsRegion": "us-east-1" + }, + "SmsVerificationMessage": "Your verification code is {####}.", + "UserAttributeUpdateSettings": { + "AttributesRequireVerificationBeforeUpdate": [ + "email" + ] + }, + "UserPoolAddOns": { + "AdvancedSecurityMode": "OFF" + }, + "UserPoolTags": { + "my-test-tag-key": "my-test-tag-value" + }, + "UsernameConfiguration": { + "CaseSensitive": true + }, + "VerificationMessageTemplate": { + "DefaultEmailOption": "CONFIRM_WITH_CODE", + "EmailMessage": "Your confirmation code is {####}", + "EmailMessageByLink": "Choose this link to {##verify your email##}", + "EmailSubject": "Here is your confirmation code", + "EmailSubjectByLink": "Here is your confirmation link", + "SmsMessage": "Your confirmation code is {####}" + } + } + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "The following example creates a user pool with all configurable properties set to an example value. The resulting user pool allows sign-in with username or email address, has optional MFA, and has a Lambda function assigned to each possible trigger.", + "id": "example-user-pool-with-email-and-username-sign-in-1689722835145", + "title": "Example user pool with email and username sign-in" + } + ], + "CreateUserPoolClient": [ + { + "input": { + "AccessTokenValidity": 6, + "AllowedOAuthFlows": [ + "code" + ], + "AllowedOAuthFlowsUserPoolClient": true, + "AllowedOAuthScopes": [ + "aws.cognito.signin.user.admin", + "openid" + ], + "AnalyticsConfiguration": { + "ApplicationId": "d70b2ba36a8c4dc5a04a0451a31a1e12", + "ExternalId": "my-external-id", + "RoleArn": "arn:aws:iam::123456789012:role/test-cognitouserpool-role", + "UserDataShared": true + }, + "CallbackURLs": [ + "https://example.com", + "http://localhost", + "myapp://example" + ], + "ClientName": "my-test-app-client", + "DefaultRedirectURI": "https://example.com", + "ExplicitAuthFlows": [ + "ALLOW_ADMIN_USER_PASSWORD_AUTH", + "ALLOW_USER_PASSWORD_AUTH", + "ALLOW_REFRESH_TOKEN_AUTH" + ], + "GenerateSecret": true, + "IdTokenValidity": 6, + "LogoutURLs": [ + "https://example.com/logout" + ], + "PreventUserExistenceErrors": "ENABLED", + "ReadAttributes": [ + "email", + "address", + "preferred_username" + ], + "RefreshTokenValidity": 6, + "SupportedIdentityProviders": [ + "SignInWithApple", + "MySSO" + ], + "TokenValidityUnits": { + "AccessToken": "hours", + "IdToken": "minutes", + "RefreshToken": "days" + }, + "UserPoolId": "us-east-1_EXAMPLE", + "WriteAttributes": [ + "family_name", + "email" + ] + }, + "output": { + "UserPoolClient": { + "AccessTokenValidity": 6, + "AllowedOAuthFlows": [ + "code" + ], + "AllowedOAuthFlowsUserPoolClient": true, + "AllowedOAuthScopes": [ + "aws.cognito.signin.user.admin", + "openid" + ], + "AnalyticsConfiguration": { + "ApplicationId": "d70b2ba36a8c4dc5a04a0451a31a1e12", + "ExternalId": "my-external-id", + "RoleArn": "arn:aws:iam::123456789012:role/test-cognitouserpool-role", + "UserDataShared": true + }, + "AuthSessionValidity": 3, + "CallbackURLs": [ + "https://example.com", + "http://localhost", + "myapp://example" + ], + "ClientId": "26cb2c60kq7nbmas7rbme9b6pp", + "ClientName": "my-test-app-client", + "ClientSecret": "13ka4h7u28d9oo44tqpq9djqsfvhvu8rk4d2ighvpu0k8fj1c2r9", + "CreationDate": 1689885426.107, + "DefaultRedirectURI": "https://example.com", + "EnablePropagateAdditionalUserContextData": false, + "EnableTokenRevocation": true, + "ExplicitAuthFlows": [ + "ALLOW_USER_PASSWORD_AUTH", + "ALLOW_ADMIN_USER_PASSWORD_AUTH", + "ALLOW_REFRESH_TOKEN_AUTH" + ], + "IdTokenValidity": 6, + "LastModifiedDate": 1689885426.107, + "LogoutURLs": [ + "https://example.com/logout" + ], + "PreventUserExistenceErrors": "ENABLED", + "ReadAttributes": [ + "address", + "preferred_username", + "email" + ], + "RefreshTokenValidity": 6, + "SupportedIdentityProviders": [ + "SignInWithApple", + "MySSO" + ], + "TokenValidityUnits": { + "AccessToken": "hours", + "IdToken": "minutes", + "RefreshToken": "days" + }, + "UserPoolId": "us-east-1_EXAMPLE", + "WriteAttributes": [ + "family_name", + "email" + ] + } + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "The following example creates an app client with all configurable properties set to an example value. The resulting user pool client connects to an analytics client, allows sign-in with username and password, and has two external identity providers associated with it.", + "id": "example-user-pool-app-client-with-email-and-username-sign-in-1689885750745", + "title": "Example user pool app client with email and username sign-in" + } + ], + "InitiateAuth": [ + { + "input": { + "AnalyticsMetadata": { + "AnalyticsEndpointId": "d70b2ba36a8c4dc5a04a0451a31a1e12" + }, + "AuthFlow": "USER_PASSWORD_AUTH", + "AuthParameters": { + "PASSWORD": "This-is-my-test-99!", + "SECRET_HASH": "oT5ZkS8ctnrhYeeGsGTvOzPhoc/Jd1cO5fueBWFVmp8=", + "USERNAME": "mytestuser" + }, + "ClientId": "1example23456789", + "ClientMetadata": { + "MyTestKey": "MyTestValue" + }, + "UserContextData": { + "EncodedData": "AmazonCognitoAdvancedSecurityData_object", + "IpAddress": "192.0.2.1" + } + }, + "output": { + "ChallengeName": "SOFTWARE_TOKEN_MFA", + "ChallengeParameters": { + "FRIENDLY_DEVICE_NAME": "mytestauthenticator", + "USER_ID_FOR_SRP": "mytestuser" + }, + "Session": "AYABeC1-y8qooiuysEv0uM4wAqQAHQABAAdTZXJ2aWNlABBDb2duaXRvVXNlclBvb2xzAAEAB2F3cy1rbXMAS2Fybjphd3M6a21zOnVzLXdlc3QtMjowMTU3MzY3MjcxOTg6a2V5LzI5OTFhNGE5LTM5YTAtNDQ0Mi04MWU4LWRkYjY4NTllMTg2MQC4AQIBAHhjxv5lVLhE2_WNrC1zuomqn08qDUUp3z9v4EGAjazZ-wGP3HuBF5Izvxf-9WkCT5uyAAAAfjB8BgkqhkiG9w0BBwagbzBtAgEAMGgGCSqGSIb3DQEHATAeBglghkgBZQMEAS4wEQQMeQoT5e6Dpfh52caqAgEQgDvuL8uLMhPt0WmQpZnkNED1gob6xbqt5LaQo_H4L5CuT4Kj499dGCoZ1q1trmlZSRgRm0wwGGG8lFU37QIAAAAADAAAEAAAAAAAAAAAAAAAAADuLe9_UJ4oZAMsQYr0ntiT_____wAAAAEAAAAAAAAAAAAAAAEAAADnLDGmKBQtsCafNokRmPLgl2itBKuKR2dfZBQb5ucCYkzThM5HOfQUSEL-A3dZzfYDC0IODsrcMkrbeeVyMJk-FCzsxS9Og8BEBVnvi9WjZkPJ4mF0YS6FUXnoPSBV5oUqGzRaT-tJ169SUFZAUfFM1fGeJ8T57-QdCxjyISRCWV1VG5_7TiCioyRGfWwzNVWh7exJortF3ccfOyiEyxeqJ2VJvJq3m_w8NP24_PMDpktpRMKftObIMlD5ewRTNCdrUXQ1BW5KIxhJLGjYfRzJDZuKzmEgS-VHsKz0z76w-AlAgdfvdAjflLnsgduU5kUX4YP6jqnetg" + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "The following example signs in the user mytestuser with analytics data, client metadata, and user context data for advanced security.", + "id": "example-username-and-password-sign-in-for-a-user-who-has-totp-mfa-1689887395219", + "title": "Example username and password sign-in for a user who has TOTP MFA" + } + ], + "ListUsers": [ + { + "input": { + "AttributesToGet": [ + "email", + "sub" + ], + "Filter": "\"email\"^=\"testuser\"", + "Limit": 3, + "PaginationToken": "abcd1234EXAMPLE", + "UserPoolId": "us-east-1_EXAMPLE" + }, + "output": { + "PaginationToken": "efgh5678EXAMPLE", + "Users": [ + { + "Attributes": [ + { + "Name": "sub", + "Value": "eaad0219-2117-439f-8d46-4db20e59268f" + }, + { + "Name": "email", + "Value": "testuser@example.com" + } + ], + "Enabled": true, + "UserCreateDate": 1682955829.578, + "UserLastModifiedDate": 1689030181.63, + "UserStatus": "CONFIRMED", + "Username": "testuser" + }, + { + "Attributes": [ + { + "Name": "sub", + "Value": "3b994cfd-0b07-4581-be46-3c82f9a70c90" + }, + { + "Name": "email", + "Value": "testuser2@example.com" + } + ], + "Enabled": true, + "UserCreateDate": 1684427979.201, + "UserLastModifiedDate": 1684427979.201, + "UserStatus": "UNCONFIRMED", + "Username": "testuser2" + }, + { + "Attributes": [ + { + "Name": "sub", + "Value": "5929e0d1-4c34-42d1-9b79-a5ecacfe66f7" + }, + { + "Name": "email", + "Value": "testuser3@example.com" + } + ], + "Enabled": true, + "UserCreateDate": 1684427823.641, + "UserLastModifiedDate": 1684427823.641, + "UserStatus": "UNCONFIRMED", + "Username": "testuser3@example.com" + } + ] + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "This request submits a value for all possible parameters for ListUsers. By iterating the PaginationToken, you can page through and collect all users in a user pool.", + "id": "a-listusers-request-for-the-next-3-users-whose-email-address-starts-with-testuser-1689977648246", + "title": "A ListUsers request for the next 3 users whose email address starts with \"testuser.\"" + }, + { + "input": { + "AttributesToGet": [ + "email", + "sub" + ], + "Filter": "\"email\"^=\"testuser\"", + "Limit": 3, + "PaginationToken": "abcd1234EXAMPLE", + "UserPoolId": "us-east-1_EXAMPLE" + }, + "output": { + "PaginationToken": "efgh5678EXAMPLE", + "Users": [ + { + "Attributes": [ + { + "Name": "sub", + "Value": "eaad0219-2117-439f-8d46-4db20e59268f" + }, + { + "Name": "email", + "Value": "testuser@example.com" + } + ], + "Enabled": true, + "UserCreateDate": 1682955829.578, + "UserLastModifiedDate": 1689030181.63, + "UserStatus": "CONFIRMED", + "Username": "testuser" + }, + { + "Attributes": [ + { + "Name": "sub", + "Value": "3b994cfd-0b07-4581-be46-3c82f9a70c90" + }, + { + "Name": "email", + "Value": "testuser2@example.com" + } + ], + "Enabled": true, + "UserCreateDate": 1684427979.201, + "UserLastModifiedDate": 1684427979.201, + "UserStatus": "UNCONFIRMED", + "Username": "testuser2" + }, + { + "Attributes": [ + { + "Name": "sub", + "Value": "5929e0d1-4c34-42d1-9b79-a5ecacfe66f7" + }, + { + "Name": "email", + "Value": "testuser3@example.com" + } + ], + "Enabled": true, + "UserCreateDate": 1684427823.641, + "UserLastModifiedDate": 1684427823.641, + "UserStatus": "UNCONFIRMED", + "Username": "testuser3@example.com" + } + ] + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "This request submits a value for all possible parameters for ListUsers. By iterating the PaginationToken, you can page through and collect all users in a user pool.", + "id": "a-listusers-request-for-the-next-3-users-whose-email-address-starts-with-testuser-1689977648246", + "title": "A ListUsers request for the next 3 users whose email address starts with \"testuser.\"" + } + ] } } diff --git a/models/apis/fsx/2018-03-01/docs-2.json b/models/apis/fsx/2018-03-01/docs-2.json index 449476c9acc..1aab08deecc 100644 --- a/models/apis/fsx/2018-03-01/docs-2.json +++ b/models/apis/fsx/2018-03-01/docs-2.json @@ -6,8 +6,8 @@ "CancelDataRepositoryTask": "

Cancels an existing Amazon FSx for Lustre data repository task if that task is in either the PENDING or EXECUTING state. When you cancel am export task, Amazon FSx does the following.

For a release task, Amazon FSx will stop releasing files upon cancellation. Any files that have already been released will remain in the released state.

", "CopyBackup": "

Copies an existing backup within the same Amazon Web Services account to another Amazon Web Services Region (cross-Region copy) or within the same Amazon Web Services Region (in-Region copy). You can have up to five backup copy requests in progress to a single destination Region per account.

You can use cross-Region backup copies for cross-Region disaster recovery. You can periodically take backups and copy them to another Region so that in the event of a disaster in the primary Region, you can restore from backup and recover availability quickly in the other Region. You can make cross-Region copies only within your Amazon Web Services partition. A partition is a grouping of Regions. Amazon Web Services currently has three partitions: aws (Standard Regions), aws-cn (China Regions), and aws-us-gov (Amazon Web Services GovCloud [US] Regions).

You can also use backup copies to clone your file dataset to another Region or within the same Region.

You can use the SourceRegion parameter to specify the Amazon Web Services Region from which the backup will be copied. For example, if you make the call from the us-west-1 Region and want to copy a backup from the us-east-2 Region, you specify us-east-2 in the SourceRegion parameter to make a cross-Region copy. If you don't specify a Region, the backup copy is created in the same Region where the request is sent from (in-Region copy).

For more information about creating backup copies, see Copying backups in the Amazon FSx for Windows User Guide, Copying backups in the Amazon FSx for Lustre User Guide, and Copying backups in the Amazon FSx for OpenZFS User Guide.

", "CreateBackup": "

Creates a backup of an existing Amazon FSx for Windows File Server file system, Amazon FSx for Lustre file system, Amazon FSx for NetApp ONTAP volume, or Amazon FSx for OpenZFS file system. We recommend creating regular backups so that you can restore a file system or volume from a backup if an issue arises with the original file system or volume.

For Amazon FSx for Lustre file systems, you can create a backup only for file systems that have the following configuration:

For more information about backups, see the following:

If a backup with the specified client request token exists and the parameters match, this operation returns the description of the existing backup. If a backup with the specified client request token exists and the parameters don't match, this operation returns IncompatibleParameterError. If a backup with the specified client request token doesn't exist, CreateBackup does the following:

By using the idempotent operation, you can retry a CreateBackup operation without the risk of creating an extra backup. This approach can be useful when an initial call fails in a way that makes it unclear whether a backup was created. If you use the same client request token and the initial call created a backup, the operation returns a successful result because all the parameters are the same.

The CreateBackup operation returns while the backup's lifecycle state is still CREATING. You can check the backup creation status by calling the DescribeBackups operation, which returns the backup state along with other information.

", - "CreateDataRepositoryAssociation": "

Creates an Amazon FSx for Lustre data repository association (DRA). A data repository association is a link between a directory on the file system and an Amazon S3 bucket or prefix. You can have a maximum of 8 data repository associations on a file system. Data repository associations are supported on all FSx for Lustre 2.12 and newer file systems, excluding scratch_1 deployment type.

Each data repository association must have a unique Amazon FSx file system directory and a unique S3 bucket or prefix associated with it. You can configure a data repository association for automatic import only, for automatic export only, or for both. To learn more about linking a data repository to your file system, see Linking your file system to an S3 bucket.

CreateDataRepositoryAssociation isn't supported on Amazon File Cache resources. To create a DRA on Amazon File Cache, use the CreateFileCache operation.

", - "CreateDataRepositoryTask": "

Creates an Amazon FSx for Lustre data repository task. A CreateDataRepositoryTask operation will fail if a data repository is not linked to the FSx file system.

You use import and export data repository tasks to perform bulk operations between your FSx for Lustre file system and its linked data repositories. An example of a data repository task is exporting any data and metadata changes, including POSIX metadata, to files, directories, and symbolic links (symlinks) from your FSx file system to a linked data repository.

You use release data repository tasks to release data from your file system for files that are archived to S3. The metadata of released files remains on the file system so users or applications can still access released files by reading the files again, which will restore data from Amazon S3 to the FSx for Lustre file system.

To learn more about data repository tasks, see Data Repository Tasks. To learn more about linking a data repository to your file system, see Linking your file system to an S3 bucket.

", + "CreateDataRepositoryAssociation": "

Creates an Amazon FSx for Lustre data repository association (DRA). A data repository association is a link between a directory on the file system and an Amazon S3 bucket or prefix. You can have a maximum of 8 data repository associations on a file system. Data repository associations are supported on all FSx for Lustre 2.12 and 2.15 file systems, excluding scratch_1 deployment type.

Each data repository association must have a unique Amazon FSx file system directory and a unique S3 bucket or prefix associated with it. You can configure a data repository association for automatic import only, for automatic export only, or for both. To learn more about linking a data repository to your file system, see Linking your file system to an S3 bucket.

CreateDataRepositoryAssociation isn't supported on Amazon File Cache resources. To create a DRA on Amazon File Cache, use the CreateFileCache operation.

", + "CreateDataRepositoryTask": "

Creates an Amazon FSx for Lustre data repository task. A CreateDataRepositoryTask operation will fail if a data repository is not linked to the FSx file system.

You use import and export data repository tasks to perform bulk operations between your FSx for Lustre file system and its linked data repositories. An example of a data repository task is exporting any data and metadata changes, including POSIX metadata, to files, directories, and symbolic links (symlinks) from your FSx file system to a linked data repository.

You use release data repository tasks to release data from your file system for files that are exported to S3. The metadata of released files remains on the file system so users or applications can still access released files by reading the files again, which will restore data from Amazon S3 to the FSx for Lustre file system.

To learn more about data repository tasks, see Data Repository Tasks. To learn more about linking a data repository to your file system, see Linking your file system to an S3 bucket.

", "CreateFileCache": "

Creates a new Amazon File Cache resource.

You can use this operation with a client request token in the request that Amazon File Cache uses to ensure idempotent creation. If a cache with the specified client request token exists and the parameters match, CreateFileCache returns the description of the existing cache. If a cache with the specified client request token exists and the parameters don't match, this call returns IncompatibleParameterError. If a file cache with the specified client request token doesn't exist, CreateFileCache does the following:

The CreateFileCache call returns while the cache's lifecycle state is still CREATING. You can check the cache creation status by calling the DescribeFileCaches operation, which returns the cache state along with other information.

", "CreateFileSystem": "

Creates a new, empty Amazon FSx file system. You can create the following supported Amazon FSx file systems using the CreateFileSystem API operation:

This operation requires a client request token in the request that Amazon FSx uses to ensure idempotent creation. This means that calling the operation multiple times with the same client request token has no effect. By using the idempotent operation, you can retry a CreateFileSystem operation without the risk of creating an extra file system. This approach can be useful when an initial call fails in a way that makes it unclear whether a file system was created. Examples are if a transport level timeout occurred, or your connection was reset. If you use the same client request token and the initial call created a file system, the client receives success as long as the parameters are the same.

If a file system with the specified client request token exists and the parameters match, CreateFileSystem returns the description of the existing file system. If a file system with the specified client request token exists and the parameters don't match, this call returns IncompatibleParameterError. If a file system with the specified client request token doesn't exist, CreateFileSystem does the following:

The CreateFileSystem call returns while the file system's lifecycle state is still CREATING. You can check the file-system creation status by calling the DescribeFileSystems operation, which returns the file system state along with other information.

", "CreateFileSystemFromBackup": "

Creates a new Amazon FSx for Lustre, Amazon FSx for Windows File Server, or Amazon FSx for OpenZFS file system from an existing Amazon FSx backup.

If a file system with the specified client request token exists and the parameters match, this operation returns the description of the file system. If a file system with the specified client request token exists but the parameters don't match, this call returns IncompatibleParameterError. If a file system with the specified client request token doesn't exist, this operation does the following:

Parameters like the Active Directory, default share name, automatic backup, and backup settings default to the parameters of the file system that was backed up, unless overridden. You can explicitly supply other settings.

By using the idempotent operation, you can retry a CreateFileSystemFromBackup call without the risk of creating an extra file system. This approach can be useful when an initial call fails in a way that makes it unclear whether a file system was created. Examples are if a transport level timeout occurred, or your connection was reset. If you use the same client request token and the initial call created a file system, the client receives a success message as long as the parameters are the same.

The CreateFileSystemFromBackup call returns while the file system's lifecycle state is still CREATING. You can check the file-system creation status by calling the DescribeFileSystems operation, which returns the file system state along with other information.

", @@ -16,14 +16,14 @@ "CreateVolume": "

Creates an FSx for ONTAP or Amazon FSx for OpenZFS storage volume.

", "CreateVolumeFromBackup": "

Creates a new Amazon FSx for NetApp ONTAP volume from an existing Amazon FSx volume backup.

", "DeleteBackup": "

Deletes an Amazon FSx backup. After deletion, the backup no longer exists, and its data is gone.

The DeleteBackup call returns instantly. The backup won't show up in later DescribeBackups calls.

The data in a deleted backup is also deleted and can't be recovered by any means.

", - "DeleteDataRepositoryAssociation": "

Deletes a data repository association on an Amazon FSx for Lustre file system. Deleting the data repository association unlinks the file system from the Amazon S3 bucket. When deleting a data repository association, you have the option of deleting the data in the file system that corresponds to the data repository association. Data repository associations are supported on all FSx for Lustre 2.12 and newer file systems, excluding scratch_1 deployment type.

", + "DeleteDataRepositoryAssociation": "

Deletes a data repository association on an Amazon FSx for Lustre file system. Deleting the data repository association unlinks the file system from the Amazon S3 bucket. When deleting a data repository association, you have the option of deleting the data in the file system that corresponds to the data repository association. Data repository associations are supported on all FSx for Lustre 2.12 and 2.15 file systems, excluding scratch_1 deployment type.

", "DeleteFileCache": "

Deletes an Amazon File Cache resource. After deletion, the cache no longer exists, and its data is gone.

The DeleteFileCache operation returns while the cache has the DELETING status. You can check the cache deletion status by calling the DescribeFileCaches operation, which returns a list of caches in your account. If you pass the cache ID for a deleted cache, the DescribeFileCaches operation returns a FileCacheNotFound error.

The data in a deleted cache is also deleted and can't be recovered by any means.

", - "DeleteFileSystem": "

Deletes a file system. After deletion, the file system no longer exists, and its data is gone. Any existing automatic backups and snapshots are also deleted.

To delete an Amazon FSx for NetApp ONTAP file system, first delete all the volumes and storage virtual machines (SVMs) on the file system. Then provide a FileSystemId value to the DeleFileSystem operation.

By default, when you delete an Amazon FSx for Windows File Server file system, a final backup is created upon deletion. This final backup isn't subject to the file system's retention policy, and must be manually deleted.

The DeleteFileSystem operation returns while the file system has the DELETING status. You can check the file system deletion status by calling the DescribeFileSystems operation, which returns a list of file systems in your account. If you pass the file system ID for a deleted file system, the DescribeFileSystems operation returns a FileSystemNotFound error.

If a data repository task is in a PENDING or EXECUTING state, deleting an Amazon FSx for Lustre file system will fail with an HTTP status code 400 (Bad Request).

The data in a deleted file system is also deleted and can't be recovered by any means.

", + "DeleteFileSystem": "

Deletes a file system. After deletion, the file system no longer exists, and its data is gone. Any existing automatic backups and snapshots are also deleted.

To delete an Amazon FSx for NetApp ONTAP file system, first delete all the volumes and storage virtual machines (SVMs) on the file system. Then provide a FileSystemId value to the DeleFileSystem operation.

By default, when you delete an Amazon FSx for Windows File Server file system, a final backup is created upon deletion. This final backup isn't subject to the file system's retention policy, and must be manually deleted.

To delete an Amazon FSx for Lustre file system, first unmount it from every connected Amazon EC2 instance, then provide a FileSystemId value to the DeleFileSystem operation. By default, Amazon FSx will not take a final backup when the DeleteFileSystem operation is invoked. On file systems not linked to an Amazon S3 bucket, set SkipFinalBackup to false to take a final backup of the file system you are deleting. Backups cannot be enabled on S3-linked file systems. To ensure all of your data is written back to S3 before deleting your file system, you can either monitor for the AgeOfOldestQueuedMessage metric to be zero (if using automatic export) or you can run an export data repository task. If you have automatic export enabled and want to use an export data repository task, you have to disable automatic export before executing the export data repository task.

The DeleteFileSystem operation returns while the file system has the DELETING status. You can check the file system deletion status by calling the DescribeFileSystems operation, which returns a list of file systems in your account. If you pass the file system ID for a deleted file system, the DescribeFileSystems operation returns a FileSystemNotFound error.

If a data repository task is in a PENDING or EXECUTING state, deleting an Amazon FSx for Lustre file system will fail with an HTTP status code 400 (Bad Request).

The data in a deleted file system is also deleted and can't be recovered by any means.

", "DeleteSnapshot": "

Deletes an Amazon FSx for OpenZFS snapshot. After deletion, the snapshot no longer exists, and its data is gone. Deleting a snapshot doesn't affect snapshots stored in a file system backup.

The DeleteSnapshot operation returns instantly. The snapshot appears with the lifecycle status of DELETING until the deletion is complete.

", "DeleteStorageVirtualMachine": "

Deletes an existing Amazon FSx for ONTAP storage virtual machine (SVM). Prior to deleting an SVM, you must delete all non-root volumes in the SVM, otherwise the operation will fail.

", "DeleteVolume": "

Deletes an Amazon FSx for NetApp ONTAP or Amazon FSx for OpenZFS volume.

", "DescribeBackups": "

Returns the description of a specific Amazon FSx backup, if a BackupIds value is provided for that backup. Otherwise, it returns all backups owned by your Amazon Web Services account in the Amazon Web Services Region of the endpoint that you're calling.

When retrieving all backups, you can optionally specify the MaxResults parameter to limit the number of backups in a response. If more backups remain, Amazon FSx returns a NextToken value in the response. In this case, send a later request with the NextToken request parameter set to the value of the NextToken value from the last response.

This operation is used in an iterative process to retrieve a list of your backups. DescribeBackups is called first without a NextToken value. Then the operation continues to be called with the NextToken parameter set to the value of the last NextToken value until a response has no NextToken value.

When using this operation, keep the following in mind:

", - "DescribeDataRepositoryAssociations": "

Returns the description of specific Amazon FSx for Lustre or Amazon File Cache data repository associations, if one or more AssociationIds values are provided in the request, or if filters are used in the request. Data repository associations are supported on Amazon File Cache resources and all FSx for Lustre 2.12 and newer file systems, excluding scratch_1 deployment type.

You can use filters to narrow the response to include just data repository associations for specific file systems (use the file-system-id filter with the ID of the file system) or caches (use the file-cache-id filter with the ID of the cache), or data repository associations for a specific repository type (use the data-repository-type filter with a value of S3 or NFS). If you don't use filters, the response returns all data repository associations owned by your Amazon Web Services account in the Amazon Web Services Region of the endpoint that you're calling.

When retrieving all data repository associations, you can paginate the response by using the optional MaxResults parameter to limit the number of data repository associations returned in a response. If more data repository associations remain, a NextToken value is returned in the response. In this case, send a later request with the NextToken request parameter set to the value of NextToken from the last response.

", + "DescribeDataRepositoryAssociations": "

Returns the description of specific Amazon FSx for Lustre or Amazon File Cache data repository associations, if one or more AssociationIds values are provided in the request, or if filters are used in the request. Data repository associations are supported on Amazon File Cache resources and all FSx for Lustre 2.12 and 2,15 file systems, excluding scratch_1 deployment type.

You can use filters to narrow the response to include just data repository associations for specific file systems (use the file-system-id filter with the ID of the file system) or caches (use the file-cache-id filter with the ID of the cache), or data repository associations for a specific repository type (use the data-repository-type filter with a value of S3 or NFS). If you don't use filters, the response returns all data repository associations owned by your Amazon Web Services account in the Amazon Web Services Region of the endpoint that you're calling.

When retrieving all data repository associations, you can paginate the response by using the optional MaxResults parameter to limit the number of data repository associations returned in a response. If more data repository associations remain, a NextToken value is returned in the response. In this case, send a later request with the NextToken request parameter set to the value of NextToken from the last response.

", "DescribeDataRepositoryTasks": "

Returns the description of specific Amazon FSx for Lustre or Amazon File Cache data repository tasks, if one or more TaskIds values are provided in the request, or if filters are used in the request. You can use filters to narrow the response to include just tasks for specific file systems or caches, or tasks in a specific lifecycle state. Otherwise, it returns all data repository tasks owned by your Amazon Web Services account in the Amazon Web Services Region of the endpoint that you're calling.

When retrieving all tasks, you can paginate the response by using the optional MaxResults parameter to limit the number of tasks returned in a response. If more tasks remain, a NextToken value is returned in the response. In this case, send a later request with the NextToken request parameter set to the value of NextToken from the last response.

", "DescribeFileCaches": "

Returns the description of a specific Amazon File Cache resource, if a FileCacheIds value is provided for that cache. Otherwise, it returns descriptions of all caches owned by your Amazon Web Services account in the Amazon Web Services Region of the endpoint that you're calling.

When retrieving all cache descriptions, you can optionally specify the MaxResults parameter to limit the number of descriptions in a response. If more cache descriptions remain, the operation returns a NextToken value in the response. In this case, send a later request with the NextToken request parameter set to the value of NextToken from the last response.

This operation is used in an iterative process to retrieve a list of your cache descriptions. DescribeFileCaches is called first without a NextTokenvalue. Then the operation continues to be called with the NextToken parameter set to the value of the last NextToken value until a response has no NextToken.

When using this operation, keep the following in mind:

", "DescribeFileSystemAliases": "

Returns the DNS aliases that are associated with the specified Amazon FSx for Windows File Server file system. A history of all DNS aliases that have been associated with and disassociated from the file system is available in the list of AdministrativeAction provided in the DescribeFileSystems operation response.

", @@ -37,9 +37,9 @@ "RestoreVolumeFromSnapshot": "

Returns an Amazon FSx for OpenZFS volume to the state saved by the specified snapshot.

", "TagResource": "

Tags an Amazon FSx resource.

", "UntagResource": "

This action removes a tag from an Amazon FSx resource.

", - "UpdateDataRepositoryAssociation": "

Updates the configuration of an existing data repository association on an Amazon FSx for Lustre file system. Data repository associations are supported on all FSx for Lustre 2.12 and newer file systems, excluding scratch_1 deployment type.

", + "UpdateDataRepositoryAssociation": "

Updates the configuration of an existing data repository association on an Amazon FSx for Lustre file system. Data repository associations are supported on all FSx for Lustre 2.12 and 2.15 file systems, excluding scratch_1 deployment type.

", "UpdateFileCache": "

Updates the configuration of an existing Amazon File Cache resource. You can update multiple properties in a single request.

", - "UpdateFileSystem": "

Use this operation to update the configuration of an existing Amazon FSx file system. You can update multiple properties in a single request.

For FSx for Windows File Server file systems, you can update the following properties:

For FSx for Lustre file systems, you can update the following properties:

For FSx for ONTAP file systems, you can update the following properties:

For FSx for OpenZFS file systems, you can update the following properties:

", + "UpdateFileSystem": "

Use this operation to update the configuration of an existing Amazon FSx file system. You can update multiple properties in a single request.

For FSx for Windows File Server file systems, you can update the following properties:

For FSx for Lustre file systems, you can update the following properties:

For FSx for ONTAP file systems, you can update the following properties:

For FSx for OpenZFS file systems, you can update the following properties:

", "UpdateSnapshot": "

Updates the name of an Amazon FSx for OpenZFS snapshot.

", "UpdateStorageVirtualMachine": "

Updates an FSx for ONTAP storage virtual machine (SVM).

", "UpdateVolume": "

Updates the configuration of an Amazon FSx for NetApp ONTAP or Amazon FSx for OpenZFS volume.

" @@ -625,7 +625,7 @@ } }, "DataRepositoryAssociation": { - "base": "

The configuration of a data repository association that links an Amazon FSx for Lustre file system to an Amazon S3 bucket or an Amazon File Cache resource to an Amazon S3 bucket or an NFS file system. The data repository association configuration object is returned in the response of the following operations:

Data repository associations are supported on Amazon File Cache resources and all FSx for Lustre 2.12 and newer file systems, excluding scratch_1 deployment type.

", + "base": "

The configuration of a data repository association that links an Amazon FSx for Lustre file system to an Amazon S3 bucket or an Amazon File Cache resource to an Amazon S3 bucket or an NFS file system. The data repository association configuration object is returned in the response of the following operations:

Data repository associations are supported on Amazon File Cache resources and all FSx for Lustre 2.12 and 2.15 file systems, excluding scratch_1 deployment type.

", "refs": { "CreateDataRepositoryAssociationResponse$Association": "

The response object returned after the data repository association is created.

", "DataRepositoryAssociations$member": null, @@ -683,7 +683,7 @@ } }, "DataRepositoryTask": { - "base": "

A description of the data repository task.

To learn more about data repository tasks, see Data Repository Tasks.

", + "base": "

A description of the data repository task.

To learn more about data repository tasks, see Data Repository Tasks.

", "refs": { "CreateDataRepositoryTaskResponse$DataRepositoryTask": "

The description of the data repository task that you just created.

", "DataRepositoryTasks$member": null @@ -756,7 +756,7 @@ "DataRepositoryTaskPaths": { "base": null, "refs": { - "CreateDataRepositoryTaskRequest$Paths": "

A list of paths for the data repository task to use when the task is processed. If a path that you provide isn't valid, the task fails. If you don't provide paths, the default behavior is to export all files to S3 (for export tasks), import all files from S3 (for import tasks), or release all archived files that meet the last accessed time criteria (for release tasks).

", + "CreateDataRepositoryTaskRequest$Paths": "

A list of paths for the data repository task to use when the task is processed. If a path that you provide isn't valid, the task fails. If you don't provide paths, the default behavior is to export all files to S3 (for export tasks), import all files from S3 (for import tasks), or release all exported files that meet the last accessed time criteria (for release tasks).

", "DataRepositoryTask$Paths": "

An array of paths that specify the data for the data repository task to process. For example, in an EXPORT_TO_REPOSITORY task, the paths specify which data to export to the linked data repository.

(Default) If Paths is not specified, Amazon FSx uses the file system root directory.

" } }, @@ -769,8 +769,8 @@ "DataRepositoryTaskType": { "base": null, "refs": { - "CreateDataRepositoryTaskRequest$Type": "

Specifies the type of data repository task to create.

", - "DataRepositoryTask$Type": "

The type of data repository task.

" + "CreateDataRepositoryTaskRequest$Type": "

Specifies the type of data repository task to create.

", + "DataRepositoryTask$Type": "

The type of data repository task.

" } }, "DataRepositoryTasks": { @@ -1094,9 +1094,9 @@ } }, "DurationSinceLastAccess": { - "base": "

Defines the minimum amount of time since last access for a file to be eligible for release. Only archived files that were last accessed or modified before this point-in-time are eligible to be released from the Amazon FSx for Lustre file system.

", + "base": "

Defines the minimum amount of time since last access for a file to be eligible for release. Only files that have been exported to S3 and that were last accessed or modified before this point-in-time are eligible to be released from the Amazon FSx for Lustre file system.

", "refs": { - "ReleaseConfiguration$DurationSinceLastAccess": "

Defines the point-in-time since an archived file was last accessed, in order for that file to be eligible for release. Only files that were last accessed before this point-in-time are eligible to be released from the file system.

" + "ReleaseConfiguration$DurationSinceLastAccess": "

Defines the point-in-time since an exported file was last accessed, in order for that file to be eligible for release. Only files that were last accessed before this point-in-time are eligible to be released from the file system.

" } }, "EndTime": { @@ -1373,11 +1373,11 @@ "base": null, "refs": { "CreateFileCacheRequest$FileCacheTypeVersion": "

Sets the Lustre version for the cache that you're creating, which must be 2.12.

", - "CreateFileSystemFromBackupRequest$FileSystemTypeVersion": "

Sets the version for the Amazon FSx for Lustre file system that you're creating from a backup. Valid values are 2.10 and 2.12.

You don't need to specify FileSystemTypeVersion because it will be applied using the backup's FileSystemTypeVersion setting. If you choose to specify FileSystemTypeVersion when creating from backup, the value must match the backup's FileSystemTypeVersion setting.

", - "CreateFileSystemRequest$FileSystemTypeVersion": "

(Optional) For FSx for Lustre file systems, sets the Lustre version for the file system that you're creating. Valid values are 2.10 and 2.12:

Default value = 2.10, except when DeploymentType is set to PERSISTENT_2, then the default is 2.12.

If you set FileSystemTypeVersion to 2.10 for a PERSISTENT_2 Lustre deployment type, the CreateFileSystem operation fails.

", + "CreateFileSystemFromBackupRequest$FileSystemTypeVersion": "

Sets the version for the Amazon FSx for Lustre file system that you're creating from a backup. Valid values are 2.10, 2.12, and 2.15.

You don't need to specify FileSystemTypeVersion because it will be applied using the backup's FileSystemTypeVersion setting. If you choose to specify FileSystemTypeVersion when creating from backup, the value must match the backup's FileSystemTypeVersion setting.

", + "CreateFileSystemRequest$FileSystemTypeVersion": "

(Optional) For FSx for Lustre file systems, sets the Lustre version for the file system that you're creating. Valid values are 2.10, 2.12m and 2.15:

Default value = 2.10, except when DeploymentType is set to PERSISTENT_2, then the default is 2.12.

If you set FileSystemTypeVersion to 2.10 for a PERSISTENT_2 Lustre deployment type, the CreateFileSystem operation fails.

", "FileCache$FileCacheTypeVersion": "

The Lustre version of the cache, which must be 2.12.

", "FileCacheCreating$FileCacheTypeVersion": "

The Lustre version of the cache, which must be 2.12.

", - "FileSystem$FileSystemTypeVersion": "

The Lustre version of the Amazon FSx for Lustre file system, either 2.10 or 2.12.

" + "FileSystem$FileSystemTypeVersion": "

The Lustre version of the Amazon FSx for Lustre file system, which is 2.10, 2.12, or 2.15.

" } }, "FileSystems": { @@ -1647,7 +1647,7 @@ "base": null, "refs": { "CreateFileSystemLustreConfiguration$DeploymentType": "

(Optional) Choose SCRATCH_1 and SCRATCH_2 deployment types when you need temporary storage and shorter-term processing of data. The SCRATCH_2 deployment type provides in-transit encryption of data and higher burst throughput capacity than SCRATCH_1.

Choose PERSISTENT_1 for longer-term storage and for throughput-focused workloads that aren’t latency-sensitive. PERSISTENT_1 supports encryption of data in transit, and is available in all Amazon Web Services Regions in which FSx for Lustre is available.

Choose PERSISTENT_2 for longer-term storage and for latency-sensitive workloads that require the highest levels of IOPS/throughput. PERSISTENT_2 supports SSD storage, and offers higher PerUnitStorageThroughput (up to 1000 MB/s/TiB). PERSISTENT_2 is available in a limited number of Amazon Web Services Regions. For more information, and an up-to-date list of Amazon Web Services Regions in which PERSISTENT_2 is available, see File system deployment options for FSx for Lustre in the Amazon FSx for Lustre User Guide.

If you choose PERSISTENT_2, and you set FileSystemTypeVersion to 2.10, the CreateFileSystem operation fails.

Encryption of data in transit is automatically turned on when you access SCRATCH_2, PERSISTENT_1 and PERSISTENT_2 file systems from Amazon EC2 instances that support automatic encryption in the Amazon Web Services Regions where they are available. For more information about encryption in transit for FSx for Lustre file systems, see Encrypting data in transit in the Amazon FSx for Lustre User Guide.

(Default = SCRATCH_1)

", - "LustreFileSystemConfiguration$DeploymentType": "

The deployment type of the FSx for Lustre file system. Scratch deployment type is designed for temporary storage and shorter-term processing of data.

SCRATCH_1 and SCRATCH_2 deployment types are best suited for when you need temporary storage and shorter-term processing of data. The SCRATCH_2 deployment type provides in-transit encryption of data and higher burst throughput capacity than SCRATCH_1.

The PERSISTENT_1 and PERSISTENT_2 deployment type is used for longer-term storage and workloads and encryption of data in transit. PERSISTENT_2 is built on Lustre v2.12 and offers higher PerUnitStorageThroughput (up to 1000 MB/s/TiB) along with a lower minimum storage capacity requirement (600 GiB). To learn more about FSx for Lustre deployment types, see FSx for Lustre deployment options.

The default is SCRATCH_1.

" + "LustreFileSystemConfiguration$DeploymentType": "

The deployment type of the FSx for Lustre file system. Scratch deployment type is designed for temporary storage and shorter-term processing of data.

SCRATCH_1 and SCRATCH_2 deployment types are best suited for when you need temporary storage and shorter-term processing of data. The SCRATCH_2 deployment type provides in-transit encryption of data and higher burst throughput capacity than SCRATCH_1.

The PERSISTENT_1 and PERSISTENT_2 deployment type is used for longer-term storage and workloads and encryption of data in transit. PERSISTENT_2 offers higher PerUnitStorageThroughput (up to 1000 MB/s/TiB) along with a lower minimum storage capacity requirement (600 GiB). To learn more about FSx for Lustre deployment types, see FSx for Lustre deployment options.

The default is SCRATCH_1.

" } }, "LustreFileSystemConfiguration": { @@ -1731,12 +1731,12 @@ "base": "

The sustained throughput of an Amazon FSx file system in Megabytes per second (MBps).

", "refs": { "CreateFileSystemOntapConfiguration$ThroughputCapacity": "

Sets the throughput capacity for the file system that you're creating. Valid values are 128, 256, 512, 1024, 2048, and 4096 MBps.

", - "CreateFileSystemOpenZFSConfiguration$ThroughputCapacity": "

Specifies the throughput of an Amazon FSx for OpenZFS file system, measured in megabytes per second (MBps). Valid values depend on the DeploymentType you choose, as follows:

You pay for additional throughput capacity that you provision.

", + "CreateFileSystemOpenZFSConfiguration$ThroughputCapacity": "

Specifies the throughput of an Amazon FSx for OpenZFS file system, measured in megabytes per second (MBps). Valid values depend on the DeploymentType you choose, as follows:

You pay for additional throughput capacity that you provision.

", "CreateFileSystemWindowsConfiguration$ThroughputCapacity": "

Sets the throughput capacity of an Amazon FSx file system, measured in megabytes per second (MB/s), in 2 to the nth increments, between 2^3 (8) and 2^11 (2048).

", "OntapFileSystemConfiguration$ThroughputCapacity": null, "OpenZFSFileSystemConfiguration$ThroughputCapacity": "

The throughput of an Amazon FSx file system, measured in megabytes per second (MBps).

", "UpdateFileSystemOntapConfiguration$ThroughputCapacity": "

Enter a new value to change the amount of throughput capacity for the file system. Throughput capacity is measured in megabytes per second (MBps). Valid values are 128, 256, 512, 1024, 2048, and 4096 MBps. For more information, see Managing throughput capacity in the FSx for ONTAP User Guide.

", - "UpdateFileSystemOpenZFSConfiguration$ThroughputCapacity": "

The throughput of an Amazon FSx for OpenZFS file system, measured in megabytes per second
 (MB/s). Valid values depend on the DeploymentType you choose, as follows:

", + "UpdateFileSystemOpenZFSConfiguration$ThroughputCapacity": "

The throughput of an Amazon FSx for OpenZFS file system, measured in megabytes per second
 (MB/s). Valid values depend on the DeploymentType you choose, as follows:

", "UpdateFileSystemWindowsConfiguration$ThroughputCapacity": "

Sets the target value for a file system's throughput capacity, in MB/s, that you are updating the file system to. Valid values are 8, 16, 32, 64, 128, 256, 512, 1024, 2048. You cannot make a throughput capacity update request if there is an existing throughput capacity update request in progress. For more information, see Managing Throughput Capacity.

", "WindowsFileSystemConfiguration$ThroughputCapacity": "

The throughput of the Amazon FSx file system, measured in megabytes per second.

" } @@ -1912,7 +1912,7 @@ "OpenZFSDeploymentType": { "base": null, "refs": { - "CreateFileSystemOpenZFSConfiguration$DeploymentType": "

Specifies the file system deployment type. Single AZ deployment types are configured for redundancy within a single Availability Zone in an Amazon Web Services Region . Valid values are the following:

For more information, see: Deployment type availability and File system performance in the Amazon FSx for OpenZFS User Guide.

", + "CreateFileSystemOpenZFSConfiguration$DeploymentType": "

Specifies the file system deployment type. Single AZ deployment types are configured for redundancy within a single Availability Zone in an Amazon Web Services Region . Valid values are the following:

For more information, see Deployment type availability and File system performance in the Amazon FSx for OpenZFS User Guide.

", "OpenZFSFileSystemConfiguration$DeploymentType": "

Specifies the file-system deployment type. Amazon FSx for OpenZFS supports
 MULTI_AZ_1, SINGLE_AZ_1, and SINGLE_AZ_2.

" } }, @@ -2037,7 +2037,7 @@ } }, "ReleaseConfiguration": { - "base": "

The configuration that specifies a minimum amount of time since last access for an archived file to be eligible for release from an Amazon FSx for Lustre file system. Only files that were last accessed before this point-in-time can be released. For example, if you specify a last accessed time criteria of 9 days, only files that were last accessed 9.00001 or more days ago can be released.

Only file data that has been archived can be released. Files that have not yet been archived, such as new or changed files that have not been exported, are not eligible for release. When files are released, their metadata stays on the file system, so they can still be accessed later. Users and applications can access a released file by reading the file again, which restores data from Amazon S3 to the FSx for Lustre file system.

If a file meets the last accessed time criteria, its file or directory path must also be specified with the Paths parameter of the operation in order for the file to be released.

", + "base": "

The configuration that specifies a minimum amount of time since last access for an exported file to be eligible for release from an Amazon FSx for Lustre file system. Only files that were last accessed before this point-in-time can be released. For example, if you specify a last accessed time criteria of 9 days, only files that were last accessed 9.00001 or more days ago can be released.

Only file data that has been exported to S3 can be released. Files that have not yet been exported to S3, such as new or changed files that have not been exported, are not eligible for release. When files are released, their metadata stays on the file system, so they can still be accessed later. Users and applications can access a released file by reading the file again, which restores data from Amazon S3 to the FSx for Lustre file system.

If a file meets the last accessed time criteria, its file or directory path must also be specified with the Paths parameter of the operation in order for the file to be released.

", "refs": { "CreateDataRepositoryTaskRequest$ReleaseConfiguration": "

The configuration that specifies the last accessed time criteria for files that will be released from an Amazon FSx for Lustre file system.

", "DataRepositoryTask$ReleaseConfiguration": "

The configuration that specifies the last accessed time criteria for files that will be released from an Amazon FSx for Lustre file system.

" @@ -2175,8 +2175,8 @@ "RouteTableIds": { "base": null, "refs": { - "CreateFileSystemOntapConfiguration$RouteTableIds": "

(Multi-AZ only) Specifies the virtual private cloud (VPC) route tables in which your file system's endpoints will be created. You should specify all VPC route tables associated with the subnets in which your clients are located. By default, Amazon FSx selects your VPC's default route table.

", - "CreateFileSystemOpenZFSConfiguration$RouteTableIds": "

(Multi-AZ only) Specifies the virtual private cloud (VPC) route tables in which your file system's endpoints will be created. You should specify all VPC route tables associated with the subnets in which your clients are located. By default, Amazon FSx selects your VPC's default route table.

", + "CreateFileSystemOntapConfiguration$RouteTableIds": "

(Multi-AZ only) Specifies the route tables in which Amazon FSx creates the rules for routing traffic to the correct file server. You should specify all virtual private cloud (VPC) route tables associated with the subnets in which your clients are located. By default, Amazon FSx selects your VPC's default route table.

", + "CreateFileSystemOpenZFSConfiguration$RouteTableIds": "

(Multi-AZ only) Specifies the route tables in which Amazon FSx creates the rules for routing traffic to the correct file server. You should specify all virtual private cloud (VPC) route tables associated with the subnets in which your clients are located. By default, Amazon FSx selects your VPC's default route table.

", "OntapFileSystemConfiguration$RouteTableIds": "

(Multi-AZ only) The VPC route tables in which your file system's endpoints are created.

", "OpenZFSFileSystemConfiguration$RouteTableIds": "

(Multi-AZ only) The VPC route tables in which your file system's endpoints are created.

", "UpdateFileSystemOntapConfiguration$AddRouteTableIds": "

(Multi-AZ only) A list of IDs of new virtual private cloud (VPC) route tables to associate (add) with your Amazon FSx for NetApp ONTAP file system.

", @@ -2805,7 +2805,7 @@ "Value": { "base": null, "refs": { - "DurationSinceLastAccess$Value": "

An integer that represents the minimum amount of time (in days) since a file was last accessed in the file system. Only archived files with a MAX(atime, ctime, mtime) timestamp that is more than this amount of time in the past (relative to the task create time) will be released. The default of Value is 0. This is a required parameter.

If an archived file meets the last accessed time criteria, its file or directory path must also be specified in the Paths parameter of the operation in order for the file to be released.

" + "DurationSinceLastAccess$Value": "

An integer that represents the minimum amount of time (in days) since a file was last accessed in the file system. Only exported files with a MAX(atime, ctime, mtime) timestamp that is more than this amount of time in the past (relative to the task create time) will be released. The default of Value is 0. This is a required parameter.

If an exported file meets the last accessed time criteria, its file or directory path must also be specified in the Paths parameter of the operation in order for the file to be released.

" } }, "Volume": { diff --git a/models/apis/omics/2022-11-28/api-2.json b/models/apis/omics/2022-11-28/api-2.json index 2faa0d9de5e..3028bb427c1 100644 --- a/models/apis/omics/2022-11-28/api-2.json +++ b/models/apis/omics/2022-11-28/api-2.json @@ -5665,6 +5665,9 @@ "resourceDigests": { "shape": "RunResourceDigests" }, + "retentionMode": { + "shape": "RunRetentionMode" + }, "roleArn": { "shape": "RunRoleArn" }, @@ -8262,6 +8265,15 @@ "shape": "RunResourceDigest" } }, + "RunRetentionMode": { + "enum": [ + "RETAIN", + "REMOVE" + ], + "max": 64, + "min": 1, + "type": "string" + }, "RunRoleArn": { "max": 128, "min": 1, @@ -8901,6 +8913,9 @@ "idempotencyToken": true, "shape": "RunRequestId" }, + "retentionMode": { + "shape": "RunRetentionMode" + }, "roleArn": { "shape": "RunRoleArn" }, diff --git a/models/apis/omics/2022-11-28/docs-2.json b/models/apis/omics/2022-11-28/docs-2.json index b1cc72e4f4a..d839c8c0c83 100644 --- a/models/apis/omics/2022-11-28/docs-2.json +++ b/models/apis/omics/2022-11-28/docs-2.json @@ -74,7 +74,7 @@ "StartReadSetExportJob": "

Exports a read set to Amazon S3.

", "StartReadSetImportJob": "

Starts a read set import job.

", "StartReferenceImportJob": "

Starts a reference import job.

", - "StartRun": "

Starts a run.

", + "StartRun": "

Starts a workflow run. To duplicate a run, specify the run's ID and a role ARN. The remaining parameters are copied from the previous run.

The total number of runs in your account is subject to a quota per Region. To avoid needing to delete runs manually, you can set the retention mode to REMOVE. Runs with this setting are deleted automatically when the run quoata is exceeded.

", "StartVariantImportJob": "

Starts a variant import job.

", "TagResource": "

Tags a resource.

", "UntagResource": "

Removes tags from a resource.

", @@ -2278,7 +2278,7 @@ "GetRunTaskRequest$id": "

The task's ID.

", "ListRunTasksRequest$id": "

The run's ID.

", "RunListItem$id": "

The run's ID.

", - "StartRunRequest$runId": "

The run's ID.

", + "StartRunRequest$runId": "

The ID of a run to duplicate.

", "StartRunResponse$id": "

The run's ID.

" } }, @@ -2378,6 +2378,13 @@ "GetRunResponse$resourceDigests": "

The run's resource digests.

" } }, + "RunRetentionMode": { + "base": null, + "refs": { + "GetRunResponse$retentionMode": "

The run's retention mode.

", + "StartRunRequest$retentionMode": "

The retention mode for the run.

" + } + }, "RunRoleArn": { "base": null, "refs": { @@ -3586,7 +3593,7 @@ "GetWorkflowRequest$type": "

The workflow's type.

", "GetWorkflowResponse$type": "

The workflow's type.

", "ListWorkflowsRequest$type": "

The workflows' type.

", - "StartRunRequest$workflowType": "

The run's workflows type.

", + "StartRunRequest$workflowType": "

The run's workflow type.

", "WorkflowListItem$type": "

The workflow's type.

" } } diff --git a/models/apis/sesv2/2019-09-27/api-2.json b/models/apis/sesv2/2019-09-27/api-2.json index 208c73e2ea9..85493a0bf8a 100644 --- a/models/apis/sesv2/2019-09-27/api-2.json +++ b/models/apis/sesv2/2019-09-27/api-2.json @@ -28,6 +28,20 @@ {"shape":"NotFoundException"} ] }, + "CancelExportJob":{ + "name":"CancelExportJob", + "http":{ + "method":"PUT", + "requestUri":"/v2/email/export-jobs/{JobId}/cancel" + }, + "input":{"shape":"CancelExportJobRequest"}, + "output":{"shape":"CancelExportJobResponse"}, + "errors":[ + {"shape":"NotFoundException"}, + {"shape":"BadRequestException"}, + {"shape":"TooManyRequestsException"} + ] + }, "CreateConfigurationSet":{ "name":"CreateConfigurationSet", "http":{ @@ -191,6 +205,21 @@ {"shape":"LimitExceededException"} ] }, + "CreateExportJob":{ + "name":"CreateExportJob", + "http":{ + "method":"POST", + "requestUri":"/v2/email/export-jobs" + }, + "input":{"shape":"CreateExportJobRequest"}, + "output":{"shape":"CreateExportJobResponse"}, + "errors":[ + {"shape":"BadRequestException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"NotFoundException"}, + {"shape":"LimitExceededException"} + ] + }, "CreateImportJob":{ "name":"CreateImportJob", "http":{ @@ -586,6 +615,20 @@ {"shape":"BadRequestException"} ] }, + "GetExportJob":{ + "name":"GetExportJob", + "http":{ + "method":"GET", + "requestUri":"/v2/email/export-jobs/{JobId}" + }, + "input":{"shape":"GetExportJobRequest"}, + "output":{"shape":"GetExportJobResponse"}, + "errors":[ + {"shape":"BadRequestException"}, + {"shape":"NotFoundException"}, + {"shape":"TooManyRequestsException"} + ] + }, "GetImportJob":{ "name":"GetImportJob", "http":{ @@ -600,6 +643,20 @@ {"shape":"TooManyRequestsException"} ] }, + "GetMessageInsights":{ + "name":"GetMessageInsights", + "http":{ + "method":"GET", + "requestUri":"/v2/email/insights/{MessageId}/" + }, + "input":{"shape":"GetMessageInsightsRequest"}, + "output":{"shape":"GetMessageInsightsResponse"}, + "errors":[ + {"shape":"NotFoundException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"BadRequestException"} + ] + }, "GetSuppressedDestination":{ "name":"GetSuppressedDestination", "http":{ @@ -734,6 +791,19 @@ {"shape":"BadRequestException"} ] }, + "ListExportJobs":{ + "name":"ListExportJobs", + "http":{ + "method":"POST", + "requestUri":"/v2/email/list-export-jobs" + }, + "input":{"shape":"ListExportJobsRequest"}, + "output":{"shape":"ListExportJobsResponse"}, + "errors":[ + {"shape":"TooManyRequestsException"}, + {"shape":"BadRequestException"} + ] + }, "ListImportJobs":{ "name":"ListImportJobs", "http":{ @@ -1393,6 +1463,23 @@ "Html":{"shape":"Content"} } }, + "Bounce":{ + "type":"structure", + "members":{ + "BounceType":{"shape":"BounceType"}, + "BounceSubType":{"shape":"BounceSubType"}, + "DiagnosticCode":{"shape":"DiagnosticCode"} + } + }, + "BounceSubType":{"type":"string"}, + "BounceType":{ + "type":"string", + "enum":[ + "UNDETERMINED", + "TRANSIENT", + "PERMANENT" + ] + }, "BulkEmailContent":{ "type":"structure", "members":{ @@ -1444,6 +1531,22 @@ ] }, "CampaignId":{"type":"string"}, + "CancelExportJobRequest":{ + "type":"structure", + "required":["JobId"], + "members":{ + "JobId":{ + "shape":"JobId", + "location":"uri", + "locationName":"JobId" + } + } + }, + "CancelExportJobResponse":{ + "type":"structure", + "members":{ + } + }, "CaseId":{"type":"string"}, "Charset":{"type":"string"}, "CloudWatchDestination":{ @@ -1470,6 +1573,15 @@ "type":"list", "member":{"shape":"CloudWatchDimensionConfiguration"} }, + "Complaint":{ + "type":"structure", + "members":{ + "ComplaintSubType":{"shape":"ComplaintSubType"}, + "ComplaintFeedbackType":{"shape":"ComplaintFeedbackType"} + } + }, + "ComplaintFeedbackType":{"type":"string"}, + "ComplaintSubType":{"type":"string"}, "ConcurrentModificationException":{ "type":"structure", "members":{ @@ -1743,6 +1855,23 @@ "members":{ } }, + "CreateExportJobRequest":{ + "type":"structure", + "required":[ + "ExportDataSource", + "ExportDestination" + ], + "members":{ + "ExportDataSource":{"shape":"ExportDataSource"}, + "ExportDestination":{"shape":"ExportDestination"} + } + }, + "CreateExportJobResponse":{ + "type":"structure", + "members":{ + "JobId":{"shape":"JobId"} + } + }, "CreateImportJobRequest":{ "type":"structure", "required":[ @@ -2051,6 +2180,17 @@ ] }, "DeliverabilityTestSubject":{"type":"string"}, + "DeliveryEventType":{ + "type":"string", + "enum":[ + "SEND", + "DELIVERY", + "TRANSIENT_BOUNCE", + "PERMANENT_BOUNCE", + "UNDETERMINED_BOUNCE", + "COMPLAINT" + ] + }, "DeliveryOptions":{ "type":"structure", "members":{ @@ -2067,6 +2207,7 @@ "BccAddresses":{"shape":"EmailAddressList"} } }, + "DiagnosticCode":{"type":"string"}, "DimensionName":{"type":"string"}, "DimensionValueSource":{ "type":"string", @@ -2184,6 +2325,11 @@ "member":{"shape":"DomainIspPlacement"} }, "EmailAddress":{"type":"string"}, + "EmailAddressFilterList":{ + "type":"list", + "member":{"shape":"InsightsEmailAddress"}, + "max":5 + }, "EmailAddressList":{ "type":"list", "member":{"shape":"EmailAddress"} @@ -2196,6 +2342,29 @@ "Template":{"shape":"Template"} } }, + "EmailInsights":{ + "type":"structure", + "members":{ + "Destination":{"shape":"InsightsEmailAddress"}, + "Isp":{"shape":"Isp"}, + "Events":{"shape":"InsightsEvents"} + } + }, + "EmailInsightsList":{ + "type":"list", + "member":{"shape":"EmailInsights"} + }, + "EmailSubject":{ + "type":"string", + "max":998, + "min":1, + "sensitive":true + }, + "EmailSubjectFilterList":{ + "type":"list", + "member":{"shape":"EmailSubject"}, + "max":1 + }, "EmailTemplateContent":{ "type":"structure", "members":{ @@ -2228,6 +2397,13 @@ "EmailTemplateText":{"type":"string"}, "Enabled":{"type":"boolean"}, "EnabledWrapper":{"type":"boolean"}, + "EngagementEventType":{ + "type":"string", + "enum":[ + "OPEN", + "CLICK" + ] + }, "ErrorMessage":{"type":"string"}, "Esp":{"type":"string"}, "Esps":{ @@ -2266,6 +2442,13 @@ "type":"list", "member":{"shape":"EventDestination"} }, + "EventDetails":{ + "type":"structure", + "members":{ + "Bounce":{"shape":"Bounce"}, + "Complaint":{"shape":"Complaint"} + } + }, "EventType":{ "type":"string", "enum":[ @@ -2285,6 +2468,76 @@ "type":"list", "member":{"shape":"EventType"} }, + "ExportDataSource":{ + "type":"structure", + "members":{ + "MetricsDataSource":{"shape":"MetricsDataSource"}, + "MessageInsightsDataSource":{"shape":"MessageInsightsDataSource"} + } + }, + "ExportDestination":{ + "type":"structure", + "required":["DataFormat"], + "members":{ + "DataFormat":{"shape":"DataFormat"}, + "S3Url":{"shape":"S3Url"} + } + }, + "ExportDimensionValue":{ + "type":"list", + "member":{"shape":"MetricDimensionValue"}, + "max":10, + "min":1 + }, + "ExportDimensions":{ + "type":"map", + "key":{"shape":"MetricDimensionName"}, + "value":{"shape":"ExportDimensionValue"}, + "max":3, + "min":1 + }, + "ExportJobSummary":{ + "type":"structure", + "members":{ + "JobId":{"shape":"JobId"}, + "ExportSourceType":{"shape":"ExportSourceType"}, + "JobStatus":{"shape":"JobStatus"}, + "CreatedTimestamp":{"shape":"Timestamp"}, + "CompletedTimestamp":{"shape":"Timestamp"} + } + }, + "ExportJobSummaryList":{ + "type":"list", + "member":{"shape":"ExportJobSummary"} + }, + "ExportMetric":{ + "type":"structure", + "members":{ + "Name":{"shape":"Metric"}, + "Aggregation":{"shape":"MetricAggregation"} + } + }, + "ExportMetrics":{ + "type":"list", + "member":{"shape":"ExportMetric"}, + "max":10, + "min":1 + }, + "ExportSourceType":{ + "type":"string", + "enum":[ + "METRICS_DATA", + "MESSAGE_INSIGHTS" + ] + }, + "ExportStatistics":{ + "type":"structure", + "members":{ + "ProcessedRecordsCount":{"shape":"ProcessedRecordsCount"}, + "ExportedRecordsCount":{"shape":"ExportedRecordsCount"} + } + }, + "ExportedRecordsCount":{"type":"integer"}, "FailedRecordsCount":{"type":"integer"}, "FailedRecordsS3Url":{"type":"string"}, "FailureInfo":{ @@ -2678,6 +2931,31 @@ "TemplateContent":{"shape":"EmailTemplateContent"} } }, + "GetExportJobRequest":{ + "type":"structure", + "required":["JobId"], + "members":{ + "JobId":{ + "shape":"JobId", + "location":"uri", + "locationName":"JobId" + } + } + }, + "GetExportJobResponse":{ + "type":"structure", + "members":{ + "JobId":{"shape":"JobId"}, + "ExportSourceType":{"shape":"ExportSourceType"}, + "JobStatus":{"shape":"JobStatus"}, + "ExportDestination":{"shape":"ExportDestination"}, + "ExportDataSource":{"shape":"ExportDataSource"}, + "CreatedTimestamp":{"shape":"Timestamp"}, + "CompletedTimestamp":{"shape":"Timestamp"}, + "FailureInfo":{"shape":"FailureInfo"}, + "Statistics":{"shape":"ExportStatistics"} + } + }, "GetImportJobRequest":{ "type":"structure", "required":["JobId"], @@ -2703,6 +2981,27 @@ "FailedRecordsCount":{"shape":"FailedRecordsCount"} } }, + "GetMessageInsightsRequest":{ + "type":"structure", + "required":["MessageId"], + "members":{ + "MessageId":{ + "shape":"OutboundMessageId", + "location":"uri", + "locationName":"MessageId" + } + } + }, + "GetMessageInsightsResponse":{ + "type":"structure", + "members":{ + "MessageId":{"shape":"OutboundMessageId"}, + "FromEmailAddress":{"shape":"InsightsEmailAddress"}, + "Subject":{"shape":"EmailSubject"}, + "EmailTags":{"shape":"MessageTagList"}, + "Insights":{"shape":"EmailInsightsList"} + } + }, "GetSuppressedDestinationRequest":{ "type":"structure", "required":["EmailAddress"], @@ -2806,6 +3105,24 @@ "TrackedIsps":{"shape":"IspNameList"} } }, + "InsightsEmailAddress":{ + "type":"string", + "max":320, + "min":1, + "sensitive":true + }, + "InsightsEvent":{ + "type":"structure", + "members":{ + "Timestamp":{"shape":"Timestamp"}, + "Type":{"shape":"EventType"}, + "Details":{"shape":"EventDetails"} + } + }, + "InsightsEvents":{ + "type":"list", + "member":{"shape":"InsightsEvent"} + }, "InternalServiceErrorException":{ "type":"structure", "members":{ @@ -2826,6 +3143,12 @@ "type":"list", "member":{"shape":"Ip"} }, + "Isp":{"type":"string"}, + "IspFilterList":{ + "type":"list", + "member":{"shape":"Isp"}, + "max":5 + }, "IspName":{"type":"string"}, "IspNameList":{ "type":"list", @@ -2852,7 +3175,8 @@ "CREATED", "PROCESSING", "COMPLETED", - "FAILED" + "FAILED", + "CANCELLED" ] }, "KinesisFirehoseDestination":{ @@ -2866,6 +3190,16 @@ "DeliveryStreamArn":{"shape":"AmazonResourceName"} } }, + "LastDeliveryEventList":{ + "type":"list", + "member":{"shape":"DeliveryEventType"}, + "max":5 + }, + "LastEngagementEventList":{ + "type":"list", + "member":{"shape":"EngagementEventType"}, + "max":2 + }, "LastFreshStart":{"type":"timestamp"}, "LimitExceededException":{ "type":"structure", @@ -3108,6 +3442,22 @@ "NextToken":{"shape":"NextToken"} } }, + "ListExportJobsRequest":{ + "type":"structure", + "members":{ + "NextToken":{"shape":"NextToken"}, + "PageSize":{"shape":"MaxItems"}, + "ExportSourceType":{"shape":"ExportSourceType"}, + "JobStatus":{"shape":"JobStatus"} + } + }, + "ListExportJobsResponse":{ + "type":"structure", + "members":{ + "ExportJobs":{"shape":"ExportJobSummaryList"}, + "NextToken":{"shape":"NextToken"} + } + }, "ListImportJobsRequest":{ "type":"structure", "members":{ @@ -3295,6 +3645,36 @@ }, "MessageContent":{"type":"string"}, "MessageData":{"type":"string"}, + "MessageInsightsDataSource":{ + "type":"structure", + "required":[ + "StartDate", + "EndDate" + ], + "members":{ + "StartDate":{"shape":"Timestamp"}, + "EndDate":{"shape":"Timestamp"}, + "Include":{"shape":"MessageInsightsFilters"}, + "Exclude":{"shape":"MessageInsightsFilters"}, + "MaxResults":{"shape":"MessageInsightsExportMaxResults"} + } + }, + "MessageInsightsExportMaxResults":{ + "type":"integer", + "max":10000, + "min":1 + }, + "MessageInsightsFilters":{ + "type":"structure", + "members":{ + "FromEmailAddress":{"shape":"EmailAddressFilterList"}, + "Destination":{"shape":"EmailAddressFilterList"}, + "Subject":{"shape":"EmailSubjectFilterList"}, + "Isp":{"shape":"IspFilterList"}, + "LastDeliveryEvent":{"shape":"LastDeliveryEventList"}, + "LastEngagementEvent":{"shape":"LastEngagementEventList"} + } + }, "MessageRejected":{ "type":"structure", "members":{ @@ -3334,6 +3714,13 @@ "DELIVERY_COMPLAINT" ] }, + "MetricAggregation":{ + "type":"string", + "enum":[ + "RATE", + "VOLUME" + ] + }, "MetricDataError":{ "type":"structure", "members":{ @@ -3375,6 +3762,23 @@ "type":"list", "member":{"shape":"Counter"} }, + "MetricsDataSource":{ + "type":"structure", + "required":[ + "Dimensions", + "Namespace", + "Metrics", + "StartDate", + "EndDate" + ], + "members":{ + "Dimensions":{"shape":"ExportDimensions"}, + "Namespace":{"shape":"MetricNamespace"}, + "Metrics":{"shape":"ExportMetrics"}, + "StartDate":{"shape":"Timestamp"}, + "EndDate":{"shape":"Timestamp"} + } + }, "NextToken":{"type":"string"}, "NotFoundException":{ "type":"structure", diff --git a/models/apis/sesv2/2019-09-27/docs-2.json b/models/apis/sesv2/2019-09-27/docs-2.json index 6c0ca258918..825e0657ac7 100644 --- a/models/apis/sesv2/2019-09-27/docs-2.json +++ b/models/apis/sesv2/2019-09-27/docs-2.json @@ -3,6 +3,7 @@ "service": "Amazon SES API v2

Amazon SES is an Amazon Web Services service that you can use to send email messages to your customers.

If you're new to Amazon SES API v2, you might find it helpful to review the Amazon Simple Email Service Developer Guide. The Amazon SES Developer Guide provides information and code samples that demonstrate how to use Amazon SES API v2 features programmatically.

", "operations": { "BatchGetMetricData": "

Retrieves batches of metric data collected based on your sending activity.

You can execute this operation no more than 16 times per second, and with at most 160 queries from the batches per second (cumulative).

", + "CancelExportJob": "

Cancels an export job.

", "CreateConfigurationSet": "

Create a configuration set. Configuration sets are groups of rules that you can apply to the emails that you send. You apply a configuration set to an email by specifying the name of the configuration set when you call the Amazon SES API v2. When you apply a configuration set to an email, all of the rules in that configuration set are applied to the email.

", "CreateConfigurationSetEventDestination": "

Create an event destination. Events include message sends, deliveries, opens, clicks, bounces, and complaints. Event destinations are places that you can send information about these events to. For example, you can send event data to Amazon SNS to receive notifications when you receive bounces or complaints, or you can use Amazon Kinesis Data Firehose to stream data to Amazon S3 for long-term storage.

A single configuration set can include more than one event destination.

", "CreateContact": "

Creates a contact, which is an end-user who is receiving the email, and adds them to a contact list.

", @@ -13,6 +14,7 @@ "CreateEmailIdentity": "

Starts the process of verifying an email identity. An identity is an email address or domain that you use when you send email. Before you can use an identity to send email, you first have to verify it. By verifying an identity, you demonstrate that you're the owner of the identity, and that you've given Amazon SES API v2 permission to send email from the identity.

When you verify an email address, Amazon SES sends an email to the address. Your email address is verified as soon as you follow the link in the verification email.

When you verify a domain without specifying the DkimSigningAttributes object, this operation provides a set of DKIM tokens. You can convert these tokens into CNAME records, which you then add to the DNS configuration for your domain. Your domain is verified when Amazon SES detects these records in the DNS configuration for your domain. This verification method is known as Easy DKIM.

Alternatively, you can perform the verification process by providing your own public-private key pair. This verification method is known as Bring Your Own DKIM (BYODKIM). To use BYODKIM, your call to the CreateEmailIdentity operation has to include the DkimSigningAttributes object. When you specify this object, you provide a selector (a component of the DNS record name that identifies the public key to use for DKIM authentication) and a private key.

When you verify a domain, this operation provides a set of DKIM tokens, which you can convert into CNAME tokens. You add these CNAME tokens to the DNS configuration for your domain. Your domain is verified when Amazon SES detects these records in the DNS configuration for your domain. For some DNS providers, it can take 72 hours or more to complete the domain verification process.

Additionally, you can associate an existing configuration set with the email identity that you're verifying.

", "CreateEmailIdentityPolicy": "

Creates the specified sending authorization policy for the given identity (an email address or a domain).

This API is for the identity owner only. If you have not verified the identity, this API will return an error.

Sending authorization is a feature that enables an identity owner to authorize other senders to use its identities. For information about using sending authorization, see the Amazon SES Developer Guide.

You can execute this operation no more than once per second.

", "CreateEmailTemplate": "

Creates an email template. Email templates enable you to send personalized email to one or more destinations in a single API operation. For more information, see the Amazon SES Developer Guide.

You can execute this operation no more than once per second.

", + "CreateExportJob": "

Creates an export job for a data source and destination.

You can execute this operation no more than once per second.

", "CreateImportJob": "

Creates an import job for a data destination.

", "DeleteConfigurationSet": "

Delete an existing configuration set.

Configuration sets are groups of rules that you can apply to the emails you send. You apply a configuration set to an email by including a reference to the configuration set in the headers of the email. When you apply a configuration set to an email, all of the rules in that configuration set are applied to the email.

", "DeleteConfigurationSetEventDestination": "

Delete an event destination.

Events include message sends, deliveries, opens, clicks, bounces, and complaints. Event destinations are places that you can send information about these events to. For example, you can send event data to Amazon SNS to receive notifications when you receive bounces or complaints, or you can use Amazon Kinesis Data Firehose to stream data to Amazon S3 for long-term storage.

", @@ -41,7 +43,9 @@ "GetEmailIdentity": "

Provides information about a specific identity, including the identity's verification status, sending authorization policies, its DKIM authentication status, and its custom Mail-From settings.

", "GetEmailIdentityPolicies": "

Returns the requested sending authorization policies for the given identity (an email address or a domain). The policies are returned as a map of policy names to policy contents. You can retrieve a maximum of 20 policies at a time.

This API is for the identity owner only. If you have not verified the identity, this API will return an error.

Sending authorization is a feature that enables an identity owner to authorize other senders to use its identities. For information about using sending authorization, see the Amazon SES Developer Guide.

You can execute this operation no more than once per second.

", "GetEmailTemplate": "

Displays the template object (which includes the subject line, HTML part and text part) for the template you specify.

You can execute this operation no more than once per second.

", + "GetExportJob": "

Provides information about an export job.

", "GetImportJob": "

Provides information about an import job.

", + "GetMessageInsights": "

Provides information about a specific message, including the from address, the subject, the recipient address, email tags, as well as events associated with the message.

You can execute this operation no more than once per second.

", "GetSuppressedDestination": "

Retrieves information about a specific email address that's on the suppression list for your account.

", "ListConfigurationSets": "

List all of the configuration sets associated with your account in the current region.

Configuration sets are groups of rules that you can apply to the emails you send. You apply a configuration set to an email by including a reference to the configuration set in the headers of the email. When you apply a configuration set to an email, all of the rules in that configuration set are applied to the email.

", "ListContactLists": "

Lists all of the contact lists available.

", @@ -52,6 +56,7 @@ "ListDomainDeliverabilityCampaigns": "

Retrieve deliverability data for all the campaigns that used a specific domain to send email during a specified time range. This data is available for a domain only if you enabled the Deliverability dashboard for the domain.

", "ListEmailIdentities": "

Returns a list of all of the email identities that are associated with your Amazon Web Services account. An identity can be either an email address or a domain. This operation returns identities that are verified as well as those that aren't. This operation returns identities that are associated with Amazon SES and Amazon Pinpoint.

", "ListEmailTemplates": "

Lists the email templates present in your Amazon SES account in the current Amazon Web Services Region.

You can execute this operation no more than once per second.

", + "ListExportJobs": "

Lists all of the export jobs.

", "ListImportJobs": "

Lists all of the import jobs.

", "ListRecommendations": "

Lists the recommendations present in your Amazon SES account in the current Amazon Web Services Region.

You can execute this operation no more than once per second.

", "ListSuppressedDestinations": "

Retrieves a list of email addresses that are on the suppression list for your account.

", @@ -223,6 +228,24 @@ "Message$Body": "

The body of the message. You can specify an HTML version of the message, a text-only version of the message, or both.

" } }, + "Bounce": { + "base": "

Information about a Bounce event.

", + "refs": { + "EventDetails$Bounce": "

Information about a Bounce event.

" + } + }, + "BounceSubType": { + "base": null, + "refs": { + "Bounce$BounceSubType": "

The subtype of the bounce, as determined by SES.

" + } + }, + "BounceType": { + "base": null, + "refs": { + "Bounce$BounceType": "

The type of the bounce, as determined by SES. Can be one of UNDETERMINED, TRANSIENT, or PERMANENT

" + } + }, "BulkEmailContent": { "base": "

An object that contains the body of the message. You can specify a template message.

", "refs": { @@ -266,6 +289,16 @@ "GetDomainDeliverabilityCampaignRequest$CampaignId": "

The unique identifier for the campaign. The Deliverability dashboard automatically generates and assigns this identifier to a campaign.

" } }, + "CancelExportJobRequest": { + "base": "

Represents a request to cancel an export job using the export job ID.

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

An HTTP 200 response if the request succeeds, or an error message if the request fails.

", + "refs": { + } + }, "CaseId": { "base": null, "refs": { @@ -297,6 +330,24 @@ "CloudWatchDestination$DimensionConfigurations": "

An array of objects that define the dimensions to use when you send email events to Amazon CloudWatch.

" } }, + "Complaint": { + "base": "

Information about a Complaint event.

", + "refs": { + "EventDetails$Complaint": "

Information about a Complaint event.

" + } + }, + "ComplaintFeedbackType": { + "base": null, + "refs": { + "Complaint$ComplaintFeedbackType": "

The value of the Feedback-Type field from the feedback report received from the ISP.

" + } + }, + "ComplaintSubType": { + "base": null, + "refs": { + "Complaint$ComplaintSubType": "

Can either be null or OnAccountSuppressionList. If the value is OnAccountSuppressionList, SES accepted the message, but didn't attempt to send it because it was on the account-level suppression list.

" + } + }, "ConcurrentModificationException": { "base": "

The resource is being modified by another operation or thread.

", "refs": { @@ -503,6 +554,16 @@ "refs": { } }, + "CreateExportJobRequest": { + "base": "

Represents a request to create an export job from a data source to a data destination.

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

An HTTP 200 response if the request succeeds, or an error message if the request fails.

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

Represents a request to create an import job from a data source for a data destination.

", "refs": { @@ -557,8 +618,9 @@ } }, "DataFormat": { - "base": "

The data format of the import job's data source.

", + "base": "

The data format of a file, can be one of the following:

", "refs": { + "ExportDestination$DataFormat": "

The data format of the final export job file, can be one of the following:

", "ImportDataSource$DataFormat": "

The data format of the import job's data source.

" } }, @@ -719,6 +781,12 @@ "DeliverabilityTestReport$Subject": "

The subject line for an email that you submitted in a predictive inbox placement test.

" } }, + "DeliveryEventType": { + "base": "

The type of delivery events:

", + "refs": { + "LastDeliveryEventList$member": null + } + }, "DeliveryOptions": { "base": "

Used to associate a configuration set with a dedicated IP pool.

", "refs": { @@ -742,6 +810,12 @@ "SendEmailRequest$Destination": "

An object that contains the recipients of the email message.

" } }, + "DiagnosticCode": { + "base": null, + "refs": { + "Bounce$DiagnosticCode": "

The status code issued by the reporting Message Transfer Authority (MTA). This field only appears if a delivery status notification (DSN) was attached to the bounce and the Diagnostic-Code was provided in the DSN.

" + } + }, "DimensionName": { "base": "

The name of an Amazon CloudWatch dimension associated with an email sending metric. The name has to meet the following criteria:

", "refs": { @@ -890,6 +964,13 @@ "UpdateCustomVerificationEmailTemplateRequest$FromEmailAddress": "

The email address that the custom verification email is sent from.

" } }, + "EmailAddressFilterList": { + "base": null, + "refs": { + "MessageInsightsFilters$FromEmailAddress": "

The from address used to send the message.

", + "MessageInsightsFilters$Destination": "

The recipient's email address.

" + } + }, "EmailAddressList": { "base": null, "refs": { @@ -907,6 +988,31 @@ "SendEmailRequest$Content": "

An object that contains the body of the message. You can send either a Simple message Raw message or a template Message.

" } }, + "EmailInsights": { + "base": "

An email's insights contain metadata and delivery information about a specific email.

", + "refs": { + "EmailInsightsList$member": null + } + }, + "EmailInsightsList": { + "base": null, + "refs": { + "GetMessageInsightsResponse$Insights": "

A set of insights associated with the message.

" + } + }, + "EmailSubject": { + "base": null, + "refs": { + "EmailSubjectFilterList$member": null, + "GetMessageInsightsResponse$Subject": "

The subject line of the message.

" + } + }, + "EmailSubjectFilterList": { + "base": null, + "refs": { + "MessageInsightsFilters$Subject": "

The subject line of the message.

" + } + }, "EmailTemplateContent": { "base": "

The content of the email, composed of a subject line, an HTML part, and a text-only part.

", "refs": { @@ -1009,11 +1115,17 @@ "PutAccountDetailsRequest$ProductionAccessEnabled": "

Indicates whether or not your account should have production access in the current Amazon Web Services Region.

If the value is false, then your account is in the sandbox. When your account is in the sandbox, you can only send email to verified identities. Additionally, the maximum number of emails you can send in a 24-hour period (your sending quota) is 200, and the maximum number of emails you can send per second (your maximum sending rate) is 1.

If the value is true, then your account has production access. When your account has production access, you can send email to any address. The sending quota and maximum sending rate for your account vary based on your specific use case.

" } }, + "EngagementEventType": { + "base": "

The type of delivery events:

", + "refs": { + "LastEngagementEventList$member": null + } + }, "ErrorMessage": { "base": null, "refs": { "BulkEmailEntryResult$Error": "

A description of an error that prevented a message being sent using the SendBulkTemplatedEmail operation.

", - "FailureInfo$ErrorMessage": "

A message about why the import job failed.

" + "FailureInfo$ErrorMessage": "

A message about why the job failed.

" } }, "Esp": { @@ -1056,10 +1168,17 @@ "GetConfigurationSetEventDestinationsResponse$EventDestinations": "

An array that includes all of the events destinations that have been configured for the configuration set.

" } }, + "EventDetails": { + "base": "

Contains a Bounce object if the event type is BOUNCE. Contains a Complaint object if the event type is COMPLAINT.

", + "refs": { + "InsightsEvent$Details": "

Details about bounce or complaint events.

" + } + }, "EventType": { "base": "

An email sending event type. For example, email sends, opens, and bounces are all email events.

", "refs": { - "EventTypes$member": null + "EventTypes$member": null, + "InsightsEvent$Type": "

The type of event:

" } }, "EventTypes": { @@ -1069,6 +1188,76 @@ "EventDestinationDefinition$MatchingEventTypes": "

An array that specifies which events the Amazon SES API v2 should send to the destinations in this EventDestinationDefinition.

" } }, + "ExportDataSource": { + "base": "

An object that contains details about the data source of the export job. It can only contain one of MetricsDataSource or MessageInsightsDataSource object.

", + "refs": { + "CreateExportJobRequest$ExportDataSource": "

The data source for the export job.

", + "GetExportJobResponse$ExportDataSource": "

The data source of the export job.

" + } + }, + "ExportDestination": { + "base": "

An object that contains details about the destination of the export job.

", + "refs": { + "CreateExportJobRequest$ExportDestination": "

The destination for the export job.

", + "GetExportJobResponse$ExportDestination": "

The destination of the export job.

" + } + }, + "ExportDimensionValue": { + "base": null, + "refs": { + "ExportDimensions$value": null + } + }, + "ExportDimensions": { + "base": null, + "refs": { + "MetricsDataSource$Dimensions": "

An object that contains a mapping between a MetricDimensionName and MetricDimensionValue to filter metrics by. Must contain a least 1 dimension but no more than 3 unique ones.

" + } + }, + "ExportJobSummary": { + "base": "

A summary of the export job.

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

A list of the export job summaries.

", + "refs": { + "ListExportJobsResponse$ExportJobs": "

A list of the export job summaries.

" + } + }, + "ExportMetric": { + "base": "

An object that contains a mapping between a Metric and MetricAggregation.

", + "refs": { + "ExportMetrics$member": null + } + }, + "ExportMetrics": { + "base": null, + "refs": { + "MetricsDataSource$Metrics": "

A list of ExportMetric objects to export.

" + } + }, + "ExportSourceType": { + "base": "

The type of data source of an export, can be one of the following:

", + "refs": { + "ExportJobSummary$ExportSourceType": "

The source type of the export job.

", + "GetExportJobResponse$ExportSourceType": "

The type of source of the export job.

", + "ListExportJobsRequest$ExportSourceType": "

A value used to list export jobs that have a certain ExportSourceType.

" + } + }, + "ExportStatistics": { + "base": "

Statistics about the execution of an export job.

", + "refs": { + "GetExportJobResponse$Statistics": "

The statistics about the export job.

" + } + }, + "ExportedRecordsCount": { + "base": null, + "refs": { + "ExportStatistics$ExportedRecordsCount": "

The number of records that were exported to the final export file.

This value might not be available for all export source types

" + } + }, "FailedRecordsCount": { "base": null, "refs": { @@ -1079,12 +1268,13 @@ "FailedRecordsS3Url": { "base": null, "refs": { - "FailureInfo$FailedRecordsS3Url": "

An Amazon S3 presigned URL that contains all the failed records and related information.

" + "FailureInfo$FailedRecordsS3Url": "

An Amazon S3 pre-signed URL that contains all the failed records and related information.

" } }, "FailureInfo": { - "base": "

An object that contains the failure details about an import job.

", + "base": "

An object that contains the failure details about a job.

", "refs": { + "GetExportJobResponse$FailureInfo": "

The failure details about an export job.

", "GetImportJobResponse$FailureInfo": "

The failure details about an import job.

" } }, @@ -1289,6 +1479,16 @@ "refs": { } }, + "GetExportJobRequest": { + "base": "

Represents a request to retrieve information about an export job using the export job ID.

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

An HTTP 200 response if the request succeeds, or an error message if the request fails.

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

Represents a request for information about an import job using the import job ID.

", "refs": { @@ -1299,6 +1499,16 @@ "refs": { } }, + "GetMessageInsightsRequest": { + "base": "

A request to return information about a message.

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

Information about a message.

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

A request to retrieve information about an email address that's on the suppression list for your account.

", "refs": { @@ -1406,6 +1616,26 @@ "DomainDeliverabilityTrackingOption$InboxPlacementTrackingOption": "

An object that contains information about the inbox placement data settings for the domain.

" } }, + "InsightsEmailAddress": { + "base": null, + "refs": { + "EmailAddressFilterList$member": null, + "EmailInsights$Destination": "

The recipient of the email.

", + "GetMessageInsightsResponse$FromEmailAddress": "

The from address used to send the message.

" + } + }, + "InsightsEvent": { + "base": "

An object containing details about a specific event.

", + "refs": { + "InsightsEvents$member": null + } + }, + "InsightsEvents": { + "base": null, + "refs": { + "EmailInsights$Events": "

A list of events associated with the sent email.

" + } + }, "InternalServiceErrorException": { "base": "

The request couldn't be processed because an error occurred with the Amazon SES API v2.

", "refs": { @@ -1432,6 +1662,19 @@ "DomainDeliverabilityCampaign$SendingIps": "

The IP addresses that were used to send the email message.

" } }, + "Isp": { + "base": null, + "refs": { + "EmailInsights$Isp": "

The recipient's ISP (e.g., Gmail, Yahoo, etc.).

", + "IspFilterList$member": null + } + }, + "IspFilterList": { + "base": null, + "refs": { + "MessageInsightsFilters$Isp": "

The recipient's ISP (e.g., Gmail, Yahoo, etc.).

" + } + }, "IspName": { "base": "

The name of an email provider.

", "refs": { @@ -1459,19 +1702,27 @@ } }, "JobId": { - "base": "

A string that represents the import job ID.

", + "base": "

A string that represents a job ID.

", "refs": { + "CancelExportJobRequest$JobId": "

The export job ID.

", + "CreateExportJobResponse$JobId": "

A string that represents the export job ID.

", "CreateImportJobResponse$JobId": "

A string that represents the import job ID.

", + "ExportJobSummary$JobId": "

The export job ID.

", + "GetExportJobRequest$JobId": "

The export job ID.

", + "GetExportJobResponse$JobId": "

The export job ID.

", "GetImportJobRequest$JobId": "

The ID of the import job.

", "GetImportJobResponse$JobId": "

A string that represents the import job ID.

", "ImportJobSummary$JobId": null } }, "JobStatus": { - "base": "

The status of the import job.

", + "base": "

The status of a job.

", "refs": { + "ExportJobSummary$JobStatus": "

The status of the export job.

", + "GetExportJobResponse$JobStatus": "

The status of the export job.

", "GetImportJobResponse$JobStatus": "

The status of the import job.

", - "ImportJobSummary$JobStatus": null + "ImportJobSummary$JobStatus": null, + "ListExportJobsRequest$JobStatus": "

A value used to list export jobs that have a certain JobStatus.

" } }, "KinesisFirehoseDestination": { @@ -1481,6 +1732,18 @@ "EventDestinationDefinition$KinesisFirehoseDestination": "

An object that defines an Amazon Kinesis Data Firehose destination for email events. You can use Amazon Kinesis Data Firehose to stream data to other services, such as Amazon S3 and Amazon Redshift.

" } }, + "LastDeliveryEventList": { + "base": null, + "refs": { + "MessageInsightsFilters$LastDeliveryEvent": "

The last delivery-related event for the email, where the ordering is as follows: SEND < BOUNCE < DELIVERY < COMPLAINT.

" + } + }, + "LastEngagementEventList": { + "base": null, + "refs": { + "MessageInsightsFilters$LastEngagementEvent": "

The last engagement-related event for the email, where the ordering is as follows: OPEN < CLICK.

Engagement events are only available if Engagement tracking is enabled.

" + } + }, "LastFreshStart": { "base": "

The date and time (in Unix time) when the reputation metrics were last given a fresh start. When your account is given a fresh start, your reputation metrics are calculated starting from the date of the fresh start.

", "refs": { @@ -1588,6 +1851,16 @@ "refs": { } }, + "ListExportJobsRequest": { + "base": "

Represents a request to list all export jobs with filters.

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

An HTTP 200 response if the request succeeds, or an error message if the request fails.

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

Represents a request to list all of the import jobs for a data destination within the specified maximum number of import jobs.

", "refs": { @@ -1720,6 +1993,7 @@ "ListDomainDeliverabilityCampaignsRequest$PageSize": "

The maximum number of results to include in response to a single call to the ListDomainDeliverabilityCampaigns operation. If the number of results is larger than the number that you specify in this parameter, the response includes a NextToken element, which you can use to obtain additional results.

", "ListEmailIdentitiesRequest$PageSize": "

The number of results to show in a single call to ListEmailIdentities. If the number of results is larger than the number you specified in this parameter, then the response includes a NextToken element, which you can use to obtain additional results.

The value you specify has to be at least 0, and can be no more than 1000.

", "ListEmailTemplatesRequest$PageSize": "

The number of results to show in a single call to ListEmailTemplates. If the number of results is larger than the number you specified in this parameter, then the response includes a NextToken element, which you can use to obtain additional results.

The value you specify has to be at least 1, and can be no more than 10.

", + "ListExportJobsRequest$PageSize": "

Maximum number of export jobs to return at once. Use this parameter to paginate results. If additional export jobs exist beyond the specified limit, the NextToken element is sent in the response. Use the NextToken value in subsequent calls to ListExportJobs to retrieve additional export jobs.

", "ListImportJobsRequest$PageSize": "

Maximum number of import jobs to return at once. Use this parameter to paginate results. If additional import jobs exist beyond the specified limit, the NextToken element is sent in the response. Use the NextToken value in subsequent requests to retrieve additional addresses.

", "ListRecommendationsRequest$PageSize": "

The number of results to show in a single call to ListRecommendations. If the number of results is larger than the number you specified in this parameter, then the response includes a NextToken element, which you can use to obtain additional results.

The value you specify has to be at least 1, and can be no more than 100.

", "ListSuppressedDestinationsRequest$PageSize": "

The number of results to show in a single call to ListSuppressedDestinations. If the number of results is larger than the number you specified in this parameter, then the response includes a NextToken element, which you can use to obtain additional results.

" @@ -1749,6 +2023,25 @@ "Content$Data": "

The content of the message itself.

" } }, + "MessageInsightsDataSource": { + "base": "

An object that contains filters applied when performing the Message Insights export.

", + "refs": { + "ExportDataSource$MessageInsightsDataSource": null + } + }, + "MessageInsightsExportMaxResults": { + "base": null, + "refs": { + "MessageInsightsDataSource$MaxResults": "

The maximum number of results.

" + } + }, + "MessageInsightsFilters": { + "base": "

An object containing Message Insights filters.

If you specify multiple filters, the filters are joined by AND.

If you specify multiple values for a filter, the values are joined by OR. Filter values are case-sensitive.

FromEmailAddress, Destination, and Subject filters support partial match. A partial match is performed by using the * wildcard character placed at the beginning (suffix match), the end (prefix match) or both ends of the string (contains match). In order to match the literal characters * or \\, they must be escaped using the \\ character. If no wildcard character is present, an exact match is performed.

", + "refs": { + "MessageInsightsDataSource$Include": "

Filters for results to be included in the export file.

", + "MessageInsightsDataSource$Exclude": "

Filters for results to be excluded from the export file.

" + } + }, "MessageRejected": { "base": "

The message can't be sent because it contains invalid content.

", "refs": { @@ -1764,6 +2057,7 @@ "base": "

A list of message tags.

", "refs": { "BulkEmailEntry$ReplacementTags": "

A list of tags, in the form of name/value pairs, to apply to an email that you send using the SendBulkTemplatedEmail operation. Tags correspond to characteristics of the email that you define, so that you can publish email sending events.

", + "GetMessageInsightsResponse$EmailTags": "

A list of tags, in the form of name/value pairs, that were applied to the email you sent, along with Amazon SES Auto-Tags.

", "SendBulkEmailRequest$DefaultEmailTags": "

A list of tags, in the form of name/value pairs, to apply to an email that you send using the SendEmail operation. Tags correspond to characteristics of the email that you define, so that you can publish email sending events.

", "SendEmailRequest$EmailTags": "

A list of tags, in the form of name/value pairs, to apply to an email that you send using the SendEmail operation. Tags correspond to characteristics of the email that you define, so that you can publish email sending events.

" } @@ -1781,9 +2075,16 @@ } }, "Metric": { - "base": null, + "base": "

The metric to export, can be one of the following:

", + "refs": { + "BatchGetMetricDataQuery$Metric": "

The queried metric. This can be one of the following:

", + "ExportMetric$Name": null + } + }, + "MetricAggregation": { + "base": "

The aggregation to apply to a metric, can be one of the following:

", "refs": { - "BatchGetMetricDataQuery$Metric": "

The queried metric. This can be one of the following:

" + "ExportMetric$Aggregation": null } }, "MetricDataError": { @@ -1813,19 +2114,22 @@ "MetricDimensionName": { "base": "

The BatchGetMetricDataQuery dimension name. This can be one of the following:

", "refs": { - "Dimensions$key": null + "Dimensions$key": null, + "ExportDimensions$key": null } }, "MetricDimensionValue": { - "base": null, + "base": "

A list of values associated with the MetricDimensionName to filter metrics by. Can either be * as a wildcard for all values or a list of up to 10 specific values. If one Dimension has the * value, other dimensions can only contain one value.

", "refs": { - "Dimensions$value": null + "Dimensions$value": null, + "ExportDimensionValue$member": null } }, "MetricNamespace": { "base": null, "refs": { - "BatchGetMetricDataQuery$Namespace": "

The query namespace - e.g. VDM

" + "BatchGetMetricDataQuery$Namespace": "

The query namespace - e.g. VDM

", + "MetricsDataSource$Namespace": "

The metrics namespace - e.g., VDM.

" } }, "MetricValueList": { @@ -1834,6 +2138,12 @@ "MetricDataResult$Values": "

A list of values (cumulative / sum) for the metric data results.

" } }, + "MetricsDataSource": { + "base": "

An object that contains details about the data source for the metrics export.

", + "refs": { + "ExportDataSource$MetricsDataSource": null + } + }, "NextToken": { "base": null, "refs": { @@ -1857,6 +2167,8 @@ "ListEmailIdentitiesResponse$NextToken": "

A token that indicates that there are additional configuration sets to list. To view additional configuration sets, issue another request to ListEmailIdentities, and pass this token in the NextToken parameter.

", "ListEmailTemplatesRequest$NextToken": "

A token returned from a previous call to ListEmailTemplates to indicate the position in the list of email templates.

", "ListEmailTemplatesResponse$NextToken": "

A token indicating that there are additional email templates available to be listed. Pass this token to a subsequent ListEmailTemplates call to retrieve the next 10 email templates.

", + "ListExportJobsRequest$NextToken": "

The pagination token returned from a previous call to ListExportJobs to indicate the position in the list of export jobs.

", + "ListExportJobsResponse$NextToken": "

A string token indicating that there might be additional export jobs available to be listed. Use this token to a subsequent call to ListExportJobs with the same parameters to retrieve the next page of export jobs.

", "ListImportJobsRequest$NextToken": "

A string token indicating that there might be additional import jobs available to be listed. Copy this token to a subsequent call to ListImportJobs with the same parameters to retrieve the next page of import jobs.

", "ListImportJobsResponse$NextToken": "

A string token indicating that there might be additional import jobs available to be listed. Copy this token to a subsequent call to ListImportJobs with the same parameters to retrieve the next page of import jobs.

", "ListRecommendationsRequest$NextToken": "

A token returned from a previous call to ListRecommendations to indicate the position in the list of recommendations.

", @@ -1874,6 +2186,8 @@ "base": null, "refs": { "BulkEmailEntryResult$MessageId": "

The unique message identifier returned from the SendBulkTemplatedEmail operation.

", + "GetMessageInsightsRequest$MessageId": "

A MessageId is a unique identifier for a message, and is returned when sending emails through Amazon SES.

", + "GetMessageInsightsResponse$MessageId": "

A unique identifier for the message.

", "SendCustomVerificationEmailResponse$MessageId": "

The unique message identifier returned from the SendCustomVerificationEmail operation.

", "SendEmailResponse$MessageId": "

A unique identifier for the message that is generated when the message is accepted.

It's possible for Amazon SES to accept a message without sending it. This can happen when the message that you're trying to send has an attachment contains a virus, or when you send a templated email that contains invalid personalization content, for example.

", "SuppressedDestinationAttributes$MessageId": "

The unique identifier of the email message that caused the email address to be added to the suppression list for your account.

" @@ -1970,6 +2284,7 @@ "ProcessedRecordsCount": { "base": null, "refs": { + "ExportStatistics$ProcessedRecordsCount": "

The number of records that were processed to generate the final export file.

", "GetImportJobResponse$ProcessedRecordsCount": "

The current number of records processed.

", "ImportJobSummary$ProcessedRecordsCount": "

The current number of records processed.

" } @@ -2311,8 +2626,9 @@ } }, "S3Url": { - "base": "

An Amazon S3 URL in the format s3://<bucket_name>/<object>.

", + "base": "

An Amazon S3 URL in the format s3://<bucket_name>/<object> or a pre-signed URL.

", "refs": { + "ExportDestination$S3Url": "

An Amazon S3 pre-signed URL that points to the generated export file.

", "ImportDataSource$S3Url": "

An Amazon S3 URL in the format s3://<bucket_name>/<object>.

" } }, @@ -2579,6 +2895,8 @@ "DomainDeliverabilityCampaign$LastSeenDateTime": "

The last time when the email message was delivered to any recipient's inbox. This value can help you determine how long it took for a campaign to deliver an email message.

", "DomainDeliverabilityTrackingOption$SubscriptionStartDate": "

The date when you enabled the Deliverability dashboard for the domain.

", "EmailTemplateMetadata$CreatedTimestamp": "

The time and date the template was created.

", + "ExportJobSummary$CreatedTimestamp": "

The timestamp of when the export job was created.

", + "ExportJobSummary$CompletedTimestamp": "

The timestamp of when the export job was completed.

", "GetContactListResponse$CreatedTimestamp": "

A timestamp noting when the contact list was created.

", "GetContactListResponse$LastUpdatedTimestamp": "

A timestamp noting the last time the contact list was updated.

", "GetContactResponse$CreatedTimestamp": "

A timestamp noting when the contact was created.

", @@ -2586,13 +2904,20 @@ "GetDeliverabilityDashboardOptionsResponse$SubscriptionExpiryDate": "

The date when your current subscription to the Deliverability dashboard is scheduled to expire, if your subscription is scheduled to expire at the end of the current calendar month. This value is null if you have an active subscription that isn’t due to expire at the end of the month.

", "GetDomainStatisticsReportRequest$StartDate": "

The first day (in Unix time) that you want to obtain domain deliverability metrics for.

", "GetDomainStatisticsReportRequest$EndDate": "

The last day (in Unix time) that you want to obtain domain deliverability metrics for. The EndDate that you specify has to be less than or equal to 30 days after the StartDate.

", + "GetExportJobResponse$CreatedTimestamp": "

The timestamp of when the export job was created.

", + "GetExportJobResponse$CompletedTimestamp": "

The timestamp of when the export job was completed.

", "GetImportJobResponse$CreatedTimestamp": "

The time stamp of when the import job was created.

", "GetImportJobResponse$CompletedTimestamp": "

The time stamp of when the import job was completed.

", "ImportJobSummary$CreatedTimestamp": "

The date and time when the import job was created.

", + "InsightsEvent$Timestamp": "

The timestamp of the event.

", "ListDomainDeliverabilityCampaignsRequest$StartDate": "

The first day that you want to obtain deliverability data for.

", "ListDomainDeliverabilityCampaignsRequest$EndDate": "

The last day that you want to obtain deliverability data for. This value has to be less than or equal to 30 days after the value of the StartDate parameter.

", "ListSuppressedDestinationsRequest$StartDate": "

Used to filter the list of suppressed email destinations so that it only includes addresses that were added to the list after a specific date.

", "ListSuppressedDestinationsRequest$EndDate": "

Used to filter the list of suppressed email destinations so that it only includes addresses that were added to the list before a specific date.

", + "MessageInsightsDataSource$StartDate": "

Represents the start date for the export interval as a timestamp. The start date is inclusive.

", + "MessageInsightsDataSource$EndDate": "

Represents the end date for the export interval as a timestamp. The end date is inclusive.

", + "MetricsDataSource$StartDate": "

Represents the start date for the export interval as a timestamp.

", + "MetricsDataSource$EndDate": "

Represents the end date for the export interval as a timestamp.

", "Recommendation$CreatedTimestamp": "

The first time this issue was encountered and the recommendation was generated.

", "Recommendation$LastUpdatedTimestamp": "

The last time the recommendation was updated.

", "SuppressedDestination$LastUpdateTime": "

The date and time when the suppressed destination was last updated, shown in Unix time format.

", diff --git a/models/apis/sesv2/2019-09-27/endpoint-rule-set-1.json b/models/apis/sesv2/2019-09-27/endpoint-rule-set-1.json index 1d567c5f974..900cfc973ee 100644 --- a/models/apis/sesv2/2019-09-27/endpoint-rule-set-1.json +++ b/models/apis/sesv2/2019-09-27/endpoint-rule-set-1.json @@ -58,52 +58,56 @@ "type": "error" }, { - "conditions": [], - "type": "tree", - "rules": [ + "conditions": [ { - "conditions": [ + "fn": "booleanEquals", + "argv": [ { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", - "type": "error" - }, - { - "conditions": [], - "endpoint": { - "url": { - "ref": "Endpoint" + "ref": "UseDualStack" }, - "properties": {}, - "headers": {} - }, - "type": "endpoint" + true + ] } - ] + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ] }, { - "conditions": [], + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Region" + } + ] + } + ], "type": "tree", "rules": [ { "conditions": [ { - "fn": "isSet", + "fn": "aws.partition", "argv": [ { "ref": "Region" } - ] + ], + "assign": "PartitionResult" } ], "type": "tree", @@ -111,13 +115,22 @@ { "conditions": [ { - "fn": "aws.partition", + "fn": "booleanEquals", "argv": [ { - "ref": "Region" - } - ], - "assign": "PartitionResult" + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] } ], "type": "tree", @@ -127,224 +140,175 @@ { "fn": "booleanEquals", "argv": [ + true, { - "ref": "UseFIPS" - }, - true + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } ] }, { "fn": "booleanEquals", "argv": [ + true, { - "ref": "UseDualStack" - }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - true, - { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "supportsFIPS" - ] - } - ] - }, - { - "fn": "booleanEquals", + "fn": "getAttr", "argv": [ - true, { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "supportsDualStack" - ] - } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://email-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } + "ref": "PartitionResult" + }, + "supportsDualStack" ] } ] - }, + } + ], + "type": "tree", + "rules": [ { "conditions": [], - "error": "FIPS and DualStack are enabled, but this partition does not support one or both", - "type": "error" + "endpoint": { + "url": "https://email-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ] }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ { "conditions": [ { "fn": "booleanEquals", "argv": [ + true, { - "ref": "UseFIPS" - }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", + "fn": "getAttr", "argv": [ - true, - { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "supportsFIPS" - ] - } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "type": "tree", - "rules": [ { - "conditions": [], - "endpoint": { - "url": "https://email-fips.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } + "ref": "PartitionResult" + }, + "supportsFIPS" ] } ] - }, + } + ], + "type": "tree", + "rules": [ { "conditions": [], - "error": "FIPS is enabled but this partition does not support FIPS", - "type": "error" + "endpoint": { + "url": "https://email-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ] }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ { "conditions": [ { "fn": "booleanEquals", "argv": [ + true, { - "ref": "UseDualStack" - }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", + "fn": "getAttr", "argv": [ - true, { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "supportsDualStack" - ] - } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://email.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } + "ref": "PartitionResult" + }, + "supportsDualStack" ] } ] - }, - { - "conditions": [], - "error": "DualStack is enabled but this partition does not support DualStack", - "type": "error" } - ] - }, - { - "conditions": [], + ], "type": "tree", "rules": [ { "conditions": [], "endpoint": { - "url": "https://email.{Region}.{PartitionResult#dnsSuffix}", + "url": "https://email.{Region}.{PartitionResult#dualStackDnsSuffix}", "properties": {}, "headers": {} }, "type": "endpoint" } ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" } ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://email.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ] - }, - { - "conditions": [], - "error": "Invalid Configuration: Missing Region", - "type": "error" } ] + }, + { + "conditions": [], + "error": "Invalid Configuration: Missing Region", + "type": "error" } ] } \ No newline at end of file diff --git a/models/apis/sesv2/2019-09-27/examples-1.json b/models/apis/sesv2/2019-09-27/examples-1.json index 8eb6855a3d8..c89d126e042 100644 --- a/models/apis/sesv2/2019-09-27/examples-1.json +++ b/models/apis/sesv2/2019-09-27/examples-1.json @@ -1,6 +1,250 @@ { "version": "1.0", "examples": { + "CancelExportJob": [ + { + "input": { + "JobId": "ef28cf62-9d8e-4b60-9283-b09816c99a99" + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "Cancels the export job with ID ef28cf62-9d8e-4b60-9283-b09816c99a99", + "id": "cancel-export-job-1685699696331", + "title": "Cancel export job" + } + ], + "CreateExportJob": [ + { + "input": { + "ExportDataSource": { + "MetricsDataSource": { + "Dimensions": { + "ISP": [ + "*" + ] + }, + "EndDate": "2023-07-02T00:00:00", + "Metrics": [ + { + "Aggregation": "VOLUME", + "Name": "SEND" + }, + { + "Aggregation": "VOLUME", + "Name": "COMPLAINT" + }, + { + "Aggregation": "RATE", + "Name": "COMPLAINT" + } + ], + "Namespace": "VDM", + "StartDate": "2023-07-01T00:00:00" + } + }, + "ExportDestination": { + "DataFormat": "CSV" + } + }, + "output": { + "JobId": "ef28cf62-9d8e-4b60-9283-b09816c99a99" + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "Creates a new export job for Metrics data", + "id": "create-export-job-1685701853690", + "title": "Create Metrics export job" + }, + { + "input": { + "ExportDataSource": { + "MessageInsightsDataSource": { + "EndDate": "2023-07-02T00:00:00", + "Exclude": { + "FromEmailAddress": [ + "hello@example.com" + ] + }, + "Include": { + "Subject": [ + "Hello" + ] + }, + "StartDate": "2023-07-01T00:00:00" + } + }, + "ExportDestination": { + "DataFormat": "CSV" + } + }, + "output": { + "JobId": "ef28cf62-9d8e-4b60-9283-b09816c99a99" + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "Creates a new export job for Message Insights data", + "id": "create-export-job-1689957853323", + "title": "Create Message Insights export job" + } + ], + "GetExportJob": [ + { + "input": { + "JobId": "ef28cf62-9d8e-4b60-9283-b09816c99a99" + }, + "output": { + "CreatedTimestamp": "1685700961057", + "ExportDataSource": { + "MetricsDataSource": { + "Dimensions": { + "ISP": [ + "*" + ] + }, + "EndDate": "1675209600000", + "Metrics": [ + { + "Aggregation": "VOLUME", + "Name": "SEND" + }, + { + "Aggregation": "VOLUME", + "Name": "COMPLAINT" + }, + { + "Aggregation": "RATE", + "Name": "COMPLAINT" + } + ], + "Namespace": "VDM", + "StartDate": "1672531200000" + } + }, + "ExportDestination": { + "DataFormat": "CSV" + }, + "ExportSourceType": "METRICS_DATA", + "JobId": "ef28cf62-9d8e-4b60-9283-b09816c99a99", + "JobStatus": "PROCESSING", + "Statistics": { + "ExportedRecordsCount": 5, + "ProcessedRecordsCount": 5 + } + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "Gets the export job with ID ef28cf62-9d8e-4b60-9283-b09816c99a99", + "id": "get-export-job-1685699942772", + "title": "Get export job" + } + ], + "GetMessageInsights": [ + { + "input": { + "MessageId": "000000000000ab00-0a000aa0-1234-0a0a-1234-0a0aaa0aa00a-000000" + }, + "output": { + "EmailTags": [ + { + "Name": "ses:operation", + "Value": "SendEmail" + }, + { + "Name": "ses:recipient-isp", + "Value": "UNKNOWN_ISP" + }, + { + "Name": "ses:source-ip", + "Value": "0.0.0.0" + }, + { + "Name": "ses:from-domain", + "Value": "example.com" + }, + { + "Name": "ses:sender-identity", + "Value": "hello@example.com" + }, + { + "Name": "ses:caller-identity", + "Value": "Identity" + } + ], + "FromEmailAddress": "hello@example.com", + "Insights": [ + { + "Destination": "recipient@example.com", + "Events": [ + { + "Timestamp": "2023-01-01T00:00:00.000000+01:00", + "Type": "SEND" + }, + { + "Timestamp": "2023-01-01T00:00:01.000000+01:00", + "Type": "DELIVERY" + } + ], + "Isp": "UNKNOWN_ISP" + } + ], + "MessageId": "000000000000ab00-0a000aa0-1234-0a0a-1234-0a0aaa0aa00a-000000", + "Subject": "hello" + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "Provides information about a specific message.", + "id": "get-message-insights-1689955713493", + "title": "Get Message Insights" + } + ], + "ListExportJobs": [ + { + "input": { + "ExportSourceType": "METRICS_DATA", + "JobStatus": "PROCESSING", + "PageSize": 25 + }, + "output": { + "ExportJobs": [ + { + "CreatedTimestamp": "167697473543", + "ExportSourceType": "METRICS_DATA", + "JobId": "72de83a0-6b49-47ca-9783-8b812576887a", + "JobStatus": "PROCESSING" + } + ] + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "Lists export jobs of type METRICS_DATA and status PROCESSING", + "id": "list-export-jobs-1685702074256", + "title": "List export jobs" + } + ], "PutDedicatedIpPoolScalingAttributes": [ { "input": { diff --git a/models/apis/sesv2/2019-09-27/paginators-1.json b/models/apis/sesv2/2019-09-27/paginators-1.json index 188b42d8a1d..5b3c2d8c3ac 100644 --- a/models/apis/sesv2/2019-09-27/paginators-1.json +++ b/models/apis/sesv2/2019-09-27/paginators-1.json @@ -50,6 +50,11 @@ "output_token": "NextToken", "limit_key": "PageSize" }, + "ListExportJobs": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "PageSize" + }, "ListImportJobs": { "input_token": "NextToken", "output_token": "NextToken", diff --git a/service/cognitoidentityprovider/api.go b/service/cognitoidentityprovider/api.go index 96ca1654e9c..a3088577b40 100644 --- a/service/cognitoidentityprovider/api.go +++ b/service/cognitoidentityprovider/api.go @@ -3295,7 +3295,8 @@ func (c *CognitoIdentityProvider) AdminUpdateUserAttributesRequest(input *AdminU // in the Amazon Cognito Developer Guide. // // Updates the specified user's attributes, including developer attributes, -// as an administrator. Works on any user. +// as an administrator. Works on any user. To delete an attribute from your +// user, submit the attribute in your API request with a blank value. // // For custom attributes, you must prepend the custom: prefix to the attribute // name. @@ -3554,6 +3555,7 @@ func (c *CognitoIdentityProvider) AssociateSoftwareTokenRequest(input *Associate output = &AssociateSoftwareTokenOutput{} req = c.newRequest(op, input, output) + req.Config.Credentials = credentials.AnonymousCredentials return } @@ -3799,6 +3801,7 @@ func (c *CognitoIdentityProvider) ConfirmDeviceRequest(input *ConfirmDeviceInput output = &ConfirmDeviceOutput{} req = c.newRequest(op, input, output) + req.Config.Credentials = credentials.AnonymousCredentials return } @@ -6524,6 +6527,7 @@ func (c *CognitoIdentityProvider) ForgetDeviceRequest(input *ForgetDeviceInput) output = &ForgetDeviceOutput{} req = c.newRequest(op, input, output) + req.Config.Credentials = credentials.AnonymousCredentials req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) return } @@ -6905,6 +6909,7 @@ func (c *CognitoIdentityProvider) GetDeviceRequest(input *GetDeviceInput) (req * output = &GetDeviceOutput{} req = c.newRequest(op, input, output) + req.Config.Credentials = credentials.AnonymousCredentials return } @@ -7870,6 +7875,7 @@ func (c *CognitoIdentityProvider) GlobalSignOutRequest(input *GlobalSignOutInput output = &GlobalSignOutOutput{} req = c.newRequest(op, input, output) + req.Config.Credentials = credentials.AnonymousCredentials req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) return } @@ -8148,6 +8154,7 @@ func (c *CognitoIdentityProvider) ListDevicesRequest(input *ListDevicesInput) (r output = &ListDevicesOutput{} req = c.newRequest(op, input, output) + req.Config.Credentials = credentials.AnonymousCredentials return } @@ -9942,6 +9949,7 @@ func (c *CognitoIdentityProvider) RevokeTokenRequest(input *RevokeTokenInput) (r output = &RevokeTokenOutput{} req = c.newRequest(op, input, output) + req.Config.Credentials = credentials.AnonymousCredentials req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) return } @@ -10362,6 +10370,7 @@ func (c *CognitoIdentityProvider) SetUserMFAPreferenceRequest(input *SetUserMFAP output = &SetUserMFAPreferenceOutput{} req = c.newRequest(op, input, output) + req.Config.Credentials = credentials.AnonymousCredentials req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) return } @@ -11279,6 +11288,7 @@ func (c *CognitoIdentityProvider) UpdateAuthEventFeedbackRequest(input *UpdateAu output = &UpdateAuthEventFeedbackOutput{} req = c.newRequest(op, input, output) + req.Config.Credentials = credentials.AnonymousCredentials req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) return } @@ -11388,6 +11398,7 @@ func (c *CognitoIdentityProvider) UpdateDeviceStatusRequest(input *UpdateDeviceS output = &UpdateDeviceStatusOutput{} req = c.newRequest(op, input, output) + req.Config.Credentials = credentials.AnonymousCredentials req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) return } @@ -12410,6 +12421,7 @@ func (c *CognitoIdentityProvider) VerifySoftwareTokenRequest(input *VerifySoftwa output = &VerifySoftwareTokenOutput{} req = c.newRequest(op, input, output) + req.Config.Credentials = credentials.AnonymousCredentials return } @@ -14843,7 +14855,11 @@ type AdminInitiateAuthOutput struct { // determines that the caller must pass another challenge, they return a session // with other challenge parameters. This session should be passed as it is to // the next AdminRespondToAuthChallenge API call. - Session *string `min:"20" type:"string"` + // + // Session is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by AdminInitiateAuthOutput's + // String and GoString methods. + Session *string `min:"20" type:"string" sensitive:"true"` } // String returns the string representation. @@ -15726,7 +15742,11 @@ type AdminRespondToAuthChallengeInput struct { // (https://docs.aws.amazon.com/cognito/latest/developerguide/signing-up-users-in-your-app.html#cognito-user-pools-computing-secret-hash). // For information about DEVICE_KEY, see Working with user devices in your user // pool (https://docs.aws.amazon.com/cognito/latest/developerguide/amazon-cognito-user-pools-device-tracking.html). - ChallengeResponses map[string]*string `type:"map"` + // + // ChallengeResponses is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by AdminRespondToAuthChallengeInput's + // String and GoString methods. + ChallengeResponses map[string]*string `type:"map" sensitive:"true"` // The app client ID. // @@ -15796,7 +15816,11 @@ type AdminRespondToAuthChallengeInput struct { // that the caller must pass another challenge, it returns a session with other // challenge parameters. This session should be passed as it is to the next // RespondToAuthChallenge API call. - Session *string `min:"20" type:"string"` + // + // Session is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by AdminRespondToAuthChallengeInput's + // String and GoString methods. + Session *string `min:"20" type:"string" sensitive:"true"` // The ID of the Amazon Cognito user pool. // @@ -15920,7 +15944,11 @@ type AdminRespondToAuthChallengeOutput struct { // the service. If the caller must pass another challenge, they return a session // with other challenge parameters. This session should be passed as it is to // the next RespondToAuthChallenge API call. - Session *string `min:"20" type:"string"` + // + // Session is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by AdminRespondToAuthChallengeOutput's + // String and GoString methods. + Session *string `min:"20" type:"string" sensitive:"true"` } // String returns the string representation. @@ -17044,7 +17072,11 @@ type AssociateSoftwareTokenInput struct { // The session that should be passed both ways in challenge-response calls to // the service. This allows authentication of the user as part of the MFA setup // process. - Session *string `min:"20" type:"string"` + // + // Session is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by AssociateSoftwareTokenInput's + // String and GoString methods. + Session *string `min:"20" type:"string" sensitive:"true"` } // String returns the string representation. @@ -17104,7 +17136,11 @@ type AssociateSoftwareTokenOutput struct { // The session that should be passed both ways in challenge-response calls to // the service. This allows authentication of the user as part of the MFA setup // process. - Session *string `min:"20" type:"string"` + // + // Session is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by AssociateSoftwareTokenOutput's + // String and GoString methods. + Session *string `min:"20" type:"string" sensitive:"true"` } // String returns the string representation. @@ -17550,6 +17586,11 @@ type CloudWatchLogsConfigurationType struct { // user pool sends logs. The log group must not be encrypted with Key Management // Service and must be in the same Amazon Web Services account as your user // pool. + // + // To send logs to log groups with a resource policy of a size greater than + // 5120 characters, configure a log group with a path that starts with /aws/vendedlogs. + // For more information, see Enabling logging from certain Amazon Web Services + // services (https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AWS-logs-and-resource-policy.html). LogGroupArn *string `min:"20" type:"string"` } @@ -18144,7 +18185,11 @@ type ConfirmForgotPasswordInput struct { // IP address, or location. Amazon Cognito advanced security evaluates the risk // of an authentication event based on the context that your app generates and // passes to Amazon Cognito when it makes API requests. - UserContextData *UserContextDataType `type:"structure"` + // + // UserContextData is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by ConfirmForgotPasswordInput's + // String and GoString methods. + UserContextData *UserContextDataType `type:"structure" sensitive:"true"` // The user name of the user for whom you want to enter a code to retrieve a // forgotten password. @@ -18353,7 +18398,11 @@ type ConfirmSignUpInput struct { // IP address, or location. Amazon Cognito advanced security evaluates the risk // of an authentication event based on the context that your app generates and // passes to Amazon Cognito when it makes API requests. - UserContextData *UserContextDataType `type:"structure"` + // + // UserContextData is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by ConfirmSignUpInput's + // String and GoString methods. + UserContextData *UserContextDataType `type:"structure" sensitive:"true"` // The user name of the user whose registration you want to confirm. // @@ -18759,7 +18808,7 @@ type CreateIdentityProviderInput struct { // The IdP name. // // ProviderName is a required field - ProviderName *string `min:"3" type:"string" required:"true"` + ProviderName *string `min:"1" type:"string" required:"true"` // The IdP type. // @@ -18799,8 +18848,8 @@ func (s *CreateIdentityProviderInput) Validate() error { if s.ProviderName == nil { invalidParams.Add(request.NewErrParamRequired("ProviderName")) } - if s.ProviderName != nil && len(*s.ProviderName) < 3 { - invalidParams.Add(request.NewErrParamMinLen("ProviderName", 3)) + if s.ProviderName != nil && len(*s.ProviderName) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ProviderName", 1)) } if s.ProviderType == nil { invalidParams.Add(request.NewErrParamRequired("ProviderType")) @@ -22716,7 +22765,11 @@ type ForgotPasswordInput struct { // IP address, or location. Amazon Cognito advanced security evaluates the risk // of an authentication event based on the context that your app generates and // passes to Amazon Cognito when it makes API requests. - UserContextData *UserContextDataType `type:"structure"` + // + // UserContextData is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by ForgotPasswordInput's + // String and GoString methods. + UserContextData *UserContextDataType `type:"structure" sensitive:"true"` // The user name of the user for whom you want to enter a code to reset a forgotten // password. @@ -24401,7 +24454,11 @@ type InitiateAuthInput struct { // IP address, or location. Amazon Cognito advanced security evaluates the risk // of an authentication event based on the context that your app generates and // passes to Amazon Cognito when it makes API requests. - UserContextData *UserContextDataType `type:"structure"` + // + // UserContextData is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by InitiateAuthInput's + // String and GoString methods. + UserContextData *UserContextDataType `type:"structure" sensitive:"true"` } // String returns the string representation. @@ -24546,7 +24603,11 @@ type InitiateAuthOutput struct { // service. If the caller must pass another challenge, they return a session // with other challenge parameters. This session should be passed as it is to // the next RespondToAuthChallenge API call. - Session *string `min:"20" type:"string"` + // + // Session is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by InitiateAuthOutput's + // String and GoString methods. + Session *string `min:"20" type:"string" sensitive:"true"` } // String returns the string representation. @@ -27788,7 +27849,11 @@ type ResendConfirmationCodeInput struct { // IP address, or location. Amazon Cognito advanced security evaluates the risk // of an authentication event based on the context that your app generates and // passes to Amazon Cognito when it makes API requests. - UserContextData *UserContextDataType `type:"structure"` + // + // UserContextData is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by ResendConfirmationCodeInput's + // String and GoString methods. + UserContextData *UserContextDataType `type:"structure" sensitive:"true"` // The username attribute of the user to whom you want to resend a confirmation // code. @@ -28160,7 +28225,11 @@ type RespondToAuthChallengeInput struct { // (https://docs.aws.amazon.com/cognito/latest/developerguide/signing-up-users-in-your-app.html#cognito-user-pools-computing-secret-hash). // For information about DEVICE_KEY, see Working with user devices in your user // pool (https://docs.aws.amazon.com/cognito/latest/developerguide/amazon-cognito-user-pools-device-tracking.html). - ChallengeResponses map[string]*string `type:"map"` + // + // ChallengeResponses is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by RespondToAuthChallengeInput's + // String and GoString methods. + ChallengeResponses map[string]*string `type:"map" sensitive:"true"` // The app client ID. // @@ -28208,13 +28277,21 @@ type RespondToAuthChallengeInput struct { // that the caller must pass another challenge, they return a session with other // challenge parameters. This session should be passed as it is to the next // RespondToAuthChallenge API call. - Session *string `min:"20" type:"string"` + // + // Session is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by RespondToAuthChallengeInput's + // String and GoString methods. + Session *string `min:"20" type:"string" sensitive:"true"` // Contextual data about your user session, such as the device fingerprint, // IP address, or location. Amazon Cognito advanced security evaluates the risk // of an authentication event based on the context that your app generates and // passes to Amazon Cognito when it makes API requests. - UserContextData *UserContextDataType `type:"structure"` + // + // UserContextData is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by RespondToAuthChallengeInput's + // String and GoString methods. + UserContextData *UserContextDataType `type:"structure" sensitive:"true"` } // String returns the string representation. @@ -28317,7 +28394,11 @@ type RespondToAuthChallengeOutput struct { // the service. If the caller must pass another challenge, they return a session // with other challenge parameters. This session should be passed as it is to // the next RespondToAuthChallenge API call. - Session *string `min:"20" type:"string"` + // + // Session is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by RespondToAuthChallengeOutput's + // String and GoString methods. + Session *string `min:"20" type:"string" sensitive:"true"` } // String returns the string representation. @@ -29614,7 +29695,11 @@ type SignUpInput struct { // IP address, or location. Amazon Cognito advanced security evaluates the risk // of an authentication event based on the context that your app generates and // passes to Amazon Cognito when it makes API requests. - UserContextData *UserContextDataType `type:"structure"` + // + // UserContextData is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by SignUpInput's + // String and GoString methods. + UserContextData *UserContextDataType `type:"structure" sensitive:"true"` // The user name of the user you want to register. // @@ -32982,7 +33067,7 @@ func (s *UserAttributeUpdateSettingsType) SetAttributesRequireVerificationBefore // used for evaluating the risk of an unexpected event by Amazon Cognito advanced // security. type UserContextDataType struct { - _ struct{} `type:"structure"` + _ struct{} `type:"structure" sensitive:"true"` // Encoded device-fingerprint details that your app collected with the Amazon // Cognito context data collection library. For more information, see Adding @@ -35018,13 +35103,21 @@ type VerifySoftwareTokenInput struct { // The session that should be passed both ways in challenge-response calls to // the service. - Session *string `min:"20" type:"string"` + // + // Session is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by VerifySoftwareTokenInput's + // String and GoString methods. + Session *string `min:"20" type:"string" sensitive:"true"` // The one- time password computed using the secret code returned by AssociateSoftwareToken // (https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AssociateSoftwareToken.html). // + // UserCode is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by VerifySoftwareTokenInput's + // String and GoString methods. + // // UserCode is a required field - UserCode *string `min:"6" type:"string" required:"true"` + UserCode *string `min:"6" type:"string" required:"true" sensitive:"true"` } // String returns the string representation. @@ -35093,7 +35186,11 @@ type VerifySoftwareTokenOutput struct { // The session that should be passed both ways in challenge-response calls to // the service. - Session *string `min:"20" type:"string"` + // + // Session is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by VerifySoftwareTokenOutput's + // String and GoString methods. + Session *string `min:"20" type:"string" sensitive:"true"` // The status of the verify software token. Status *string `type:"string" enum:"VerifySoftwareTokenResponseType"` diff --git a/service/cognitoidentityprovider/examples_test.go b/service/cognitoidentityprovider/examples_test.go new file mode 100644 index 00000000000..de0500443bf --- /dev/null +++ b/service/cognitoidentityprovider/examples_test.go @@ -0,0 +1,520 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package cognitoidentityprovider_test + +import ( + "fmt" + "strings" + "time" + + "github.com/aws/aws-sdk-go/aws" + "github.com/aws/aws-sdk-go/aws/awserr" + "github.com/aws/aws-sdk-go/aws/session" + "github.com/aws/aws-sdk-go/service/cognitoidentityprovider" +) + +var _ time.Duration +var _ strings.Reader +var _ aws.Config + +func parseTime(layout, value string) *time.Time { + t, err := time.Parse(layout, value) + if err != nil { + panic(err) + } + return &t +} + +// An AdminCreateUser request for for a test user named John. +// This request submits a value for all possible parameters for AdminCreateUser. +func ExampleCognitoIdentityProvider_AdminCreateUser_shared00() { + svc := cognitoidentityprovider.New(session.New()) + input := &cognitoidentityprovider.AdminCreateUserInput{ + DesiredDeliveryMediums: []*string{ + aws.String("SMS"), + }, + MessageAction: aws.String("SUPPRESS"), + TemporaryPassword: aws.String("This-is-my-test-99!"), + UserAttributes: []*cognitoidentityprovider.AttributeType{ + { + Name: aws.String("name"), + Value: aws.String("John"), + }, + { + Name: aws.String("phone_number"), + Value: aws.String("+12065551212"), + }, + { + Name: aws.String("email"), + Value: aws.String("testuser@example.com"), + }, + }, + UserPoolId: aws.String("us-east-1_EXAMPLE"), + Username: aws.String("testuser"), + } + + result, err := svc.AdminCreateUser(input) + if err != nil { + if aerr, ok := err.(awserr.Error); ok { + switch aerr.Code() { + case cognitoidentityprovider.ErrCodeResourceNotFoundException: + fmt.Println(cognitoidentityprovider.ErrCodeResourceNotFoundException, aerr.Error()) + case cognitoidentityprovider.ErrCodeInvalidParameterException: + fmt.Println(cognitoidentityprovider.ErrCodeInvalidParameterException, aerr.Error()) + case cognitoidentityprovider.ErrCodeUserNotFoundException: + fmt.Println(cognitoidentityprovider.ErrCodeUserNotFoundException, aerr.Error()) + case cognitoidentityprovider.ErrCodeUsernameExistsException: + fmt.Println(cognitoidentityprovider.ErrCodeUsernameExistsException, aerr.Error()) + case cognitoidentityprovider.ErrCodeInvalidPasswordException: + fmt.Println(cognitoidentityprovider.ErrCodeInvalidPasswordException, aerr.Error()) + case cognitoidentityprovider.ErrCodeCodeDeliveryFailureException: + fmt.Println(cognitoidentityprovider.ErrCodeCodeDeliveryFailureException, aerr.Error()) + case cognitoidentityprovider.ErrCodeUnexpectedLambdaException: + fmt.Println(cognitoidentityprovider.ErrCodeUnexpectedLambdaException, aerr.Error()) + case cognitoidentityprovider.ErrCodeUserLambdaValidationException: + fmt.Println(cognitoidentityprovider.ErrCodeUserLambdaValidationException, aerr.Error()) + case cognitoidentityprovider.ErrCodeInvalidLambdaResponseException: + fmt.Println(cognitoidentityprovider.ErrCodeInvalidLambdaResponseException, aerr.Error()) + case cognitoidentityprovider.ErrCodePreconditionNotMetException: + fmt.Println(cognitoidentityprovider.ErrCodePreconditionNotMetException, aerr.Error()) + case cognitoidentityprovider.ErrCodeInvalidSmsRoleAccessPolicyException: + fmt.Println(cognitoidentityprovider.ErrCodeInvalidSmsRoleAccessPolicyException, aerr.Error()) + case cognitoidentityprovider.ErrCodeInvalidSmsRoleTrustRelationshipException: + fmt.Println(cognitoidentityprovider.ErrCodeInvalidSmsRoleTrustRelationshipException, aerr.Error()) + case cognitoidentityprovider.ErrCodeTooManyRequestsException: + fmt.Println(cognitoidentityprovider.ErrCodeTooManyRequestsException, aerr.Error()) + case cognitoidentityprovider.ErrCodeNotAuthorizedException: + fmt.Println(cognitoidentityprovider.ErrCodeNotAuthorizedException, aerr.Error()) + case cognitoidentityprovider.ErrCodeUnsupportedUserStateException: + fmt.Println(cognitoidentityprovider.ErrCodeUnsupportedUserStateException, aerr.Error()) + case cognitoidentityprovider.ErrCodeInternalErrorException: + fmt.Println(cognitoidentityprovider.ErrCodeInternalErrorException, aerr.Error()) + default: + fmt.Println(aerr.Error()) + } + } else { + // Print the error, cast err to awserr.Error to get the Code and + // Message from an error. + fmt.Println(err.Error()) + } + return + } + + fmt.Println(result) +} + +// Example user pool with email and username sign-in +// The following example creates a user pool with all configurable properties set to +// an example value. The resulting user pool allows sign-in with username or email address, +// has optional MFA, and has a Lambda function assigned to each possible trigger. +func ExampleCognitoIdentityProvider_CreateUserPool_shared00() { + svc := cognitoidentityprovider.New(session.New()) + input := &cognitoidentityprovider.CreateUserPoolInput{ + AccountRecoverySetting: &cognitoidentityprovider.AccountRecoverySettingType{ + RecoveryMechanisms: []*cognitoidentityprovider.RecoveryOptionType{ + { + Name: aws.String("verified_email"), + Priority: aws.Int64(1), + }, + }, + }, + AdminCreateUserConfig: &cognitoidentityprovider.AdminCreateUserConfigType{ + AllowAdminCreateUserOnly: aws.Bool(false), + InviteMessageTemplate: &cognitoidentityprovider.MessageTemplateType{ + EmailMessage: aws.String("Your username is {username} and temporary password is {####}."), + EmailSubject: aws.String("Your sign-in information"), + SMSMessage: aws.String("Your username is {username} and temporary password is {####}."), + }, + }, + AliasAttributes: []*string{ + aws.String("email"), + }, + AutoVerifiedAttributes: []*string{ + aws.String("email"), + }, + DeletionProtection: aws.String("ACTIVE"), + DeviceConfiguration: &cognitoidentityprovider.DeviceConfigurationType{ + ChallengeRequiredOnNewDevice: aws.Bool(true), + DeviceOnlyRememberedOnUserPrompt: aws.Bool(true), + }, + EmailConfiguration: &cognitoidentityprovider.EmailConfigurationType{ + ConfigurationSet: aws.String("my-test-ses-configuration-set"), + EmailSendingAccount: aws.String("DEVELOPER"), + From: aws.String("support@example.com"), + ReplyToEmailAddress: aws.String("support@example.com"), + SourceArn: aws.String("arn:aws:ses:us-east-1:123456789012:identity/support@example.com"), + }, + EmailVerificationMessage: aws.String("Your verification code is {####}."), + EmailVerificationSubject: aws.String("Verify your email address"), + LambdaConfig: &cognitoidentityprovider.LambdaConfigType{ + CustomEmailSender: &cognitoidentityprovider.CustomEmailLambdaVersionConfigType{ + LambdaArn: aws.String("arn:aws:lambda:us-east-1:123456789012:function:MyFunction"), + LambdaVersion: aws.String("V1_0"), + }, + CustomMessage: aws.String("arn:aws:lambda:us-east-1:123456789012:function:MyFunction"), + CustomSMSSender: &cognitoidentityprovider.CustomSMSLambdaVersionConfigType{ + LambdaArn: aws.String("arn:aws:lambda:us-east-1:123456789012:function:MyFunction"), + LambdaVersion: aws.String("V1_0"), + }, + DefineAuthChallenge: aws.String("arn:aws:lambda:us-east-1:123456789012:function:MyFunction"), + KMSKeyID: aws.String("arn:aws:kms:us-east-1:123456789012:key/a6c4f8e2-0c45-47db-925f-87854bc9e357"), + PostAuthentication: aws.String("arn:aws:lambda:us-east-1:123456789012:function:MyFunction"), + PostConfirmation: aws.String("arn:aws:lambda:us-east-1:123456789012:function:MyFunction"), + PreAuthentication: aws.String("arn:aws:lambda:us-east-1:123456789012:function:MyFunction"), + PreSignUp: aws.String("arn:aws:lambda:us-east-1:123456789012:function:MyFunction"), + PreTokenGeneration: aws.String("arn:aws:lambda:us-east-1:123456789012:function:MyFunction"), + UserMigration: aws.String("arn:aws:lambda:us-east-1:123456789012:function:MyFunction"), + VerifyAuthChallengeResponse: aws.String("arn:aws:lambda:us-east-1:123456789012:function:MyFunction"), + }, + MfaConfiguration: aws.String("OPTIONAL"), + Policies: &cognitoidentityprovider.UserPoolPolicyType{ + PasswordPolicy: &cognitoidentityprovider.PasswordPolicyType{ + MinimumLength: aws.Int64(6), + RequireLowercase: aws.Bool(true), + RequireNumbers: aws.Bool(true), + RequireSymbols: aws.Bool(true), + RequireUppercase: aws.Bool(true), + TemporaryPasswordValidityDays: aws.Int64(7), + }, + }, + PoolName: aws.String("my-test-user-pool"), + Schema: []*cognitoidentityprovider.SchemaAttributeType{ + { + AttributeDataType: aws.String("Number"), + DeveloperOnlyAttribute: aws.Bool(true), + Mutable: aws.Bool(true), + Name: aws.String("mydev"), + NumberAttributeConstraints: &cognitoidentityprovider.NumberAttributeConstraintsType{ + MaxValue: aws.String("99"), + MinValue: aws.String("1"), + }, + Required: aws.Bool(false), + StringAttributeConstraints: &cognitoidentityprovider.StringAttributeConstraintsType{ + MaxLength: aws.String("99"), + MinLength: aws.String("1"), + }, + }, + }, + SmsAuthenticationMessage: aws.String("Your verification code is {####}."), + SmsConfiguration: &cognitoidentityprovider.SmsConfigurationType{ + ExternalId: aws.String("my-role-external-id"), + SnsCallerArn: aws.String("arn:aws:iam::123456789012:role/service-role/test-cognito-SMS-Role"), + }, + SmsVerificationMessage: aws.String("Your verification code is {####}."), + UserAttributeUpdateSettings: &cognitoidentityprovider.UserAttributeUpdateSettingsType{ + AttributesRequireVerificationBeforeUpdate: []*string{ + aws.String("email"), + }, + }, + UserPoolAddOns: &cognitoidentityprovider.UserPoolAddOnsType{ + AdvancedSecurityMode: aws.String("OFF"), + }, + UserPoolTags: map[string]*string{ + "my-test-tag-key": aws.String("my-test-tag-key"), + }, + UsernameConfiguration: &cognitoidentityprovider.UsernameConfigurationType{ + CaseSensitive: aws.Bool(true), + }, + VerificationMessageTemplate: &cognitoidentityprovider.VerificationMessageTemplateType{ + DefaultEmailOption: aws.String("CONFIRM_WITH_CODE"), + EmailMessage: aws.String("Your confirmation code is {####}"), + EmailMessageByLink: aws.String("Choose this link to {##verify your email##}"), + EmailSubject: aws.String("Here is your confirmation code"), + EmailSubjectByLink: aws.String("Here is your confirmation link"), + SmsMessage: aws.String("Your confirmation code is {####}"), + }, + } + + result, err := svc.CreateUserPool(input) + if err != nil { + if aerr, ok := err.(awserr.Error); ok { + switch aerr.Code() { + case cognitoidentityprovider.ErrCodeInvalidParameterException: + fmt.Println(cognitoidentityprovider.ErrCodeInvalidParameterException, aerr.Error()) + case cognitoidentityprovider.ErrCodeTooManyRequestsException: + fmt.Println(cognitoidentityprovider.ErrCodeTooManyRequestsException, aerr.Error()) + case cognitoidentityprovider.ErrCodeLimitExceededException: + fmt.Println(cognitoidentityprovider.ErrCodeLimitExceededException, aerr.Error()) + case cognitoidentityprovider.ErrCodeInvalidSmsRoleAccessPolicyException: + fmt.Println(cognitoidentityprovider.ErrCodeInvalidSmsRoleAccessPolicyException, aerr.Error()) + case cognitoidentityprovider.ErrCodeInvalidSmsRoleTrustRelationshipException: + fmt.Println(cognitoidentityprovider.ErrCodeInvalidSmsRoleTrustRelationshipException, aerr.Error()) + case cognitoidentityprovider.ErrCodeInvalidEmailRoleAccessPolicyException: + fmt.Println(cognitoidentityprovider.ErrCodeInvalidEmailRoleAccessPolicyException, aerr.Error()) + case cognitoidentityprovider.ErrCodeNotAuthorizedException: + fmt.Println(cognitoidentityprovider.ErrCodeNotAuthorizedException, aerr.Error()) + case cognitoidentityprovider.ErrCodeUserPoolTaggingException: + fmt.Println(cognitoidentityprovider.ErrCodeUserPoolTaggingException, aerr.Error()) + case cognitoidentityprovider.ErrCodeInternalErrorException: + fmt.Println(cognitoidentityprovider.ErrCodeInternalErrorException, aerr.Error()) + default: + fmt.Println(aerr.Error()) + } + } else { + // Print the error, cast err to awserr.Error to get the Code and + // Message from an error. + fmt.Println(err.Error()) + } + return + } + + fmt.Println(result) +} + +// Example user pool app client with email and username sign-in +// The following example creates an app client with all configurable properties set +// to an example value. The resulting user pool client connects to an analytics client, +// allows sign-in with username and password, and has two external identity providers +// associated with it. +func ExampleCognitoIdentityProvider_CreateUserPoolClient_shared00() { + svc := cognitoidentityprovider.New(session.New()) + input := &cognitoidentityprovider.CreateUserPoolClientInput{ + AccessTokenValidity: aws.Int64(6), + AllowedOAuthFlows: []*string{ + aws.String("code"), + }, + AllowedOAuthFlowsUserPoolClient: aws.Bool(true), + AllowedOAuthScopes: []*string{ + aws.String("aws.cognito.signin.user.admin"), + aws.String("openid"), + }, + AnalyticsConfiguration: &cognitoidentityprovider.AnalyticsConfigurationType{ + ApplicationId: aws.String("d70b2ba36a8c4dc5a04a0451a31a1e12"), + ExternalId: aws.String("my-external-id"), + RoleArn: aws.String("arn:aws:iam::123456789012:role/test-cognitouserpool-role"), + UserDataShared: aws.Bool(true), + }, + CallbackURLs: []*string{ + aws.String("https://example.com"), + aws.String("http://localhost"), + aws.String("myapp://example"), + }, + ClientName: aws.String("my-test-app-client"), + DefaultRedirectURI: aws.String("https://example.com"), + ExplicitAuthFlows: []*string{ + aws.String("ALLOW_ADMIN_USER_PASSWORD_AUTH"), + aws.String("ALLOW_USER_PASSWORD_AUTH"), + aws.String("ALLOW_REFRESH_TOKEN_AUTH"), + }, + GenerateSecret: aws.Bool(true), + IdTokenValidity: aws.Int64(6), + LogoutURLs: []*string{ + aws.String("https://example.com/logout"), + }, + PreventUserExistenceErrors: aws.String("ENABLED"), + ReadAttributes: []*string{ + aws.String("email"), + aws.String("address"), + aws.String("preferred_username"), + }, + RefreshTokenValidity: aws.Int64(6), + SupportedIdentityProviders: []*string{ + aws.String("SignInWithApple"), + aws.String("MySSO"), + }, + TokenValidityUnits: &cognitoidentityprovider.TokenValidityUnitsType{ + AccessToken: aws.String("hours"), + IdToken: aws.String("minutes"), + RefreshToken: aws.String("days"), + }, + UserPoolId: aws.String("us-east-1_EXAMPLE"), + WriteAttributes: []*string{ + aws.String("family_name"), + aws.String("email"), + }, + } + + result, err := svc.CreateUserPoolClient(input) + if err != nil { + if aerr, ok := err.(awserr.Error); ok { + switch aerr.Code() { + case cognitoidentityprovider.ErrCodeInvalidParameterException: + fmt.Println(cognitoidentityprovider.ErrCodeInvalidParameterException, aerr.Error()) + case cognitoidentityprovider.ErrCodeResourceNotFoundException: + fmt.Println(cognitoidentityprovider.ErrCodeResourceNotFoundException, aerr.Error()) + case cognitoidentityprovider.ErrCodeTooManyRequestsException: + fmt.Println(cognitoidentityprovider.ErrCodeTooManyRequestsException, aerr.Error()) + case cognitoidentityprovider.ErrCodeLimitExceededException: + fmt.Println(cognitoidentityprovider.ErrCodeLimitExceededException, aerr.Error()) + case cognitoidentityprovider.ErrCodeNotAuthorizedException: + fmt.Println(cognitoidentityprovider.ErrCodeNotAuthorizedException, aerr.Error()) + case cognitoidentityprovider.ErrCodeScopeDoesNotExistException: + fmt.Println(cognitoidentityprovider.ErrCodeScopeDoesNotExistException, aerr.Error()) + case cognitoidentityprovider.ErrCodeInvalidOAuthFlowException: + fmt.Println(cognitoidentityprovider.ErrCodeInvalidOAuthFlowException, aerr.Error()) + case cognitoidentityprovider.ErrCodeInternalErrorException: + fmt.Println(cognitoidentityprovider.ErrCodeInternalErrorException, aerr.Error()) + default: + fmt.Println(aerr.Error()) + } + } else { + // Print the error, cast err to awserr.Error to get the Code and + // Message from an error. + fmt.Println(err.Error()) + } + return + } + + fmt.Println(result) +} + +// Example username and password sign-in for a user who has TOTP MFA +// The following example signs in the user mytestuser with analytics data, client metadata, +// and user context data for advanced security. +func ExampleCognitoIdentityProvider_InitiateAuth_shared00() { + svc := cognitoidentityprovider.New(session.New()) + input := &cognitoidentityprovider.InitiateAuthInput{ + AnalyticsMetadata: &cognitoidentityprovider.AnalyticsMetadataType{ + AnalyticsEndpointId: aws.String("d70b2ba36a8c4dc5a04a0451a31a1e12"), + }, + AuthFlow: aws.String("USER_PASSWORD_AUTH"), + AuthParameters: map[string]*string{ + "PASSWORD": aws.String("This-is-my-test-99!"), + "SECRET_HASH": aws.String("oT5ZkS8ctnrhYeeGsGTvOzPhoc/Jd1cO5fueBWFVmp8="), + "USERNAME": aws.String("mytestuser"), + }, + ClientId: aws.String("1example23456789"), + ClientMetadata: map[string]*string{ + "MyTestKey": aws.String("MyTestValue"), + }, + UserContextData: &cognitoidentityprovider.UserContextDataType{ + EncodedData: aws.String("AmazonCognitoAdvancedSecurityData_object"), + IpAddress: aws.String("192.0.2.1"), + }, + } + + result, err := svc.InitiateAuth(input) + if err != nil { + if aerr, ok := err.(awserr.Error); ok { + switch aerr.Code() { + case cognitoidentityprovider.ErrCodeResourceNotFoundException: + fmt.Println(cognitoidentityprovider.ErrCodeResourceNotFoundException, aerr.Error()) + case cognitoidentityprovider.ErrCodeInvalidParameterException: + fmt.Println(cognitoidentityprovider.ErrCodeInvalidParameterException, aerr.Error()) + case cognitoidentityprovider.ErrCodeNotAuthorizedException: + fmt.Println(cognitoidentityprovider.ErrCodeNotAuthorizedException, aerr.Error()) + case cognitoidentityprovider.ErrCodeTooManyRequestsException: + fmt.Println(cognitoidentityprovider.ErrCodeTooManyRequestsException, aerr.Error()) + case cognitoidentityprovider.ErrCodeUnexpectedLambdaException: + fmt.Println(cognitoidentityprovider.ErrCodeUnexpectedLambdaException, aerr.Error()) + case cognitoidentityprovider.ErrCodeInvalidUserPoolConfigurationException: + fmt.Println(cognitoidentityprovider.ErrCodeInvalidUserPoolConfigurationException, aerr.Error()) + case cognitoidentityprovider.ErrCodeUserLambdaValidationException: + fmt.Println(cognitoidentityprovider.ErrCodeUserLambdaValidationException, aerr.Error()) + case cognitoidentityprovider.ErrCodeInvalidLambdaResponseException: + fmt.Println(cognitoidentityprovider.ErrCodeInvalidLambdaResponseException, aerr.Error()) + case cognitoidentityprovider.ErrCodePasswordResetRequiredException: + fmt.Println(cognitoidentityprovider.ErrCodePasswordResetRequiredException, aerr.Error()) + case cognitoidentityprovider.ErrCodeUserNotFoundException: + fmt.Println(cognitoidentityprovider.ErrCodeUserNotFoundException, aerr.Error()) + case cognitoidentityprovider.ErrCodeUserNotConfirmedException: + fmt.Println(cognitoidentityprovider.ErrCodeUserNotConfirmedException, aerr.Error()) + case cognitoidentityprovider.ErrCodeInternalErrorException: + fmt.Println(cognitoidentityprovider.ErrCodeInternalErrorException, aerr.Error()) + case cognitoidentityprovider.ErrCodeInvalidSmsRoleAccessPolicyException: + fmt.Println(cognitoidentityprovider.ErrCodeInvalidSmsRoleAccessPolicyException, aerr.Error()) + case cognitoidentityprovider.ErrCodeInvalidSmsRoleTrustRelationshipException: + fmt.Println(cognitoidentityprovider.ErrCodeInvalidSmsRoleTrustRelationshipException, aerr.Error()) + case cognitoidentityprovider.ErrCodeForbiddenException: + fmt.Println(cognitoidentityprovider.ErrCodeForbiddenException, aerr.Error()) + default: + fmt.Println(aerr.Error()) + } + } else { + // Print the error, cast err to awserr.Error to get the Code and + // Message from an error. + fmt.Println(err.Error()) + } + return + } + + fmt.Println(result) +} + +// A ListUsers request for the next 3 users whose email address starts with "testuser." +// This request submits a value for all possible parameters for ListUsers. By iterating +// the PaginationToken, you can page through and collect all users in a user pool. +func ExampleCognitoIdentityProvider_ListUsers_shared00() { + svc := cognitoidentityprovider.New(session.New()) + input := &cognitoidentityprovider.ListUsersInput{ + AttributesToGet: []*string{ + aws.String("email"), + aws.String("sub"), + }, + Filter: aws.String("\"email\"^=\"testuser\""), + Limit: aws.Int64(3), + PaginationToken: aws.String("abcd1234EXAMPLE"), + UserPoolId: aws.String("us-east-1_EXAMPLE"), + } + + result, err := svc.ListUsers(input) + if err != nil { + if aerr, ok := err.(awserr.Error); ok { + switch aerr.Code() { + case cognitoidentityprovider.ErrCodeInvalidParameterException: + fmt.Println(cognitoidentityprovider.ErrCodeInvalidParameterException, aerr.Error()) + case cognitoidentityprovider.ErrCodeResourceNotFoundException: + fmt.Println(cognitoidentityprovider.ErrCodeResourceNotFoundException, aerr.Error()) + case cognitoidentityprovider.ErrCodeTooManyRequestsException: + fmt.Println(cognitoidentityprovider.ErrCodeTooManyRequestsException, aerr.Error()) + case cognitoidentityprovider.ErrCodeNotAuthorizedException: + fmt.Println(cognitoidentityprovider.ErrCodeNotAuthorizedException, aerr.Error()) + case cognitoidentityprovider.ErrCodeInternalErrorException: + fmt.Println(cognitoidentityprovider.ErrCodeInternalErrorException, aerr.Error()) + default: + fmt.Println(aerr.Error()) + } + } else { + // Print the error, cast err to awserr.Error to get the Code and + // Message from an error. + fmt.Println(err.Error()) + } + return + } + + fmt.Println(result) +} + +// A ListUsers request for the next 3 users whose email address starts with "testuser." +// This request submits a value for all possible parameters for ListUsers. By iterating +// the PaginationToken, you can page through and collect all users in a user pool. +func ExampleCognitoIdentityProvider_ListUsers_shared01() { + svc := cognitoidentityprovider.New(session.New()) + input := &cognitoidentityprovider.ListUsersInput{ + AttributesToGet: []*string{ + aws.String("email"), + aws.String("sub"), + }, + Filter: aws.String("\"email\"^=\"testuser\""), + Limit: aws.Int64(3), + PaginationToken: aws.String("abcd1234EXAMPLE"), + UserPoolId: aws.String("us-east-1_EXAMPLE"), + } + + result, err := svc.ListUsers(input) + if err != nil { + if aerr, ok := err.(awserr.Error); ok { + switch aerr.Code() { + case cognitoidentityprovider.ErrCodeInvalidParameterException: + fmt.Println(cognitoidentityprovider.ErrCodeInvalidParameterException, aerr.Error()) + case cognitoidentityprovider.ErrCodeResourceNotFoundException: + fmt.Println(cognitoidentityprovider.ErrCodeResourceNotFoundException, aerr.Error()) + case cognitoidentityprovider.ErrCodeTooManyRequestsException: + fmt.Println(cognitoidentityprovider.ErrCodeTooManyRequestsException, aerr.Error()) + case cognitoidentityprovider.ErrCodeNotAuthorizedException: + fmt.Println(cognitoidentityprovider.ErrCodeNotAuthorizedException, aerr.Error()) + case cognitoidentityprovider.ErrCodeInternalErrorException: + fmt.Println(cognitoidentityprovider.ErrCodeInternalErrorException, aerr.Error()) + default: + fmt.Println(aerr.Error()) + } + } else { + // Print the error, cast err to awserr.Error to get the Code and + // Message from an error. + fmt.Println(err.Error()) + } + return + } + + fmt.Println(result) +} diff --git a/service/fsx/api.go b/service/fsx/api.go index 0ac859d9157..935f3187942 100644 --- a/service/fsx/api.go +++ b/service/fsx/api.go @@ -555,7 +555,7 @@ func (c *FSx) CreateDataRepositoryAssociationRequest(input *CreateDataRepository // repository association is a link between a directory on the file system and // an Amazon S3 bucket or prefix. You can have a maximum of 8 data repository // associations on a file system. Data repository associations are supported -// on all FSx for Lustre 2.12 and newer file systems, excluding scratch_1 deployment +// on all FSx for Lustre 2.12 and 2.15 file systems, excluding scratch_1 deployment // type. // // Each data repository association must have a unique Amazon FSx file system @@ -672,7 +672,7 @@ func (c *FSx) CreateDataRepositoryTaskRequest(input *CreateDataRepositoryTaskInp // from your FSx file system to a linked data repository. // // You use release data repository tasks to release data from your file system -// for files that are archived to S3. The metadata of released files remains +// for files that are exported to S3. The metadata of released files remains // on the file system so users or applications can still access released files // by reading the files again, which will restore data from Amazon S3 to the // FSx for Lustre file system. @@ -1718,7 +1718,7 @@ func (c *FSx) DeleteDataRepositoryAssociationRequest(input *DeleteDataRepository // Amazon S3 bucket. When deleting a data repository association, you have the // option of deleting the data in the file system that corresponds to the data // repository association. Data repository associations are supported on all -// FSx for Lustre 2.12 and newer file systems, excluding scratch_1 deployment +// FSx for Lustre 2.12 and 2.15 file systems, excluding scratch_1 deployment // type. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions @@ -1930,6 +1930,21 @@ func (c *FSx) DeleteFileSystemRequest(input *DeleteFileSystemInput) (req *reques // a final backup is created upon deletion. This final backup isn't subject // to the file system's retention policy, and must be manually deleted. // +// To delete an Amazon FSx for Lustre file system, first unmount (https://docs.aws.amazon.com/fsx/latest/LustreGuide/unmounting-fs.html) +// it from every connected Amazon EC2 instance, then provide a FileSystemId +// value to the DeleFileSystem operation. By default, Amazon FSx will not take +// a final backup when the DeleteFileSystem operation is invoked. On file systems +// not linked to an Amazon S3 bucket, set SkipFinalBackup to false to take a +// final backup of the file system you are deleting. Backups cannot be enabled +// on S3-linked file systems. To ensure all of your data is written back to +// S3 before deleting your file system, you can either monitor for the AgeOfOldestQueuedMessage +// (https://docs.aws.amazon.com/fsx/latest/LustreGuide/monitoring-cloudwatch.html#auto-import-export-metrics) +// metric to be zero (if using automatic export) or you can run an export data +// repository task (https://docs.aws.amazon.com/fsx/latest/LustreGuide/export-data-repo-task-dra.html). +// If you have automatic export enabled and want to use an export data repository +// task, you have to disable automatic export before executing the export data +// repository task. +// // The DeleteFileSystem operation returns while the file system has the DELETING // status. You can check the file system deletion status by calling the DescribeFileSystems // (https://docs.aws.amazon.com/fsx/latest/APIReference/API_DescribeFileSystems.html) @@ -2493,7 +2508,7 @@ func (c *FSx) DescribeDataRepositoryAssociationsRequest(input *DescribeDataRepos // Cache data repository associations, if one or more AssociationIds values // are provided in the request, or if filters are used in the request. Data // repository associations are supported on Amazon File Cache resources and -// all FSx for Lustre 2.12 and newer file systems, excluding scratch_1 deployment +// all FSx for Lustre 2.12 and 2,15 file systems, excluding scratch_1 deployment // type. // // You can use filters to narrow the response to include just data repository @@ -4367,7 +4382,7 @@ func (c *FSx) UpdateDataRepositoryAssociationRequest(input *UpdateDataRepository // // Updates the configuration of an existing data repository association on an // Amazon FSx for Lustre file system. Data repository associations are supported -// on all FSx for Lustre 2.12 and newer file systems, excluding scratch_1 deployment +// on all FSx for Lustre 2.12 and 2.15 file systems, excluding scratch_1 deployment // type. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions @@ -4627,6 +4642,8 @@ func (c *FSx) UpdateFileSystemRequest(input *UpdateFileSystemInput) (req *reques // // For FSx for OpenZFS file systems, you can update the following properties: // +// - AddRouteTableIds +// // - AutomaticBackupRetentionDays // // - CopyTagsToBackups @@ -4637,6 +4654,8 @@ func (c *FSx) UpdateFileSystemRequest(input *UpdateFileSystemInput) (req *reques // // - DiskIopsConfiguration // +// - RemoveRouteTableIds +// // - StorageCapacity // // - ThroughputCapacity @@ -6984,7 +7003,7 @@ type CreateDataRepositoryTaskInput struct { // A list of paths for the data repository task to use when the task is processed. // If a path that you provide isn't valid, the task fails. If you don't provide // paths, the default behavior is to export all files to S3 (for export tasks), - // import all files from S3 (for import tasks), or release all archived files + // import all files from S3 (for import tasks), or release all exported files // that meet the last accessed time criteria (for release tasks). // // * For export tasks, the list contains paths on the FSx for Lustre file @@ -7000,9 +7019,9 @@ type CreateDataRepositoryTaskInput struct { // (where myPrefix is optional). // // * For release tasks, the list contains directory or file paths on the - // FSx for Lustre file system from which to release archived files. If a + // FSx for Lustre file system from which to release exported files. If a // directory is specified, files within the directory are released. If a - // file path is specified, only that file is released. To release all archived + // file path is specified, only that file is released. To release all exported // files in the file system, specify a forward slash (/) as the path. A file // must also meet the last accessed time criteria specified in for the file // to be released. @@ -7032,8 +7051,8 @@ type CreateDataRepositoryTaskInput struct { // linked S3 bucket to your Amazon FSx for Lustre file system. // // * RELEASE_DATA_FROM_FILESYSTEM tasks release files in your Amazon FSx - // for Lustre file system that are archived and that meet your specified - // release criteria. + // for Lustre file system that have been exported to a linked S3 bucket and + // that meet your specified release criteria. // // * AUTO_RELEASE_DATA tasks automatically release files from an Amazon File // Cache resource. @@ -7556,7 +7575,7 @@ type CreateFileSystemFromBackupInput struct { ClientRequestToken *string `min:"1" type:"string" idempotencyToken:"true"` // Sets the version for the Amazon FSx for Lustre file system that you're creating - // from a backup. Valid values are 2.10 and 2.12. + // from a backup. Valid values are 2.10, 2.12, and 2.15. // // You don't need to specify FileSystemTypeVersion because it will be applied // using the backup's FileSystemTypeVersion setting. If you choose to specify @@ -7849,13 +7868,13 @@ type CreateFileSystemInput struct { FileSystemType *string `type:"string" required:"true" enum:"FileSystemType"` // (Optional) For FSx for Lustre file systems, sets the Lustre version for the - // file system that you're creating. Valid values are 2.10 and 2.12: + // file system that you're creating. Valid values are 2.10, 2.12m and 2.15: // // * 2.10 is supported by the Scratch and Persistent_1 Lustre deployment // types. // - // * 2.12 is supported by all Lustre deployment types. 2.12 is required when - // setting FSx for Lustre DeploymentType to PERSISTENT_2. + // * 2.12 and 2.15 are supported by all Lustre deployment types. 2.12 or + // 2.15 is required when setting FSx for Lustre DeploymentType to PERSISTENT_2. // // Default value = 2.10, except when DeploymentType is set to PERSISTENT_2, // then the default is 2.12. @@ -8535,10 +8554,11 @@ type CreateFileSystemOntapConfiguration struct { // in which you want the preferred file server to be located. PreferredSubnetId *string `min:"15" type:"string"` - // (Multi-AZ only) Specifies the virtual private cloud (VPC) route tables in - // which your file system's endpoints will be created. You should specify all - // VPC route tables associated with the subnets in which your clients are located. - // By default, Amazon FSx selects your VPC's default route table. + // (Multi-AZ only) Specifies the route tables in which Amazon FSx creates the + // rules for routing traffic to the correct file server. You should specify + // all virtual private cloud (VPC) route tables associated with the subnets + // in which your clients are located. By default, Amazon FSx selects your VPC's + // default route table. RouteTableIds []*string `type:"list"` // Sets the throughput capacity for the file system that you're creating. Valid @@ -8710,19 +8730,21 @@ type CreateFileSystemOpenZFSConfiguration struct { // // * MULTI_AZ_1- Creates file systems with high availability that are configured // for Multi-AZ redundancy to tolerate temporary unavailability in Availability - // Zones (AZs). Multi_AZ_1 is available in the following Amazon Web Services - // Regions: + // Zones (AZs). Multi_AZ_1 is available only in the US East (N. Virginia), + // US East (Ohio), US West (Oregon), Asia Pacific (Singapore), Asia Pacific + // (Tokyo), and Europe (Ireland) Amazon Web Services Regions. // - // * SINGLE_AZ_1- (Default) Creates file systems with throughput capacities - // of 64 - 4,096 MB/s. Single_AZ_1 is available in all Amazon Web Services - // Regions where Amazon FSx for OpenZFS is available. + // * SINGLE_AZ_1- Creates file systems with throughput capacities of 64 - + // 4,096 MB/s. Single_AZ_1 is available in all Amazon Web Services Regions + // where Amazon FSx for OpenZFS is available. // // * SINGLE_AZ_2- Creates file systems with throughput capacities of 160 // - 10,240 MB/s using an NVMe L2ARC cache. Single_AZ_2 is available only - // in the US East (N. Virginia), US East (Ohio), US West (Oregon), and Europe - // (Ireland) Amazon Web Services Regions. + // in the US East (N. Virginia), US East (Ohio), US West (Oregon), Asia Pacific + // (Singapore), Asia Pacific (Tokyo), and Europe (Ireland) Amazon Web Services + // Regions. // - // For more information, see: Deployment type availability (https://docs.aws.amazon.com/fsx/latest/OpenZFSGuide/availability-durability.html#available-aws-regions) + // For more information, see Deployment type availability (https://docs.aws.amazon.com/fsx/latest/OpenZFSGuide/availability-durability.html#available-aws-regions) // and File system performance (https://docs.aws.amazon.com/fsx/latest/OpenZFSGuide/performance.html#zfs-fs-performance) // in the Amazon FSx for OpenZFS User Guide. // @@ -8752,22 +8774,23 @@ type CreateFileSystemOpenZFSConfiguration struct { // FSx for OpenZFS file system. All volumes are children of the root volume. RootVolumeConfiguration *OpenZFSCreateRootVolumeConfiguration `type:"structure"` - // (Multi-AZ only) Specifies the virtual private cloud (VPC) route tables in - // which your file system's endpoints will be created. You should specify all - // VPC route tables associated with the subnets in which your clients are located. - // By default, Amazon FSx selects your VPC's default route table. + // (Multi-AZ only) Specifies the route tables in which Amazon FSx creates the + // rules for routing traffic to the correct file server. You should specify + // all virtual private cloud (VPC) route tables associated with the subnets + // in which your clients are located. By default, Amazon FSx selects your VPC's + // default route table. RouteTableIds []*string `type:"list"` // Specifies the throughput of an Amazon FSx for OpenZFS file system, measured // in megabytes per second (MBps). Valid values depend on the DeploymentType // you choose, as follows: // + // * For MULTI_AZ_1 and SINGLE_AZ_2, valid values are 160, 320, 640, 1280, + // 2560, 3840, 5120, 7680, or 10240 MBps. + // // * For SINGLE_AZ_1, valid values are 64, 128, 256, 512, 1024, 2048, 3072, // or 4096 MBps. // - // * For SINGLE_AZ_2, valid values are 160, 320, 640, 1280, 2560, 3840, 5120, - // 7680, or 10240 MBps. - // // You pay for additional throughput capacity that you provision. // // ThroughputCapacity is a required field @@ -10547,7 +10570,7 @@ func (s *CreateVolumeOutput) SetVolume(v *Volume) *CreateVolumeOutput { // - DescribeDataRepositoryAssociations // // Data repository associations are supported on Amazon File Cache resources -// and all FSx for Lustre 2.12 and newer file systems, excluding scratch_1 deployment +// and all FSx for Lustre 2.12 and 2.15 file systems, excluding scratch_1 deployment // type. type DataRepositoryAssociation struct { _ struct{} `type:"structure"` @@ -11044,8 +11067,8 @@ func (s *DataRepositoryFailureDetails) SetMessage(v string) *DataRepositoryFailu // operations between an Amazon FSx for Lustre file system and a linked data // repository. // -// - You use release data repository tasks to release archived files from -// your Amazon FSx for Lustre file system. +// - You use release data repository tasks to release have been exported +// to a linked S3 bucketed files from your Amazon FSx for Lustre file system. // // - An Amazon File Cache resource uses a task to automatically release files // from the cache. @@ -11154,8 +11177,8 @@ type DataRepositoryTask struct { // linked S3 bucket to your Amazon FSx for Lustre file system. // // * RELEASE_DATA_FROM_FILESYSTEM tasks release files in your Amazon FSx - // for Lustre file system that are archived and that meet your specified - // release criteria. + // for Lustre file system that have been exported to a linked S3 bucket and + // that meet your specified release criteria. // // * AUTO_RELEASE_DATA tasks automatically release files from an Amazon File // Cache resource. @@ -14248,9 +14271,9 @@ func (s *DiskIopsConfiguration) SetMode(v string) *DiskIopsConfiguration { } // Defines the minimum amount of time since last access for a file to be eligible -// for release. Only archived files that were last accessed or modified before -// this point-in-time are eligible to be released from the Amazon FSx for Lustre -// file system. +// for release. Only files that have been exported to S3 and that were last +// accessed or modified before this point-in-time are eligible to be released +// from the Amazon FSx for Lustre file system. type DurationSinceLastAccess struct { _ struct{} `type:"structure"` @@ -14260,12 +14283,12 @@ type DurationSinceLastAccess struct { Unit *string `type:"string" enum:"Unit"` // An integer that represents the minimum amount of time (in days) since a file - // was last accessed in the file system. Only archived files with a MAX(atime, + // was last accessed in the file system. Only exported files with a MAX(atime, // ctime, mtime) timestamp that is more than this amount of time in the past // (relative to the task create time) will be released. The default of Value // is 0. This is a required parameter. // - // If an archived file meets the last accessed time criteria, its file or directory + // If an exported file meets the last accessed time criteria, its file or directory // path must also be specified in the Paths parameter of the operation in order // for the file to be released. Value *int64 `type:"long"` @@ -15163,8 +15186,8 @@ type FileSystem struct { // or OPENZFS. FileSystemType *string `type:"string" enum:"FileSystemType"` - // The Lustre version of the Amazon FSx for Lustre file system, either 2.10 - // or 2.12. + // The Lustre version of the Amazon FSx for Lustre file system, which is 2.10, + // 2.12, or 2.15. FileSystemTypeVersion *string `min:"1" type:"string"` // The ID of the Key Management Service (KMS) key used to encrypt Amazon FSx @@ -16573,11 +16596,10 @@ type LustreFileSystemConfiguration struct { // than SCRATCH_1. // // The PERSISTENT_1 and PERSISTENT_2 deployment type is used for longer-term - // storage and workloads and encryption of data in transit. PERSISTENT_2 is - // built on Lustre v2.12 and offers higher PerUnitStorageThroughput (up to 1000 - // MB/s/TiB) along with a lower minimum storage capacity requirement (600 GiB). - // To learn more about FSx for Lustre deployment types, see FSx for Lustre deployment - // options (https://docs.aws.amazon.com/fsx/latest/LustreGuide/lustre-deployment-types.html). + // storage and workloads and encryption of data in transit. PERSISTENT_2 offers + // higher PerUnitStorageThroughput (up to 1000 MB/s/TiB) along with a lower + // minimum storage capacity requirement (600 GiB). To learn more about FSx for + // Lustre deployment types, see FSx for Lustre deployment options (https://docs.aws.amazon.com/fsx/latest/LustreGuide/lustre-deployment-types.html). // // The default is SCRATCH_1. DeploymentType *string `type:"string" enum:"LustreDeploymentType"` @@ -18386,18 +18408,18 @@ func (s *OpenZFSVolumeConfiguration) SetVolumePath(v string) *OpenZFSVolumeConfi } // The configuration that specifies a minimum amount of time since last access -// for an archived file to be eligible for release from an Amazon FSx for Lustre +// for an exported file to be eligible for release from an Amazon FSx for Lustre // file system. Only files that were last accessed before this point-in-time // can be released. For example, if you specify a last accessed time criteria // of 9 days, only files that were last accessed 9.00001 or more days ago can // be released. // -// Only file data that has been archived can be released. Files that have not -// yet been archived, such as new or changed files that have not been exported, -// are not eligible for release. When files are released, their metadata stays -// on the file system, so they can still be accessed later. Users and applications -// can access a released file by reading the file again, which restores data -// from Amazon S3 to the FSx for Lustre file system. +// Only file data that has been exported to S3 can be released. Files that have +// not yet been exported to S3, such as new or changed files that have not been +// exported, are not eligible for release. When files are released, their metadata +// stays on the file system, so they can still be accessed later. Users and +// applications can access a released file by reading the file again, which +// restores data from Amazon S3 to the FSx for Lustre file system. // // If a file meets the last accessed time criteria, its file or directory path // must also be specified with the Paths parameter of the operation in order @@ -18405,7 +18427,7 @@ func (s *OpenZFSVolumeConfiguration) SetVolumePath(v string) *OpenZFSVolumeConfi type ReleaseConfiguration struct { _ struct{} `type:"structure"` - // Defines the point-in-time since an archived file was last accessed, in order + // Defines the point-in-time since an exported file was last accessed, in order // for that file to be eligible for release. Only files that were last accessed // before this point-in-time are eligible to be released from the file system. DurationSinceLastAccess *DurationSinceLastAccess `type:"structure"` @@ -21530,11 +21552,11 @@ type UpdateFileSystemOpenZFSConfiguration struct { // per second (MB/s). Valid values depend on the DeploymentType you choose, // as follows: // + // * For MULTI_AZ_1 and SINGLE_AZ_2, valid values are 160, 320, 640, 1280, + // 2560, 3840, 5120, 7680, or 10240 MBps. + // // * For SINGLE_AZ_1, valid values are 64, 128, 256, 512, 1024, 2048, 3072, // or 4096 MB/s. - // - // * For SINGLE_AZ_2, valid values are 160, 320, 640, 1280, 2560, 3840, 5120, - // 7680, or 10240 MB/s. ThroughputCapacity *int64 `min:"8" type:"integer"` // A recurring weekly time, in the format D:HH:MM. diff --git a/service/omics/api.go b/service/omics/api.go index 6e024d2394e..e3fa2ed5334 100644 --- a/service/omics/api.go +++ b/service/omics/api.go @@ -8330,7 +8330,13 @@ func (c *Omics) StartRunRequest(input *StartRunInput) (req *request.Request, out // StartRun API operation for Amazon Omics. // -// Starts a run. +// Starts a workflow run. To duplicate a run, specify the run's ID and a role +// ARN. The remaining parameters are copied from the previous run. +// +// The total number of runs in your account is subject to a quota per Region. +// To avoid needing to delete runs manually, you can set the retention mode +// to REMOVE. Runs with this setting are deleted automatically when the run +// quoata is exceeded. // // 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 @@ -16209,6 +16215,9 @@ type GetRunOutput struct { // The run's resource digests. ResourceDigests map[string]*string `locationName:"resourceDigests" type:"map"` + // The run's retention mode. + RetentionMode *string `locationName:"retentionMode" min:"1" type:"string" enum:"RunRetentionMode"` + // The run's service role ARN. RoleArn *string `locationName:"roleArn" min:"1" type:"string"` @@ -16330,6 +16339,12 @@ func (s *GetRunOutput) SetResourceDigests(v map[string]*string) *GetRunOutput { return s } +// SetRetentionMode sets the RetentionMode field's value. +func (s *GetRunOutput) SetRetentionMode(v string) *GetRunOutput { + s.RetentionMode = &v + return s +} + // SetRoleArn sets the RoleArn field's value. func (s *GetRunOutput) SetRoleArn(v string) *GetRunOutput { s.RoleArn = &v @@ -24109,6 +24124,9 @@ type StartRunInput struct { // each request. RequestId *string `locationName:"requestId" min:"1" type:"string" idempotencyToken:"true"` + // The retention mode for the run. + RetentionMode *string `locationName:"retentionMode" min:"1" type:"string" enum:"RunRetentionMode"` + // A service role for the run. // // RoleArn is a required field @@ -24117,7 +24135,7 @@ type StartRunInput struct { // The run's group ID. RunGroupId *string `locationName:"runGroupId" min:"1" type:"string"` - // The run's ID. + // The ID of a run to duplicate. RunId *string `locationName:"runId" min:"1" type:"string"` // A storage capacity for the run in gigabytes. @@ -24129,7 +24147,7 @@ type StartRunInput struct { // The run's workflow ID. WorkflowId *string `locationName:"workflowId" min:"1" type:"string"` - // The run's workflows type. + // The run's workflow type. WorkflowType *string `locationName:"workflowType" min:"1" type:"string" enum:"WorkflowType"` } @@ -24166,6 +24184,9 @@ func (s *StartRunInput) Validate() error { if s.RequestId != nil && len(*s.RequestId) < 1 { invalidParams.Add(request.NewErrParamMinLen("RequestId", 1)) } + if s.RetentionMode != nil && len(*s.RetentionMode) < 1 { + invalidParams.Add(request.NewErrParamMinLen("RetentionMode", 1)) + } if s.RoleArn == nil { invalidParams.Add(request.NewErrParamRequired("RoleArn")) } @@ -24221,6 +24242,12 @@ func (s *StartRunInput) SetRequestId(v string) *StartRunInput { return s } +// SetRetentionMode sets the RetentionMode field's value. +func (s *StartRunInput) SetRetentionMode(v string) *StartRunInput { + s.RetentionMode = &v + return s +} + // SetRoleArn sets the RoleArn field's value. func (s *StartRunInput) SetRoleArn(v string) *StartRunInput { s.RoleArn = &v @@ -27180,6 +27207,22 @@ func RunLogLevel_Values() []string { } } +const ( + // RunRetentionModeRetain is a RunRetentionMode enum value + RunRetentionModeRetain = "RETAIN" + + // RunRetentionModeRemove is a RunRetentionMode enum value + RunRetentionModeRemove = "REMOVE" +) + +// RunRetentionMode_Values returns all elements of the RunRetentionMode enum +func RunRetentionMode_Values() []string { + return []string{ + RunRetentionModeRetain, + RunRetentionModeRemove, + } +} + const ( // RunStatusPending is a RunStatus enum value RunStatusPending = "PENDING" diff --git a/service/sesv2/api.go b/service/sesv2/api.go index bc00ff2aca2..5d1eeba256a 100644 --- a/service/sesv2/api.go +++ b/service/sesv2/api.go @@ -105,6 +105,92 @@ func (c *SESV2) BatchGetMetricDataWithContext(ctx aws.Context, input *BatchGetMe return out, req.Send() } +const opCancelExportJob = "CancelExportJob" + +// CancelExportJobRequest generates a "aws/request.Request" representing the +// client's request for the CancelExportJob 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 CancelExportJob for more information on using the CancelExportJob +// 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 CancelExportJobRequest method. +// req, resp := client.CancelExportJobRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/sesv2-2019-09-27/CancelExportJob +func (c *SESV2) CancelExportJobRequest(input *CancelExportJobInput) (req *request.Request, output *CancelExportJobOutput) { + op := &request.Operation{ + Name: opCancelExportJob, + HTTPMethod: "PUT", + HTTPPath: "/v2/email/export-jobs/{JobId}/cancel", + } + + if input == nil { + input = &CancelExportJobInput{} + } + + output = &CancelExportJobOutput{} + req = c.newRequest(op, input, output) + req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) + return +} + +// CancelExportJob API operation for Amazon Simple Email Service. +// +// Cancels an export 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 Simple Email Service's +// API operation CancelExportJob for usage and error information. +// +// Returned Error Types: +// +// - NotFoundException +// The resource you attempted to access doesn't exist. +// +// - BadRequestException +// The input you provided is invalid. +// +// - TooManyRequestsException +// Too many requests have been made to the operation. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/sesv2-2019-09-27/CancelExportJob +func (c *SESV2) CancelExportJob(input *CancelExportJobInput) (*CancelExportJobOutput, error) { + req, out := c.CancelExportJobRequest(input) + return out, req.Send() +} + +// CancelExportJobWithContext is the same as CancelExportJob with the addition of +// the ability to pass a context and additional request options. +// +// See CancelExportJob 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 *SESV2) CancelExportJobWithContext(ctx aws.Context, input *CancelExportJobInput, opts ...request.Option) (*CancelExportJobOutput, error) { + req, out := c.CancelExportJobRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opCreateConfigurationSet = "CreateConfigurationSet" // CreateConfigurationSetRequest generates a "aws/request.Request" representing the @@ -1108,6 +1194,96 @@ func (c *SESV2) CreateEmailTemplateWithContext(ctx aws.Context, input *CreateEma return out, req.Send() } +const opCreateExportJob = "CreateExportJob" + +// CreateExportJobRequest generates a "aws/request.Request" representing the +// client's request for the CreateExportJob 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 CreateExportJob for more information on using the CreateExportJob +// 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 CreateExportJobRequest method. +// req, resp := client.CreateExportJobRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/sesv2-2019-09-27/CreateExportJob +func (c *SESV2) CreateExportJobRequest(input *CreateExportJobInput) (req *request.Request, output *CreateExportJobOutput) { + op := &request.Operation{ + Name: opCreateExportJob, + HTTPMethod: "POST", + HTTPPath: "/v2/email/export-jobs", + } + + if input == nil { + input = &CreateExportJobInput{} + } + + output = &CreateExportJobOutput{} + req = c.newRequest(op, input, output) + return +} + +// CreateExportJob API operation for Amazon Simple Email Service. +// +// Creates an export job for a data source and destination. +// +// You can execute this operation no more than once per second. +// +// 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 Email Service's +// API operation CreateExportJob for usage and error information. +// +// Returned Error Types: +// +// - BadRequestException +// The input you provided is invalid. +// +// - TooManyRequestsException +// Too many requests have been made to the operation. +// +// - NotFoundException +// The resource you attempted to access doesn't exist. +// +// - LimitExceededException +// There are too many instances of the specified resource type. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/sesv2-2019-09-27/CreateExportJob +func (c *SESV2) CreateExportJob(input *CreateExportJobInput) (*CreateExportJobOutput, error) { + req, out := c.CreateExportJobRequest(input) + return out, req.Send() +} + +// CreateExportJobWithContext is the same as CreateExportJob with the addition of +// the ability to pass a context and additional request options. +// +// See CreateExportJob 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 *SESV2) CreateExportJobWithContext(ctx aws.Context, input *CreateExportJobInput, opts ...request.Option) (*CreateExportJobOutput, error) { + req, out := c.CreateExportJobRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opCreateImportJob = "CreateImportJob" // CreateImportJobRequest generates a "aws/request.Request" representing the @@ -3654,57 +3830,57 @@ func (c *SESV2) GetEmailTemplateWithContext(ctx aws.Context, input *GetEmailTemp return out, req.Send() } -const opGetImportJob = "GetImportJob" +const opGetExportJob = "GetExportJob" -// GetImportJobRequest generates a "aws/request.Request" representing the -// client's request for the GetImportJob operation. The "output" return +// GetExportJobRequest generates a "aws/request.Request" representing the +// client's request for the GetExportJob 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 +// See GetExportJob for more information on using the GetExportJob // 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) +// // Example sending a request using the GetExportJobRequest method. +// req, resp := client.GetExportJobRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // -// See also, https://docs.aws.amazon.com/goto/WebAPI/sesv2-2019-09-27/GetImportJob -func (c *SESV2) GetImportJobRequest(input *GetImportJobInput) (req *request.Request, output *GetImportJobOutput) { +// See also, https://docs.aws.amazon.com/goto/WebAPI/sesv2-2019-09-27/GetExportJob +func (c *SESV2) GetExportJobRequest(input *GetExportJobInput) (req *request.Request, output *GetExportJobOutput) { op := &request.Operation{ - Name: opGetImportJob, + Name: opGetExportJob, HTTPMethod: "GET", - HTTPPath: "/v2/email/import-jobs/{JobId}", + HTTPPath: "/v2/email/export-jobs/{JobId}", } if input == nil { - input = &GetImportJobInput{} + input = &GetExportJobInput{} } - output = &GetImportJobOutput{} + output = &GetExportJobOutput{} req = c.newRequest(op, input, output) return } -// GetImportJob API operation for Amazon Simple Email Service. +// GetExportJob API operation for Amazon Simple Email Service. // -// Provides information about an import job. +// Provides information about an export 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 Simple Email Service's -// API operation GetImportJob for usage and error information. +// API operation GetExportJob for usage and error information. // // Returned Error Types: // @@ -3717,216 +3893,390 @@ func (c *SESV2) GetImportJobRequest(input *GetImportJobInput) (req *request.Requ // - TooManyRequestsException // Too many requests have been made to the operation. // -// See also, https://docs.aws.amazon.com/goto/WebAPI/sesv2-2019-09-27/GetImportJob -func (c *SESV2) GetImportJob(input *GetImportJobInput) (*GetImportJobOutput, error) { - req, out := c.GetImportJobRequest(input) +// See also, https://docs.aws.amazon.com/goto/WebAPI/sesv2-2019-09-27/GetExportJob +func (c *SESV2) GetExportJob(input *GetExportJobInput) (*GetExportJobOutput, error) { + req, out := c.GetExportJobRequest(input) return out, req.Send() } -// GetImportJobWithContext is the same as GetImportJob with the addition of +// GetExportJobWithContext is the same as GetExportJob 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. +// See GetExportJob 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 *SESV2) GetImportJobWithContext(ctx aws.Context, input *GetImportJobInput, opts ...request.Option) (*GetImportJobOutput, error) { - req, out := c.GetImportJobRequest(input) +func (c *SESV2) GetExportJobWithContext(ctx aws.Context, input *GetExportJobInput, opts ...request.Option) (*GetExportJobOutput, error) { + req, out := c.GetExportJobRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } -const opGetSuppressedDestination = "GetSuppressedDestination" +const opGetImportJob = "GetImportJob" -// GetSuppressedDestinationRequest generates a "aws/request.Request" representing the -// client's request for the GetSuppressedDestination operation. The "output" return +// 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 GetSuppressedDestination for more information on using the GetSuppressedDestination +// 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 GetSuppressedDestinationRequest method. -// req, resp := client.GetSuppressedDestinationRequest(params) +// // 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/sesv2-2019-09-27/GetSuppressedDestination -func (c *SESV2) GetSuppressedDestinationRequest(input *GetSuppressedDestinationInput) (req *request.Request, output *GetSuppressedDestinationOutput) { +// See also, https://docs.aws.amazon.com/goto/WebAPI/sesv2-2019-09-27/GetImportJob +func (c *SESV2) GetImportJobRequest(input *GetImportJobInput) (req *request.Request, output *GetImportJobOutput) { op := &request.Operation{ - Name: opGetSuppressedDestination, + Name: opGetImportJob, HTTPMethod: "GET", - HTTPPath: "/v2/email/suppression/addresses/{EmailAddress}", + HTTPPath: "/v2/email/import-jobs/{JobId}", } if input == nil { - input = &GetSuppressedDestinationInput{} + input = &GetImportJobInput{} } - output = &GetSuppressedDestinationOutput{} + output = &GetImportJobOutput{} req = c.newRequest(op, input, output) return } -// GetSuppressedDestination API operation for Amazon Simple Email Service. +// GetImportJob API operation for Amazon Simple Email Service. // -// Retrieves information about a specific email address that's on the suppression -// list for your account. +// Provides information about an 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 Simple Email Service's -// API operation GetSuppressedDestination for usage and error information. +// API operation GetImportJob for usage and error information. // // Returned Error Types: // // - BadRequestException // The input you provided is invalid. // -// - TooManyRequestsException -// Too many requests have been made to the operation. -// // - NotFoundException // The resource you attempted to access doesn't exist. // -// See also, https://docs.aws.amazon.com/goto/WebAPI/sesv2-2019-09-27/GetSuppressedDestination -func (c *SESV2) GetSuppressedDestination(input *GetSuppressedDestinationInput) (*GetSuppressedDestinationOutput, error) { - req, out := c.GetSuppressedDestinationRequest(input) +// - TooManyRequestsException +// Too many requests have been made to the operation. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/sesv2-2019-09-27/GetImportJob +func (c *SESV2) GetImportJob(input *GetImportJobInput) (*GetImportJobOutput, error) { + req, out := c.GetImportJobRequest(input) return out, req.Send() } -// GetSuppressedDestinationWithContext is the same as GetSuppressedDestination with the addition of +// GetImportJobWithContext is the same as GetImportJob with the addition of // the ability to pass a context and additional request options. // -// See GetSuppressedDestination for details on how to use this API operation. +// 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 *SESV2) GetSuppressedDestinationWithContext(ctx aws.Context, input *GetSuppressedDestinationInput, opts ...request.Option) (*GetSuppressedDestinationOutput, error) { - req, out := c.GetSuppressedDestinationRequest(input) +func (c *SESV2) 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 opListConfigurationSets = "ListConfigurationSets" +const opGetMessageInsights = "GetMessageInsights" -// ListConfigurationSetsRequest generates a "aws/request.Request" representing the -// client's request for the ListConfigurationSets operation. The "output" return +// GetMessageInsightsRequest generates a "aws/request.Request" representing the +// client's request for the GetMessageInsights 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 ListConfigurationSets for more information on using the ListConfigurationSets +// See GetMessageInsights for more information on using the GetMessageInsights // 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 ListConfigurationSetsRequest method. -// req, resp := client.ListConfigurationSetsRequest(params) +// // Example sending a request using the GetMessageInsightsRequest method. +// req, resp := client.GetMessageInsightsRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // -// See also, https://docs.aws.amazon.com/goto/WebAPI/sesv2-2019-09-27/ListConfigurationSets -func (c *SESV2) ListConfigurationSetsRequest(input *ListConfigurationSetsInput) (req *request.Request, output *ListConfigurationSetsOutput) { +// See also, https://docs.aws.amazon.com/goto/WebAPI/sesv2-2019-09-27/GetMessageInsights +func (c *SESV2) GetMessageInsightsRequest(input *GetMessageInsightsInput) (req *request.Request, output *GetMessageInsightsOutput) { op := &request.Operation{ - Name: opListConfigurationSets, + Name: opGetMessageInsights, HTTPMethod: "GET", - HTTPPath: "/v2/email/configuration-sets", - Paginator: &request.Paginator{ - InputTokens: []string{"NextToken"}, - OutputTokens: []string{"NextToken"}, - LimitToken: "PageSize", - TruncationToken: "", - }, + HTTPPath: "/v2/email/insights/{MessageId}/", } if input == nil { - input = &ListConfigurationSetsInput{} + input = &GetMessageInsightsInput{} } - output = &ListConfigurationSetsOutput{} + output = &GetMessageInsightsOutput{} req = c.newRequest(op, input, output) return } -// ListConfigurationSets API operation for Amazon Simple Email Service. +// GetMessageInsights API operation for Amazon Simple Email Service. // -// List all of the configuration sets associated with your account in the current -// region. +// Provides information about a specific message, including the from address, +// the subject, the recipient address, email tags, as well as events associated +// with the message. // -// Configuration sets are groups of rules that you can apply to the emails you -// send. You apply a configuration set to an email by including a reference -// to the configuration set in the headers of the email. When you apply a configuration -// set to an email, all of the rules in that configuration set are applied to -// the email. +// You can execute this operation no more than once per second. // // 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 Email Service's -// API operation ListConfigurationSets for usage and error information. +// API operation GetMessageInsights for usage and error information. // // Returned Error Types: // +// - NotFoundException +// The resource you attempted to access doesn't exist. +// // - TooManyRequestsException // Too many requests have been made to the operation. // // - BadRequestException // The input you provided is invalid. // -// See also, https://docs.aws.amazon.com/goto/WebAPI/sesv2-2019-09-27/ListConfigurationSets -func (c *SESV2) ListConfigurationSets(input *ListConfigurationSetsInput) (*ListConfigurationSetsOutput, error) { - req, out := c.ListConfigurationSetsRequest(input) +// See also, https://docs.aws.amazon.com/goto/WebAPI/sesv2-2019-09-27/GetMessageInsights +func (c *SESV2) GetMessageInsights(input *GetMessageInsightsInput) (*GetMessageInsightsOutput, error) { + req, out := c.GetMessageInsightsRequest(input) return out, req.Send() } -// ListConfigurationSetsWithContext is the same as ListConfigurationSets with the addition of +// GetMessageInsightsWithContext is the same as GetMessageInsights with the addition of // the ability to pass a context and additional request options. // -// See ListConfigurationSets for details on how to use this API operation. +// See GetMessageInsights 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 *SESV2) ListConfigurationSetsWithContext(ctx aws.Context, input *ListConfigurationSetsInput, opts ...request.Option) (*ListConfigurationSetsOutput, error) { - req, out := c.ListConfigurationSetsRequest(input) +func (c *SESV2) GetMessageInsightsWithContext(ctx aws.Context, input *GetMessageInsightsInput, opts ...request.Option) (*GetMessageInsightsOutput, error) { + req, out := c.GetMessageInsightsRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } -// ListConfigurationSetsPages iterates over the pages of a ListConfigurationSets operation, -// calling the "fn" function with the response data for each page. To stop -// iterating, return false from the fn function. +const opGetSuppressedDestination = "GetSuppressedDestination" + +// GetSuppressedDestinationRequest generates a "aws/request.Request" representing the +// client's request for the GetSuppressedDestination operation. The "output" return +// value will be populated with the request's response once the request completes +// successfully. // -// See ListConfigurationSets method for more information on how to use this operation. +// 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. // -// Note: This operation can generate multiple requests to a service. +// See GetSuppressedDestination for more information on using the GetSuppressedDestination +// 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 GetSuppressedDestinationRequest method. +// req, resp := client.GetSuppressedDestinationRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/sesv2-2019-09-27/GetSuppressedDestination +func (c *SESV2) GetSuppressedDestinationRequest(input *GetSuppressedDestinationInput) (req *request.Request, output *GetSuppressedDestinationOutput) { + op := &request.Operation{ + Name: opGetSuppressedDestination, + HTTPMethod: "GET", + HTTPPath: "/v2/email/suppression/addresses/{EmailAddress}", + } + + if input == nil { + input = &GetSuppressedDestinationInput{} + } + + output = &GetSuppressedDestinationOutput{} + req = c.newRequest(op, input, output) + return +} + +// GetSuppressedDestination API operation for Amazon Simple Email Service. +// +// Retrieves information about a specific email address that's on the suppression +// list for your account. +// +// 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 Email Service's +// API operation GetSuppressedDestination for usage and error information. +// +// Returned Error Types: +// +// - BadRequestException +// The input you provided is invalid. +// +// - TooManyRequestsException +// Too many requests have been made to the operation. +// +// - NotFoundException +// The resource you attempted to access doesn't exist. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/sesv2-2019-09-27/GetSuppressedDestination +func (c *SESV2) GetSuppressedDestination(input *GetSuppressedDestinationInput) (*GetSuppressedDestinationOutput, error) { + req, out := c.GetSuppressedDestinationRequest(input) + return out, req.Send() +} + +// GetSuppressedDestinationWithContext is the same as GetSuppressedDestination with the addition of +// the ability to pass a context and additional request options. +// +// See GetSuppressedDestination 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 *SESV2) GetSuppressedDestinationWithContext(ctx aws.Context, input *GetSuppressedDestinationInput, opts ...request.Option) (*GetSuppressedDestinationOutput, error) { + req, out := c.GetSuppressedDestinationRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opListConfigurationSets = "ListConfigurationSets" + +// ListConfigurationSetsRequest generates a "aws/request.Request" representing the +// client's request for the ListConfigurationSets 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 ListConfigurationSets for more information on using the ListConfigurationSets +// 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 ListConfigurationSetsRequest method. +// req, resp := client.ListConfigurationSetsRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/sesv2-2019-09-27/ListConfigurationSets +func (c *SESV2) ListConfigurationSetsRequest(input *ListConfigurationSetsInput) (req *request.Request, output *ListConfigurationSetsOutput) { + op := &request.Operation{ + Name: opListConfigurationSets, + HTTPMethod: "GET", + HTTPPath: "/v2/email/configuration-sets", + Paginator: &request.Paginator{ + InputTokens: []string{"NextToken"}, + OutputTokens: []string{"NextToken"}, + LimitToken: "PageSize", + TruncationToken: "", + }, + } + + if input == nil { + input = &ListConfigurationSetsInput{} + } + + output = &ListConfigurationSetsOutput{} + req = c.newRequest(op, input, output) + return +} + +// ListConfigurationSets API operation for Amazon Simple Email Service. +// +// List all of the configuration sets associated with your account in the current +// region. +// +// Configuration sets are groups of rules that you can apply to the emails you +// send. You apply a configuration set to an email by including a reference +// to the configuration set in the headers of the email. When you apply a configuration +// set to an email, all of the rules in that configuration set are applied to +// the email. +// +// 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 Email Service's +// API operation ListConfigurationSets for usage and error information. +// +// Returned Error Types: +// +// - TooManyRequestsException +// Too many requests have been made to the operation. +// +// - BadRequestException +// The input you provided is invalid. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/sesv2-2019-09-27/ListConfigurationSets +func (c *SESV2) ListConfigurationSets(input *ListConfigurationSetsInput) (*ListConfigurationSetsOutput, error) { + req, out := c.ListConfigurationSetsRequest(input) + return out, req.Send() +} + +// ListConfigurationSetsWithContext is the same as ListConfigurationSets with the addition of +// the ability to pass a context and additional request options. +// +// See ListConfigurationSets 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 *SESV2) ListConfigurationSetsWithContext(ctx aws.Context, input *ListConfigurationSetsInput, opts ...request.Option) (*ListConfigurationSetsOutput, error) { + req, out := c.ListConfigurationSetsRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +// ListConfigurationSetsPages iterates over the pages of a ListConfigurationSets operation, +// calling the "fn" function with the response data for each page. To stop +// iterating, return false from the fn function. +// +// See ListConfigurationSets 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 ListConfigurationSets operation. // pageNum := 0 @@ -5112,36 +5462,36 @@ func (c *SESV2) ListEmailTemplatesPagesWithContext(ctx aws.Context, input *ListE return p.Err() } -const opListImportJobs = "ListImportJobs" +const opListExportJobs = "ListExportJobs" -// ListImportJobsRequest generates a "aws/request.Request" representing the -// client's request for the ListImportJobs operation. The "output" return +// ListExportJobsRequest generates a "aws/request.Request" representing the +// client's request for the ListExportJobs 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 +// See ListExportJobs for more information on using the ListExportJobs // 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) +// // Example sending a request using the ListExportJobsRequest method. +// req, resp := client.ListExportJobsRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // -// See also, https://docs.aws.amazon.com/goto/WebAPI/sesv2-2019-09-27/ListImportJobs -func (c *SESV2) ListImportJobsRequest(input *ListImportJobsInput) (req *request.Request, output *ListImportJobsOutput) { +// See also, https://docs.aws.amazon.com/goto/WebAPI/sesv2-2019-09-27/ListExportJobs +func (c *SESV2) ListExportJobsRequest(input *ListExportJobsInput) (req *request.Request, output *ListExportJobsOutput) { op := &request.Operation{ - Name: opListImportJobs, - HTTPMethod: "GET", - HTTPPath: "/v2/email/import-jobs", + Name: opListExportJobs, + HTTPMethod: "POST", + HTTPPath: "/v2/email/list-export-jobs", Paginator: &request.Paginator{ InputTokens: []string{"NextToken"}, OutputTokens: []string{"NextToken"}, @@ -5151,24 +5501,24 @@ func (c *SESV2) ListImportJobsRequest(input *ListImportJobsInput) (req *request. } if input == nil { - input = &ListImportJobsInput{} + input = &ListExportJobsInput{} } - output = &ListImportJobsOutput{} + output = &ListExportJobsOutput{} req = c.newRequest(op, input, output) return } -// ListImportJobs API operation for Amazon Simple Email Service. +// ListExportJobs API operation for Amazon Simple Email Service. // -// Lists all of the import jobs. +// Lists all of the export 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 Simple Email Service's -// API operation ListImportJobs for usage and error information. +// API operation ListExportJobs for usage and error information. // // Returned Error Types: // @@ -5178,64 +5528,64 @@ func (c *SESV2) ListImportJobsRequest(input *ListImportJobsInput) (req *request. // - BadRequestException // The input you provided is invalid. // -// See also, https://docs.aws.amazon.com/goto/WebAPI/sesv2-2019-09-27/ListImportJobs -func (c *SESV2) ListImportJobs(input *ListImportJobsInput) (*ListImportJobsOutput, error) { - req, out := c.ListImportJobsRequest(input) +// See also, https://docs.aws.amazon.com/goto/WebAPI/sesv2-2019-09-27/ListExportJobs +func (c *SESV2) ListExportJobs(input *ListExportJobsInput) (*ListExportJobsOutput, error) { + req, out := c.ListExportJobsRequest(input) return out, req.Send() } -// ListImportJobsWithContext is the same as ListImportJobs with the addition of +// ListExportJobsWithContext is the same as ListExportJobs 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. +// See ListExportJobs 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 *SESV2) ListImportJobsWithContext(ctx aws.Context, input *ListImportJobsInput, opts ...request.Option) (*ListImportJobsOutput, error) { - req, out := c.ListImportJobsRequest(input) +func (c *SESV2) ListExportJobsWithContext(ctx aws.Context, input *ListExportJobsInput, opts ...request.Option) (*ListExportJobsOutput, error) { + req, out := c.ListExportJobsRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } -// ListImportJobsPages iterates over the pages of a ListImportJobs operation, +// ListExportJobsPages iterates over the pages of a ListExportJobs 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. +// See ListExportJobs 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. +// // Example iterating over at most 3 pages of a ListExportJobs operation. // pageNum := 0 -// err := client.ListImportJobsPages(params, -// func(page *sesv2.ListImportJobsOutput, lastPage bool) bool { +// err := client.ListExportJobsPages(params, +// func(page *sesv2.ListExportJobsOutput, lastPage bool) bool { // pageNum++ // fmt.Println(page) // return pageNum <= 3 // }) -func (c *SESV2) ListImportJobsPages(input *ListImportJobsInput, fn func(*ListImportJobsOutput, bool) bool) error { - return c.ListImportJobsPagesWithContext(aws.BackgroundContext(), input, fn) +func (c *SESV2) ListExportJobsPages(input *ListExportJobsInput, fn func(*ListExportJobsOutput, bool) bool) error { + return c.ListExportJobsPagesWithContext(aws.BackgroundContext(), input, fn) } -// ListImportJobsPagesWithContext same as ListImportJobsPages except +// ListExportJobsPagesWithContext same as ListExportJobsPages 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 *SESV2) ListImportJobsPagesWithContext(ctx aws.Context, input *ListImportJobsInput, fn func(*ListImportJobsOutput, bool) bool, opts ...request.Option) error { +func (c *SESV2) ListExportJobsPagesWithContext(ctx aws.Context, input *ListExportJobsInput, fn func(*ListExportJobsOutput, bool) bool, opts ...request.Option) error { p := request.Pagination{ NewRequest: func() (*request.Request, error) { - var inCpy *ListImportJobsInput + var inCpy *ListExportJobsInput if input != nil { tmp := *input inCpy = &tmp } - req, _ := c.ListImportJobsRequest(inCpy) + req, _ := c.ListExportJobsRequest(inCpy) req.SetContext(ctx) req.ApplyOptions(opts...) return req, nil @@ -5243,7 +5593,7 @@ func (c *SESV2) ListImportJobsPagesWithContext(ctx aws.Context, input *ListImpor } for p.Next() { - if !fn(p.Page().(*ListImportJobsOutput), !p.HasNextPage()) { + if !fn(p.Page().(*ListExportJobsOutput), !p.HasNextPage()) { break } } @@ -5251,36 +5601,36 @@ func (c *SESV2) ListImportJobsPagesWithContext(ctx aws.Context, input *ListImpor return p.Err() } -const opListRecommendations = "ListRecommendations" +const opListImportJobs = "ListImportJobs" -// ListRecommendationsRequest generates a "aws/request.Request" representing the -// client's request for the ListRecommendations operation. The "output" return +// 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 ListRecommendations for more information on using the ListRecommendations +// 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 ListRecommendationsRequest method. -// req, resp := client.ListRecommendationsRequest(params) +// // 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/sesv2-2019-09-27/ListRecommendations -func (c *SESV2) ListRecommendationsRequest(input *ListRecommendationsInput) (req *request.Request, output *ListRecommendationsOutput) { +// See also, https://docs.aws.amazon.com/goto/WebAPI/sesv2-2019-09-27/ListImportJobs +func (c *SESV2) ListImportJobsRequest(input *ListImportJobsInput) (req *request.Request, output *ListImportJobsOutput) { op := &request.Operation{ - Name: opListRecommendations, - HTTPMethod: "POST", - HTTPPath: "/v2/email/vdm/recommendations", + Name: opListImportJobs, + HTTPMethod: "GET", + HTTPPath: "/v2/email/import-jobs", Paginator: &request.Paginator{ InputTokens: []string{"NextToken"}, OutputTokens: []string{"NextToken"}, @@ -5290,27 +5640,24 @@ func (c *SESV2) ListRecommendationsRequest(input *ListRecommendationsInput) (req } if input == nil { - input = &ListRecommendationsInput{} + input = &ListImportJobsInput{} } - output = &ListRecommendationsOutput{} + output = &ListImportJobsOutput{} req = c.newRequest(op, input, output) return } -// ListRecommendations API operation for Amazon Simple Email Service. -// -// Lists the recommendations present in your Amazon SES account in the current -// Amazon Web Services Region. +// ListImportJobs API operation for Amazon Simple Email Service. // -// You can execute this operation no more than once per second. +// Lists all of the 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 Simple Email Service's -// API operation ListRecommendations for usage and error information. +// API operation ListImportJobs for usage and error information. // // Returned Error Types: // @@ -5320,13 +5667,155 @@ func (c *SESV2) ListRecommendationsRequest(input *ListRecommendationsInput) (req // - BadRequestException // The input you provided is invalid. // -// - NotFoundException -// The resource you attempted to access doesn't exist. -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/sesv2-2019-09-27/ListRecommendations -func (c *SESV2) ListRecommendations(input *ListRecommendationsInput) (*ListRecommendationsOutput, error) { - req, out := c.ListRecommendationsRequest(input) - return out, req.Send() +// See also, https://docs.aws.amazon.com/goto/WebAPI/sesv2-2019-09-27/ListImportJobs +func (c *SESV2) 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 *SESV2) 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 *sesv2.ListImportJobsOutput, lastPage bool) bool { +// pageNum++ +// fmt.Println(page) +// return pageNum <= 3 +// }) +func (c *SESV2) 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 *SESV2) 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 opListRecommendations = "ListRecommendations" + +// ListRecommendationsRequest generates a "aws/request.Request" representing the +// client's request for the ListRecommendations 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 ListRecommendations for more information on using the ListRecommendations +// 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 ListRecommendationsRequest method. +// req, resp := client.ListRecommendationsRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/sesv2-2019-09-27/ListRecommendations +func (c *SESV2) ListRecommendationsRequest(input *ListRecommendationsInput) (req *request.Request, output *ListRecommendationsOutput) { + op := &request.Operation{ + Name: opListRecommendations, + HTTPMethod: "POST", + HTTPPath: "/v2/email/vdm/recommendations", + Paginator: &request.Paginator{ + InputTokens: []string{"NextToken"}, + OutputTokens: []string{"NextToken"}, + LimitToken: "PageSize", + TruncationToken: "", + }, + } + + if input == nil { + input = &ListRecommendationsInput{} + } + + output = &ListRecommendationsOutput{} + req = c.newRequest(op, input, output) + return +} + +// ListRecommendations API operation for Amazon Simple Email Service. +// +// Lists the recommendations present in your Amazon SES account in the current +// Amazon Web Services Region. +// +// You can execute this operation no more than once per second. +// +// 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 Email Service's +// API operation ListRecommendations for usage and error information. +// +// Returned Error Types: +// +// - TooManyRequestsException +// Too many requests have been made to the operation. +// +// - BadRequestException +// The input you provided is invalid. +// +// - NotFoundException +// The resource you attempted to access doesn't exist. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/sesv2-2019-09-27/ListRecommendations +func (c *SESV2) ListRecommendations(input *ListRecommendationsInput) (*ListRecommendationsOutput, error) { + req, out := c.ListRecommendationsRequest(input) + return out, req.Send() } // ListRecommendationsWithContext is the same as ListRecommendations with the addition of @@ -9302,6 +9791,59 @@ func (s *Body) SetText(v *Content) *Body { return s } +// Information about a Bounce event. +type Bounce struct { + _ struct{} `type:"structure"` + + // The subtype of the bounce, as determined by SES. + BounceSubType *string `type:"string"` + + // The type of the bounce, as determined by SES. Can be one of UNDETERMINED, + // TRANSIENT, or PERMANENT + BounceType *string `type:"string" enum:"BounceType"` + + // The status code issued by the reporting Message Transfer Authority (MTA). + // This field only appears if a delivery status notification (DSN) was attached + // to the bounce and the Diagnostic-Code was provided in the DSN. + DiagnosticCode *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 Bounce) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s Bounce) GoString() string { + return s.String() +} + +// SetBounceSubType sets the BounceSubType field's value. +func (s *Bounce) SetBounceSubType(v string) *Bounce { + s.BounceSubType = &v + return s +} + +// SetBounceType sets the BounceType field's value. +func (s *Bounce) SetBounceType(v string) *Bounce { + s.BounceType = &v + return s +} + +// SetDiagnosticCode sets the DiagnosticCode field's value. +func (s *Bounce) SetDiagnosticCode(v string) *Bounce { + s.DiagnosticCode = &v + return s +} + // An object that contains the body of the message. You can specify a template // message. type BulkEmailContent struct { @@ -9531,6 +10073,80 @@ func (s *BulkEmailEntryResult) SetStatus(v string) *BulkEmailEntryResult { return s } +// Represents a request to cancel an export job using the export job ID. +type CancelExportJobInput struct { + _ struct{} `type:"structure" nopayload:"true"` + + // The export job ID. + // + // JobId is a required field + JobId *string `location:"uri" locationName:"JobId" 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 CancelExportJobInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s CancelExportJobInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CancelExportJobInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "CancelExportJobInput"} + if s.JobId == nil { + invalidParams.Add(request.NewErrParamRequired("JobId")) + } + if s.JobId != nil && len(*s.JobId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("JobId", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetJobId sets the JobId field's value. +func (s *CancelExportJobInput) SetJobId(v string) *CancelExportJobInput { + s.JobId = &v + return s +} + +// An HTTP 200 response if the request succeeds, or an error message if the +// request fails. +type CancelExportJobOutput 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 CancelExportJobOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s CancelExportJobOutput) GoString() string { + return s.String() +} + // An object that defines an Amazon CloudWatch destination for email events. // You can use Amazon CloudWatch to monitor and gain insights on your email // sending metrics. @@ -9684,12 +10300,18 @@ func (s *CloudWatchDimensionConfiguration) SetDimensionValueSource(v string) *Cl return s } -// The resource is being modified by another operation or thread. -type ConcurrentModificationException struct { - _ struct{} `type:"structure"` - RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` +// Information about a Complaint event. +type Complaint struct { + _ struct{} `type:"structure"` - Message_ *string `locationName:"message" type:"string"` + // The value of the Feedback-Type field from the feedback report received from + // the ISP. + ComplaintFeedbackType *string `type:"string"` + + // Can either be null or OnAccountSuppressionList. If the value is OnAccountSuppressionList, + // SES accepted the message, but didn't attempt to send it because it was on + // the account-level suppression list. + ComplaintSubType *string `type:"string"` } // String returns the string representation. @@ -9697,7 +10319,7 @@ type ConcurrentModificationException struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s ConcurrentModificationException) String() string { +func (s Complaint) String() string { return awsutil.Prettify(s) } @@ -9706,14 +10328,52 @@ func (s ConcurrentModificationException) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s ConcurrentModificationException) GoString() string { +func (s Complaint) GoString() string { return s.String() } -func newErrorConcurrentModificationException(v protocol.ResponseMetadata) error { - return &ConcurrentModificationException{ - RespMetadata: v, - } +// SetComplaintFeedbackType sets the ComplaintFeedbackType field's value. +func (s *Complaint) SetComplaintFeedbackType(v string) *Complaint { + s.ComplaintFeedbackType = &v + return s +} + +// SetComplaintSubType sets the ComplaintSubType field's value. +func (s *Complaint) SetComplaintSubType(v string) *Complaint { + s.ComplaintSubType = &v + return s +} + +// The resource is being modified by another operation or thread. +type ConcurrentModificationException 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 ConcurrentModificationException) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ConcurrentModificationException) GoString() string { + return s.String() +} + +func newErrorConcurrentModificationException(v protocol.ResponseMetadata) error { + return &ConcurrentModificationException{ + RespMetadata: v, + } } // Code returns the exception type name. @@ -11321,6 +11981,111 @@ func (s CreateEmailTemplateOutput) GoString() string { return s.String() } +// Represents a request to create an export job from a data source to a data +// destination. +type CreateExportJobInput struct { + _ struct{} `type:"structure"` + + // The data source for the export job. + // + // ExportDataSource is a required field + ExportDataSource *ExportDataSource `type:"structure" required:"true"` + + // The destination for the export job. + // + // ExportDestination is a required field + ExportDestination *ExportDestination `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 CreateExportJobInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s CreateExportJobInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CreateExportJobInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "CreateExportJobInput"} + if s.ExportDataSource == nil { + invalidParams.Add(request.NewErrParamRequired("ExportDataSource")) + } + if s.ExportDestination == nil { + invalidParams.Add(request.NewErrParamRequired("ExportDestination")) + } + if s.ExportDataSource != nil { + if err := s.ExportDataSource.Validate(); err != nil { + invalidParams.AddNested("ExportDataSource", err.(request.ErrInvalidParams)) + } + } + if s.ExportDestination != nil { + if err := s.ExportDestination.Validate(); err != nil { + invalidParams.AddNested("ExportDestination", err.(request.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetExportDataSource sets the ExportDataSource field's value. +func (s *CreateExportJobInput) SetExportDataSource(v *ExportDataSource) *CreateExportJobInput { + s.ExportDataSource = v + return s +} + +// SetExportDestination sets the ExportDestination field's value. +func (s *CreateExportJobInput) SetExportDestination(v *ExportDestination) *CreateExportJobInput { + s.ExportDestination = v + return s +} + +// An HTTP 200 response if the request succeeds, or an error message if the +// request fails. +type CreateExportJobOutput struct { + _ struct{} `type:"structure"` + + // A string that represents the export job ID. + JobId *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 CreateExportJobOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s CreateExportJobOutput) GoString() string { + return s.String() +} + +// SetJobId sets the JobId field's value. +func (s *CreateExportJobOutput) SetJobId(v string) *CreateExportJobOutput { + s.JobId = &v + return s +} + // Represents a request to create an import job from a data source for a data // destination. type CreateImportJobInput struct { @@ -13347,6 +14112,61 @@ func (s *EmailContent) SetTemplate(v *Template) *EmailContent { return s } +// An email's insights contain metadata and delivery information about a specific +// email. +type EmailInsights struct { + _ struct{} `type:"structure"` + + // The recipient of the email. + // + // Destination is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by EmailInsights's + // String and GoString methods. + Destination *string `min:"1" type:"string" sensitive:"true"` + + // A list of events associated with the sent email. + Events []*InsightsEvent `type:"list"` + + // The recipient's ISP (e.g., Gmail, Yahoo, etc.). + Isp *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 EmailInsights) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s EmailInsights) GoString() string { + return s.String() +} + +// SetDestination sets the Destination field's value. +func (s *EmailInsights) SetDestination(v string) *EmailInsights { + s.Destination = &v + return s +} + +// SetEvents sets the Events field's value. +func (s *EmailInsights) SetEvents(v []*InsightsEvent) *EmailInsights { + s.Events = v + return s +} + +// SetIsp sets the Isp field's value. +func (s *EmailInsights) SetIsp(v string) *EmailInsights { + s.Isp = &v + return s +} + // The content of the email, composed of a subject line, an HTML part, and a // text-only part. type EmailTemplateContent struct { @@ -13694,26 +14514,390 @@ func (s *EventDestinationDefinition) SetMatchingEventTypes(v []*string) *EventDe return s } -// SetPinpointDestination sets the PinpointDestination field's value. -func (s *EventDestinationDefinition) SetPinpointDestination(v *PinpointDestination) *EventDestinationDefinition { - s.PinpointDestination = v +// SetPinpointDestination sets the PinpointDestination field's value. +func (s *EventDestinationDefinition) SetPinpointDestination(v *PinpointDestination) *EventDestinationDefinition { + s.PinpointDestination = v + return s +} + +// SetSnsDestination sets the SnsDestination field's value. +func (s *EventDestinationDefinition) SetSnsDestination(v *SnsDestination) *EventDestinationDefinition { + s.SnsDestination = v + return s +} + +// Contains a Bounce object if the event type is BOUNCE. Contains a Complaint +// object if the event type is COMPLAINT. +type EventDetails struct { + _ struct{} `type:"structure"` + + // Information about a Bounce event. + Bounce *Bounce `type:"structure"` + + // Information about a Complaint event. + Complaint *Complaint `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 EventDetails) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s EventDetails) GoString() string { + return s.String() +} + +// SetBounce sets the Bounce field's value. +func (s *EventDetails) SetBounce(v *Bounce) *EventDetails { + s.Bounce = v + return s +} + +// SetComplaint sets the Complaint field's value. +func (s *EventDetails) SetComplaint(v *Complaint) *EventDetails { + s.Complaint = v + return s +} + +// An object that contains details about the data source of the export job. +// It can only contain one of MetricsDataSource or MessageInsightsDataSource +// object. +type ExportDataSource struct { + _ struct{} `type:"structure"` + + // An object that contains filters applied when performing the Message Insights + // export. + MessageInsightsDataSource *MessageInsightsDataSource `type:"structure"` + + // An object that contains details about the data source for the metrics export. + MetricsDataSource *MetricsDataSource `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 ExportDataSource) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ExportDataSource) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ExportDataSource) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ExportDataSource"} + if s.MessageInsightsDataSource != nil { + if err := s.MessageInsightsDataSource.Validate(); err != nil { + invalidParams.AddNested("MessageInsightsDataSource", err.(request.ErrInvalidParams)) + } + } + if s.MetricsDataSource != nil { + if err := s.MetricsDataSource.Validate(); err != nil { + invalidParams.AddNested("MetricsDataSource", err.(request.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetMessageInsightsDataSource sets the MessageInsightsDataSource field's value. +func (s *ExportDataSource) SetMessageInsightsDataSource(v *MessageInsightsDataSource) *ExportDataSource { + s.MessageInsightsDataSource = v + return s +} + +// SetMetricsDataSource sets the MetricsDataSource field's value. +func (s *ExportDataSource) SetMetricsDataSource(v *MetricsDataSource) *ExportDataSource { + s.MetricsDataSource = v + return s +} + +// An object that contains details about the destination of the export job. +type ExportDestination struct { + _ struct{} `type:"structure"` + + // The data format of the final export job file, can be one of the following: + // + // * CSV - A comma-separated values file. + // + // * JSON - A Json file. + // + // DataFormat is a required field + DataFormat *string `type:"string" required:"true" enum:"DataFormat"` + + // An Amazon S3 pre-signed URL that points to the generated export file. + S3Url *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 ExportDestination) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ExportDestination) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ExportDestination) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ExportDestination"} + if s.DataFormat == nil { + invalidParams.Add(request.NewErrParamRequired("DataFormat")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetDataFormat sets the DataFormat field's value. +func (s *ExportDestination) SetDataFormat(v string) *ExportDestination { + s.DataFormat = &v + return s +} + +// SetS3Url sets the S3Url field's value. +func (s *ExportDestination) SetS3Url(v string) *ExportDestination { + s.S3Url = &v + return s +} + +// A summary of the export job. +type ExportJobSummary struct { + _ struct{} `type:"structure"` + + // The timestamp of when the export job was completed. + CompletedTimestamp *time.Time `type:"timestamp"` + + // The timestamp of when the export job was created. + CreatedTimestamp *time.Time `type:"timestamp"` + + // The source type of the export job. + ExportSourceType *string `type:"string" enum:"ExportSourceType"` + + // The export job ID. + JobId *string `min:"1" type:"string"` + + // The status of the export job. + JobStatus *string `type:"string" enum:"JobStatus"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ExportJobSummary) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ExportJobSummary) GoString() string { + return s.String() +} + +// SetCompletedTimestamp sets the CompletedTimestamp field's value. +func (s *ExportJobSummary) SetCompletedTimestamp(v time.Time) *ExportJobSummary { + s.CompletedTimestamp = &v + return s +} + +// SetCreatedTimestamp sets the CreatedTimestamp field's value. +func (s *ExportJobSummary) SetCreatedTimestamp(v time.Time) *ExportJobSummary { + s.CreatedTimestamp = &v + return s +} + +// SetExportSourceType sets the ExportSourceType field's value. +func (s *ExportJobSummary) SetExportSourceType(v string) *ExportJobSummary { + s.ExportSourceType = &v + return s +} + +// SetJobId sets the JobId field's value. +func (s *ExportJobSummary) SetJobId(v string) *ExportJobSummary { + s.JobId = &v + return s +} + +// SetJobStatus sets the JobStatus field's value. +func (s *ExportJobSummary) SetJobStatus(v string) *ExportJobSummary { + s.JobStatus = &v + return s +} + +// An object that contains a mapping between a Metric and MetricAggregation. +type ExportMetric struct { + _ struct{} `type:"structure"` + + // The aggregation to apply to a metric, can be one of the following: + // + // * VOLUME - The volume of events for this metric. + // + // * RATE - The rate for this metric relative to the SEND metric volume. + Aggregation *string `type:"string" enum:"MetricAggregation"` + + // The metric to export, can be one of the following: + // + // * SEND - Emails sent eligible for tracking in the VDM dashboard. This + // excludes emails sent to the mailbox simulator and emails addressed to + // more than one recipient. + // + // * COMPLAINT - Complaints received for your account. This excludes complaints + // from the mailbox simulator, those originating from your account-level + // suppression list (if enabled), and those for emails addressed to more + // than one recipient + // + // * PERMANENT_BOUNCE - Permanent bounces - i.e., feedback received for emails + // sent to non-existent mailboxes. Excludes bounces from the mailbox simulator, + // those originating from your account-level suppression list (if enabled), + // and those for emails addressed to more than one recipient. + // + // * TRANSIENT_BOUNCE - Transient bounces - i.e., feedback received for delivery + // failures excluding issues with non-existent mailboxes. Excludes bounces + // from the mailbox simulator, and those for emails addressed to more than + // one recipient. + // + // * OPEN - Unique open events for emails including open trackers. Excludes + // opens for emails addressed to more than one recipient. + // + // * CLICK - Unique click events for emails including wrapped links. Excludes + // clicks for emails addressed to more than one recipient. + // + // * DELIVERY - Successful deliveries for email sending attempts. Excludes + // deliveries to the mailbox simulator and for emails addressed to more than + // one recipient. + // + // * DELIVERY_OPEN - Successful deliveries for email sending attempts. Excludes + // deliveries to the mailbox simulator, for emails addressed to more than + // one recipient, and emails without open trackers. + // + // * DELIVERY_CLICK - Successful deliveries for email sending attempts. Excludes + // deliveries to the mailbox simulator, for emails addressed to more than + // one recipient, and emails without click trackers. + // + // * DELIVERY_COMPLAINT - Successful deliveries for email sending attempts. + // Excludes deliveries to the mailbox simulator, for emails addressed to + // more than one recipient, and emails addressed to recipients hosted by + // ISPs with which Amazon SES does not have a feedback loop agreement. + Name *string `type:"string" enum:"Metric"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ExportMetric) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ExportMetric) GoString() string { + return s.String() +} + +// SetAggregation sets the Aggregation field's value. +func (s *ExportMetric) SetAggregation(v string) *ExportMetric { + s.Aggregation = &v + return s +} + +// SetName sets the Name field's value. +func (s *ExportMetric) SetName(v string) *ExportMetric { + s.Name = &v + return s +} + +// Statistics about the execution of an export job. +type ExportStatistics struct { + _ struct{} `type:"structure"` + + // The number of records that were exported to the final export file. + // + // This value might not be available for all export source types + ExportedRecordsCount *int64 `type:"integer"` + + // The number of records that were processed to generate the final export file. + ProcessedRecordsCount *int64 `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 ExportStatistics) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ExportStatistics) GoString() string { + return s.String() +} + +// SetExportedRecordsCount sets the ExportedRecordsCount field's value. +func (s *ExportStatistics) SetExportedRecordsCount(v int64) *ExportStatistics { + s.ExportedRecordsCount = &v return s } -// SetSnsDestination sets the SnsDestination field's value. -func (s *EventDestinationDefinition) SetSnsDestination(v *SnsDestination) *EventDestinationDefinition { - s.SnsDestination = v +// SetProcessedRecordsCount sets the ProcessedRecordsCount field's value. +func (s *ExportStatistics) SetProcessedRecordsCount(v int64) *ExportStatistics { + s.ProcessedRecordsCount = &v return s } -// An object that contains the failure details about an import job. +// An object that contains the failure details about a job. type FailureInfo struct { _ struct{} `type:"structure"` - // A message about why the import job failed. + // A message about why the job failed. ErrorMessage *string `type:"string"` - // An Amazon S3 presigned URL that contains all the failed records and related + // An Amazon S3 pre-signed URL that contains all the failed records and related // information. FailedRecordsS3Url *string `type:"string"` } @@ -15721,6 +16905,162 @@ func (s *GetEmailTemplateOutput) SetTemplateName(v string) *GetEmailTemplateOutp return s } +// Represents a request to retrieve information about an export job using the +// export job ID. +type GetExportJobInput struct { + _ struct{} `type:"structure" nopayload:"true"` + + // The export job ID. + // + // JobId is a required field + JobId *string `location:"uri" locationName:"JobId" 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 GetExportJobInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetExportJobInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GetExportJobInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "GetExportJobInput"} + if s.JobId == nil { + invalidParams.Add(request.NewErrParamRequired("JobId")) + } + if s.JobId != nil && len(*s.JobId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("JobId", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetJobId sets the JobId field's value. +func (s *GetExportJobInput) SetJobId(v string) *GetExportJobInput { + s.JobId = &v + return s +} + +// An HTTP 200 response if the request succeeds, or an error message if the +// request fails. +type GetExportJobOutput struct { + _ struct{} `type:"structure"` + + // The timestamp of when the export job was completed. + CompletedTimestamp *time.Time `type:"timestamp"` + + // The timestamp of when the export job was created. + CreatedTimestamp *time.Time `type:"timestamp"` + + // The data source of the export job. + ExportDataSource *ExportDataSource `type:"structure"` + + // The destination of the export job. + ExportDestination *ExportDestination `type:"structure"` + + // The type of source of the export job. + ExportSourceType *string `type:"string" enum:"ExportSourceType"` + + // The failure details about an export job. + FailureInfo *FailureInfo `type:"structure"` + + // The export job ID. + JobId *string `min:"1" type:"string"` + + // The status of the export job. + JobStatus *string `type:"string" enum:"JobStatus"` + + // The statistics about the export job. + Statistics *ExportStatistics `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 GetExportJobOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetExportJobOutput) GoString() string { + return s.String() +} + +// SetCompletedTimestamp sets the CompletedTimestamp field's value. +func (s *GetExportJobOutput) SetCompletedTimestamp(v time.Time) *GetExportJobOutput { + s.CompletedTimestamp = &v + return s +} + +// SetCreatedTimestamp sets the CreatedTimestamp field's value. +func (s *GetExportJobOutput) SetCreatedTimestamp(v time.Time) *GetExportJobOutput { + s.CreatedTimestamp = &v + return s +} + +// SetExportDataSource sets the ExportDataSource field's value. +func (s *GetExportJobOutput) SetExportDataSource(v *ExportDataSource) *GetExportJobOutput { + s.ExportDataSource = v + return s +} + +// SetExportDestination sets the ExportDestination field's value. +func (s *GetExportJobOutput) SetExportDestination(v *ExportDestination) *GetExportJobOutput { + s.ExportDestination = v + return s +} + +// SetExportSourceType sets the ExportSourceType field's value. +func (s *GetExportJobOutput) SetExportSourceType(v string) *GetExportJobOutput { + s.ExportSourceType = &v + return s +} + +// SetFailureInfo sets the FailureInfo field's value. +func (s *GetExportJobOutput) SetFailureInfo(v *FailureInfo) *GetExportJobOutput { + s.FailureInfo = v + return s +} + +// SetJobId sets the JobId field's value. +func (s *GetExportJobOutput) SetJobId(v string) *GetExportJobOutput { + s.JobId = &v + return s +} + +// SetJobStatus sets the JobStatus field's value. +func (s *GetExportJobOutput) SetJobStatus(v string) *GetExportJobOutput { + s.JobStatus = &v + return s +} + +// SetStatistics sets the Statistics field's value. +func (s *GetExportJobOutput) SetStatistics(v *ExportStatistics) *GetExportJobOutput { + s.Statistics = v + return s +} + // Represents a request for information about an import job using the import // job ID. type GetImportJobInput struct { @@ -15878,6 +17218,134 @@ func (s *GetImportJobOutput) SetProcessedRecordsCount(v int64) *GetImportJobOutp return s } +// A request to return information about a message. +type GetMessageInsightsInput struct { + _ struct{} `type:"structure" nopayload:"true"` + + // A MessageId is a unique identifier for a message, and is returned when sending + // emails through Amazon SES. + // + // MessageId is a required field + MessageId *string `location:"uri" locationName:"MessageId" 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 GetMessageInsightsInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetMessageInsightsInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GetMessageInsightsInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "GetMessageInsightsInput"} + if s.MessageId == nil { + invalidParams.Add(request.NewErrParamRequired("MessageId")) + } + if s.MessageId != nil && len(*s.MessageId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("MessageId", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetMessageId sets the MessageId field's value. +func (s *GetMessageInsightsInput) SetMessageId(v string) *GetMessageInsightsInput { + s.MessageId = &v + return s +} + +// Information about a message. +type GetMessageInsightsOutput struct { + _ struct{} `type:"structure"` + + // A list of tags, in the form of name/value pairs, that were applied to the + // email you sent, along with Amazon SES Auto-Tags (https://docs.aws.amazon.com/ses/latest/dg/monitor-using-event-publishing.html). + EmailTags []*MessageTag `type:"list"` + + // The from address used to send the message. + // + // FromEmailAddress is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by GetMessageInsightsOutput's + // String and GoString methods. + FromEmailAddress *string `min:"1" type:"string" sensitive:"true"` + + // A set of insights associated with the message. + Insights []*EmailInsights `type:"list"` + + // A unique identifier for the message. + MessageId *string `type:"string"` + + // The subject line of the message. + // + // Subject is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by GetMessageInsightsOutput's + // String and GoString methods. + Subject *string `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 GetMessageInsightsOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetMessageInsightsOutput) GoString() string { + return s.String() +} + +// SetEmailTags sets the EmailTags field's value. +func (s *GetMessageInsightsOutput) SetEmailTags(v []*MessageTag) *GetMessageInsightsOutput { + s.EmailTags = v + return s +} + +// SetFromEmailAddress sets the FromEmailAddress field's value. +func (s *GetMessageInsightsOutput) SetFromEmailAddress(v string) *GetMessageInsightsOutput { + s.FromEmailAddress = &v + return s +} + +// SetInsights sets the Insights field's value. +func (s *GetMessageInsightsOutput) SetInsights(v []*EmailInsights) *GetMessageInsightsOutput { + s.Insights = v + return s +} + +// SetMessageId sets the MessageId field's value. +func (s *GetMessageInsightsOutput) SetMessageId(v string) *GetMessageInsightsOutput { + s.MessageId = &v + return s +} + +// SetSubject sets the Subject field's value. +func (s *GetMessageInsightsOutput) SetSubject(v string) *GetMessageInsightsOutput { + s.Subject = &v + return s +} + // A request to retrieve information about an email address that's on the suppression // list for your account. type GetSuppressedDestinationInput struct { @@ -16258,10 +17726,18 @@ type ImportJobSummary struct { // job is going to target. ImportDestination *ImportDestination `type:"structure"` - // A string that represents the import job ID. + // A string that represents a job ID. JobId *string `min:"1" type:"string"` - // The status of the import job. + // The status of a job. + // + // * CREATED – Job has just been created. + // + // * PROCESSING – Job is processing. + // + // * ERROR – An error occurred during processing. + // + // * COMPLETED – Job has completed processing successfully. JobStatus *string `type:"string" enum:"JobStatus"` // The current number of records processed. @@ -16329,12 +17805,82 @@ func (s *ImportJobSummary) SetProcessedRecordsCount(v int64) *ImportJobSummary { type InboxPlacementTrackingOption struct { _ struct{} `type:"structure"` - // Specifies whether inbox placement data is being tracked for the domain. - Global *bool `type:"boolean"` + // Specifies whether inbox placement data is being tracked for the domain. + Global *bool `type:"boolean"` + + // An array of strings, one for each major email provider that the inbox placement + // data applies to. + TrackedIsps []*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 InboxPlacementTrackingOption) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s InboxPlacementTrackingOption) GoString() string { + return s.String() +} + +// SetGlobal sets the Global field's value. +func (s *InboxPlacementTrackingOption) SetGlobal(v bool) *InboxPlacementTrackingOption { + s.Global = &v + return s +} + +// SetTrackedIsps sets the TrackedIsps field's value. +func (s *InboxPlacementTrackingOption) SetTrackedIsps(v []*string) *InboxPlacementTrackingOption { + s.TrackedIsps = v + return s +} + +// An object containing details about a specific event. +type InsightsEvent struct { + _ struct{} `type:"structure"` + + // Details about bounce or complaint events. + Details *EventDetails `type:"structure"` - // An array of strings, one for each major email provider that the inbox placement - // data applies to. - TrackedIsps []*string `type:"list"` + // The timestamp of the event. + Timestamp *time.Time `type:"timestamp"` + + // The type of event: + // + // * SEND - The send request was successful and SES will attempt to deliver + // the message to the recipient’s mail server. (If account-level or global + // suppression is being used, SES will still count it as a send, but delivery + // is suppressed.) + // + // * DELIVERY - SES successfully delivered the email to the recipient's mail + // server. Excludes deliveries to the mailbox simulator, and those from emails + // addressed to more than one recipient. + // + // * BOUNCE - Feedback received for delivery failures. Additional details + // about the bounce are provided in the Details object. Excludes bounces + // from the mailbox simulator, and those from emails addressed to more than + // one recipient. + // + // * COMPLAINT - Complaint received for the email. Additional details about + // the complaint are provided in the Details object. This excludes complaints + // from the mailbox simulator, those originating from your account-level + // suppression list (if enabled), and those from emails addressed to more + // than one recipient. + // + // * OPEN - Open event for emails including open trackers. Excludes opens + // for emails addressed to more than one recipient. + // + // * CLICK - Click event for emails including wrapped links. Excludes clicks + // for emails addressed to more than one recipient. + Type *string `type:"string" enum:"EventType"` } // String returns the string representation. @@ -16342,7 +17888,7 @@ type InboxPlacementTrackingOption struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s InboxPlacementTrackingOption) String() string { +func (s InsightsEvent) String() string { return awsutil.Prettify(s) } @@ -16351,19 +17897,25 @@ func (s InboxPlacementTrackingOption) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s InboxPlacementTrackingOption) GoString() string { +func (s InsightsEvent) GoString() string { return s.String() } -// SetGlobal sets the Global field's value. -func (s *InboxPlacementTrackingOption) SetGlobal(v bool) *InboxPlacementTrackingOption { - s.Global = &v +// SetDetails sets the Details field's value. +func (s *InsightsEvent) SetDetails(v *EventDetails) *InsightsEvent { + s.Details = v return s } -// SetTrackedIsps sets the TrackedIsps field's value. -func (s *InboxPlacementTrackingOption) SetTrackedIsps(v []*string) *InboxPlacementTrackingOption { - s.TrackedIsps = v +// SetTimestamp sets the Timestamp field's value. +func (s *InsightsEvent) SetTimestamp(v time.Time) *InsightsEvent { + s.Timestamp = &v + return s +} + +// SetType sets the Type field's value. +func (s *InsightsEvent) SetType(v string) *InsightsEvent { + s.Type = &v return s } @@ -17630,6 +19182,113 @@ func (s *ListEmailTemplatesOutput) SetTemplatesMetadata(v []*EmailTemplateMetada return s } +// Represents a request to list all export jobs with filters. +type ListExportJobsInput struct { + _ struct{} `type:"structure"` + + // A value used to list export jobs that have a certain ExportSourceType. + ExportSourceType *string `type:"string" enum:"ExportSourceType"` + + // A value used to list export jobs that have a certain JobStatus. + JobStatus *string `type:"string" enum:"JobStatus"` + + // The pagination token returned from a previous call to ListExportJobs to indicate + // the position in the list of export jobs. + NextToken *string `type:"string"` + + // Maximum number of export jobs to return at once. Use this parameter to paginate + // results. If additional export jobs exist beyond the specified limit, the + // NextToken element is sent in the response. Use the NextToken value in subsequent + // calls to ListExportJobs to retrieve additional export jobs. + PageSize *int64 `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 ListExportJobsInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListExportJobsInput) GoString() string { + return s.String() +} + +// SetExportSourceType sets the ExportSourceType field's value. +func (s *ListExportJobsInput) SetExportSourceType(v string) *ListExportJobsInput { + s.ExportSourceType = &v + return s +} + +// SetJobStatus sets the JobStatus field's value. +func (s *ListExportJobsInput) SetJobStatus(v string) *ListExportJobsInput { + s.JobStatus = &v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *ListExportJobsInput) SetNextToken(v string) *ListExportJobsInput { + s.NextToken = &v + return s +} + +// SetPageSize sets the PageSize field's value. +func (s *ListExportJobsInput) SetPageSize(v int64) *ListExportJobsInput { + s.PageSize = &v + return s +} + +// An HTTP 200 response if the request succeeds, or an error message if the +// request fails. +type ListExportJobsOutput struct { + _ struct{} `type:"structure"` + + // A list of the export job summaries. + ExportJobs []*ExportJobSummary `type:"list"` + + // A string token indicating that there might be additional export jobs available + // to be listed. Use this token to a subsequent call to ListExportJobs with + // the same parameters to retrieve the next page of export jobs. + 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 ListExportJobsOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListExportJobsOutput) GoString() string { + return s.String() +} + +// SetExportJobs sets the ExportJobs field's value. +func (s *ListExportJobsOutput) SetExportJobs(v []*ExportJobSummary) *ListExportJobsOutput { + s.ExportJobs = v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *ListExportJobsOutput) SetNextToken(v string) *ListExportJobsOutput { + s.NextToken = &v + return s +} + // Represents a request to list all of the import jobs for a data destination // within the specified maximum number of import jobs. type ListImportJobsInput struct { @@ -18207,57 +19866,247 @@ func newErrorMailFromDomainNotVerifiedException(v protocol.ResponseMetadata) err return &MailFromDomainNotVerifiedException{ RespMetadata: v, } -} +} + +// Code returns the exception type name. +func (s *MailFromDomainNotVerifiedException) Code() string { + return "MailFromDomainNotVerifiedException" +} + +// Message returns the exception's message. +func (s *MailFromDomainNotVerifiedException) Message() string { + if s.Message_ != nil { + return *s.Message_ + } + return "" +} + +// OrigErr always returns nil, satisfies awserr.Error interface. +func (s *MailFromDomainNotVerifiedException) OrigErr() error { + return nil +} + +func (s *MailFromDomainNotVerifiedException) 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 *MailFromDomainNotVerifiedException) StatusCode() int { + return s.RespMetadata.StatusCode +} + +// RequestID returns the service's response RequestID for request. +func (s *MailFromDomainNotVerifiedException) RequestID() string { + return s.RespMetadata.RequestID +} + +// Represents the email message that you're sending. The Message object consists +// of a subject line and a message body. +type Message struct { + _ struct{} `type:"structure"` + + // The body of the message. You can specify an HTML version of the message, + // a text-only version of the message, or both. + // + // Body is a required field + Body *Body `type:"structure" required:"true"` + + // The subject line of the email. The subject line can only contain 7-bit ASCII + // characters. However, you can specify non-ASCII characters in the subject + // line by using encoded-word syntax, as described in RFC 2047 (https://tools.ietf.org/html/rfc2047). + // + // Subject is a required field + Subject *Content `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 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() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *Message) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "Message"} + if s.Body == nil { + invalidParams.Add(request.NewErrParamRequired("Body")) + } + if s.Subject == nil { + invalidParams.Add(request.NewErrParamRequired("Subject")) + } + if s.Body != nil { + if err := s.Body.Validate(); err != nil { + invalidParams.AddNested("Body", err.(request.ErrInvalidParams)) + } + } + if s.Subject != nil { + if err := s.Subject.Validate(); err != nil { + invalidParams.AddNested("Subject", err.(request.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetBody sets the Body field's value. +func (s *Message) SetBody(v *Body) *Message { + s.Body = v + return s +} + +// SetSubject sets the Subject field's value. +func (s *Message) SetSubject(v *Content) *Message { + s.Subject = v + return s +} + +// An object that contains filters applied when performing the Message Insights +// export. +type MessageInsightsDataSource struct { + _ struct{} `type:"structure"` + + // Represents the end date for the export interval as a timestamp. The end date + // is inclusive. + // + // EndDate is a required field + EndDate *time.Time `type:"timestamp" required:"true"` + + // Filters for results to be excluded from the export file. + Exclude *MessageInsightsFilters `type:"structure"` + + // Filters for results to be included in the export file. + Include *MessageInsightsFilters `type:"structure"` + + // The maximum number of results. + MaxResults *int64 `min:"1" type:"integer"` + + // Represents the start date for the export interval as a timestamp. The start + // date is inclusive. + // + // StartDate is a required field + StartDate *time.Time `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 MessageInsightsDataSource) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s MessageInsightsDataSource) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *MessageInsightsDataSource) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "MessageInsightsDataSource"} + if s.EndDate == nil { + invalidParams.Add(request.NewErrParamRequired("EndDate")) + } + if s.MaxResults != nil && *s.MaxResults < 1 { + invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1)) + } + if s.StartDate == nil { + invalidParams.Add(request.NewErrParamRequired("StartDate")) + } -// Code returns the exception type name. -func (s *MailFromDomainNotVerifiedException) Code() string { - return "MailFromDomainNotVerifiedException" + if invalidParams.Len() > 0 { + return invalidParams + } + return nil } -// Message returns the exception's message. -func (s *MailFromDomainNotVerifiedException) Message() string { - if s.Message_ != nil { - return *s.Message_ - } - return "" +// SetEndDate sets the EndDate field's value. +func (s *MessageInsightsDataSource) SetEndDate(v time.Time) *MessageInsightsDataSource { + s.EndDate = &v + return s } -// OrigErr always returns nil, satisfies awserr.Error interface. -func (s *MailFromDomainNotVerifiedException) OrigErr() error { - return nil +// SetExclude sets the Exclude field's value. +func (s *MessageInsightsDataSource) SetExclude(v *MessageInsightsFilters) *MessageInsightsDataSource { + s.Exclude = v + return s } -func (s *MailFromDomainNotVerifiedException) Error() string { - return fmt.Sprintf("%s: %s", s.Code(), s.Message()) +// SetInclude sets the Include field's value. +func (s *MessageInsightsDataSource) SetInclude(v *MessageInsightsFilters) *MessageInsightsDataSource { + s.Include = v + return s } -// Status code returns the HTTP status code for the request's response error. -func (s *MailFromDomainNotVerifiedException) StatusCode() int { - return s.RespMetadata.StatusCode +// SetMaxResults sets the MaxResults field's value. +func (s *MessageInsightsDataSource) SetMaxResults(v int64) *MessageInsightsDataSource { + s.MaxResults = &v + return s } -// RequestID returns the service's response RequestID for request. -func (s *MailFromDomainNotVerifiedException) RequestID() string { - return s.RespMetadata.RequestID +// SetStartDate sets the StartDate field's value. +func (s *MessageInsightsDataSource) SetStartDate(v time.Time) *MessageInsightsDataSource { + s.StartDate = &v + return s } -// Represents the email message that you're sending. The Message object consists -// of a subject line and a message body. -type Message struct { +// An object containing Message Insights filters. +// +// If you specify multiple filters, the filters are joined by AND. +// +// If you specify multiple values for a filter, the values are joined by OR. +// Filter values are case-sensitive. +// +// FromEmailAddress, Destination, and Subject filters support partial match. +// A partial match is performed by using the * wildcard character placed at +// the beginning (suffix match), the end (prefix match) or both ends of the +// string (contains match). In order to match the literal characters * or \, +// they must be escaped using the \ character. If no wildcard character is present, +// an exact match is performed. +type MessageInsightsFilters struct { _ struct{} `type:"structure"` - // The body of the message. You can specify an HTML version of the message, - // a text-only version of the message, or both. - // - // Body is a required field - Body *Body `type:"structure" required:"true"` + // The recipient's email address. + Destination []*string `type:"list"` - // The subject line of the email. The subject line can only contain 7-bit ASCII - // characters. However, you can specify non-ASCII characters in the subject - // line by using encoded-word syntax, as described in RFC 2047 (https://tools.ietf.org/html/rfc2047). + // The from address used to send the message. + FromEmailAddress []*string `type:"list"` + + // The recipient's ISP (e.g., Gmail, Yahoo, etc.). + Isp []*string `type:"list"` + + // The last delivery-related event for the email, where the ordering is as follows: + // SEND < BOUNCE < DELIVERY < COMPLAINT. + LastDeliveryEvent []*string `type:"list" enum:"DeliveryEventType"` + + // The last engagement-related event for the email, where the ordering is as + // follows: OPEN < CLICK. // - // Subject is a required field - Subject *Content `type:"structure" required:"true"` + // Engagement events are only available if Engagement tracking (https://docs.aws.amazon.com/ses/latest/dg/vdm-settings.html) + // is enabled. + LastEngagementEvent []*string `type:"list" enum:"EngagementEventType"` + + // The subject line of the message. + Subject []*string `type:"list"` } // String returns the string representation. @@ -18265,7 +20114,7 @@ type Message struct { // API parameter values that are decorated as "sensitive" in the API 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 { +func (s MessageInsightsFilters) String() string { return awsutil.Prettify(s) } @@ -18274,44 +20123,42 @@ func (s Message) String() string { // API parameter values that are decorated as "sensitive" in the API 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 { +func (s MessageInsightsFilters) GoString() string { return s.String() } -// Validate inspects the fields of the type to determine if they are valid. -func (s *Message) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "Message"} - if s.Body == nil { - invalidParams.Add(request.NewErrParamRequired("Body")) - } - if s.Subject == nil { - invalidParams.Add(request.NewErrParamRequired("Subject")) - } - if s.Body != nil { - if err := s.Body.Validate(); err != nil { - invalidParams.AddNested("Body", err.(request.ErrInvalidParams)) - } - } - if s.Subject != nil { - if err := s.Subject.Validate(); err != nil { - invalidParams.AddNested("Subject", err.(request.ErrInvalidParams)) - } - } +// SetDestination sets the Destination field's value. +func (s *MessageInsightsFilters) SetDestination(v []*string) *MessageInsightsFilters { + s.Destination = v + return s +} - if invalidParams.Len() > 0 { - return invalidParams - } - return nil +// SetFromEmailAddress sets the FromEmailAddress field's value. +func (s *MessageInsightsFilters) SetFromEmailAddress(v []*string) *MessageInsightsFilters { + s.FromEmailAddress = v + return s } -// SetBody sets the Body field's value. -func (s *Message) SetBody(v *Body) *Message { - s.Body = v +// SetIsp sets the Isp field's value. +func (s *MessageInsightsFilters) SetIsp(v []*string) *MessageInsightsFilters { + s.Isp = v + return s +} + +// SetLastDeliveryEvent sets the LastDeliveryEvent field's value. +func (s *MessageInsightsFilters) SetLastDeliveryEvent(v []*string) *MessageInsightsFilters { + s.LastDeliveryEvent = v + return s +} + +// SetLastEngagementEvent sets the LastEngagementEvent field's value. +func (s *MessageInsightsFilters) SetLastEngagementEvent(v []*string) *MessageInsightsFilters { + s.LastEngagementEvent = v return s } // SetSubject sets the Subject field's value. -func (s *Message) SetSubject(v *Content) *Message { +func (s *MessageInsightsFilters) SetSubject(v []*string) *MessageInsightsFilters { s.Subject = v return s } @@ -18560,6 +20407,117 @@ func (s *MetricDataResult) SetValues(v []*int64) *MetricDataResult { return s } +// An object that contains details about the data source for the metrics export. +type MetricsDataSource struct { + _ struct{} `type:"structure"` + + // An object that contains a mapping between a MetricDimensionName and MetricDimensionValue + // to filter metrics by. Must contain a least 1 dimension but no more than 3 + // unique ones. + // + // Dimensions is a required field + Dimensions map[string][]*string `min:"1" type:"map" required:"true"` + + // Represents the end date for the export interval as a timestamp. + // + // EndDate is a required field + EndDate *time.Time `type:"timestamp" required:"true"` + + // A list of ExportMetric objects to export. + // + // Metrics is a required field + Metrics []*ExportMetric `min:"1" type:"list" required:"true"` + + // The metrics namespace - e.g., VDM. + // + // Namespace is a required field + Namespace *string `type:"string" required:"true" enum:"MetricNamespace"` + + // Represents the start date for the export interval as a timestamp. + // + // StartDate is a required field + StartDate *time.Time `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 MetricsDataSource) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s MetricsDataSource) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *MetricsDataSource) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "MetricsDataSource"} + if s.Dimensions == nil { + invalidParams.Add(request.NewErrParamRequired("Dimensions")) + } + if s.Dimensions != nil && len(s.Dimensions) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Dimensions", 1)) + } + if s.EndDate == nil { + invalidParams.Add(request.NewErrParamRequired("EndDate")) + } + if s.Metrics == nil { + invalidParams.Add(request.NewErrParamRequired("Metrics")) + } + if s.Metrics != nil && len(s.Metrics) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Metrics", 1)) + } + if s.Namespace == nil { + invalidParams.Add(request.NewErrParamRequired("Namespace")) + } + if s.StartDate == nil { + invalidParams.Add(request.NewErrParamRequired("StartDate")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetDimensions sets the Dimensions field's value. +func (s *MetricsDataSource) SetDimensions(v map[string][]*string) *MetricsDataSource { + s.Dimensions = v + return s +} + +// SetEndDate sets the EndDate field's value. +func (s *MetricsDataSource) SetEndDate(v time.Time) *MetricsDataSource { + s.EndDate = &v + return s +} + +// SetMetrics sets the Metrics field's value. +func (s *MetricsDataSource) SetMetrics(v []*ExportMetric) *MetricsDataSource { + s.Metrics = v + return s +} + +// SetNamespace sets the Namespace field's value. +func (s *MetricsDataSource) SetNamespace(v string) *MetricsDataSource { + s.Namespace = &v + return s +} + +// SetStartDate sets the StartDate field's value. +func (s *MetricsDataSource) SetStartDate(v time.Time) *MetricsDataSource { + s.StartDate = &v + return s +} + // The resource you attempted to access doesn't exist. type NotFoundException struct { _ struct{} `type:"structure"` @@ -23745,6 +25703,26 @@ func BehaviorOnMxFailure_Values() []string { } } +const ( + // BounceTypeUndetermined is a BounceType enum value + BounceTypeUndetermined = "UNDETERMINED" + + // BounceTypeTransient is a BounceType enum value + BounceTypeTransient = "TRANSIENT" + + // BounceTypePermanent is a BounceType enum value + BounceTypePermanent = "PERMANENT" +) + +// BounceType_Values returns all elements of the BounceType enum +func BounceType_Values() []string { + return []string{ + BounceTypeUndetermined, + BounceTypeTransient, + BounceTypePermanent, + } +} + const ( // BulkEmailStatusSuccess is a BulkEmailStatus enum value BulkEmailStatusSuccess = "SUCCESS" @@ -23841,7 +25819,11 @@ func ContactListImportAction_Values() []string { } } -// The data format of the import job's data source. +// The data format of a file, can be one of the following: +// +// - CSV – A comma-separated values file. +// +// - JSON – A JSON file. const ( // DataFormatCsv is a DataFormat enum value DataFormatCsv = "CSV" @@ -23902,6 +25884,64 @@ func DeliverabilityTestStatus_Values() []string { } } +// The type of delivery events: +// +// - SEND - The send request was successful and SES will attempt to deliver +// the message to the recipient’s mail server. (If account-level or global +// suppression is being used, SES will still count it as a send, but delivery +// is suppressed.) +// +// - DELIVERY - SES successfully delivered the email to the recipient's mail +// server. Excludes deliveries to the mailbox simulator and emails addressed +// to more than one recipient. +// +// - TRANSIENT_BOUNCE - Feedback received for delivery failures excluding +// issues with non-existent mailboxes. Excludes bounces from the mailbox +// simulator, and those from emails addressed to more than one recipient. +// +// - PERMANENT_BOUNCE - Feedback received for emails sent to non-existent +// mailboxes. Excludes bounces from the mailbox simulator, those originating +// from your account-level suppression list (if enabled), and those from +// emails addressed to more than one recipient. +// +// - UNDETERMINED_BOUNCE - SES was unable to determine the bounce reason. +// +// - COMPLAINT - Complaint received for the email. This excludes complaints +// from the mailbox simulator, those originating from your account-level +// suppression list (if enabled), and those from emails addressed to more +// than one recipient. +const ( + // DeliveryEventTypeSend is a DeliveryEventType enum value + DeliveryEventTypeSend = "SEND" + + // DeliveryEventTypeDelivery is a DeliveryEventType enum value + DeliveryEventTypeDelivery = "DELIVERY" + + // DeliveryEventTypeTransientBounce is a DeliveryEventType enum value + DeliveryEventTypeTransientBounce = "TRANSIENT_BOUNCE" + + // DeliveryEventTypePermanentBounce is a DeliveryEventType enum value + DeliveryEventTypePermanentBounce = "PERMANENT_BOUNCE" + + // DeliveryEventTypeUndeterminedBounce is a DeliveryEventType enum value + DeliveryEventTypeUndeterminedBounce = "UNDETERMINED_BOUNCE" + + // DeliveryEventTypeComplaint is a DeliveryEventType enum value + DeliveryEventTypeComplaint = "COMPLAINT" +) + +// DeliveryEventType_Values returns all elements of the DeliveryEventType enum +func DeliveryEventType_Values() []string { + return []string{ + DeliveryEventTypeSend, + DeliveryEventTypeDelivery, + DeliveryEventTypeTransientBounce, + DeliveryEventTypePermanentBounce, + DeliveryEventTypeUndeterminedBounce, + DeliveryEventTypeComplaint, + } +} + // The location where the Amazon SES API v2 finds the value of a dimension to // publish to Amazon CloudWatch. To use the message tags that you specify using // an X-SES-MESSAGE-TAGS header or a parameter to the SendEmail or SendRawEmail @@ -24004,6 +26044,29 @@ func DkimStatus_Values() []string { } } +// The type of delivery events: +// +// - OPEN - Open event for emails including open trackers. Excludes opens +// for emails addressed to more than one recipient. +// +// - CLICK - Click event for emails including wrapped links. Excludes clicks +// for emails addressed to more than one recipient. +const ( + // EngagementEventTypeOpen is a EngagementEventType enum value + EngagementEventTypeOpen = "OPEN" + + // EngagementEventTypeClick is a EngagementEventType enum value + EngagementEventTypeClick = "CLICK" +) + +// EngagementEventType_Values returns all elements of the EngagementEventType enum +func EngagementEventType_Values() []string { + return []string{ + EngagementEventTypeOpen, + EngagementEventTypeClick, + } +} + // An email sending event type. For example, email sends, opens, and bounces // are all email events. const ( @@ -24054,6 +26117,27 @@ func EventType_Values() []string { } } +// The type of data source of an export, can be one of the following: +// +// - METRICS_DATA - The metrics export. +// +// - MESSAGE_INSIGHTS - The Message Insights export. +const ( + // ExportSourceTypeMetricsData is a ExportSourceType enum value + ExportSourceTypeMetricsData = "METRICS_DATA" + + // ExportSourceTypeMessageInsights is a ExportSourceType enum value + ExportSourceTypeMessageInsights = "MESSAGE_INSIGHTS" +) + +// ExportSourceType_Values returns all elements of the ExportSourceType enum +func ExportSourceType_Values() []string { + return []string{ + ExportSourceTypeMetricsData, + ExportSourceTypeMessageInsights, + } +} + const ( // FeatureStatusEnabled is a FeatureStatus enum value FeatureStatusEnabled = "ENABLED" @@ -24108,7 +26192,15 @@ func ImportDestinationType_Values() []string { } } -// The status of the import job. +// The status of a job. +// +// - CREATED – Job has just been created. +// +// - PROCESSING – Job is processing. +// +// - ERROR – An error occurred during processing. +// +// - COMPLETED – Job has completed processing successfully. const ( // JobStatusCreated is a JobStatus enum value JobStatusCreated = "CREATED" @@ -24121,6 +26213,9 @@ const ( // JobStatusFailed is a JobStatus enum value JobStatusFailed = "FAILED" + + // JobStatusCancelled is a JobStatus enum value + JobStatusCancelled = "CANCELLED" ) // JobStatus_Values returns all elements of the JobStatus enum @@ -24130,6 +26225,7 @@ func JobStatus_Values() []string { JobStatusProcessing, JobStatusCompleted, JobStatusFailed, + JobStatusCancelled, } } @@ -24220,6 +26316,49 @@ func MailType_Values() []string { } } +// The metric to export, can be one of the following: +// +// - SEND - Emails sent eligible for tracking in the VDM dashboard. This +// excludes emails sent to the mailbox simulator and emails addressed to +// more than one recipient. +// +// - COMPLAINT - Complaints received for your account. This excludes complaints +// from the mailbox simulator, those originating from your account-level +// suppression list (if enabled), and those for emails addressed to more +// than one recipient +// +// - PERMANENT_BOUNCE - Permanent bounces - i.e., feedback received for emails +// sent to non-existent mailboxes. Excludes bounces from the mailbox simulator, +// those originating from your account-level suppression list (if enabled), +// and those for emails addressed to more than one recipient. +// +// - TRANSIENT_BOUNCE - Transient bounces - i.e., feedback received for delivery +// failures excluding issues with non-existent mailboxes. Excludes bounces +// from the mailbox simulator, and those for emails addressed to more than +// one recipient. +// +// - OPEN - Unique open events for emails including open trackers. Excludes +// opens for emails addressed to more than one recipient. +// +// - CLICK - Unique click events for emails including wrapped links. Excludes +// clicks for emails addressed to more than one recipient. +// +// - DELIVERY - Successful deliveries for email sending attempts. Excludes +// deliveries to the mailbox simulator and for emails addressed to more than +// one recipient. +// +// - DELIVERY_OPEN - Successful deliveries for email sending attempts. Excludes +// deliveries to the mailbox simulator, for emails addressed to more than +// one recipient, and emails without open trackers. +// +// - DELIVERY_CLICK - Successful deliveries for email sending attempts. Excludes +// deliveries to the mailbox simulator, for emails addressed to more than +// one recipient, and emails without click trackers. +// +// - DELIVERY_COMPLAINT - Successful deliveries for email sending attempts. +// Excludes deliveries to the mailbox simulator, for emails addressed to +// more than one recipient, and emails addressed to recipients hosted by +// ISPs with which Amazon SES does not have a feedback loop agreement. const ( // MetricSend is a Metric enum value MetricSend = "SEND" @@ -24268,6 +26407,27 @@ func Metric_Values() []string { } } +// The aggregation to apply to a metric, can be one of the following: +// +// - VOLUME - The volume of events for this metric. +// +// - RATE - The rate for this metric relative to the SEND metric volume. +const ( + // MetricAggregationRate is a MetricAggregation enum value + MetricAggregationRate = "RATE" + + // MetricAggregationVolume is a MetricAggregation enum value + MetricAggregationVolume = "VOLUME" +) + +// MetricAggregation_Values returns all elements of the MetricAggregation enum +func MetricAggregation_Values() []string { + return []string{ + MetricAggregationRate, + MetricAggregationVolume, + } +} + // The BatchGetMetricDataQuery dimension name. This can be one of the following: // // - EMAIL_IDENTITY – The email identity used when sending messages. diff --git a/service/sesv2/examples_test.go b/service/sesv2/examples_test.go index 3b6bdbc440e..3139d25b3c4 100644 --- a/service/sesv2/examples_test.go +++ b/service/sesv2/examples_test.go @@ -25,6 +25,248 @@ func parseTime(layout, value string) *time.Time { return &t } +// Cancel export job +// Cancels the export job with ID ef28cf62-9d8e-4b60-9283-b09816c99a99 +func ExampleSESV2_CancelExportJob_shared00() { + svc := sesv2.New(session.New()) + input := &sesv2.CancelExportJobInput{ + JobId: aws.String("ef28cf62-9d8e-4b60-9283-b09816c99a99"), + } + + result, err := svc.CancelExportJob(input) + if err != nil { + if aerr, ok := err.(awserr.Error); ok { + switch aerr.Code() { + case sesv2.ErrCodeNotFoundException: + fmt.Println(sesv2.ErrCodeNotFoundException, aerr.Error()) + case sesv2.ErrCodeBadRequestException: + fmt.Println(sesv2.ErrCodeBadRequestException, aerr.Error()) + case sesv2.ErrCodeTooManyRequestsException: + fmt.Println(sesv2.ErrCodeTooManyRequestsException, aerr.Error()) + default: + fmt.Println(aerr.Error()) + } + } else { + // Print the error, cast err to awserr.Error to get the Code and + // Message from an error. + fmt.Println(err.Error()) + } + return + } + + fmt.Println(result) +} + +// Create Metrics export job +// Creates a new export job for Metrics data +func ExampleSESV2_CreateExportJob_shared00() { + svc := sesv2.New(session.New()) + input := &sesv2.CreateExportJobInput{ + ExportDataSource: &sesv2.ExportDataSource{ + MetricsDataSource: &sesv2.MetricsDataSource{ + Dimensions: map[string][]*string{ + "ISP": { + aws.String("*"), + }, + }, + EndDate: parseTime("2006-01-02T15:04:05.999999999Z", "2023-07-02T00:00:00"), + Metrics: []*sesv2.ExportMetric{ + { + Aggregation: aws.String("VOLUME"), + Name: aws.String("SEND"), + }, + { + Aggregation: aws.String("VOLUME"), + Name: aws.String("COMPLAINT"), + }, + { + Aggregation: aws.String("RATE"), + Name: aws.String("COMPLAINT"), + }, + }, + Namespace: aws.String("VDM"), + StartDate: parseTime("2006-01-02T15:04:05.999999999Z", "2023-07-01T00:00:00"), + }, + }, + ExportDestination: &sesv2.ExportDestination{ + DataFormat: aws.String("CSV"), + }, + } + + result, err := svc.CreateExportJob(input) + if err != nil { + if aerr, ok := err.(awserr.Error); ok { + switch aerr.Code() { + case sesv2.ErrCodeBadRequestException: + fmt.Println(sesv2.ErrCodeBadRequestException, aerr.Error()) + case sesv2.ErrCodeTooManyRequestsException: + fmt.Println(sesv2.ErrCodeTooManyRequestsException, aerr.Error()) + case sesv2.ErrCodeNotFoundException: + fmt.Println(sesv2.ErrCodeNotFoundException, aerr.Error()) + case sesv2.ErrCodeLimitExceededException: + fmt.Println(sesv2.ErrCodeLimitExceededException, aerr.Error()) + default: + fmt.Println(aerr.Error()) + } + } else { + // Print the error, cast err to awserr.Error to get the Code and + // Message from an error. + fmt.Println(err.Error()) + } + return + } + + fmt.Println(result) +} + +// Create Message Insights export job +// Creates a new export job for Message Insights data +func ExampleSESV2_CreateExportJob_shared01() { + svc := sesv2.New(session.New()) + input := &sesv2.CreateExportJobInput{ + ExportDataSource: &sesv2.ExportDataSource{ + MessageInsightsDataSource: &sesv2.MessageInsightsDataSource{ + EndDate: parseTime("2006-01-02T15:04:05.999999999Z", "2023-07-02T00:00:00"), + Exclude: &sesv2.MessageInsightsFilters{ + FromEmailAddress: []*string{ + aws.String("hello@example.com"), + }, + }, + Include: &sesv2.MessageInsightsFilters{ + Subject: []*string{ + aws.String("Hello"), + }, + }, + StartDate: parseTime("2006-01-02T15:04:05.999999999Z", "2023-07-01T00:00:00"), + }, + }, + ExportDestination: &sesv2.ExportDestination{ + DataFormat: aws.String("CSV"), + }, + } + + result, err := svc.CreateExportJob(input) + if err != nil { + if aerr, ok := err.(awserr.Error); ok { + switch aerr.Code() { + case sesv2.ErrCodeBadRequestException: + fmt.Println(sesv2.ErrCodeBadRequestException, aerr.Error()) + case sesv2.ErrCodeTooManyRequestsException: + fmt.Println(sesv2.ErrCodeTooManyRequestsException, aerr.Error()) + case sesv2.ErrCodeNotFoundException: + fmt.Println(sesv2.ErrCodeNotFoundException, aerr.Error()) + case sesv2.ErrCodeLimitExceededException: + fmt.Println(sesv2.ErrCodeLimitExceededException, aerr.Error()) + default: + fmt.Println(aerr.Error()) + } + } else { + // Print the error, cast err to awserr.Error to get the Code and + // Message from an error. + fmt.Println(err.Error()) + } + return + } + + fmt.Println(result) +} + +// Get export job +// Gets the export job with ID ef28cf62-9d8e-4b60-9283-b09816c99a99 +func ExampleSESV2_GetExportJob_shared00() { + svc := sesv2.New(session.New()) + input := &sesv2.GetExportJobInput{ + JobId: aws.String("ef28cf62-9d8e-4b60-9283-b09816c99a99"), + } + + result, err := svc.GetExportJob(input) + if err != nil { + if aerr, ok := err.(awserr.Error); ok { + switch aerr.Code() { + case sesv2.ErrCodeBadRequestException: + fmt.Println(sesv2.ErrCodeBadRequestException, aerr.Error()) + case sesv2.ErrCodeNotFoundException: + fmt.Println(sesv2.ErrCodeNotFoundException, aerr.Error()) + case sesv2.ErrCodeTooManyRequestsException: + fmt.Println(sesv2.ErrCodeTooManyRequestsException, aerr.Error()) + default: + fmt.Println(aerr.Error()) + } + } else { + // Print the error, cast err to awserr.Error to get the Code and + // Message from an error. + fmt.Println(err.Error()) + } + return + } + + fmt.Println(result) +} + +// Get Message Insights +// Provides information about a specific message. +func ExampleSESV2_GetMessageInsights_shared00() { + svc := sesv2.New(session.New()) + input := &sesv2.GetMessageInsightsInput{ + MessageId: aws.String("000000000000ab00-0a000aa0-1234-0a0a-1234-0a0aaa0aa00a-000000"), + } + + result, err := svc.GetMessageInsights(input) + if err != nil { + if aerr, ok := err.(awserr.Error); ok { + switch aerr.Code() { + case sesv2.ErrCodeNotFoundException: + fmt.Println(sesv2.ErrCodeNotFoundException, aerr.Error()) + case sesv2.ErrCodeTooManyRequestsException: + fmt.Println(sesv2.ErrCodeTooManyRequestsException, aerr.Error()) + case sesv2.ErrCodeBadRequestException: + fmt.Println(sesv2.ErrCodeBadRequestException, aerr.Error()) + default: + fmt.Println(aerr.Error()) + } + } else { + // Print the error, cast err to awserr.Error to get the Code and + // Message from an error. + fmt.Println(err.Error()) + } + return + } + + fmt.Println(result) +} + +// List export jobs +// Lists export jobs of type METRICS_DATA and status PROCESSING +func ExampleSESV2_ListExportJobs_shared00() { + svc := sesv2.New(session.New()) + input := &sesv2.ListExportJobsInput{ + ExportSourceType: aws.String("METRICS_DATA"), + JobStatus: aws.String("PROCESSING"), + PageSize: aws.Int64(25), + } + + result, err := svc.ListExportJobs(input) + if err != nil { + if aerr, ok := err.(awserr.Error); ok { + switch aerr.Code() { + case sesv2.ErrCodeTooManyRequestsException: + fmt.Println(sesv2.ErrCodeTooManyRequestsException, aerr.Error()) + case sesv2.ErrCodeBadRequestException: + fmt.Println(sesv2.ErrCodeBadRequestException, aerr.Error()) + default: + fmt.Println(aerr.Error()) + } + } else { + // Print the error, cast err to awserr.Error to get the Code and + // Message from an error. + fmt.Println(err.Error()) + } + return + } + + fmt.Println(result) +} + // Used to convert a dedicated IP pool to a different scaling mode. // This example converts a dedicated IP pool from STANDARD to MANAGED. func ExampleSESV2_PutDedicatedIpPoolScalingAttributes_shared00() { diff --git a/service/sesv2/sesv2iface/interface.go b/service/sesv2/sesv2iface/interface.go index c2ffa7208c5..f5346793d7d 100644 --- a/service/sesv2/sesv2iface/interface.go +++ b/service/sesv2/sesv2iface/interface.go @@ -64,6 +64,10 @@ type SESV2API interface { BatchGetMetricDataWithContext(aws.Context, *sesv2.BatchGetMetricDataInput, ...request.Option) (*sesv2.BatchGetMetricDataOutput, error) BatchGetMetricDataRequest(*sesv2.BatchGetMetricDataInput) (*request.Request, *sesv2.BatchGetMetricDataOutput) + CancelExportJob(*sesv2.CancelExportJobInput) (*sesv2.CancelExportJobOutput, error) + CancelExportJobWithContext(aws.Context, *sesv2.CancelExportJobInput, ...request.Option) (*sesv2.CancelExportJobOutput, error) + CancelExportJobRequest(*sesv2.CancelExportJobInput) (*request.Request, *sesv2.CancelExportJobOutput) + CreateConfigurationSet(*sesv2.CreateConfigurationSetInput) (*sesv2.CreateConfigurationSetOutput, error) CreateConfigurationSetWithContext(aws.Context, *sesv2.CreateConfigurationSetInput, ...request.Option) (*sesv2.CreateConfigurationSetOutput, error) CreateConfigurationSetRequest(*sesv2.CreateConfigurationSetInput) (*request.Request, *sesv2.CreateConfigurationSetOutput) @@ -104,6 +108,10 @@ type SESV2API interface { CreateEmailTemplateWithContext(aws.Context, *sesv2.CreateEmailTemplateInput, ...request.Option) (*sesv2.CreateEmailTemplateOutput, error) CreateEmailTemplateRequest(*sesv2.CreateEmailTemplateInput) (*request.Request, *sesv2.CreateEmailTemplateOutput) + CreateExportJob(*sesv2.CreateExportJobInput) (*sesv2.CreateExportJobOutput, error) + CreateExportJobWithContext(aws.Context, *sesv2.CreateExportJobInput, ...request.Option) (*sesv2.CreateExportJobOutput, error) + CreateExportJobRequest(*sesv2.CreateExportJobInput) (*request.Request, *sesv2.CreateExportJobOutput) + CreateImportJob(*sesv2.CreateImportJobInput) (*sesv2.CreateImportJobOutput, error) CreateImportJobWithContext(aws.Context, *sesv2.CreateImportJobInput, ...request.Option) (*sesv2.CreateImportJobOutput, error) CreateImportJobRequest(*sesv2.CreateImportJobInput) (*request.Request, *sesv2.CreateImportJobOutput) @@ -219,10 +227,18 @@ type SESV2API interface { GetEmailTemplateWithContext(aws.Context, *sesv2.GetEmailTemplateInput, ...request.Option) (*sesv2.GetEmailTemplateOutput, error) GetEmailTemplateRequest(*sesv2.GetEmailTemplateInput) (*request.Request, *sesv2.GetEmailTemplateOutput) + GetExportJob(*sesv2.GetExportJobInput) (*sesv2.GetExportJobOutput, error) + GetExportJobWithContext(aws.Context, *sesv2.GetExportJobInput, ...request.Option) (*sesv2.GetExportJobOutput, error) + GetExportJobRequest(*sesv2.GetExportJobInput) (*request.Request, *sesv2.GetExportJobOutput) + GetImportJob(*sesv2.GetImportJobInput) (*sesv2.GetImportJobOutput, error) GetImportJobWithContext(aws.Context, *sesv2.GetImportJobInput, ...request.Option) (*sesv2.GetImportJobOutput, error) GetImportJobRequest(*sesv2.GetImportJobInput) (*request.Request, *sesv2.GetImportJobOutput) + GetMessageInsights(*sesv2.GetMessageInsightsInput) (*sesv2.GetMessageInsightsOutput, error) + GetMessageInsightsWithContext(aws.Context, *sesv2.GetMessageInsightsInput, ...request.Option) (*sesv2.GetMessageInsightsOutput, error) + GetMessageInsightsRequest(*sesv2.GetMessageInsightsInput) (*request.Request, *sesv2.GetMessageInsightsOutput) + GetSuppressedDestination(*sesv2.GetSuppressedDestinationInput) (*sesv2.GetSuppressedDestinationOutput, error) GetSuppressedDestinationWithContext(aws.Context, *sesv2.GetSuppressedDestinationInput, ...request.Option) (*sesv2.GetSuppressedDestinationOutput, error) GetSuppressedDestinationRequest(*sesv2.GetSuppressedDestinationInput) (*request.Request, *sesv2.GetSuppressedDestinationOutput) @@ -290,6 +306,13 @@ type SESV2API interface { ListEmailTemplatesPages(*sesv2.ListEmailTemplatesInput, func(*sesv2.ListEmailTemplatesOutput, bool) bool) error ListEmailTemplatesPagesWithContext(aws.Context, *sesv2.ListEmailTemplatesInput, func(*sesv2.ListEmailTemplatesOutput, bool) bool, ...request.Option) error + ListExportJobs(*sesv2.ListExportJobsInput) (*sesv2.ListExportJobsOutput, error) + ListExportJobsWithContext(aws.Context, *sesv2.ListExportJobsInput, ...request.Option) (*sesv2.ListExportJobsOutput, error) + ListExportJobsRequest(*sesv2.ListExportJobsInput) (*request.Request, *sesv2.ListExportJobsOutput) + + ListExportJobsPages(*sesv2.ListExportJobsInput, func(*sesv2.ListExportJobsOutput, bool) bool) error + ListExportJobsPagesWithContext(aws.Context, *sesv2.ListExportJobsInput, func(*sesv2.ListExportJobsOutput, bool) bool, ...request.Option) error + ListImportJobs(*sesv2.ListImportJobsInput) (*sesv2.ListImportJobsOutput, error) ListImportJobsWithContext(aws.Context, *sesv2.ListImportJobsInput, ...request.Option) (*sesv2.ListImportJobsOutput, error) ListImportJobsRequest(*sesv2.ListImportJobsInput) (*request.Request, *sesv2.ListImportJobsOutput)