diff --git a/Package.swift b/Package.swift index ee7ecc3c9e6..bc6fd908e2e 100644 --- a/Package.swift +++ b/Package.swift @@ -255,7 +255,7 @@ func addResolvedTargets() { // MARK: - Generated addDependencies( - clientRuntimeVersion: "0.67.0", + clientRuntimeVersion: "0.68.0", crtVersion: "0.33.0" ) diff --git a/Package.version b/Package.version index eff74dbb050..8da33bcf2b9 100644 --- a/Package.version +++ b/Package.version @@ -1 +1 @@ -0.76.1 \ No newline at end of file +0.76.2 \ No newline at end of file diff --git a/Package.version.next b/Package.version.next index 8da33bcf2b9..12928e0302a 100644 --- a/Package.version.next +++ b/Package.version.next @@ -1 +1 @@ -0.76.2 \ No newline at end of file +0.76.3 \ No newline at end of file diff --git a/Sources/Services/AWSCognitoIdentityProvider/Sources/AWSCognitoIdentityProvider/CognitoIdentityProviderClient.swift b/Sources/Services/AWSCognitoIdentityProvider/Sources/AWSCognitoIdentityProvider/CognitoIdentityProviderClient.swift index 7fce1ca6b7c..d75114caf71 100644 --- a/Sources/Services/AWSCognitoIdentityProvider/Sources/AWSCognitoIdentityProvider/CognitoIdentityProviderClient.swift +++ b/Sources/Services/AWSCognitoIdentityProvider/Sources/AWSCognitoIdentityProvider/CognitoIdentityProviderClient.swift @@ -435,7 +435,7 @@ extension CognitoIdentityProviderClient { /// Performs the `AdminCreateUser` operation on the `AWSCognitoIdentityProviderService` service. /// - /// Creates a new user in the specified user pool. If MessageAction isn't set, the default is to send a welcome message via email or phone (SMS). 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](https://console.aws.amazon.com/pinpoint/home/). 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 Services service, Amazon Simple Notification Service might place your account in the SMS sandbox. In [sandbox mode](https://docs.aws.amazon.com/sns/latest/dg/sns-sms-sandbox.html) , 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](https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-sms-settings.html) in the Amazon Cognito Developer Guide. This message is based on a template that you configured in your call to create or update a user pool. This template includes your custom sign-up instructions and placeholders for user name and temporary password. Alternatively, you can call AdminCreateUser with SUPPRESS for the MessageAction parameter, and Amazon Cognito won't send any email. In either case, the user will be in the FORCE_CHANGE_PASSWORD state until they sign in and change their password. 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 + /// Creates a new user in the specified user pool. If MessageAction isn't set, the default is to send a welcome message via email or phone (SMS). 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](https://console.aws.amazon.com/pinpoint/home/). 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 Servicesservice, Amazon Simple Notification Service might place your account in the SMS sandbox. In [sandbox mode](https://docs.aws.amazon.com/sns/latest/dg/sns-sms-sandbox.html) , 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](https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-sms-settings.html) in the Amazon Cognito Developer Guide. This message is based on a template that you configured in your call to create or update a user pool. This template includes your custom sign-up instructions and placeholders for user name and temporary password. Alternatively, you can call AdminCreateUser with SUPPRESS for the MessageAction parameter, and Amazon Cognito won't send any email. In either case, the user will be in the FORCE_CHANGE_PASSWORD state until they sign in and change their password. 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 /// /// * [Signing Amazon Web Services API Requests](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-signing.html) /// @@ -1158,7 +1158,7 @@ extension CognitoIdentityProviderClient { /// Performs the `AdminInitiateAuth` operation on the `AWSCognitoIdentityProviderService` service. /// - /// Initiates the authentication flow, as an administrator. 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](https://console.aws.amazon.com/pinpoint/home/). 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 Services service, Amazon Simple Notification Service might place your account in the SMS sandbox. In [sandbox mode](https://docs.aws.amazon.com/sns/latest/dg/sns-sms-sandbox.html) , 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](https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-sms-settings.html) in the Amazon Cognito Developer Guide. 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 + /// Initiates the authentication flow, as an administrator. 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](https://console.aws.amazon.com/pinpoint/home/). 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 Servicesservice, Amazon Simple Notification Service might place your account in the SMS sandbox. In [sandbox mode](https://docs.aws.amazon.com/sns/latest/dg/sns-sms-sandbox.html) , 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](https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-sms-settings.html) in the Amazon Cognito Developer Guide. 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 /// /// * [Signing Amazon Web Services API Requests](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-signing.html) /// @@ -1172,6 +1172,7 @@ extension CognitoIdentityProviderClient { /// /// __Possible Exceptions:__ /// - `InternalErrorException` : This exception is thrown when Amazon Cognito encounters an internal error. + /// - `InvalidEmailRoleAccessPolicyException` : This exception is thrown when Amazon Cognito isn't allowed to use your email identity. HTTP status code: 400. /// - `InvalidLambdaResponseException` : This exception is thrown when Amazon Cognito encounters an invalid Lambda response. /// - `InvalidParameterException` : This exception is thrown when the Amazon Cognito service encounters an invalid parameter. /// - `InvalidSmsRoleAccessPolicyException` : This exception is returned when the role provided for SMS configuration doesn't have permission to publish using Amazon SNS. @@ -1644,7 +1645,7 @@ extension CognitoIdentityProviderClient { /// Performs the `AdminResetUserPassword` operation on the `AWSCognitoIdentityProviderService` service. /// - /// Resets the specified user's password in a user pool as an administrator. Works on any user. To use this API operation, your user pool must have self-service account recovery configured. Use [AdminSetUserPassword](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminSetUserPassword.html) if you manage passwords as an administrator. 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](https://console.aws.amazon.com/pinpoint/home/). 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 Services service, Amazon Simple Notification Service might place your account in the SMS sandbox. In [sandbox mode](https://docs.aws.amazon.com/sns/latest/dg/sns-sms-sandbox.html) , 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](https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-sms-settings.html) in the Amazon Cognito Developer Guide. Deactivates a user's password, requiring them to change it. If a user tries to sign in after the API is called, Amazon Cognito responds with a PasswordResetRequiredException error. Your app must then perform the actions that reset your user's password: the forgot-password flow. In addition, if the user pool has phone verification selected and a verified phone number exists for the user, or if email verification is selected and a verified email exists for the user, calling this API will also result in sending a message to the end user with the code to change their password. 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 + /// Resets the specified user's password in a user pool as an administrator. Works on any user. To use this API operation, your user pool must have self-service account recovery configured. Use [AdminSetUserPassword](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminSetUserPassword.html) if you manage passwords as an administrator. 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](https://console.aws.amazon.com/pinpoint/home/). 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 Servicesservice, Amazon Simple Notification Service might place your account in the SMS sandbox. In [sandbox mode](https://docs.aws.amazon.com/sns/latest/dg/sns-sms-sandbox.html) , 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](https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-sms-settings.html) in the Amazon Cognito Developer Guide. Deactivates a user's password, requiring them to change it. If a user tries to sign in after the API is called, Amazon Cognito responds with a PasswordResetRequiredException error. Your app must then perform the actions that reset your user's password: the forgot-password flow. In addition, if the user pool has phone verification selected and a verified phone number exists for the user, or if email verification is selected and a verified email exists for the user, calling this API will also result in sending a message to the end user with the code to change their password. 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 /// /// * [Signing Amazon Web Services API Requests](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-signing.html) /// @@ -1730,7 +1731,7 @@ extension CognitoIdentityProviderClient { /// Performs the `AdminRespondToAuthChallenge` operation on the `AWSCognitoIdentityProviderService` service. /// - /// Some API operations in a user pool generate a challenge, like a prompt for an MFA code, for device authentication that bypasses MFA, or for a custom authentication challenge. An AdminRespondToAuthChallenge API request provides the answer to that challenge, like a code or a secure remote password (SRP). The parameters of a response to an authentication challenge vary with the type of challenge. For more information about custom authentication challenges, see [Custom authentication challenge Lambda triggers](https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-lambda-challenge.html). 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](https://console.aws.amazon.com/pinpoint/home/). 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 Services service, Amazon Simple Notification Service might place your account in the SMS sandbox. In [sandbox mode](https://docs.aws.amazon.com/sns/latest/dg/sns-sms-sandbox.html) , 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](https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-sms-settings.html) in the Amazon Cognito Developer Guide. 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 + /// Some API operations in a user pool generate a challenge, like a prompt for an MFA code, for device authentication that bypasses MFA, or for a custom authentication challenge. An AdminRespondToAuthChallenge API request provides the answer to that challenge, like a code or a secure remote password (SRP). The parameters of a response to an authentication challenge vary with the type of challenge. For more information about custom authentication challenges, see [Custom authentication challenge Lambda triggers](https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-lambda-challenge.html). 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](https://console.aws.amazon.com/pinpoint/home/). 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 Servicesservice, Amazon Simple Notification Service might place your account in the SMS sandbox. In [sandbox mode](https://docs.aws.amazon.com/sns/latest/dg/sns-sms-sandbox.html) , 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](https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-sms-settings.html) in the Amazon Cognito Developer Guide. 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 /// /// * [Signing Amazon Web Services API Requests](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-signing.html) /// @@ -1747,6 +1748,7 @@ extension CognitoIdentityProviderClient { /// - `CodeMismatchException` : This exception is thrown if the provided code doesn't match what the server was expecting. /// - `ExpiredCodeException` : This exception is thrown if a code has expired. /// - `InternalErrorException` : This exception is thrown when Amazon Cognito encounters an internal error. + /// - `InvalidEmailRoleAccessPolicyException` : This exception is thrown when Amazon Cognito isn't allowed to use your email identity. HTTP status code: 400. /// - `InvalidLambdaResponseException` : This exception is thrown when Amazon Cognito encounters an invalid Lambda response. /// - `InvalidParameterException` : This exception is thrown when the Amazon Cognito service encounters an invalid parameter. /// - `InvalidPasswordException` : This exception is thrown when Amazon Cognito encounters an invalid password. @@ -1824,7 +1826,7 @@ extension CognitoIdentityProviderClient { /// Performs the `AdminSetUserMFAPreference` operation on the `AWSCognitoIdentityProviderService` service. /// - /// The user's multi-factor authentication (MFA) preference, including which MFA options are activated, and if any are preferred. Only one factor can be set as preferred. The preferred MFA factor will be used to authenticate a user if multiple factors are activated. If multiple options are activated and no preference is set, a challenge to choose an MFA option will be returned during sign-in. 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 + /// Sets the user's multi-factor authentication (MFA) preference, including which MFA options are activated, and if any are preferred. Only one factor can be set as preferred. The preferred MFA factor will be used to authenticate a user if multiple factors are activated. If multiple options are activated and no preference is set, a challenge to choose an MFA option will be returned during sign-in. 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 /// /// * [Signing Amazon Web Services API Requests](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-signing.html) /// @@ -2223,7 +2225,7 @@ extension CognitoIdentityProviderClient { /// Performs the `AdminUpdateUserAttributes` operation on the `AWSCognitoIdentityProviderService` service. /// - /// 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](https://console.aws.amazon.com/pinpoint/home/). 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 Services service, Amazon Simple Notification Service might place your account in the SMS sandbox. In [sandbox mode](https://docs.aws.amazon.com/sns/latest/dg/sns-sms-sandbox.html) , 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](https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-sms-settings.html) 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 + /// 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](https://console.aws.amazon.com/pinpoint/home/). 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 Servicesservice, Amazon Simple Notification Service might place your account in the SMS sandbox. In [sandbox mode](https://docs.aws.amazon.com/sns/latest/dg/sns-sms-sandbox.html) , 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](https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-sms-settings.html) 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 /// /// * [Signing Amazon Web Services API Requests](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-signing.html) /// @@ -3115,7 +3117,7 @@ extension CognitoIdentityProviderClient { /// Performs the `CreateUserPool` operation on the `AWSCognitoIdentityProviderService` service. /// - /// 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](https://console.aws.amazon.com/pinpoint/home/). 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 Services service, Amazon Simple Notification Service might place your account in the SMS sandbox. In [sandbox mode](https://docs.aws.amazon.com/sns/latest/dg/sns-sms-sandbox.html) , 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](https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-sms-settings.html) in the Amazon Cognito Developer Guide. Creates a new Amazon Cognito user pool and sets the password policy for the pool. If you don't provide a value for an attribute, Amazon Cognito sets it to its default value. 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 + /// 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](https://console.aws.amazon.com/pinpoint/home/). 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 Servicesservice, Amazon Simple Notification Service might place your account in the SMS sandbox. In [sandbox mode](https://docs.aws.amazon.com/sns/latest/dg/sns-sms-sandbox.html) , 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](https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-sms-settings.html) in the Amazon Cognito Developer Guide. Creates a new Amazon Cognito user pool and sets the password policy for the pool. If you don't provide a value for an attribute, Amazon Cognito sets it to its default value. 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 /// /// * [Signing Amazon Web Services API Requests](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-signing.html) /// @@ -4559,7 +4561,7 @@ extension CognitoIdentityProviderClient { /// Performs the `ForgotPassword` operation on the `AWSCognitoIdentityProviderService` service. /// - /// Calling this API causes a message to be sent to the end user with a confirmation code that is required to change the user's password. For the Username parameter, you can use the username or user alias. The method used to send the confirmation code is sent according to the specified AccountRecoverySetting. For more information, see [Recovering User Accounts](https://docs.aws.amazon.com/cognito/latest/developerguide/how-to-recover-a-user-account.html) in the Amazon Cognito Developer Guide. To use the confirmation code for resetting the password, call [ConfirmForgotPassword](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_ConfirmForgotPassword.html). If neither a verified phone number nor a verified email exists, this API returns InvalidParameterException. If your app client has a client secret and you don't provide a SECRET_HASH parameter, this API returns NotAuthorizedException. To use this API operation, your user pool must have self-service account recovery configured. Use [AdminSetUserPassword](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminSetUserPassword.html) if you manage passwords as an administrator. 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 user pools API and user pool endpoints](https://docs.aws.amazon.com/cognito/latest/developerguide/user-pools-API-operations.html). 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](https://console.aws.amazon.com/pinpoint/home/). 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 Services service, Amazon Simple Notification Service might place your account in the SMS sandbox. In [sandbox mode](https://docs.aws.amazon.com/sns/latest/dg/sns-sms-sandbox.html) , 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](https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-sms-settings.html) in the Amazon Cognito Developer Guide. + /// Calling this API causes a message to be sent to the end user with a confirmation code that is required to change the user's password. For the Username parameter, you can use the username or user alias. The method used to send the confirmation code is sent according to the specified AccountRecoverySetting. For more information, see [Recovering User Accounts](https://docs.aws.amazon.com/cognito/latest/developerguide/how-to-recover-a-user-account.html) in the Amazon Cognito Developer Guide. To use the confirmation code for resetting the password, call [ConfirmForgotPassword](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_ConfirmForgotPassword.html). If neither a verified phone number nor a verified email exists, this API returns InvalidParameterException. If your app client has a client secret and you don't provide a SECRET_HASH parameter, this API returns NotAuthorizedException. To use this API operation, your user pool must have self-service account recovery configured. Use [AdminSetUserPassword](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminSetUserPassword.html) if you manage passwords as an administrator. 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 user pools API and user pool endpoints](https://docs.aws.amazon.com/cognito/latest/developerguide/user-pools-API-operations.html). 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](https://console.aws.amazon.com/pinpoint/home/). 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 Servicesservice, Amazon Simple Notification Service might place your account in the SMS sandbox. In [sandbox mode](https://docs.aws.amazon.com/sns/latest/dg/sns-sms-sandbox.html) , 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](https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-sms-settings.html) in the Amazon Cognito Developer Guide. /// /// - Parameter ForgotPasswordInput : Represents the request to reset a user's password. /// @@ -5236,7 +5238,7 @@ extension CognitoIdentityProviderClient { /// Performs the `GetUserAttributeVerificationCode` operation on the `AWSCognitoIdentityProviderService` service. /// - /// Generates a user attribute verification code for the specified attribute name. Sends a message to a user with a code that they must return in a VerifyUserAttribute request. Authorize this action with a signed-in user's access token. It must include the scope aws.cognito.signin.user.admin. 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 user pools API and user pool endpoints](https://docs.aws.amazon.com/cognito/latest/developerguide/user-pools-API-operations.html). 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](https://console.aws.amazon.com/pinpoint/home/). 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 Services service, Amazon Simple Notification Service might place your account in the SMS sandbox. In [sandbox mode](https://docs.aws.amazon.com/sns/latest/dg/sns-sms-sandbox.html) , 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](https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-sms-settings.html) in the Amazon Cognito Developer Guide. + /// Generates a user attribute verification code for the specified attribute name. Sends a message to a user with a code that they must return in a VerifyUserAttribute request. Authorize this action with a signed-in user's access token. It must include the scope aws.cognito.signin.user.admin. 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 user pools API and user pool endpoints](https://docs.aws.amazon.com/cognito/latest/developerguide/user-pools-API-operations.html). 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](https://console.aws.amazon.com/pinpoint/home/). 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 Servicesservice, Amazon Simple Notification Service might place your account in the SMS sandbox. In [sandbox mode](https://docs.aws.amazon.com/sns/latest/dg/sns-sms-sandbox.html) , 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](https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-sms-settings.html) in the Amazon Cognito Developer Guide. /// /// - Parameter GetUserAttributeVerificationCodeInput : Represents the request to get user attribute verification. /// @@ -5478,7 +5480,7 @@ extension CognitoIdentityProviderClient { /// Performs the `InitiateAuth` operation on the `AWSCognitoIdentityProviderService` service. /// - /// Initiates sign-in for a user in the Amazon Cognito user directory. You can't sign in a user with a federated IdP with InitiateAuth. For more information, see [ Adding user pool sign-in through a third party](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pools-identity-federation.html). 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 user pools API and user pool endpoints](https://docs.aws.amazon.com/cognito/latest/developerguide/user-pools-API-operations.html). 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](https://console.aws.amazon.com/pinpoint/home/). 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 Services service, Amazon Simple Notification Service might place your account in the SMS sandbox. In [sandbox mode](https://docs.aws.amazon.com/sns/latest/dg/sns-sms-sandbox.html) , 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](https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-sms-settings.html) in the Amazon Cognito Developer Guide. + /// Initiates sign-in for a user in the Amazon Cognito user directory. You can't sign in a user with a federated IdP with InitiateAuth. For more information, see [ Adding user pool sign-in through a third party](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pools-identity-federation.html). 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 user pools API and user pool endpoints](https://docs.aws.amazon.com/cognito/latest/developerguide/user-pools-API-operations.html). 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](https://console.aws.amazon.com/pinpoint/home/). 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 Servicesservice, Amazon Simple Notification Service might place your account in the SMS sandbox. In [sandbox mode](https://docs.aws.amazon.com/sns/latest/dg/sns-sms-sandbox.html) , 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](https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-sms-settings.html) in the Amazon Cognito Developer Guide. /// /// - Parameter InitiateAuthInput : Initiates the authentication request. /// @@ -5489,6 +5491,7 @@ extension CognitoIdentityProviderClient { /// __Possible Exceptions:__ /// - `ForbiddenException` : This exception is thrown when WAF doesn't allow your request based on a web ACL that's associated with your user pool. /// - `InternalErrorException` : This exception is thrown when Amazon Cognito encounters an internal error. + /// - `InvalidEmailRoleAccessPolicyException` : This exception is thrown when Amazon Cognito isn't allowed to use your email identity. HTTP status code: 400. /// - `InvalidLambdaResponseException` : This exception is thrown when Amazon Cognito encounters an invalid Lambda response. /// - `InvalidParameterException` : This exception is thrown when the Amazon Cognito service encounters an invalid parameter. /// - `InvalidSmsRoleAccessPolicyException` : This exception is returned when the role provided for SMS configuration doesn't have permission to publish using Amazon SNS. @@ -6334,7 +6337,7 @@ extension CognitoIdentityProviderClient { /// Performs the `ResendConfirmationCode` operation on the `AWSCognitoIdentityProviderService` service. /// - /// Resends the confirmation (for confirmation of registration) to a specific user in the 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 user pools API and user pool endpoints](https://docs.aws.amazon.com/cognito/latest/developerguide/user-pools-API-operations.html). 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](https://console.aws.amazon.com/pinpoint/home/). 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 Services service, Amazon Simple Notification Service might place your account in the SMS sandbox. In [sandbox mode](https://docs.aws.amazon.com/sns/latest/dg/sns-sms-sandbox.html) , 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](https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-sms-settings.html) in the Amazon Cognito Developer Guide. + /// Resends the confirmation (for confirmation of registration) to a specific user in the 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 user pools API and user pool endpoints](https://docs.aws.amazon.com/cognito/latest/developerguide/user-pools-API-operations.html). 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](https://console.aws.amazon.com/pinpoint/home/). 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 Servicesservice, Amazon Simple Notification Service might place your account in the SMS sandbox. In [sandbox mode](https://docs.aws.amazon.com/sns/latest/dg/sns-sms-sandbox.html) , 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](https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-sms-settings.html) in the Amazon Cognito Developer Guide. /// /// - Parameter ResendConfirmationCodeInput : Represents the request to resend the confirmation code. /// @@ -6416,7 +6419,7 @@ extension CognitoIdentityProviderClient { /// Performs the `RespondToAuthChallenge` operation on the `AWSCognitoIdentityProviderService` service. /// - /// Some API operations in a user pool generate a challenge, like a prompt for an MFA code, for device authentication that bypasses MFA, or for a custom authentication challenge. A RespondToAuthChallenge API request provides the answer to that challenge, like a code or a secure remote password (SRP). The parameters of a response to an authentication challenge vary with the type of challenge. For more information about custom authentication challenges, see [Custom authentication challenge Lambda triggers](https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-lambda-challenge.html). 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 user pools API and user pool endpoints](https://docs.aws.amazon.com/cognito/latest/developerguide/user-pools-API-operations.html). 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](https://console.aws.amazon.com/pinpoint/home/). 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 Services service, Amazon Simple Notification Service might place your account in the SMS sandbox. In [sandbox mode](https://docs.aws.amazon.com/sns/latest/dg/sns-sms-sandbox.html) , 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](https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-sms-settings.html) in the Amazon Cognito Developer Guide. + /// Some API operations in a user pool generate a challenge, like a prompt for an MFA code, for device authentication that bypasses MFA, or for a custom authentication challenge. A RespondToAuthChallenge API request provides the answer to that challenge, like a code or a secure remote password (SRP). The parameters of a response to an authentication challenge vary with the type of challenge. For more information about custom authentication challenges, see [Custom authentication challenge Lambda triggers](https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-lambda-challenge.html). 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 user pools API and user pool endpoints](https://docs.aws.amazon.com/cognito/latest/developerguide/user-pools-API-operations.html). 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](https://console.aws.amazon.com/pinpoint/home/). 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 Servicesservice, Amazon Simple Notification Service might place your account in the SMS sandbox. In [sandbox mode](https://docs.aws.amazon.com/sns/latest/dg/sns-sms-sandbox.html) , 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](https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-sms-settings.html) in the Amazon Cognito Developer Guide. /// /// - Parameter RespondToAuthChallengeInput : The request to respond to an authentication challenge. /// @@ -6430,6 +6433,7 @@ extension CognitoIdentityProviderClient { /// - `ExpiredCodeException` : This exception is thrown if a code has expired. /// - `ForbiddenException` : This exception is thrown when WAF doesn't allow your request based on a web ACL that's associated with your user pool. /// - `InternalErrorException` : This exception is thrown when Amazon Cognito encounters an internal error. + /// - `InvalidEmailRoleAccessPolicyException` : This exception is thrown when Amazon Cognito isn't allowed to use your email identity. HTTP status code: 400. /// - `InvalidLambdaResponseException` : This exception is thrown when Amazon Cognito encounters an invalid Lambda response. /// - `InvalidParameterException` : This exception is thrown when the Amazon Cognito service encounters an invalid parameter. /// - `InvalidPasswordException` : This exception is thrown when Amazon Cognito encounters an invalid password. @@ -6879,7 +6883,7 @@ extension CognitoIdentityProviderClient { /// Performs the `SetUserPoolMfaConfig` operation on the `AWSCognitoIdentityProviderService` service. /// - /// Sets the user pool multi-factor authentication (MFA) configuration. 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](https://console.aws.amazon.com/pinpoint/home/). 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 Services service, Amazon Simple Notification Service might place your account in the SMS sandbox. In [sandbox mode](https://docs.aws.amazon.com/sns/latest/dg/sns-sms-sandbox.html) , 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](https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-sms-settings.html) in the Amazon Cognito Developer Guide. + /// Sets the user pool multi-factor authentication (MFA) configuration. 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](https://console.aws.amazon.com/pinpoint/home/). 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 Servicesservice, Amazon Simple Notification Service might place your account in the SMS sandbox. In [sandbox mode](https://docs.aws.amazon.com/sns/latest/dg/sns-sms-sandbox.html) , 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](https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-sms-settings.html) in the Amazon Cognito Developer Guide. /// /// - Parameter SetUserPoolMfaConfigInput : [no documentation found] /// @@ -7031,7 +7035,7 @@ extension CognitoIdentityProviderClient { /// Performs the `SignUp` operation on the `AWSCognitoIdentityProviderService` service. /// - /// Registers the user in the specified user pool and creates a user name, password, and user attributes. 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 user pools API and user pool endpoints](https://docs.aws.amazon.com/cognito/latest/developerguide/user-pools-API-operations.html). 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](https://console.aws.amazon.com/pinpoint/home/). 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 Services service, Amazon Simple Notification Service might place your account in the SMS sandbox. In [sandbox mode](https://docs.aws.amazon.com/sns/latest/dg/sns-sms-sandbox.html) , 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](https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-sms-settings.html) in the Amazon Cognito Developer Guide. + /// Registers the user in the specified user pool and creates a user name, password, and user attributes. 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 user pools API and user pool endpoints](https://docs.aws.amazon.com/cognito/latest/developerguide/user-pools-API-operations.html). 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](https://console.aws.amazon.com/pinpoint/home/). 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 Servicesservice, Amazon Simple Notification Service might place your account in the SMS sandbox. In [sandbox mode](https://docs.aws.amazon.com/sns/latest/dg/sns-sms-sandbox.html) , 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](https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-sms-settings.html) in the Amazon Cognito Developer Guide. /// /// - Parameter SignUpInput : Represents the request to register a user. /// @@ -7799,7 +7803,7 @@ extension CognitoIdentityProviderClient { /// Performs the `UpdateUserAttributes` operation on the `AWSCognitoIdentityProviderService` service. /// - /// With this operation, your users can update one or more of their attributes with their own credentials. You authorize this API request with the user's access token. To delete an attribute from your user, submit the attribute in your API request with a blank value. Custom attribute values in this request must include the custom: prefix. Authorize this action with a signed-in user's access token. It must include the scope aws.cognito.signin.user.admin. 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 user pools API and user pool endpoints](https://docs.aws.amazon.com/cognito/latest/developerguide/user-pools-API-operations.html). 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](https://console.aws.amazon.com/pinpoint/home/). 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 Services service, Amazon Simple Notification Service might place your account in the SMS sandbox. In [sandbox mode](https://docs.aws.amazon.com/sns/latest/dg/sns-sms-sandbox.html) , 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](https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-sms-settings.html) in the Amazon Cognito Developer Guide. + /// With this operation, your users can update one or more of their attributes with their own credentials. You authorize this API request with the user's access token. To delete an attribute from your user, submit the attribute in your API request with a blank value. Custom attribute values in this request must include the custom: prefix. Authorize this action with a signed-in user's access token. It must include the scope aws.cognito.signin.user.admin. 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 user pools API and user pool endpoints](https://docs.aws.amazon.com/cognito/latest/developerguide/user-pools-API-operations.html). 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](https://console.aws.amazon.com/pinpoint/home/). 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 Servicesservice, Amazon Simple Notification Service might place your account in the SMS sandbox. In [sandbox mode](https://docs.aws.amazon.com/sns/latest/dg/sns-sms-sandbox.html) , 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](https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-sms-settings.html) in the Amazon Cognito Developer Guide. /// /// - Parameter UpdateUserAttributesInput : Represents the request to update user attributes. /// @@ -7885,7 +7889,7 @@ extension CognitoIdentityProviderClient { /// Performs the `UpdateUserPool` operation on the `AWSCognitoIdentityProviderService` service. /// - /// 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](https://console.aws.amazon.com/pinpoint/home/). 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 Services service, Amazon Simple Notification Service might place your account in the SMS sandbox. In [sandbox mode](https://docs.aws.amazon.com/sns/latest/dg/sns-sms-sandbox.html) , 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](https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-sms-settings.html) in the Amazon Cognito Developer Guide. Updates the specified user pool with the specified attributes. You can get a list of the current user pool settings using [DescribeUserPool](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_DescribeUserPool.html). If you don't provide a value for an attribute, Amazon Cognito sets it to its default value. 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 + /// 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](https://console.aws.amazon.com/pinpoint/home/). 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 Servicesservice, Amazon Simple Notification Service might place your account in the SMS sandbox. In [sandbox mode](https://docs.aws.amazon.com/sns/latest/dg/sns-sms-sandbox.html) , 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](https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-sms-settings.html) in the Amazon Cognito Developer Guide. Updates the specified user pool with the specified attributes. You can get a list of the current user pool settings using [DescribeUserPool](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_DescribeUserPool.html). If you don't provide a value for an attribute, Amazon Cognito sets it to its default value. 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 /// /// * [Signing Amazon Web Services API Requests](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-signing.html) /// diff --git a/Sources/Services/AWSCognitoIdentityProvider/Sources/AWSCognitoIdentityProvider/Models.swift b/Sources/Services/AWSCognitoIdentityProvider/Sources/AWSCognitoIdentityProvider/Models.swift index 8d52885f2e3..026a177e529 100644 --- a/Sources/Services/AWSCognitoIdentityProvider/Sources/AWSCognitoIdentityProvider/Models.swift +++ b/Sources/Services/AWSCognitoIdentityProvider/Sources/AWSCognitoIdentityProvider/Models.swift @@ -1702,7 +1702,7 @@ public struct AdminGetUserOutput { public var userCreateDate: Foundation.Date? /// The date and time when the item was modified. Amazon Cognito returns this timestamp in UNIX epoch time format. Your SDK might render the output in a human-readable format like ISO 8601 or a Java Date object. public var userLastModifiedDate: Foundation.Date? - /// The MFA options that are activated for the user. The possible values in this list are SMS_MFA and SOFTWARE_TOKEN_MFA. + /// The MFA options that are activated for the user. The possible values in this list are SMS_MFA, EMAIL_OTP, and SOFTWARE_TOKEN_MFA. public var userMFASettingList: [Swift.String]? /// The user status. Can be one of the following: /// @@ -1749,6 +1749,31 @@ extension AdminGetUserOutput: Swift.CustomDebugStringConvertible { "AdminGetUserOutput(enabled: \(Swift.String(describing: enabled)), mfaOptions: \(Swift.String(describing: mfaOptions)), preferredMfaSetting: \(Swift.String(describing: preferredMfaSetting)), userAttributes: \(Swift.String(describing: userAttributes)), userCreateDate: \(Swift.String(describing: userCreateDate)), userLastModifiedDate: \(Swift.String(describing: userLastModifiedDate)), userMFASettingList: \(Swift.String(describing: userMFASettingList)), userStatus: \(Swift.String(describing: userStatus)), username: \"CONTENT_REDACTED\")"} } +/// This exception is thrown when Amazon Cognito isn't allowed to use your email identity. HTTP status code: 400. +public struct InvalidEmailRoleAccessPolicyException: ClientRuntime.ModeledError, AWSClientRuntime.AWSServiceError, ClientRuntime.HTTPError, Swift.Error { + + public struct Properties { + /// The message returned when you have an unverified email address or the identity policy isn't set on an email address that Amazon Cognito can access. + public internal(set) var message: Swift.String? = nil + } + + public internal(set) var properties = Properties() + public static var typeName: Swift.String { "InvalidEmailRoleAccessPolicyException" } + public static var fault: ClientRuntime.ErrorFault { .client } + public static var isRetryable: Swift.Bool { false } + public static var isThrottling: Swift.Bool { false } + public internal(set) var httpResponse = SmithyHTTPAPI.HTTPResponse() + public internal(set) var message: Swift.String? + public internal(set) var requestID: Swift.String? + + public init( + message: Swift.String? = nil + ) + { + self.properties.message = message + } +} + /// This exception is thrown when Amazon Cognito can't find a multi-factor authentication (MFA) method. public struct MFAMethodNotFoundException: ClientRuntime.ModeledError, AWSClientRuntime.AWSServiceError, ClientRuntime.HTTPError, Swift.Error { @@ -2111,6 +2136,7 @@ extension CognitoIdentityProviderClientTypes { case customChallenge case devicePasswordVerifier case deviceSrpAuth + case emailOtp case mfaSetup case newPasswordRequired case passwordVerifier @@ -2125,6 +2151,7 @@ extension CognitoIdentityProviderClientTypes { .customChallenge, .devicePasswordVerifier, .deviceSrpAuth, + .emailOtp, .mfaSetup, .newPasswordRequired, .passwordVerifier, @@ -2145,6 +2172,7 @@ extension CognitoIdentityProviderClientTypes { case .customChallenge: return "CUSTOM_CHALLENGE" case .devicePasswordVerifier: return "DEVICE_PASSWORD_VERIFIER" case .deviceSrpAuth: return "DEVICE_SRP_AUTH" + case .emailOtp: return "EMAIL_OTP" case .mfaSetup: return "MFA_SETUP" case .newPasswordRequired: return "NEW_PASSWORD_REQUIRED" case .passwordVerifier: return "PASSWORD_VERIFIER" @@ -2165,9 +2193,11 @@ public struct AdminInitiateAuthOutput { /// /// * MFA_SETUP: If MFA is required, users who don't have at least one of the MFA methods set up are presented with an MFA_SETUP challenge. The user must set up at least one MFA type to continue to authenticate. /// - /// * SELECT_MFA_TYPE: Selects the MFA type. Valid MFA options are SMS_MFA for text SMS MFA, and SOFTWARE_TOKEN_MFA for time-based one-time password (TOTP) software token MFA. + /// * SELECT_MFA_TYPE: Selects the MFA type. Valid MFA options are SMS_MFA for SMS message MFA, EMAIL_OTP for email message MFA, and SOFTWARE_TOKEN_MFA for time-based one-time password (TOTP) software token MFA. + /// + /// * SMS_MFA: Next challenge is to supply an SMS_MFA_CODEthat your user pool delivered in an SMS message. /// - /// * SMS_MFA: Next challenge is to supply an SMS_MFA_CODE, delivered via SMS. + /// * EMAIL_OTP: Next challenge is to supply an EMAIL_OTP_CODE that your user pool delivered in an email message. /// /// * PASSWORD_VERIFIER: Next challenge is to supply PASSWORD_CLAIM_SIGNATURE, PASSWORD_CLAIM_SECRET_BLOCK, and TIMESTAMP after the client-side SRP calculations. /// @@ -2837,31 +2867,6 @@ extension AdminRemoveUserFromGroupInput: Swift.CustomDebugStringConvertible { "AdminRemoveUserFromGroupInput(groupName: \(Swift.String(describing: groupName)), userPoolId: \(Swift.String(describing: userPoolId)), username: \"CONTENT_REDACTED\")"} } -/// This exception is thrown when Amazon Cognito isn't allowed to use your email identity. HTTP status code: 400. -public struct InvalidEmailRoleAccessPolicyException: ClientRuntime.ModeledError, AWSClientRuntime.AWSServiceError, ClientRuntime.HTTPError, Swift.Error { - - public struct Properties { - /// The message returned when you have an unverified email address or the identity policy isn't set on an email address that Amazon Cognito can access. - public internal(set) var message: Swift.String? = nil - } - - public internal(set) var properties = Properties() - public static var typeName: Swift.String { "InvalidEmailRoleAccessPolicyException" } - public static var fault: ClientRuntime.ErrorFault { .client } - public static var isRetryable: Swift.Bool { false } - public static var isThrottling: Swift.Bool { false } - public internal(set) var httpResponse = SmithyHTTPAPI.HTTPResponse() - public internal(set) var message: Swift.String? - public internal(set) var requestID: Swift.String? - - public init( - message: Swift.String? = nil - ) - { - self.properties.message = message - } -} - /// Represents the request to reset a user's password as an administrator. public struct AdminResetUserPasswordInput { /// A map of custom key-value pairs that you can provide as input for any custom workflows that this action triggers. You create custom workflows by assigning Lambda functions to user pool triggers. When you use the AdminResetUserPassword API action, Amazon Cognito invokes the function that is assigned to the custom message trigger. When Amazon Cognito invokes this function, it passes a JSON payload, which the function receives as input. This payload contains a clientMetadata attribute, which provides the data that you assigned to the ClientMetadata parameter in your AdminResetUserPassword request. In your function code in Lambda, you can process the clientMetadata value to enhance your workflow for your specific needs. For more information, see [ Customizing user pool Workflows with Lambda Triggers](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-identity-pools-working-with-aws-lambda-triggers.html) in the Amazon Cognito Developer Guide. When you use the ClientMetadata parameter, remember that Amazon Cognito won't do the following: @@ -3007,7 +3012,7 @@ public struct AdminRespondToAuthChallengeInput { /// The challenge name. For more information, see [AdminInitiateAuth](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminInitiateAuth.html). /// This member is required. public var challengeName: CognitoIdentityProviderClientTypes.ChallengeNameType? - /// The responses to the challenge that you received in the previous request. Each challenge has its own required response parameters. The following examples are partial JSON request bodies that highlight challenge-response parameters. You must provide a SECRET_HASH parameter in all challenge responses to an app client that has a client secret. SMS_MFA "ChallengeName": "SMS_MFA", "ChallengeResponses": {"SMS_MFA_CODE": "[SMS_code]", "USERNAME": "[username]"} PASSWORD_VERIFIER "ChallengeName": "PASSWORD_VERIFIER", "ChallengeResponses": {"PASSWORD_CLAIM_SIGNATURE": "[claim_signature]", "PASSWORD_CLAIM_SECRET_BLOCK": "[secret_block]", "TIMESTAMP": [timestamp], "USERNAME": "[username]"} Add "DEVICE_KEY" when you sign in with a remembered device. CUSTOM_CHALLENGE "ChallengeName": "CUSTOM_CHALLENGE", "ChallengeResponses": {"USERNAME": "[username]", "ANSWER": "[challenge_answer]"} Add "DEVICE_KEY" when you sign in with a remembered device. NEW_PASSWORD_REQUIRED "ChallengeName": "NEW_PASSWORD_REQUIRED", "ChallengeResponses": {"NEW_PASSWORD": "[new_password]", "USERNAME": "[username]"} To set any required attributes that InitiateAuth returned in an requiredAttributes parameter, add "userAttributes.[attribute_name]": "[attribute_value]". This parameter can also set values for writable attributes that aren't required by your user pool. In a NEW_PASSWORD_REQUIRED challenge response, you can't modify a required attribute that already has a value. In RespondToAuthChallenge, set a value for any keys that Amazon Cognito returned in the requiredAttributes parameter, then use the UpdateUserAttributes API operation to modify the value of any additional attributes. SOFTWARE_TOKEN_MFA "ChallengeName": "SOFTWARE_TOKEN_MFA", "ChallengeResponses": {"USERNAME": "[username]", "SOFTWARE_TOKEN_MFA_CODE": [authenticator_code]} DEVICE_SRP_AUTH "ChallengeName": "DEVICE_SRP_AUTH", "ChallengeResponses": {"USERNAME": "[username]", "DEVICE_KEY": "[device_key]", "SRP_A": "[srp_a]"} DEVICE_PASSWORD_VERIFIER "ChallengeName": "DEVICE_PASSWORD_VERIFIER", "ChallengeResponses": {"DEVICE_KEY": "[device_key]", "PASSWORD_CLAIM_SIGNATURE": "[claim_signature]", "PASSWORD_CLAIM_SECRET_BLOCK": "[secret_block]", "TIMESTAMP": [timestamp], "USERNAME": "[username]"} MFA_SETUP "ChallengeName": "MFA_SETUP", "ChallengeResponses": {"USERNAME": "[username]"}, "SESSION": "[Session ID from VerifySoftwareToken]" SELECT_MFA_TYPE "ChallengeName": "SELECT_MFA_TYPE", "ChallengeResponses": {"USERNAME": "[username]", "ANSWER": "[SMS_MFA or SOFTWARE_TOKEN_MFA]"} For more information about SECRET_HASH, see [Computing secret hash values](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). + /// The responses to the challenge that you received in the previous request. Each challenge has its own required response parameters. The following examples are partial JSON request bodies that highlight challenge-response parameters. You must provide a SECRET_HASH parameter in all challenge responses to an app client that has a client secret. SMS_MFA "ChallengeName": "SMS_MFA", "ChallengeResponses": {"SMS_MFA_CODE": "[code]", "USERNAME": "[username]"} EMAIL_OTP "ChallengeName": "EMAIL_OTP", "ChallengeResponses": {"EMAIL_OTP_CODE": "[code]", "USERNAME": "[username]"} PASSWORD_VERIFIER This challenge response is part of the SRP flow. Amazon Cognito requires that your application respond to this challenge within a few seconds. When the response time exceeds this period, your user pool returns a NotAuthorizedException error. "ChallengeName": "PASSWORD_VERIFIER", "ChallengeResponses": {"PASSWORD_CLAIM_SIGNATURE": "[claim_signature]", "PASSWORD_CLAIM_SECRET_BLOCK": "[secret_block]", "TIMESTAMP": [timestamp], "USERNAME": "[username]"} Add "DEVICE_KEY" when you sign in with a remembered device. CUSTOM_CHALLENGE "ChallengeName": "CUSTOM_CHALLENGE", "ChallengeResponses": {"USERNAME": "[username]", "ANSWER": "[challenge_answer]"} Add "DEVICE_KEY" when you sign in with a remembered device. NEW_PASSWORD_REQUIRED "ChallengeName": "NEW_PASSWORD_REQUIRED", "ChallengeResponses": {"NEW_PASSWORD": "[new_password]", "USERNAME": "[username]"} To set any required attributes that InitiateAuth returned in an requiredAttributes parameter, add "userAttributes.[attribute_name]": "[attribute_value]". This parameter can also set values for writable attributes that aren't required by your user pool. In a NEW_PASSWORD_REQUIRED challenge response, you can't modify a required attribute that already has a value. In RespondToAuthChallenge, set a value for any keys that Amazon Cognito returned in the requiredAttributes parameter, then use the UpdateUserAttributes API operation to modify the value of any additional attributes. SOFTWARE_TOKEN_MFA "ChallengeName": "SOFTWARE_TOKEN_MFA", "ChallengeResponses": {"USERNAME": "[username]", "SOFTWARE_TOKEN_MFA_CODE": [authenticator_code]} DEVICE_SRP_AUTH "ChallengeName": "DEVICE_SRP_AUTH", "ChallengeResponses": {"USERNAME": "[username]", "DEVICE_KEY": "[device_key]", "SRP_A": "[srp_a]"} DEVICE_PASSWORD_VERIFIER "ChallengeName": "DEVICE_PASSWORD_VERIFIER", "ChallengeResponses": {"DEVICE_KEY": "[device_key]", "PASSWORD_CLAIM_SIGNATURE": "[claim_signature]", "PASSWORD_CLAIM_SECRET_BLOCK": "[secret_block]", "TIMESTAMP": [timestamp], "USERNAME": "[username]"} MFA_SETUP "ChallengeName": "MFA_SETUP", "ChallengeResponses": {"USERNAME": "[username]"}, "SESSION": "[Session ID from VerifySoftwareToken]" SELECT_MFA_TYPE "ChallengeName": "SELECT_MFA_TYPE", "ChallengeResponses": {"USERNAME": "[username]", "ANSWER": "[SMS_MFA or SOFTWARE_TOKEN_MFA]"} For more information about SECRET_HASH, see [Computing secret hash values](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). public var challengeResponses: [Swift.String: Swift.String]? /// The app client ID. /// This member is required. @@ -3104,10 +3109,30 @@ extension AdminRespondToAuthChallengeOutput: Swift.CustomDebugStringConvertible "AdminRespondToAuthChallengeOutput(authenticationResult: \(Swift.String(describing: authenticationResult)), challengeName: \(Swift.String(describing: challengeName)), challengeParameters: \(Swift.String(describing: challengeParameters)), session: \"CONTENT_REDACTED\")"} } +extension CognitoIdentityProviderClientTypes { + /// User preferences for multi-factor authentication with email messages. Activates or deactivates email MFA and sets it as the preferred MFA method when multiple methods are available. To activate this setting, [ advanced security features](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pool-settings-advanced-security.html) must be active in your user pool. + public struct EmailMfaSettingsType { + /// Specifies whether email message MFA is active for a user. When the value of this parameter is Enabled, the user will be prompted for MFA during all sign-in attempts, unless device tracking is turned on and the device has been trusted. + public var enabled: Swift.Bool + /// Specifies whether email message MFA is the user's preferred method. + public var preferredMfa: Swift.Bool + + public init( + enabled: Swift.Bool = false, + preferredMfa: Swift.Bool = false + ) + { + self.enabled = enabled + self.preferredMfa = preferredMfa + } + } + +} + extension CognitoIdentityProviderClientTypes { /// The type used for enabling SMS multi-factor authentication (MFA) at the user level. Phone numbers don't need to be verified to be used for SMS MFA. If an MFA type is activated for a user, the user will be prompted for MFA during all sign-in attempts, unless device tracking is turned on and the device has been trusted. If you would like MFA to be applied selectively based on the assessed risk level of sign-in attempts, deactivate MFA for users and turn on Adaptive Authentication for the user pool. public struct SMSMfaSettingsType { - /// Specifies whether SMS text message MFA is activated. If an MFA type is activated for a user, the user will be prompted for MFA during all sign-in attempts, unless device tracking is turned on and the device has been trusted. + /// Specifies whether SMS message MFA is activated. If an MFA type is activated for a user, the user will be prompted for MFA during all sign-in attempts, unless device tracking is turned on and the device has been trusted. public var enabled: Swift.Bool /// Specifies whether SMS is the preferred MFA method. public var preferredMfa: Swift.Bool @@ -3145,11 +3170,13 @@ extension CognitoIdentityProviderClientTypes { } public struct AdminSetUserMFAPreferenceInput { - /// The SMS text message MFA settings. + /// User preferences for email message MFA. Activates or deactivates email MFA and sets it as the preferred MFA method when multiple methods are available. To activate this setting, [ advanced security features](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pool-settings-advanced-security.html) must be active in your user pool. + public var emailMfaSettings: CognitoIdentityProviderClientTypes.EmailMfaSettingsType? + /// User preferences for SMS message MFA. Activates or deactivates SMS MFA and sets it as the preferred MFA method when multiple methods are available. public var smsMfaSettings: CognitoIdentityProviderClientTypes.SMSMfaSettingsType? - /// The time-based one-time password software token MFA settings. + /// User preferences for time-based one-time password (TOTP) MFA. Activates or deactivates TOTP MFA and sets it as the preferred MFA method when multiple methods are available. public var softwareTokenMfaSettings: CognitoIdentityProviderClientTypes.SoftwareTokenMfaSettingsType? - /// The user pool ID. + /// The ID of the user pool where you want to set a user's MFA preferences. /// This member is required. public var userPoolId: Swift.String? /// The username of the user that you want to query or modify. The value of this parameter is typically your user's username, but it can be any of their alias attributes. If username isn't an alias attribute in your user pool, this value must be the sub of a local user or the username of a user from a third-party IdP. @@ -3157,12 +3184,14 @@ public struct AdminSetUserMFAPreferenceInput { public var username: Swift.String? public init( + emailMfaSettings: CognitoIdentityProviderClientTypes.EmailMfaSettingsType? = nil, smsMfaSettings: CognitoIdentityProviderClientTypes.SMSMfaSettingsType? = nil, softwareTokenMfaSettings: CognitoIdentityProviderClientTypes.SoftwareTokenMfaSettingsType? = nil, userPoolId: Swift.String? = nil, username: Swift.String? = nil ) { + self.emailMfaSettings = emailMfaSettings self.smsMfaSettings = smsMfaSettings self.softwareTokenMfaSettings = softwareTokenMfaSettings self.userPoolId = userPoolId @@ -3172,7 +3201,7 @@ public struct AdminSetUserMFAPreferenceInput { extension AdminSetUserMFAPreferenceInput: Swift.CustomDebugStringConvertible { public var debugDescription: Swift.String { - "AdminSetUserMFAPreferenceInput(smsMfaSettings: \(Swift.String(describing: smsMfaSettings)), softwareTokenMfaSettings: \(Swift.String(describing: softwareTokenMfaSettings)), userPoolId: \(Swift.String(describing: userPoolId)), username: \"CONTENT_REDACTED\")"} + "AdminSetUserMFAPreferenceInput(emailMfaSettings: \(Swift.String(describing: emailMfaSettings)), smsMfaSettings: \(Swift.String(describing: smsMfaSettings)), softwareTokenMfaSettings: \(Swift.String(describing: softwareTokenMfaSettings)), userPoolId: \(Swift.String(describing: userPoolId)), username: \"CONTENT_REDACTED\")"} } public struct AdminSetUserMFAPreferenceOutput { @@ -5633,7 +5662,7 @@ public struct CreateUserPoolClientInput { /// /// Defaults to LEGACY when you don't provide a value. public var preventUserExistenceErrors: CognitoIdentityProviderClientTypes.PreventUserExistenceErrorTypes? - /// The list of user attributes that you want your app client to have read-only access to. After your user authenticates in your app, their access token authorizes them to read their own attribute value for any attribute in this list. An example of this kind of activity is when your user selects a link to view their profile information. Your app makes a [GetUser](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_GetUser.html) API request to retrieve and display your user's profile data. When you don't specify the ReadAttributes for your app client, your app can read the values of email_verified, phone_number_verified, and the Standard attributes of your user pool. When your user pool has read access to these default attributes, ReadAttributes doesn't return any information. Amazon Cognito only populates ReadAttributes in the API response if you have specified your own custom set of read attributes. + /// The list of user attributes that you want your app client to have read access to. After your user authenticates in your app, their access token authorizes them to read their own attribute value for any attribute in this list. An example of this kind of activity is when your user selects a link to view their profile information. Your app makes a [GetUser](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_GetUser.html) API request to retrieve and display your user's profile data. When you don't specify the ReadAttributes for your app client, your app can read the values of email_verified, phone_number_verified, and the Standard attributes of your user pool. When your user pool app client has read access to these default attributes, ReadAttributes doesn't return any information. Amazon Cognito only populates ReadAttributes in the API response if you have specified your own custom set of read attributes. public var readAttributes: [Swift.String]? /// The refresh token time limit. After this limit expires, your user can't use their refresh token. To specify the time unit for RefreshTokenValidity as seconds, minutes, hours, or days, set a TokenValidityUnits value in your API request. For example, when you set RefreshTokenValidity as 10 and TokenValidityUnits as days, your user can refresh their session and retrieve new access and ID tokens for 10 days. The default time unit for RefreshTokenValidity in an API request is days. You can't set RefreshTokenValidity to 0. If you do, Amazon Cognito overrides the value with the default value of 30 days. Valid range is displayed below in seconds. If you don't specify otherwise in the configuration of your app client, your refresh tokens are valid for 30 days. public var refreshTokenValidity: Swift.Int? @@ -5787,7 +5816,7 @@ extension CognitoIdentityProviderClientTypes { /// /// Defaults to LEGACY when you don't provide a value. public var preventUserExistenceErrors: CognitoIdentityProviderClientTypes.PreventUserExistenceErrorTypes? - /// The list of user attributes that you want your app client to have read-only access to. After your user authenticates in your app, their access token authorizes them to read their own attribute value for any attribute in this list. An example of this kind of activity is when your user selects a link to view their profile information. Your app makes a [GetUser](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_GetUser.html) API request to retrieve and display your user's profile data. When you don't specify the ReadAttributes for your app client, your app can read the values of email_verified, phone_number_verified, and the Standard attributes of your user pool. When your user pool has read access to these default attributes, ReadAttributes doesn't return any information. Amazon Cognito only populates ReadAttributes in the API response if you have specified your own custom set of read attributes. + /// The list of user attributes that you want your app client to have read access to. After your user authenticates in your app, their access token authorizes them to read their own attribute value for any attribute in this list. An example of this kind of activity is when your user selects a link to view their profile information. Your app makes a [GetUser](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_GetUser.html) API request to retrieve and display your user's profile data. When you don't specify the ReadAttributes for your app client, your app can read the values of email_verified, phone_number_verified, and the Standard attributes of your user pool. When your user pool app client has read access to these default attributes, ReadAttributes doesn't return any information. Amazon Cognito only populates ReadAttributes in the API response if you have specified your own custom set of read attributes. public var readAttributes: [Swift.String]? /// The refresh token time limit. After this limit expires, your user can't use their refresh token. To specify the time unit for RefreshTokenValidity as seconds, minutes, hours, or days, set a TokenValidityUnits value in your API request. For example, when you set RefreshTokenValidity as 10 and TokenValidityUnits as days, your user can refresh their session and retrieve new access and ID tokens for 10 days. The default time unit for RefreshTokenValidity in an API request is days. You can't set RefreshTokenValidity to 0. If you do, Amazon Cognito overrides the value with the default value of 30 days. Valid range is displayed below in seconds. If you don't specify otherwise in the configuration of your app client, your refresh tokens are valid for 30 days. public var refreshTokenValidity: Swift.Int @@ -7132,7 +7161,7 @@ public struct GetUserOutput { /// An array of name-value pairs representing user attributes. For custom attributes, you must prepend the custom: prefix to the attribute name. /// This member is required. public var userAttributes: [CognitoIdentityProviderClientTypes.AttributeType]? - /// The MFA options that are activated for the user. The possible values in this list are SMS_MFA and SOFTWARE_TOKEN_MFA. + /// The MFA options that are activated for the user. The possible values in this list are SMS_MFA, EMAIL_OTP, and SOFTWARE_TOKEN_MFA. public var userMFASettingList: [Swift.String]? /// The username of the user that you requested. /// This member is required. @@ -7220,9 +7249,29 @@ public struct GetUserPoolMfaConfigInput { } extension CognitoIdentityProviderClientTypes { - /// The SMS text message multi-factor authentication (MFA) configuration type. + /// Sets or shows user pool email message configuration for MFA. Includes the subject and body of the email message template for MFA messages. To activate this setting, [ advanced security features](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pool-settings-advanced-security.html) must be active in your user pool. + public struct EmailMfaConfigType { + /// The template for the email message that your user pool sends to users with an MFA code. The message must contain the {####} placeholder. In the message, Amazon Cognito replaces this placeholder with the code. If you don't provide this parameter, Amazon Cognito sends messages in the default format. + public var message: Swift.String? + /// The subject of the email message that your user pool sends to users with an MFA code. + public var subject: Swift.String? + + public init( + message: Swift.String? = nil, + subject: Swift.String? = nil + ) + { + self.message = message + self.subject = subject + } + } + +} + +extension CognitoIdentityProviderClientTypes { + /// Configures user pool SMS messages for multi-factor authentication (MFA). Sets the message template and the SMS message sending configuration for Amazon SNS. public struct SmsMfaConfigType { - /// The SMS authentication message that will be sent to users with the code they must sign in. The message must contain the ‘{####}’ placeholder, which is replaced with the code. If the message isn't included, and default message will be used. + /// The SMS message that your user pool sends to users with an MFA code. The message must contain the {####} placeholder. In the message, Amazon Cognito replaces this placeholder with the code. If you don't provide this parameter, Amazon Cognito sends messages in the default format. public var smsAuthenticationMessage: Swift.String? /// The SMS configuration with the settings that your Amazon Cognito user pool must use to send an SMS message from your Amazon Web Services account through Amazon Simple Notification Service. To request Amazon SNS in the Amazon Web Services Region that you want, the Amazon Cognito user pool uses an Identity and Access Management (IAM) role that you provide for your Amazon Web Services account. public var smsConfiguration: CognitoIdentityProviderClientTypes.SmsConfigurationType? @@ -7240,7 +7289,7 @@ extension CognitoIdentityProviderClientTypes { } extension CognitoIdentityProviderClientTypes { - /// The type used for enabling software token MFA at the user pool level. + /// Configures a user pool for time-based one-time password (TOTP) multi-factor authentication (MFA). Enables or disables TOTP. public struct SoftwareTokenMfaConfigType { /// Specifies whether software token MFA is activated. public var enabled: Swift.Bool @@ -7256,6 +7305,8 @@ extension CognitoIdentityProviderClientTypes { } public struct GetUserPoolMfaConfigOutput { + /// Shows user pool email message configuration for MFA. Includes the subject and body of the email message template for MFA messages. To activate this setting, [ advanced security features](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pool-settings-advanced-security.html) must be active in your user pool. + public var emailMfaConfiguration: CognitoIdentityProviderClientTypes.EmailMfaConfigType? /// The multi-factor authentication (MFA) configuration. Valid values include: /// /// * OFF MFA won't be used for any users. @@ -7264,17 +7315,19 @@ public struct GetUserPoolMfaConfigOutput { /// /// * OPTIONAL MFA will be required only for individual users who have an MFA factor activated. public var mfaConfiguration: CognitoIdentityProviderClientTypes.UserPoolMfaType? - /// The SMS text message multi-factor authentication (MFA) configuration. + /// Shows user pool SMS message configuration for MFA. Includes the message template and the SMS message sending configuration for Amazon SNS. public var smsMfaConfiguration: CognitoIdentityProviderClientTypes.SmsMfaConfigType? - /// The software token multi-factor authentication (MFA) configuration. + /// Shows user pool configuration for time-based one-time password (TOTP) MFA. Includes TOTP enabled or disabled state. public var softwareTokenMfaConfiguration: CognitoIdentityProviderClientTypes.SoftwareTokenMfaConfigType? public init( + emailMfaConfiguration: CognitoIdentityProviderClientTypes.EmailMfaConfigType? = nil, mfaConfiguration: CognitoIdentityProviderClientTypes.UserPoolMfaType? = nil, smsMfaConfiguration: CognitoIdentityProviderClientTypes.SmsMfaConfigType? = nil, softwareTokenMfaConfiguration: CognitoIdentityProviderClientTypes.SoftwareTokenMfaConfigType? = nil ) { + self.emailMfaConfiguration = emailMfaConfiguration self.mfaConfiguration = mfaConfiguration self.smsMfaConfiguration = smsMfaConfiguration self.softwareTokenMfaConfiguration = softwareTokenMfaConfiguration @@ -7411,7 +7464,9 @@ public struct InitiateAuthOutput { public var authenticationResult: CognitoIdentityProviderClientTypes.AuthenticationResultType? /// The name of the challenge that you're responding to with this call. This name is returned in the InitiateAuth response if you must pass another challenge. Valid values include the following: All of the following challenges require USERNAME and SECRET_HASH (if applicable) in the parameters. /// - /// * SMS_MFA: Next challenge is to supply an SMS_MFA_CODE, delivered via SMS. + /// * SMS_MFA: Next challenge is to supply an SMS_MFA_CODEthat your user pool delivered in an SMS message. + /// + /// * EMAIL_OTP: Next challenge is to supply an EMAIL_OTP_CODE that your user pool delivered in an email message. /// /// * PASSWORD_VERIFIER: Next challenge is to supply PASSWORD_CLAIM_SIGNATURE, PASSWORD_CLAIM_SECRET_BLOCK, and TIMESTAMP after the client-side SRP calculations. /// @@ -8026,7 +8081,7 @@ public struct RespondToAuthChallengeInput { /// The challenge name. For more information, see [InitiateAuth](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_InitiateAuth.html). ADMIN_NO_SRP_AUTH isn't a valid value. /// This member is required. public var challengeName: CognitoIdentityProviderClientTypes.ChallengeNameType? - /// The responses to the challenge that you received in the previous request. Each challenge has its own required response parameters. The following examples are partial JSON request bodies that highlight challenge-response parameters. You must provide a SECRET_HASH parameter in all challenge responses to an app client that has a client secret. SMS_MFA "ChallengeName": "SMS_MFA", "ChallengeResponses": {"SMS_MFA_CODE": "[SMS_code]", "USERNAME": "[username]"} PASSWORD_VERIFIER "ChallengeName": "PASSWORD_VERIFIER", "ChallengeResponses": {"PASSWORD_CLAIM_SIGNATURE": "[claim_signature]", "PASSWORD_CLAIM_SECRET_BLOCK": "[secret_block]", "TIMESTAMP": [timestamp], "USERNAME": "[username]"} Add "DEVICE_KEY" when you sign in with a remembered device. CUSTOM_CHALLENGE "ChallengeName": "CUSTOM_CHALLENGE", "ChallengeResponses": {"USERNAME": "[username]", "ANSWER": "[challenge_answer]"} Add "DEVICE_KEY" when you sign in with a remembered device. NEW_PASSWORD_REQUIRED "ChallengeName": "NEW_PASSWORD_REQUIRED", "ChallengeResponses": {"NEW_PASSWORD": "[new_password]", "USERNAME": "[username]"} To set any required attributes that InitiateAuth returned in an requiredAttributes parameter, add "userAttributes.[attribute_name]": "[attribute_value]". This parameter can also set values for writable attributes that aren't required by your user pool. In a NEW_PASSWORD_REQUIRED challenge response, you can't modify a required attribute that already has a value. In RespondToAuthChallenge, set a value for any keys that Amazon Cognito returned in the requiredAttributes parameter, then use the UpdateUserAttributes API operation to modify the value of any additional attributes. SOFTWARE_TOKEN_MFA "ChallengeName": "SOFTWARE_TOKEN_MFA", "ChallengeResponses": {"USERNAME": "[username]", "SOFTWARE_TOKEN_MFA_CODE": [authenticator_code]} DEVICE_SRP_AUTH "ChallengeName": "DEVICE_SRP_AUTH", "ChallengeResponses": {"USERNAME": "[username]", "DEVICE_KEY": "[device_key]", "SRP_A": "[srp_a]"} DEVICE_PASSWORD_VERIFIER "ChallengeName": "DEVICE_PASSWORD_VERIFIER", "ChallengeResponses": {"DEVICE_KEY": "[device_key]", "PASSWORD_CLAIM_SIGNATURE": "[claim_signature]", "PASSWORD_CLAIM_SECRET_BLOCK": "[secret_block]", "TIMESTAMP": [timestamp], "USERNAME": "[username]"} MFA_SETUP "ChallengeName": "MFA_SETUP", "ChallengeResponses": {"USERNAME": "[username]"}, "SESSION": "[Session ID from VerifySoftwareToken]" SELECT_MFA_TYPE "ChallengeName": "SELECT_MFA_TYPE", "ChallengeResponses": {"USERNAME": "[username]", "ANSWER": "[SMS_MFA or SOFTWARE_TOKEN_MFA]"} For more information about SECRET_HASH, see [Computing secret hash values](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). + /// The responses to the challenge that you received in the previous request. Each challenge has its own required response parameters. The following examples are partial JSON request bodies that highlight challenge-response parameters. You must provide a SECRET_HASH parameter in all challenge responses to an app client that has a client secret. SMS_MFA "ChallengeName": "SMS_MFA", "ChallengeResponses": {"SMS_MFA_CODE": "[code]", "USERNAME": "[username]"} EMAIL_OTP "ChallengeName": "EMAIL_OTP", "ChallengeResponses": {"EMAIL_OTP_CODE": "[code]", "USERNAME": "[username]"} PASSWORD_VERIFIER This challenge response is part of the SRP flow. Amazon Cognito requires that your application respond to this challenge within a few seconds. When the response time exceeds this period, your user pool returns a NotAuthorizedException error. "ChallengeName": "PASSWORD_VERIFIER", "ChallengeResponses": {"PASSWORD_CLAIM_SIGNATURE": "[claim_signature]", "PASSWORD_CLAIM_SECRET_BLOCK": "[secret_block]", "TIMESTAMP": [timestamp], "USERNAME": "[username]"} Add "DEVICE_KEY" when you sign in with a remembered device. CUSTOM_CHALLENGE "ChallengeName": "CUSTOM_CHALLENGE", "ChallengeResponses": {"USERNAME": "[username]", "ANSWER": "[challenge_answer]"} Add "DEVICE_KEY" when you sign in with a remembered device. NEW_PASSWORD_REQUIRED "ChallengeName": "NEW_PASSWORD_REQUIRED", "ChallengeResponses": {"NEW_PASSWORD": "[new_password]", "USERNAME": "[username]"} To set any required attributes that InitiateAuth returned in an requiredAttributes parameter, add "userAttributes.[attribute_name]": "[attribute_value]". This parameter can also set values for writable attributes that aren't required by your user pool. In a NEW_PASSWORD_REQUIRED challenge response, you can't modify a required attribute that already has a value. In RespondToAuthChallenge, set a value for any keys that Amazon Cognito returned in the requiredAttributes parameter, then use the UpdateUserAttributes API operation to modify the value of any additional attributes. SOFTWARE_TOKEN_MFA "ChallengeName": "SOFTWARE_TOKEN_MFA", "ChallengeResponses": {"USERNAME": "[username]", "SOFTWARE_TOKEN_MFA_CODE": [authenticator_code]} DEVICE_SRP_AUTH "ChallengeName": "DEVICE_SRP_AUTH", "ChallengeResponses": {"USERNAME": "[username]", "DEVICE_KEY": "[device_key]", "SRP_A": "[srp_a]"} DEVICE_PASSWORD_VERIFIER "ChallengeName": "DEVICE_PASSWORD_VERIFIER", "ChallengeResponses": {"DEVICE_KEY": "[device_key]", "PASSWORD_CLAIM_SIGNATURE": "[claim_signature]", "PASSWORD_CLAIM_SECRET_BLOCK": "[secret_block]", "TIMESTAMP": [timestamp], "USERNAME": "[username]"} MFA_SETUP "ChallengeName": "MFA_SETUP", "ChallengeResponses": {"USERNAME": "[username]"}, "SESSION": "[Session ID from VerifySoftwareToken]" SELECT_MFA_TYPE "ChallengeName": "SELECT_MFA_TYPE", "ChallengeResponses": {"USERNAME": "[username]", "ANSWER": "[SMS_MFA or SOFTWARE_TOKEN_MFA]"} For more information about SECRET_HASH, see [Computing secret hash values](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). public var challengeResponses: [Swift.String: Swift.String]? /// The app client ID. /// This member is required. @@ -8327,18 +8382,22 @@ public struct SetUserMFAPreferenceInput { /// A valid access token that Amazon Cognito issued to the user whose MFA preference you want to set. /// This member is required. public var accessToken: Swift.String? - /// The SMS text message multi-factor authentication (MFA) settings. + /// User preferences for email message MFA. Activates or deactivates email MFA and sets it as the preferred MFA method when multiple methods are available. To activate this setting, [ advanced security features](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pool-settings-advanced-security.html) must be active in your user pool. + public var emailMfaSettings: CognitoIdentityProviderClientTypes.EmailMfaSettingsType? + /// User preferences for SMS message MFA. Activates or deactivates SMS MFA and sets it as the preferred MFA method when multiple methods are available. public var smsMfaSettings: CognitoIdentityProviderClientTypes.SMSMfaSettingsType? - /// The time-based one-time password (TOTP) software token MFA settings. + /// User preferences for time-based one-time password (TOTP) MFA. Activates or deactivates TOTP MFA and sets it as the preferred MFA method when multiple methods are available. public var softwareTokenMfaSettings: CognitoIdentityProviderClientTypes.SoftwareTokenMfaSettingsType? public init( accessToken: Swift.String? = nil, + emailMfaSettings: CognitoIdentityProviderClientTypes.EmailMfaSettingsType? = nil, smsMfaSettings: CognitoIdentityProviderClientTypes.SMSMfaSettingsType? = nil, softwareTokenMfaSettings: CognitoIdentityProviderClientTypes.SoftwareTokenMfaSettingsType? = nil ) { self.accessToken = accessToken + self.emailMfaSettings = emailMfaSettings self.smsMfaSettings = smsMfaSettings self.softwareTokenMfaSettings = softwareTokenMfaSettings } @@ -8346,7 +8405,7 @@ public struct SetUserMFAPreferenceInput { extension SetUserMFAPreferenceInput: Swift.CustomDebugStringConvertible { public var debugDescription: Swift.String { - "SetUserMFAPreferenceInput(smsMfaSettings: \(Swift.String(describing: smsMfaSettings)), softwareTokenMfaSettings: \(Swift.String(describing: softwareTokenMfaSettings)), accessToken: \"CONTENT_REDACTED\")"} + "SetUserMFAPreferenceInput(emailMfaSettings: \(Swift.String(describing: emailMfaSettings)), smsMfaSettings: \(Swift.String(describing: smsMfaSettings)), softwareTokenMfaSettings: \(Swift.String(describing: softwareTokenMfaSettings)), accessToken: \"CONTENT_REDACTED\")"} } public struct SetUserMFAPreferenceOutput { @@ -8355,6 +8414,8 @@ public struct SetUserMFAPreferenceOutput { } public struct SetUserPoolMfaConfigInput { + /// Configures user pool email messages for MFA. Sets the subject and body of the email message template for MFA messages. To activate this setting, [ advanced security features](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pool-settings-advanced-security.html) must be active in your user pool. + public var emailMfaConfiguration: CognitoIdentityProviderClientTypes.EmailMfaConfigType? /// The MFA configuration. If you set the MfaConfiguration value to ‘ON’, only users who have set up an MFA factor can sign in. To learn more, see [Adding Multi-Factor Authentication (MFA) to a user pool](https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-settings-mfa.html). Valid values include: /// /// * OFF MFA won't be used for any users. @@ -8363,21 +8424,23 @@ public struct SetUserPoolMfaConfigInput { /// /// * OPTIONAL MFA will be required only for individual users who have an MFA factor activated. public var mfaConfiguration: CognitoIdentityProviderClientTypes.UserPoolMfaType? - /// The SMS text message MFA configuration. + /// Configures user pool SMS messages for MFA. Sets the message template and the SMS message sending configuration for Amazon SNS. public var smsMfaConfiguration: CognitoIdentityProviderClientTypes.SmsMfaConfigType? - /// The software token MFA configuration. + /// Configures a user pool for time-based one-time password (TOTP) MFA. Enables or disables TOTP. public var softwareTokenMfaConfiguration: CognitoIdentityProviderClientTypes.SoftwareTokenMfaConfigType? /// The user pool ID. /// This member is required. public var userPoolId: Swift.String? public init( + emailMfaConfiguration: CognitoIdentityProviderClientTypes.EmailMfaConfigType? = nil, mfaConfiguration: CognitoIdentityProviderClientTypes.UserPoolMfaType? = nil, smsMfaConfiguration: CognitoIdentityProviderClientTypes.SmsMfaConfigType? = nil, softwareTokenMfaConfiguration: CognitoIdentityProviderClientTypes.SoftwareTokenMfaConfigType? = nil, userPoolId: Swift.String? = nil ) { + self.emailMfaConfiguration = emailMfaConfiguration self.mfaConfiguration = mfaConfiguration self.smsMfaConfiguration = smsMfaConfiguration self.softwareTokenMfaConfiguration = softwareTokenMfaConfiguration @@ -8386,6 +8449,8 @@ public struct SetUserPoolMfaConfigInput { } public struct SetUserPoolMfaConfigOutput { + /// Shows user pool email message configuration for MFA. Includes the subject and body of the email message template for MFA messages. To activate this setting, [ advanced security features](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pool-settings-advanced-security.html) must be active in your user pool. + public var emailMfaConfiguration: CognitoIdentityProviderClientTypes.EmailMfaConfigType? /// The MFA configuration. Valid values include: /// /// * OFF MFA won't be used for any users. @@ -8394,17 +8459,19 @@ public struct SetUserPoolMfaConfigOutput { /// /// * OPTIONAL MFA will be required only for individual users who have an MFA factor enabled. public var mfaConfiguration: CognitoIdentityProviderClientTypes.UserPoolMfaType? - /// The SMS text message MFA configuration. + /// Shows user pool SMS message configuration for MFA. Includes the message template and the SMS message sending configuration for Amazon SNS. public var smsMfaConfiguration: CognitoIdentityProviderClientTypes.SmsMfaConfigType? - /// The software token MFA configuration. + /// Shows user pool configuration for time-based one-time password (TOTP) MFA. Includes TOTP enabled or disabled state. public var softwareTokenMfaConfiguration: CognitoIdentityProviderClientTypes.SoftwareTokenMfaConfigType? public init( + emailMfaConfiguration: CognitoIdentityProviderClientTypes.EmailMfaConfigType? = nil, mfaConfiguration: CognitoIdentityProviderClientTypes.UserPoolMfaType? = nil, smsMfaConfiguration: CognitoIdentityProviderClientTypes.SmsMfaConfigType? = nil, softwareTokenMfaConfiguration: CognitoIdentityProviderClientTypes.SoftwareTokenMfaConfigType? = nil ) { + self.emailMfaConfiguration = emailMfaConfiguration self.mfaConfiguration = mfaConfiguration self.smsMfaConfiguration = smsMfaConfiguration self.softwareTokenMfaConfiguration = softwareTokenMfaConfiguration @@ -9064,7 +9131,7 @@ public struct UpdateUserPoolClientInput { /// /// Defaults to LEGACY when you don't provide a value. public var preventUserExistenceErrors: CognitoIdentityProviderClientTypes.PreventUserExistenceErrorTypes? - /// The list of user attributes that you want your app client to have read-only access to. After your user authenticates in your app, their access token authorizes them to read their own attribute value for any attribute in this list. An example of this kind of activity is when your user selects a link to view their profile information. Your app makes a [GetUser](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_GetUser.html) API request to retrieve and display your user's profile data. When you don't specify the ReadAttributes for your app client, your app can read the values of email_verified, phone_number_verified, and the Standard attributes of your user pool. When your user pool has read access to these default attributes, ReadAttributes doesn't return any information. Amazon Cognito only populates ReadAttributes in the API response if you have specified your own custom set of read attributes. + /// The list of user attributes that you want your app client to have read access to. After your user authenticates in your app, their access token authorizes them to read their own attribute value for any attribute in this list. An example of this kind of activity is when your user selects a link to view their profile information. Your app makes a [GetUser](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_GetUser.html) API request to retrieve and display your user's profile data. When you don't specify the ReadAttributes for your app client, your app can read the values of email_verified, phone_number_verified, and the Standard attributes of your user pool. When your user pool app client has read access to these default attributes, ReadAttributes doesn't return any information. Amazon Cognito only populates ReadAttributes in the API response if you have specified your own custom set of read attributes. public var readAttributes: [Swift.String]? /// The refresh token time limit. After this limit expires, your user can't use their refresh token. To specify the time unit for RefreshTokenValidity as seconds, minutes, hours, or days, set a TokenValidityUnits value in your API request. For example, when you set RefreshTokenValidity as 10 and TokenValidityUnits as days, your user can refresh their session and retrieve new access and ID tokens for 10 days. The default time unit for RefreshTokenValidity in an API request is days. You can't set RefreshTokenValidity to 0. If you do, Amazon Cognito overrides the value with the default value of 30 days. Valid range is displayed below in seconds. If you don't specify otherwise in the configuration of your app client, your refresh tokens are valid for 30 days. public var refreshTokenValidity: Swift.Int? @@ -10259,6 +10326,7 @@ extension AdminSetUserMFAPreferenceInput { static func write(value: AdminSetUserMFAPreferenceInput?, to writer: SmithyJSON.Writer) throws { guard let value else { return } + try writer["EmailMfaSettings"].write(value.emailMfaSettings, with: CognitoIdentityProviderClientTypes.EmailMfaSettingsType.write(value:to:)) try writer["SMSMfaSettings"].write(value.smsMfaSettings, with: CognitoIdentityProviderClientTypes.SMSMfaSettingsType.write(value:to:)) try writer["SoftwareTokenMfaSettings"].write(value.softwareTokenMfaSettings, with: CognitoIdentityProviderClientTypes.SoftwareTokenMfaSettingsType.write(value:to:)) try writer["UserPoolId"].write(value.userPoolId) @@ -10938,6 +11006,7 @@ extension SetUserMFAPreferenceInput { static func write(value: SetUserMFAPreferenceInput?, to writer: SmithyJSON.Writer) throws { guard let value else { return } try writer["AccessToken"].write(value.accessToken) + try writer["EmailMfaSettings"].write(value.emailMfaSettings, with: CognitoIdentityProviderClientTypes.EmailMfaSettingsType.write(value:to:)) try writer["SMSMfaSettings"].write(value.smsMfaSettings, with: CognitoIdentityProviderClientTypes.SMSMfaSettingsType.write(value:to:)) try writer["SoftwareTokenMfaSettings"].write(value.softwareTokenMfaSettings, with: CognitoIdentityProviderClientTypes.SoftwareTokenMfaSettingsType.write(value:to:)) } @@ -10947,6 +11016,7 @@ extension SetUserPoolMfaConfigInput { static func write(value: SetUserPoolMfaConfigInput?, to writer: SmithyJSON.Writer) throws { guard let value else { return } + try writer["EmailMfaConfiguration"].write(value.emailMfaConfiguration, with: CognitoIdentityProviderClientTypes.EmailMfaConfigType.write(value:to:)) try writer["MfaConfiguration"].write(value.mfaConfiguration) try writer["SmsMfaConfiguration"].write(value.smsMfaConfiguration, with: CognitoIdentityProviderClientTypes.SmsMfaConfigType.write(value:to:)) try writer["SoftwareTokenMfaConfiguration"].write(value.softwareTokenMfaConfiguration, with: CognitoIdentityProviderClientTypes.SoftwareTokenMfaConfigType.write(value:to:)) @@ -11823,6 +11893,7 @@ extension GetUserPoolMfaConfigOutput { let responseReader = try SmithyJSON.Reader.from(data: data) let reader = responseReader var value = GetUserPoolMfaConfigOutput() + value.emailMfaConfiguration = try reader["EmailMfaConfiguration"].readIfPresent(with: CognitoIdentityProviderClientTypes.EmailMfaConfigType.read(from:)) value.mfaConfiguration = try reader["MfaConfiguration"].readIfPresent() value.smsMfaConfiguration = try reader["SmsMfaConfiguration"].readIfPresent(with: CognitoIdentityProviderClientTypes.SmsMfaConfigType.read(from:)) value.softwareTokenMfaConfiguration = try reader["SoftwareTokenMfaConfiguration"].readIfPresent(with: CognitoIdentityProviderClientTypes.SoftwareTokenMfaConfigType.read(from:)) @@ -12065,6 +12136,7 @@ extension SetUserPoolMfaConfigOutput { let responseReader = try SmithyJSON.Reader.from(data: data) let reader = responseReader var value = SetUserPoolMfaConfigOutput() + value.emailMfaConfiguration = try reader["EmailMfaConfiguration"].readIfPresent(with: CognitoIdentityProviderClientTypes.EmailMfaConfigType.read(from:)) value.mfaConfiguration = try reader["MfaConfiguration"].readIfPresent() value.smsMfaConfiguration = try reader["SmsMfaConfiguration"].readIfPresent(with: CognitoIdentityProviderClientTypes.SmsMfaConfigType.read(from:)) value.softwareTokenMfaConfiguration = try reader["SoftwareTokenMfaConfiguration"].readIfPresent(with: CognitoIdentityProviderClientTypes.SoftwareTokenMfaConfigType.read(from:)) @@ -12498,6 +12570,7 @@ enum AdminInitiateAuthOutputError { if let error = baseError.customError() { return error } switch baseError.code { case "InternalErrorException": return try InternalErrorException.makeError(baseError: baseError) + case "InvalidEmailRoleAccessPolicyException": return try InvalidEmailRoleAccessPolicyException.makeError(baseError: baseError) case "InvalidLambdaResponseException": return try InvalidLambdaResponseException.makeError(baseError: baseError) case "InvalidParameterException": return try InvalidParameterException.makeError(baseError: baseError) case "InvalidSmsRoleAccessPolicyException": return try InvalidSmsRoleAccessPolicyException.makeError(baseError: baseError) @@ -12653,6 +12726,7 @@ enum AdminRespondToAuthChallengeOutputError { case "CodeMismatchException": return try CodeMismatchException.makeError(baseError: baseError) case "ExpiredCodeException": return try ExpiredCodeException.makeError(baseError: baseError) case "InternalErrorException": return try InternalErrorException.makeError(baseError: baseError) + case "InvalidEmailRoleAccessPolicyException": return try InvalidEmailRoleAccessPolicyException.makeError(baseError: baseError) case "InvalidLambdaResponseException": return try InvalidLambdaResponseException.makeError(baseError: baseError) case "InvalidParameterException": return try InvalidParameterException.makeError(baseError: baseError) case "InvalidPasswordException": return try InvalidPasswordException.makeError(baseError: baseError) @@ -13651,6 +13725,7 @@ enum InitiateAuthOutputError { switch baseError.code { case "ForbiddenException": return try ForbiddenException.makeError(baseError: baseError) case "InternalErrorException": return try InternalErrorException.makeError(baseError: baseError) + case "InvalidEmailRoleAccessPolicyException": return try InvalidEmailRoleAccessPolicyException.makeError(baseError: baseError) case "InvalidLambdaResponseException": return try InvalidLambdaResponseException.makeError(baseError: baseError) case "InvalidParameterException": return try InvalidParameterException.makeError(baseError: baseError) case "InvalidSmsRoleAccessPolicyException": return try InvalidSmsRoleAccessPolicyException.makeError(baseError: baseError) @@ -13894,6 +13969,7 @@ enum RespondToAuthChallengeOutputError { case "ExpiredCodeException": return try ExpiredCodeException.makeError(baseError: baseError) case "ForbiddenException": return try ForbiddenException.makeError(baseError: baseError) case "InternalErrorException": return try InternalErrorException.makeError(baseError: baseError) + case "InvalidEmailRoleAccessPolicyException": return try InvalidEmailRoleAccessPolicyException.makeError(baseError: baseError) case "InvalidLambdaResponseException": return try InvalidLambdaResponseException.makeError(baseError: baseError) case "InvalidParameterException": return try InvalidParameterException.makeError(baseError: baseError) case "InvalidPasswordException": return try InvalidPasswordException.makeError(baseError: baseError) @@ -14691,11 +14767,11 @@ extension UserNotConfirmedException { } } -extension MFAMethodNotFoundException { +extension InvalidEmailRoleAccessPolicyException { - static func makeError(baseError: AWSClientRuntime.AWSJSONError) throws -> MFAMethodNotFoundException { + static func makeError(baseError: AWSClientRuntime.AWSJSONError) throws -> InvalidEmailRoleAccessPolicyException { let reader = baseError.errorBodyReader - var value = MFAMethodNotFoundException() + var value = InvalidEmailRoleAccessPolicyException() value.properties.message = try reader["message"].readIfPresent() value.httpResponse = baseError.httpResponse value.requestID = baseError.requestID @@ -14704,11 +14780,11 @@ extension MFAMethodNotFoundException { } } -extension PasswordResetRequiredException { +extension MFAMethodNotFoundException { - static func makeError(baseError: AWSClientRuntime.AWSJSONError) throws -> PasswordResetRequiredException { + static func makeError(baseError: AWSClientRuntime.AWSJSONError) throws -> MFAMethodNotFoundException { let reader = baseError.errorBodyReader - var value = PasswordResetRequiredException() + var value = MFAMethodNotFoundException() value.properties.message = try reader["message"].readIfPresent() value.httpResponse = baseError.httpResponse value.requestID = baseError.requestID @@ -14717,11 +14793,11 @@ extension PasswordResetRequiredException { } } -extension UserPoolAddOnNotEnabledException { +extension PasswordResetRequiredException { - static func makeError(baseError: AWSClientRuntime.AWSJSONError) throws -> UserPoolAddOnNotEnabledException { + static func makeError(baseError: AWSClientRuntime.AWSJSONError) throws -> PasswordResetRequiredException { let reader = baseError.errorBodyReader - var value = UserPoolAddOnNotEnabledException() + var value = PasswordResetRequiredException() value.properties.message = try reader["message"].readIfPresent() value.httpResponse = baseError.httpResponse value.requestID = baseError.requestID @@ -14730,11 +14806,11 @@ extension UserPoolAddOnNotEnabledException { } } -extension InvalidEmailRoleAccessPolicyException { +extension UserPoolAddOnNotEnabledException { - static func makeError(baseError: AWSClientRuntime.AWSJSONError) throws -> InvalidEmailRoleAccessPolicyException { + static func makeError(baseError: AWSClientRuntime.AWSJSONError) throws -> UserPoolAddOnNotEnabledException { let reader = baseError.errorBodyReader - var value = InvalidEmailRoleAccessPolicyException() + var value = UserPoolAddOnNotEnabledException() value.properties.message = try reader["message"].readIfPresent() value.httpResponse = baseError.httpResponse value.requestID = baseError.requestID @@ -16053,6 +16129,23 @@ extension CognitoIdentityProviderClientTypes.SoftwareTokenMfaConfigType { } } +extension CognitoIdentityProviderClientTypes.EmailMfaConfigType { + + static func write(value: CognitoIdentityProviderClientTypes.EmailMfaConfigType?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["Message"].write(value.message) + try writer["Subject"].write(value.subject) + } + + static func read(from reader: SmithyJSON.Reader) throws -> CognitoIdentityProviderClientTypes.EmailMfaConfigType { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = CognitoIdentityProviderClientTypes.EmailMfaConfigType() + value.message = try reader["Message"].readIfPresent() + value.subject = try reader["Subject"].readIfPresent() + return value + } +} + extension CognitoIdentityProviderClientTypes.ProviderDescription { static func read(from reader: SmithyJSON.Reader) throws -> CognitoIdentityProviderClientTypes.ProviderDescription { @@ -16150,6 +16243,15 @@ extension CognitoIdentityProviderClientTypes.SoftwareTokenMfaSettingsType { } } +extension CognitoIdentityProviderClientTypes.EmailMfaSettingsType { + + static func write(value: CognitoIdentityProviderClientTypes.EmailMfaSettingsType?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["Enabled"].write(value.enabled) + try writer["PreferredMfa"].write(value.preferredMfa) + } +} + extension CognitoIdentityProviderClientTypes.DeviceSecretVerifierConfigType { static func write(value: CognitoIdentityProviderClientTypes.DeviceSecretVerifierConfigType?, to writer: SmithyJSON.Writer) throws { diff --git a/Sources/Services/AWSEMR/Sources/AWSEMR/Models.swift b/Sources/Services/AWSEMR/Sources/AWSEMR/Models.swift index a9b6483e1f0..c40bf0c17cb 100644 --- a/Sources/Services/AWSEMR/Sources/AWSEMR/Models.swift +++ b/Sources/Services/AWSEMR/Sources/AWSEMR/Models.swift @@ -516,11 +516,11 @@ extension EMRClientTypes { } extension EMRClientTypes { - /// The launch specification for Spot Instances in the fleet, which determines the defined duration, provisioning timeout behavior, and allocation strategy. The instance fleet configuration is available only in Amazon EMR releases 4.8.0 and later, excluding 5.0.x versions. On-Demand and Spot instance allocation strategies are available in Amazon EMR releases 5.12.1 and later. + /// The launch specification for On-Demand and Spot Instances in the fleet. The instance fleet configuration is available only in Amazon EMR releases 4.8.0 and later, excluding 5.0.x versions. On-Demand and Spot instance allocation strategies are available in Amazon EMR releases 5.12.1 and later. public struct InstanceFleetProvisioningSpecifications { - /// The launch specification for On-Demand Instances in the instance fleet, which determines the allocation strategy. The instance fleet configuration is available only in Amazon EMR releases 4.8.0 and later, excluding 5.0.x versions. On-Demand Instances allocation strategy is available in Amazon EMR releases 5.12.1 and later. + /// The launch specification for On-Demand Instances in the instance fleet, which determines the allocation strategy and capacity reservation options. The instance fleet configuration is available only in Amazon EMR releases 4.8.0 and later, excluding 5.0.x versions. On-Demand Instances allocation strategy is available in Amazon EMR releases 5.12.1 and later. public var onDemandSpecification: EMRClientTypes.OnDemandProvisioningSpecification? - /// The launch specification for Spot instances in the fleet, which determines the defined duration, provisioning timeout behavior, and allocation strategy. + /// The launch specification for Spot instances in the fleet, which determines the allocation strategy, defined duration, and provisioning timeout behavior. public var spotSpecification: EMRClientTypes.SpotProvisioningSpecification? public init( @@ -538,14 +538,21 @@ extension EMRClientTypes { extension EMRClientTypes { /// The resize specification for On-Demand Instances in the instance fleet, which contains the resize timeout period. public struct OnDemandResizingSpecification { + /// Specifies the allocation strategy to use to launch On-Demand instances during a resize. The default is lowest-price. + public var allocationStrategy: EMRClientTypes.OnDemandProvisioningAllocationStrategy? + /// Describes the strategy for using unused Capacity Reservations for fulfilling On-Demand capacity. + public var capacityReservationOptions: EMRClientTypes.OnDemandCapacityReservationOptions? /// On-Demand resize timeout in minutes. If On-Demand Instances are not provisioned within this time, the resize workflow stops. The minimum value is 5 minutes, and the maximum value is 10,080 minutes (7 days). The timeout applies to all resize workflows on the Instance Fleet. The resize could be triggered by Amazon EMR Managed Scaling or by the customer (via Amazon EMR Console, Amazon EMR CLI modify-instance-fleet or Amazon EMR SDK ModifyInstanceFleet API) or by Amazon EMR due to Amazon EC2 Spot Reclamation. - /// This member is required. public var timeoutDurationMinutes: Swift.Int? public init( + allocationStrategy: EMRClientTypes.OnDemandProvisioningAllocationStrategy? = nil, + capacityReservationOptions: EMRClientTypes.OnDemandCapacityReservationOptions? = nil, timeoutDurationMinutes: Swift.Int? = nil ) { + self.allocationStrategy = allocationStrategy + self.capacityReservationOptions = capacityReservationOptions self.timeoutDurationMinutes = timeoutDurationMinutes } } @@ -555,14 +562,17 @@ extension EMRClientTypes { extension EMRClientTypes { /// The resize specification for Spot Instances in the instance fleet, which contains the resize timeout period. public struct SpotResizingSpecification { + /// Specifies the allocation strategy to use to launch Spot instances during a resize. If you run Amazon EMR releases 6.9.0 or higher, the default is price-capacity-optimized. If you run Amazon EMR releases 6.8.0 or lower, the default is capacity-optimized. + public var allocationStrategy: EMRClientTypes.SpotProvisioningAllocationStrategy? /// Spot resize timeout in minutes. If Spot Instances are not provisioned within this time, the resize workflow will stop provisioning of Spot instances. Minimum value is 5 minutes and maximum value is 10,080 minutes (7 days). The timeout applies to all resize workflows on the Instance Fleet. The resize could be triggered by Amazon EMR Managed Scaling or by the customer (via Amazon EMR Console, Amazon EMR CLI modify-instance-fleet or Amazon EMR SDK ModifyInstanceFleet API) or by Amazon EMR due to Amazon EC2 Spot Reclamation. - /// This member is required. public var timeoutDurationMinutes: Swift.Int? public init( + allocationStrategy: EMRClientTypes.SpotProvisioningAllocationStrategy? = nil, timeoutDurationMinutes: Swift.Int? = nil ) { + self.allocationStrategy = allocationStrategy self.timeoutDurationMinutes = timeoutDurationMinutes } } @@ -572,9 +582,9 @@ extension EMRClientTypes { extension EMRClientTypes { /// The resize specification for On-Demand and Spot Instances in the fleet. public struct InstanceFleetResizingSpecifications { - /// The resize specification for On-Demand Instances in the instance fleet, which contains the resize timeout period. + /// The resize specification for On-Demand Instances in the instance fleet, which contains the allocation strategy, capacity reservation options, and the resize timeout period. public var onDemandResizeSpecification: EMRClientTypes.OnDemandResizingSpecification? - /// The resize specification for Spot Instances in the instance fleet, which contains the resize timeout period. + /// The resize specification for Spot Instances in the instance fleet, which contains the allocation strategy and the resize timeout period. public var spotResizeSpecification: EMRClientTypes.SpotResizingSpecification? public init( @@ -5422,53 +5432,6 @@ public struct ModifyClusterOutput { } } -extension EMRClientTypes { - /// Configuration parameters for an instance fleet modification request. The instance fleet configuration is available only in Amazon EMR releases 4.8.0 and later, excluding 5.0.x versions. - public struct InstanceFleetModifyConfig { - /// A unique identifier for the instance fleet. - /// This member is required. - public var instanceFleetId: Swift.String? - /// The resize specification for the instance fleet. - public var resizeSpecifications: EMRClientTypes.InstanceFleetResizingSpecifications? - /// The target capacity of On-Demand units for the instance fleet. For more information see [InstanceFleetConfig$TargetOnDemandCapacity]. - public var targetOnDemandCapacity: Swift.Int? - /// The target capacity of Spot units for the instance fleet. For more information, see [InstanceFleetConfig$TargetSpotCapacity]. - public var targetSpotCapacity: Swift.Int? - - public init( - instanceFleetId: Swift.String? = nil, - resizeSpecifications: EMRClientTypes.InstanceFleetResizingSpecifications? = nil, - targetOnDemandCapacity: Swift.Int? = nil, - targetSpotCapacity: Swift.Int? = nil - ) - { - self.instanceFleetId = instanceFleetId - self.resizeSpecifications = resizeSpecifications - self.targetOnDemandCapacity = targetOnDemandCapacity - self.targetSpotCapacity = targetSpotCapacity - } - } - -} - -public struct ModifyInstanceFleetInput { - /// The unique identifier of the cluster. - /// This member is required. - public var clusterId: Swift.String? - /// The configuration parameters of the instance fleet. - /// This member is required. - public var instanceFleet: EMRClientTypes.InstanceFleetModifyConfig? - - public init( - clusterId: Swift.String? = nil, - instanceFleet: EMRClientTypes.InstanceFleetModifyConfig? = nil - ) - { - self.clusterId = clusterId - self.instanceFleet = instanceFleet - } -} - extension EMRClientTypes { public enum ReconfigurationType: Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Hashable { @@ -6522,6 +6485,39 @@ extension EMRClientTypes { } +extension EMRClientTypes { + /// Configuration parameters for an instance fleet modification request. The instance fleet configuration is available only in Amazon EMR releases 4.8.0 and later, excluding 5.0.x versions. + public struct InstanceFleetModifyConfig { + /// A unique identifier for the instance fleet. + /// This member is required. + public var instanceFleetId: Swift.String? + /// An array of InstanceTypeConfig objects that specify how Amazon EMR provisions Amazon EC2 instances when it fulfills On-Demand and Spot capacities. For more information, see [InstanceTypeConfig](https://docs.aws.amazon.com/emr/latest/APIReference/API_InstanceTypeConfig.html). + public var instanceTypeConfigs: [EMRClientTypes.InstanceTypeConfig]? + /// The resize specification for the instance fleet. + public var resizeSpecifications: EMRClientTypes.InstanceFleetResizingSpecifications? + /// The target capacity of On-Demand units for the instance fleet. For more information see [InstanceFleetConfig$TargetOnDemandCapacity]. + public var targetOnDemandCapacity: Swift.Int? + /// The target capacity of Spot units for the instance fleet. For more information, see [InstanceFleetConfig$TargetSpotCapacity]. + public var targetSpotCapacity: Swift.Int? + + public init( + instanceFleetId: Swift.String? = nil, + instanceTypeConfigs: [EMRClientTypes.InstanceTypeConfig]? = nil, + resizeSpecifications: EMRClientTypes.InstanceFleetResizingSpecifications? = nil, + targetOnDemandCapacity: Swift.Int? = nil, + targetSpotCapacity: Swift.Int? = nil + ) + { + self.instanceFleetId = instanceFleetId + self.instanceTypeConfigs = instanceTypeConfigs + self.resizeSpecifications = resizeSpecifications + self.targetOnDemandCapacity = targetOnDemandCapacity + self.targetSpotCapacity = targetSpotCapacity + } + } + +} + /// Input to an AddInstanceGroups call. public struct AddInstanceGroupsInput { /// Instance groups to add. @@ -6660,6 +6656,24 @@ public struct AddInstanceFleetInput { } } +public struct ModifyInstanceFleetInput { + /// The unique identifier of the cluster. + /// This member is required. + public var clusterId: Swift.String? + /// The configuration parameters of the instance fleet. + /// This member is required. + public var instanceFleet: EMRClientTypes.InstanceFleetModifyConfig? + + public init( + clusterId: Swift.String? = nil, + instanceFleet: EMRClientTypes.InstanceFleetModifyConfig? = nil + ) + { + self.clusterId = clusterId + self.instanceFleet = instanceFleet + } +} + public struct ListInstanceFleetsOutput { /// The list of instance fleets for the cluster and given filters. public var instanceFleets: [EMRClientTypes.InstanceFleet]? @@ -10202,13 +10216,36 @@ extension EMRClientTypes.OnDemandResizingSpecification { static func write(value: EMRClientTypes.OnDemandResizingSpecification?, to writer: SmithyJSON.Writer) throws { guard let value else { return } + try writer["AllocationStrategy"].write(value.allocationStrategy) + try writer["CapacityReservationOptions"].write(value.capacityReservationOptions, with: EMRClientTypes.OnDemandCapacityReservationOptions.write(value:to:)) try writer["TimeoutDurationMinutes"].write(value.timeoutDurationMinutes) } static func read(from reader: SmithyJSON.Reader) throws -> EMRClientTypes.OnDemandResizingSpecification { guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } var value = EMRClientTypes.OnDemandResizingSpecification() - value.timeoutDurationMinutes = try reader["TimeoutDurationMinutes"].readIfPresent() ?? 0 + value.timeoutDurationMinutes = try reader["TimeoutDurationMinutes"].readIfPresent() + value.allocationStrategy = try reader["AllocationStrategy"].readIfPresent() + value.capacityReservationOptions = try reader["CapacityReservationOptions"].readIfPresent(with: EMRClientTypes.OnDemandCapacityReservationOptions.read(from:)) + return value + } +} + +extension EMRClientTypes.OnDemandCapacityReservationOptions { + + static func write(value: EMRClientTypes.OnDemandCapacityReservationOptions?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["CapacityReservationPreference"].write(value.capacityReservationPreference) + try writer["CapacityReservationResourceGroupArn"].write(value.capacityReservationResourceGroupArn) + try writer["UsageStrategy"].write(value.usageStrategy) + } + + static func read(from reader: SmithyJSON.Reader) throws -> EMRClientTypes.OnDemandCapacityReservationOptions { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = EMRClientTypes.OnDemandCapacityReservationOptions() + value.usageStrategy = try reader["UsageStrategy"].readIfPresent() + value.capacityReservationPreference = try reader["CapacityReservationPreference"].readIfPresent() + value.capacityReservationResourceGroupArn = try reader["CapacityReservationResourceGroupArn"].readIfPresent() return value } } @@ -10217,13 +10254,15 @@ extension EMRClientTypes.SpotResizingSpecification { static func write(value: EMRClientTypes.SpotResizingSpecification?, to writer: SmithyJSON.Writer) throws { guard let value else { return } + try writer["AllocationStrategy"].write(value.allocationStrategy) try writer["TimeoutDurationMinutes"].write(value.timeoutDurationMinutes) } static func read(from reader: SmithyJSON.Reader) throws -> EMRClientTypes.SpotResizingSpecification { guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } var value = EMRClientTypes.SpotResizingSpecification() - value.timeoutDurationMinutes = try reader["TimeoutDurationMinutes"].readIfPresent() ?? 0 + value.timeoutDurationMinutes = try reader["TimeoutDurationMinutes"].readIfPresent() + value.allocationStrategy = try reader["AllocationStrategy"].readIfPresent() return value } } @@ -10262,25 +10301,6 @@ extension EMRClientTypes.OnDemandProvisioningSpecification { } } -extension EMRClientTypes.OnDemandCapacityReservationOptions { - - static func write(value: EMRClientTypes.OnDemandCapacityReservationOptions?, to writer: SmithyJSON.Writer) throws { - guard let value else { return } - try writer["CapacityReservationPreference"].write(value.capacityReservationPreference) - try writer["CapacityReservationResourceGroupArn"].write(value.capacityReservationResourceGroupArn) - try writer["UsageStrategy"].write(value.usageStrategy) - } - - static func read(from reader: SmithyJSON.Reader) throws -> EMRClientTypes.OnDemandCapacityReservationOptions { - guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } - var value = EMRClientTypes.OnDemandCapacityReservationOptions() - value.usageStrategy = try reader["UsageStrategy"].readIfPresent() - value.capacityReservationPreference = try reader["CapacityReservationPreference"].readIfPresent() - value.capacityReservationResourceGroupArn = try reader["CapacityReservationResourceGroupArn"].readIfPresent() - return value - } -} - extension EMRClientTypes.SpotProvisioningSpecification { static func write(value: EMRClientTypes.SpotProvisioningSpecification?, to writer: SmithyJSON.Writer) throws { @@ -10903,6 +10923,7 @@ extension EMRClientTypes.InstanceFleetModifyConfig { static func write(value: EMRClientTypes.InstanceFleetModifyConfig?, to writer: SmithyJSON.Writer) throws { guard let value else { return } try writer["InstanceFleetId"].write(value.instanceFleetId) + try writer["InstanceTypeConfigs"].writeList(value.instanceTypeConfigs, memberWritingClosure: EMRClientTypes.InstanceTypeConfig.write(value:to:), memberNodeInfo: "member", isFlattened: false) try writer["ResizeSpecifications"].write(value.resizeSpecifications, with: EMRClientTypes.InstanceFleetResizingSpecifications.write(value:to:)) try writer["TargetOnDemandCapacity"].write(value.targetOnDemandCapacity) try writer["TargetSpotCapacity"].write(value.targetSpotCapacity) diff --git a/Sources/Services/AWSElasticLoadBalancingv2/Sources/AWSElasticLoadBalancingv2/Waiters.swift b/Sources/Services/AWSElasticLoadBalancingv2/Sources/AWSElasticLoadBalancingv2/Waiters.swift index d904c456f8f..85ea076d1aa 100644 --- a/Sources/Services/AWSElasticLoadBalancingv2/Sources/AWSElasticLoadBalancingv2/Waiters.swift +++ b/Sources/Services/AWSElasticLoadBalancingv2/Sources/AWSElasticLoadBalancingv2/Waiters.swift @@ -46,7 +46,7 @@ extension ElasticLoadBalancingv2Client { }), .init(state: .retry, matcher: { (input: DescribeLoadBalancersInput, result: Swift.Result) -> Bool in guard case .failure(let error) = result else { return false } - return (error as? ClientRuntime.ServiceError)?.typeName == "LoadBalancerNotFoundException" + return (error as? ClientRuntime.ServiceError)?.typeName == "LoadBalancerNotFound" }), ] return try SmithyWaitersAPI.WaiterConfiguration(acceptors: acceptors, minDelay: 15.0, maxDelay: 120.0) @@ -78,7 +78,7 @@ extension ElasticLoadBalancingv2Client { }), .init(state: .retry, matcher: { (input: DescribeLoadBalancersInput, result: Swift.Result) -> Bool in guard case .failure(let error) = result else { return false } - return (error as? ClientRuntime.ServiceError)?.typeName == "LoadBalancerNotFoundException" + return (error as? ClientRuntime.ServiceError)?.typeName == "LoadBalancerNotFound" }), ] return try SmithyWaitersAPI.WaiterConfiguration(acceptors: acceptors, minDelay: 15.0, maxDelay: 120.0) @@ -117,7 +117,7 @@ extension ElasticLoadBalancingv2Client { }), .init(state: .success, matcher: { (input: DescribeLoadBalancersInput, result: Swift.Result) -> Bool in guard case .failure(let error) = result else { return false } - return (error as? ClientRuntime.ServiceError)?.typeName == "LoadBalancerNotFoundException" + return (error as? ClientRuntime.ServiceError)?.typeName == "LoadBalancerNotFound" }), ] return try SmithyWaitersAPI.WaiterConfiguration(acceptors: acceptors, minDelay: 15.0, maxDelay: 120.0) diff --git a/Sources/Services/AWSGlue/Sources/AWSGlue/GlueClient.swift b/Sources/Services/AWSGlue/Sources/AWSGlue/GlueClient.swift index 98427b90842..ca4d1eebc0e 100644 --- a/Sources/Services/AWSGlue/Sources/AWSGlue/GlueClient.swift +++ b/Sources/Services/AWSGlue/Sources/AWSGlue/GlueClient.swift @@ -1079,7 +1079,11 @@ extension GlueClient { /// - Throws: One of the exceptions listed below __Possible Exceptions__. /// /// __Possible Exceptions:__ + /// - `AccessDeniedException` : Access to a resource was denied. + /// - `EntityNotFoundException` : A specified entity does not exist /// - `InternalServiceException` : An internal service error occurred. + /// - `InvalidInputException` : The input provided was not valid. + /// - `ThrottlingException` : The throttling threshhold was exceeded. public func batchGetTableOptimizer(input: BatchGetTableOptimizerInput) async throws -> BatchGetTableOptimizerOutput { let context = Smithy.ContextBuilder() .withMethod(value: .post) @@ -3236,6 +3240,8 @@ extension GlueClient { /// - `EntityNotFoundException` : A specified entity does not exist /// - `InternalServiceException` : An internal service error occurred. /// - `InvalidInputException` : The input provided was not valid. + /// - `ThrottlingException` : The throttling threshhold was exceeded. + /// - `ValidationException` : A value could not be validated. public func createTableOptimizer(input: CreateTableOptimizerInput) async throws -> CreateTableOptimizerOutput { let context = Smithy.ContextBuilder() .withMethod(value: .post) @@ -5150,6 +5156,7 @@ extension GlueClient { /// - `EntityNotFoundException` : A specified entity does not exist /// - `InternalServiceException` : An internal service error occurred. /// - `InvalidInputException` : The input provided was not valid. + /// - `ThrottlingException` : The throttling threshhold was exceeded. public func deleteTableOptimizer(input: DeleteTableOptimizerInput) async throws -> DeleteTableOptimizerOutput { let context = Smithy.ContextBuilder() .withMethod(value: .post) @@ -9535,6 +9542,7 @@ extension GlueClient { /// - `EntityNotFoundException` : A specified entity does not exist /// - `InternalServiceException` : An internal service error occurred. /// - `InvalidInputException` : The input provided was not valid. + /// - `ThrottlingException` : The throttling threshhold was exceeded. public func getTableOptimizer(input: GetTableOptimizerInput) async throws -> GetTableOptimizerOutput { let context = Smithy.ContextBuilder() .withMethod(value: .post) @@ -12248,6 +12256,8 @@ extension GlueClient { /// - `EntityNotFoundException` : A specified entity does not exist /// - `InternalServiceException` : An internal service error occurred. /// - `InvalidInputException` : The input provided was not valid. + /// - `ThrottlingException` : The throttling threshhold was exceeded. + /// - `ValidationException` : A value could not be validated. public func listTableOptimizerRuns(input: ListTableOptimizerRunsInput) async throws -> ListTableOptimizerRunsOutput { let context = Smithy.ContextBuilder() .withMethod(value: .post) @@ -16319,9 +16329,12 @@ extension GlueClient { /// /// __Possible Exceptions:__ /// - `AccessDeniedException` : Access to a resource was denied. + /// - `ConcurrentModificationException` : Two processes are trying to modify a resource simultaneously. /// - `EntityNotFoundException` : A specified entity does not exist /// - `InternalServiceException` : An internal service error occurred. /// - `InvalidInputException` : The input provided was not valid. + /// - `ThrottlingException` : The throttling threshhold was exceeded. + /// - `ValidationException` : A value could not be validated. public func updateTableOptimizer(input: UpdateTableOptimizerInput) async throws -> UpdateTableOptimizerOutput { let context = Smithy.ContextBuilder() .withMethod(value: .post) diff --git a/Sources/Services/AWSGlue/Sources/AWSGlue/Models.swift b/Sources/Services/AWSGlue/Sources/AWSGlue/Models.swift index 0643463fd5e..c09879ac114 100644 --- a/Sources/Services/AWSGlue/Sources/AWSGlue/Models.swift +++ b/Sources/Services/AWSGlue/Sources/AWSGlue/Models.swift @@ -7736,15 +7736,44 @@ public struct BatchGetPartitionOutput { } } +/// The throttling threshhold was exceeded. +public struct ThrottlingException: ClientRuntime.ModeledError, AWSClientRuntime.AWSServiceError, ClientRuntime.HTTPError, Swift.Error { + + public struct Properties { + /// A message describing the problem. + public internal(set) var message: Swift.String? = nil + } + + public internal(set) var properties = Properties() + public static var typeName: Swift.String { "ThrottlingException" } + public static var fault: ClientRuntime.ErrorFault { .client } + public static var isRetryable: Swift.Bool { false } + public static var isThrottling: Swift.Bool { false } + public internal(set) var httpResponse = SmithyHTTPAPI.HTTPResponse() + public internal(set) var message: Swift.String? + public internal(set) var requestID: Swift.String? + + public init( + message: Swift.String? = nil + ) + { + self.properties.message = message + } +} + extension GlueClientTypes { public enum TableOptimizerType: Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Hashable { case compaction + case orphanFileDeletion + case retention case sdkUnknown(Swift.String) public static var allCases: [TableOptimizerType] { return [ - .compaction + .compaction, + .orphanFileDeletion, + .retention ] } @@ -7756,6 +7785,8 @@ extension GlueClientTypes { public var rawValue: Swift.String { switch self { case .compaction: return "compaction" + case .orphanFileDeletion: return "orphan_file_deletion" + case .retention: return "retention" case let .sdkUnknown(s): return s } } @@ -7835,26 +7866,154 @@ extension GlueClientTypes { } +extension GlueClientTypes { + /// The configuration for an Iceberg orphan file deletion optimizer. + public struct IcebergOrphanFileDeletionConfiguration { + /// Specifies a directory in which to look for files (defaults to the table's location). You may choose a sub-directory rather than the top-level table location. + public var location: Swift.String? + /// The number of days that orphan files should be retained before file deletion. If an input is not provided, the default value 3 will be used. + public var orphanFileRetentionPeriodInDays: Swift.Int? + + public init( + location: Swift.String? = nil, + orphanFileRetentionPeriodInDays: Swift.Int? = nil + ) + { + self.location = location + self.orphanFileRetentionPeriodInDays = orphanFileRetentionPeriodInDays + } + } + +} + +extension GlueClientTypes { + /// The configuration for an orphan file deletion optimizer. + public struct OrphanFileDeletionConfiguration { + /// The configuration for an Iceberg orphan file deletion optimizer. + public var icebergConfiguration: GlueClientTypes.IcebergOrphanFileDeletionConfiguration? + + public init( + icebergConfiguration: GlueClientTypes.IcebergOrphanFileDeletionConfiguration? = nil + ) + { + self.icebergConfiguration = icebergConfiguration + } + } + +} + +extension GlueClientTypes { + /// The configuration for an Iceberg snapshot retention optimizer. + public struct IcebergRetentionConfiguration { + /// If set to false, snapshots are only deleted from table metadata, and the underlying data and metadata files are not deleted. + public var cleanExpiredFiles: Swift.Bool? + /// The number of Iceberg snapshots to retain within the retention period. If an input is not provided, the corresponding Iceberg table configuration field will be used or if not present, the default value 1 will be used. + public var numberOfSnapshotsToRetain: Swift.Int? + /// The number of days to retain the Iceberg snapshots. If an input is not provided, the corresponding Iceberg table configuration field will be used or if not present, the default value 5 will be used. + public var snapshotRetentionPeriodInDays: Swift.Int? + + public init( + cleanExpiredFiles: Swift.Bool? = nil, + numberOfSnapshotsToRetain: Swift.Int? = nil, + snapshotRetentionPeriodInDays: Swift.Int? = nil + ) + { + self.cleanExpiredFiles = cleanExpiredFiles + self.numberOfSnapshotsToRetain = numberOfSnapshotsToRetain + self.snapshotRetentionPeriodInDays = snapshotRetentionPeriodInDays + } + } + +} + +extension GlueClientTypes { + /// The configuration for a snapshot retention optimizer. + public struct RetentionConfiguration { + /// The configuration for an Iceberg snapshot retention optimizer. + public var icebergConfiguration: GlueClientTypes.IcebergRetentionConfiguration? + + public init( + icebergConfiguration: GlueClientTypes.IcebergRetentionConfiguration? = nil + ) + { + self.icebergConfiguration = icebergConfiguration + } + } + +} + extension GlueClientTypes { /// Contains details on the configuration of a table optimizer. You pass this configuration when creating or updating a table optimizer. public struct TableOptimizerConfiguration { /// Whether table optimization is enabled. public var enabled: Swift.Bool? + /// The configuration for an orphan file deletion optimizer. + public var orphanFileDeletionConfiguration: GlueClientTypes.OrphanFileDeletionConfiguration? + /// The configuration for a snapshot retention optimizer. + public var retentionConfiguration: GlueClientTypes.RetentionConfiguration? /// A role passed by the caller which gives the service permission to update the resources associated with the optimizer on the caller's behalf. public var roleArn: Swift.String? public init( enabled: Swift.Bool? = nil, + orphanFileDeletionConfiguration: GlueClientTypes.OrphanFileDeletionConfiguration? = nil, + retentionConfiguration: GlueClientTypes.RetentionConfiguration? = nil, roleArn: Swift.String? = nil ) { self.enabled = enabled + self.orphanFileDeletionConfiguration = orphanFileDeletionConfiguration + self.retentionConfiguration = retentionConfiguration self.roleArn = roleArn } } } +extension GlueClientTypes { + /// Compaction metrics for Iceberg for the optimizer run. + public struct IcebergCompactionMetrics { + /// The duration of the job in hours. + public var jobDurationInHour: Swift.Double + /// The number of bytes removed by the compaction job run. + public var numberOfBytesCompacted: Swift.Int + /// The number of DPU hours consumed by the job. + public var numberOfDpus: Swift.Int + /// The number of files removed by the compaction job run. + public var numberOfFilesCompacted: Swift.Int + + public init( + jobDurationInHour: Swift.Double = 0.0, + numberOfBytesCompacted: Swift.Int = 0, + numberOfDpus: Swift.Int = 0, + numberOfFilesCompacted: Swift.Int = 0 + ) + { + self.jobDurationInHour = jobDurationInHour + self.numberOfBytesCompacted = numberOfBytesCompacted + self.numberOfDpus = numberOfDpus + self.numberOfFilesCompacted = numberOfFilesCompacted + } + } + +} + +extension GlueClientTypes { + /// A structure that contains compaction metrics for the optimizer run. + public struct CompactionMetrics { + /// A structure containing the Iceberg compaction metrics for the optimizer run. + public var icebergMetrics: GlueClientTypes.IcebergCompactionMetrics? + + public init( + icebergMetrics: GlueClientTypes.IcebergCompactionMetrics? = nil + ) + { + self.icebergMetrics = icebergMetrics + } + } + +} + extension GlueClientTypes { public enum TableOptimizerEventType: Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Hashable { @@ -7891,7 +8050,7 @@ extension GlueClientTypes { } extension GlueClientTypes { - /// Metrics for the optimizer run. + /// Metrics for the optimizer run. This structure is deprecated. See the individual metric members for compaction, retention, and orphan file deletion. public struct RunMetrics { /// The duration of the job in hours. public var jobDurationInHour: Swift.String? @@ -7918,32 +8077,133 @@ extension GlueClientTypes { } +extension GlueClientTypes { + /// Orphan file deletion metrics for Iceberg for the optimizer run. + public struct IcebergOrphanFileDeletionMetrics { + /// The duration of the job in hours. + public var jobDurationInHour: Swift.Double + /// The number of DPU hours consumed by the job. + public var numberOfDpus: Swift.Int + /// The number of orphan files deleted by the orphan file deletion job run. + public var numberOfOrphanFilesDeleted: Swift.Int + + public init( + jobDurationInHour: Swift.Double = 0.0, + numberOfDpus: Swift.Int = 0, + numberOfOrphanFilesDeleted: Swift.Int = 0 + ) + { + self.jobDurationInHour = jobDurationInHour + self.numberOfDpus = numberOfDpus + self.numberOfOrphanFilesDeleted = numberOfOrphanFilesDeleted + } + } + +} + +extension GlueClientTypes { + /// A structure that contains orphan file deletion metrics for the optimizer run. + public struct OrphanFileDeletionMetrics { + /// A structure containing the Iceberg orphan file deletion metrics for the optimizer run. + public var icebergMetrics: GlueClientTypes.IcebergOrphanFileDeletionMetrics? + + public init( + icebergMetrics: GlueClientTypes.IcebergOrphanFileDeletionMetrics? = nil + ) + { + self.icebergMetrics = icebergMetrics + } + } + +} + +extension GlueClientTypes { + /// Snapshot retention metrics for Iceberg for the optimizer run. + public struct IcebergRetentionMetrics { + /// The duration of the job in hours. + public var jobDurationInHour: Swift.Double + /// The number of data files deleted by the retention job run. + public var numberOfDataFilesDeleted: Swift.Int + /// The number of DPU hours consumed by the job. + public var numberOfDpus: Swift.Int + /// The number of manifest files deleted by the retention job run. + public var numberOfManifestFilesDeleted: Swift.Int + /// The number of manifest lists deleted by the retention job run. + public var numberOfManifestListsDeleted: Swift.Int + + public init( + jobDurationInHour: Swift.Double = 0.0, + numberOfDataFilesDeleted: Swift.Int = 0, + numberOfDpus: Swift.Int = 0, + numberOfManifestFilesDeleted: Swift.Int = 0, + numberOfManifestListsDeleted: Swift.Int = 0 + ) + { + self.jobDurationInHour = jobDurationInHour + self.numberOfDataFilesDeleted = numberOfDataFilesDeleted + self.numberOfDpus = numberOfDpus + self.numberOfManifestFilesDeleted = numberOfManifestFilesDeleted + self.numberOfManifestListsDeleted = numberOfManifestListsDeleted + } + } + +} + +extension GlueClientTypes { + /// A structure that contains retention metrics for the optimizer run. + public struct RetentionMetrics { + /// A structure containing the Iceberg retention metrics for the optimizer run. + public var icebergMetrics: GlueClientTypes.IcebergRetentionMetrics? + + public init( + icebergMetrics: GlueClientTypes.IcebergRetentionMetrics? = nil + ) + { + self.icebergMetrics = icebergMetrics + } + } + +} + extension GlueClientTypes { /// Contains details for a table optimizer run. public struct TableOptimizerRun { + /// A CompactionMetrics object containing metrics for the optimizer run. + public var compactionMetrics: GlueClientTypes.CompactionMetrics? /// Represents the epoch timestamp at which the compaction job ended. public var endTimestamp: Foundation.Date? /// An error that occured during the optimizer run. public var error: Swift.String? /// An event type representing the status of the table optimizer run. public var eventType: GlueClientTypes.TableOptimizerEventType? - /// A RunMetrics object containing metrics for the optimizer run. + /// A RunMetrics object containing metrics for the optimizer run. This member is deprecated. See the individual metric members for compaction, retention, and orphan file deletion. + @available(*, deprecated, message: "Metrics has been replaced by optimizer type specific metrics such as IcebergCompactionMetrics") public var metrics: GlueClientTypes.RunMetrics? + /// An OrphanFileDeletionMetrics object containing metrics for the optimizer run. + public var orphanFileDeletionMetrics: GlueClientTypes.OrphanFileDeletionMetrics? + /// A RetentionMetrics object containing metrics for the optimizer run. + public var retentionMetrics: GlueClientTypes.RetentionMetrics? /// Represents the epoch timestamp at which the compaction job was started within Lake Formation. public var startTimestamp: Foundation.Date? public init( + compactionMetrics: GlueClientTypes.CompactionMetrics? = nil, endTimestamp: Foundation.Date? = nil, error: Swift.String? = nil, eventType: GlueClientTypes.TableOptimizerEventType? = nil, metrics: GlueClientTypes.RunMetrics? = nil, + orphanFileDeletionMetrics: GlueClientTypes.OrphanFileDeletionMetrics? = nil, + retentionMetrics: GlueClientTypes.RetentionMetrics? = nil, startTimestamp: Foundation.Date? = nil ) { + self.compactionMetrics = compactionMetrics self.endTimestamp = endTimestamp self.error = error self.eventType = eventType self.metrics = metrics + self.orphanFileDeletionMetrics = orphanFileDeletionMetrics + self.retentionMetrics = retentionMetrics self.startTimestamp = startTimestamp } } @@ -7957,7 +8217,13 @@ extension GlueClientTypes { public var configuration: GlueClientTypes.TableOptimizerConfiguration? /// A TableOptimizerRun object representing the last run of the table optimizer. public var lastRun: GlueClientTypes.TableOptimizerRun? - /// The type of table optimizer. Currently, the only valid value is compaction. + /// The type of table optimizer. The valid values are: + /// + /// * compaction: for managing compaction with a table optimizer. + /// + /// * retention: for managing the retention of snapshot with a table optimizer. + /// + /// * orphan_file_deletion: for managing the deletion of orphan files with a table optimizer. public var type: GlueClientTypes.TableOptimizerType? public init( @@ -7983,7 +8249,7 @@ extension GlueClientTypes { public var databaseName: Swift.String? /// The name of the table. public var tableName: Swift.String? - /// A TableOptimizer object that contains details on the configuration and last run of a table optimzer. + /// A TableOptimizer object that contains details on the configuration and last run of a table optimizer. public var tableOptimizer: GlueClientTypes.TableOptimizer? public init( @@ -32122,7 +32388,11 @@ enum BatchGetTableOptimizerOutputError { let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) if let error = baseError.customError() { return error } switch baseError.code { + case "AccessDeniedException": return try AccessDeniedException.makeError(baseError: baseError) + case "EntityNotFoundException": return try EntityNotFoundException.makeError(baseError: baseError) case "InternalServiceException": return try InternalServiceException.makeError(baseError: baseError) + case "InvalidInputException": return try InvalidInputException.makeError(baseError: baseError) + case "ThrottlingException": return try ThrottlingException.makeError(baseError: baseError) default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) } } @@ -32655,6 +32925,8 @@ enum CreateTableOptimizerOutputError { case "EntityNotFoundException": return try EntityNotFoundException.makeError(baseError: baseError) case "InternalServiceException": return try InternalServiceException.makeError(baseError: baseError) case "InvalidInputException": return try InvalidInputException.makeError(baseError: baseError) + case "ThrottlingException": return try ThrottlingException.makeError(baseError: baseError) + case "ValidationException": return try ValidationException.makeError(baseError: baseError) default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) } } @@ -33113,6 +33385,7 @@ enum DeleteTableOptimizerOutputError { case "EntityNotFoundException": return try EntityNotFoundException.makeError(baseError: baseError) case "InternalServiceException": return try InternalServiceException.makeError(baseError: baseError) case "InvalidInputException": return try InvalidInputException.makeError(baseError: baseError) + case "ThrottlingException": return try ThrottlingException.makeError(baseError: baseError) default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) } } @@ -34132,6 +34405,7 @@ enum GetTableOptimizerOutputError { case "EntityNotFoundException": return try EntityNotFoundException.makeError(baseError: baseError) case "InternalServiceException": return try InternalServiceException.makeError(baseError: baseError) case "InvalidInputException": return try InvalidInputException.makeError(baseError: baseError) + case "ThrottlingException": return try ThrottlingException.makeError(baseError: baseError) default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) } } @@ -34765,6 +35039,8 @@ enum ListTableOptimizerRunsOutputError { case "EntityNotFoundException": return try EntityNotFoundException.makeError(baseError: baseError) case "InternalServiceException": return try InternalServiceException.makeError(baseError: baseError) case "InvalidInputException": return try InvalidInputException.makeError(baseError: baseError) + case "ThrottlingException": return try ThrottlingException.makeError(baseError: baseError) + case "ValidationException": return try ValidationException.makeError(baseError: baseError) default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) } } @@ -35750,9 +36026,12 @@ enum UpdateTableOptimizerOutputError { if let error = baseError.customError() { return error } switch baseError.code { case "AccessDeniedException": return try AccessDeniedException.makeError(baseError: baseError) + case "ConcurrentModificationException": return try ConcurrentModificationException.makeError(baseError: baseError) case "EntityNotFoundException": return try EntityNotFoundException.makeError(baseError: baseError) case "InternalServiceException": return try InternalServiceException.makeError(baseError: baseError) case "InvalidInputException": return try InvalidInputException.makeError(baseError: baseError) + case "ThrottlingException": return try ThrottlingException.makeError(baseError: baseError) + case "ValidationException": return try ValidationException.makeError(baseError: baseError) default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) } } @@ -35990,6 +36269,19 @@ extension FederationSourceException { } } +extension ThrottlingException { + + static func makeError(baseError: AWSClientRuntime.AWSJSONError) throws -> ThrottlingException { + let reader = baseError.errorBodyReader + var value = ThrottlingException() + value.properties.message = try reader["Message"].readIfPresent() + value.httpResponse = baseError.httpResponse + value.requestID = baseError.requestID + value.message = baseError.message + return value + } +} + extension IllegalSessionStateException { static func makeError(baseError: AWSClientRuntime.AWSJSONError) throws -> IllegalSessionStateException { @@ -39784,6 +40076,78 @@ extension GlueClientTypes.TableOptimizerRun { value.endTimestamp = try reader["endTimestamp"].readTimestampIfPresent(format: SmithyTimestamps.TimestampFormat.epochSeconds) value.metrics = try reader["metrics"].readIfPresent(with: GlueClientTypes.RunMetrics.read(from:)) value.error = try reader["error"].readIfPresent() + value.compactionMetrics = try reader["compactionMetrics"].readIfPresent(with: GlueClientTypes.CompactionMetrics.read(from:)) + value.retentionMetrics = try reader["retentionMetrics"].readIfPresent(with: GlueClientTypes.RetentionMetrics.read(from:)) + value.orphanFileDeletionMetrics = try reader["orphanFileDeletionMetrics"].readIfPresent(with: GlueClientTypes.OrphanFileDeletionMetrics.read(from:)) + return value + } +} + +extension GlueClientTypes.OrphanFileDeletionMetrics { + + static func read(from reader: SmithyJSON.Reader) throws -> GlueClientTypes.OrphanFileDeletionMetrics { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = GlueClientTypes.OrphanFileDeletionMetrics() + value.icebergMetrics = try reader["IcebergMetrics"].readIfPresent(with: GlueClientTypes.IcebergOrphanFileDeletionMetrics.read(from:)) + return value + } +} + +extension GlueClientTypes.IcebergOrphanFileDeletionMetrics { + + static func read(from reader: SmithyJSON.Reader) throws -> GlueClientTypes.IcebergOrphanFileDeletionMetrics { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = GlueClientTypes.IcebergOrphanFileDeletionMetrics() + value.numberOfOrphanFilesDeleted = try reader["NumberOfOrphanFilesDeleted"].readIfPresent() ?? 0 + value.numberOfDpus = try reader["NumberOfDpus"].readIfPresent() ?? 0 + value.jobDurationInHour = try reader["JobDurationInHour"].readIfPresent() ?? 0 + return value + } +} + +extension GlueClientTypes.RetentionMetrics { + + static func read(from reader: SmithyJSON.Reader) throws -> GlueClientTypes.RetentionMetrics { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = GlueClientTypes.RetentionMetrics() + value.icebergMetrics = try reader["IcebergMetrics"].readIfPresent(with: GlueClientTypes.IcebergRetentionMetrics.read(from:)) + return value + } +} + +extension GlueClientTypes.IcebergRetentionMetrics { + + static func read(from reader: SmithyJSON.Reader) throws -> GlueClientTypes.IcebergRetentionMetrics { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = GlueClientTypes.IcebergRetentionMetrics() + value.numberOfDataFilesDeleted = try reader["NumberOfDataFilesDeleted"].readIfPresent() ?? 0 + value.numberOfManifestFilesDeleted = try reader["NumberOfManifestFilesDeleted"].readIfPresent() ?? 0 + value.numberOfManifestListsDeleted = try reader["NumberOfManifestListsDeleted"].readIfPresent() ?? 0 + value.numberOfDpus = try reader["NumberOfDpus"].readIfPresent() ?? 0 + value.jobDurationInHour = try reader["JobDurationInHour"].readIfPresent() ?? 0 + return value + } +} + +extension GlueClientTypes.CompactionMetrics { + + static func read(from reader: SmithyJSON.Reader) throws -> GlueClientTypes.CompactionMetrics { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = GlueClientTypes.CompactionMetrics() + value.icebergMetrics = try reader["IcebergMetrics"].readIfPresent(with: GlueClientTypes.IcebergCompactionMetrics.read(from:)) + return value + } +} + +extension GlueClientTypes.IcebergCompactionMetrics { + + static func read(from reader: SmithyJSON.Reader) throws -> GlueClientTypes.IcebergCompactionMetrics { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = GlueClientTypes.IcebergCompactionMetrics() + value.numberOfBytesCompacted = try reader["NumberOfBytesCompacted"].readIfPresent() ?? 0 + value.numberOfFilesCompacted = try reader["NumberOfFilesCompacted"].readIfPresent() ?? 0 + value.numberOfDpus = try reader["NumberOfDpus"].readIfPresent() ?? 0 + value.jobDurationInHour = try reader["JobDurationInHour"].readIfPresent() ?? 0 return value } } @@ -39806,6 +40170,8 @@ extension GlueClientTypes.TableOptimizerConfiguration { static func write(value: GlueClientTypes.TableOptimizerConfiguration?, to writer: SmithyJSON.Writer) throws { guard let value else { return } try writer["enabled"].write(value.enabled) + try writer["orphanFileDeletionConfiguration"].write(value.orphanFileDeletionConfiguration, with: GlueClientTypes.OrphanFileDeletionConfiguration.write(value:to:)) + try writer["retentionConfiguration"].write(value.retentionConfiguration, with: GlueClientTypes.RetentionConfiguration.write(value:to:)) try writer["roleArn"].write(value.roleArn) } @@ -39814,6 +40180,74 @@ extension GlueClientTypes.TableOptimizerConfiguration { var value = GlueClientTypes.TableOptimizerConfiguration() value.roleArn = try reader["roleArn"].readIfPresent() value.enabled = try reader["enabled"].readIfPresent() + value.retentionConfiguration = try reader["retentionConfiguration"].readIfPresent(with: GlueClientTypes.RetentionConfiguration.read(from:)) + value.orphanFileDeletionConfiguration = try reader["orphanFileDeletionConfiguration"].readIfPresent(with: GlueClientTypes.OrphanFileDeletionConfiguration.read(from:)) + return value + } +} + +extension GlueClientTypes.OrphanFileDeletionConfiguration { + + static func write(value: GlueClientTypes.OrphanFileDeletionConfiguration?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["icebergConfiguration"].write(value.icebergConfiguration, with: GlueClientTypes.IcebergOrphanFileDeletionConfiguration.write(value:to:)) + } + + static func read(from reader: SmithyJSON.Reader) throws -> GlueClientTypes.OrphanFileDeletionConfiguration { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = GlueClientTypes.OrphanFileDeletionConfiguration() + value.icebergConfiguration = try reader["icebergConfiguration"].readIfPresent(with: GlueClientTypes.IcebergOrphanFileDeletionConfiguration.read(from:)) + return value + } +} + +extension GlueClientTypes.IcebergOrphanFileDeletionConfiguration { + + static func write(value: GlueClientTypes.IcebergOrphanFileDeletionConfiguration?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["location"].write(value.location) + try writer["orphanFileRetentionPeriodInDays"].write(value.orphanFileRetentionPeriodInDays) + } + + static func read(from reader: SmithyJSON.Reader) throws -> GlueClientTypes.IcebergOrphanFileDeletionConfiguration { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = GlueClientTypes.IcebergOrphanFileDeletionConfiguration() + value.orphanFileRetentionPeriodInDays = try reader["orphanFileRetentionPeriodInDays"].readIfPresent() + value.location = try reader["location"].readIfPresent() + return value + } +} + +extension GlueClientTypes.RetentionConfiguration { + + static func write(value: GlueClientTypes.RetentionConfiguration?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["icebergConfiguration"].write(value.icebergConfiguration, with: GlueClientTypes.IcebergRetentionConfiguration.write(value:to:)) + } + + static func read(from reader: SmithyJSON.Reader) throws -> GlueClientTypes.RetentionConfiguration { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = GlueClientTypes.RetentionConfiguration() + value.icebergConfiguration = try reader["icebergConfiguration"].readIfPresent(with: GlueClientTypes.IcebergRetentionConfiguration.read(from:)) + return value + } +} + +extension GlueClientTypes.IcebergRetentionConfiguration { + + static func write(value: GlueClientTypes.IcebergRetentionConfiguration?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["cleanExpiredFiles"].write(value.cleanExpiredFiles) + try writer["numberOfSnapshotsToRetain"].write(value.numberOfSnapshotsToRetain) + try writer["snapshotRetentionPeriodInDays"].write(value.snapshotRetentionPeriodInDays) + } + + static func read(from reader: SmithyJSON.Reader) throws -> GlueClientTypes.IcebergRetentionConfiguration { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = GlueClientTypes.IcebergRetentionConfiguration() + value.snapshotRetentionPeriodInDays = try reader["snapshotRetentionPeriodInDays"].readIfPresent() + value.numberOfSnapshotsToRetain = try reader["numberOfSnapshotsToRetain"].readIfPresent() + value.cleanExpiredFiles = try reader["cleanExpiredFiles"].readIfPresent() return value } } diff --git a/Sources/Services/AWSGlue/Sources/AWSGlue/Paginators.swift b/Sources/Services/AWSGlue/Sources/AWSGlue/Paginators.swift index a78e4b6e314..7f1c53abb83 100644 --- a/Sources/Services/AWSGlue/Sources/AWSGlue/Paginators.swift +++ b/Sources/Services/AWSGlue/Sources/AWSGlue/Paginators.swift @@ -989,6 +989,15 @@ extension ListTableOptimizerRunsInput: ClientRuntime.PaginateToken { type: self.type )} } + +extension PaginatorSequence where OperationStackInput == ListTableOptimizerRunsInput, OperationStackOutput == ListTableOptimizerRunsOutput { + /// This paginator transforms the `AsyncSequence` returned by `listTableOptimizerRunsPaginated` + /// to access the nested member `[GlueClientTypes.TableOptimizerRun]` + /// - Returns: `[GlueClientTypes.TableOptimizerRun]` + public func tableOptimizerRuns() async throws -> [GlueClientTypes.TableOptimizerRun] { + return try await self.asyncCompactMap { item in item.tableOptimizerRuns } + } +} extension GlueClient { /// Paginate over `[ListTriggersOutput]` results. /// diff --git a/Sources/Services/AWSMediaConvert/Sources/AWSMediaConvert/MediaConvertClient.swift b/Sources/Services/AWSMediaConvert/Sources/AWSMediaConvert/MediaConvertClient.swift index a48edc74029..0a783fa4f20 100644 --- a/Sources/Services/AWSMediaConvert/Sources/AWSMediaConvert/MediaConvertClient.swift +++ b/Sources/Services/AWSMediaConvert/Sources/AWSMediaConvert/MediaConvertClient.swift @@ -1777,6 +1777,78 @@ extension MediaConvertClient { return try await op.execute(input: input) } + /// Performs the `ListVersions` operation on the `MediaConvert` service. + /// + /// Retrieve a JSON array of all available Job engine versions and the date they expire. + /// + /// - Parameter ListVersionsInput : [no documentation found] + /// + /// - Returns: `ListVersionsOutput` : [no documentation found] + /// + /// - Throws: One of the exceptions listed below __Possible Exceptions__. + /// + /// __Possible Exceptions:__ + /// - `BadRequestException` : The service can't process your request because of a problem in the request. Please check your request form and syntax. + /// - `ConflictException` : The service couldn't complete your request because there is a conflict with the current state of the resource. + /// - `ForbiddenException` : You don't have permissions for this action with the credentials you sent. + /// - `InternalServerErrorException` : The service encountered an unexpected condition and can't fulfill your request. + /// - `NotFoundException` : The resource you requested doesn't exist. + /// - `TooManyRequestsException` : Too many requests have been sent in too short of a time. The service limits the rate at which it will accept requests. + public func listVersions(input: ListVersionsInput) async throws -> ListVersionsOutput { + let context = Smithy.ContextBuilder() + .withMethod(value: .get) + .withServiceName(value: serviceName) + .withOperation(value: "listVersions") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withAuthSchemes(value: config.authSchemes ?? []) + .withAuthSchemeResolver(value: config.authSchemeResolver) + .withUnsignedPayloadTrait(value: false) + .withSocketTimeout(value: config.httpClientConfiguration.socketTimeout) + .withIdentityResolver(value: config.bearerTokenIdentityResolver, schemeID: "smithy.api#httpBearerAuth") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4a") + .withRegion(value: config.region) + .withSigningName(value: "mediaconvert") + .withSigningRegion(value: config.signingRegion) + .build() + let builder = ClientRuntime.OrchestratorBuilder() + config.interceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + config.httpInterceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + builder.interceptors.add(ClientRuntime.URLPathMiddleware(ListVersionsInput.urlPathProvider(_:))) + builder.interceptors.add(ClientRuntime.URLHostMiddleware()) + builder.serialize(ClientRuntime.QueryItemMiddleware(ListVersionsInput.queryItemProvider(_:))) + builder.deserialize(ClientRuntime.DeserializeMiddleware(ListVersionsOutput.httpOutput(from:), ListVersionsOutputError.httpError(from:))) + builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + builder.retryStrategy(SmithyRetries.DefaultRetryStrategy(options: config.retryStrategyOptions)) + builder.retryErrorInfoProvider(AWSClientRuntime.AWSRetryErrorInfoProvider.errorInfo(for:)) + builder.applySigner(ClientRuntime.SignerMiddleware()) + let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + builder.applyEndpoint(AWSClientRuntime.EndpointResolverMiddleware(endpointResolverBlock: { [config] in try config.endpointResolver.resolve(params: $0) }, endpointParams: endpointParams)) + builder.interceptors.add(AWSClientRuntime.UserAgentMiddleware(serviceID: serviceName, version: "1.0", config: config)) + builder.selectAuthScheme(ClientRuntime.AuthSchemeMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkInvocationIdMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkRequestMiddleware(maxRetries: config.retryStrategyOptions.maxRetriesBase)) + var metricsAttributes = Smithy.Attributes() + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.service, value: "MediaConvert") + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "ListVersions") + let op = builder.attributes(context) + .telemetry(ClientRuntime.OrchestratorTelemetry( + telemetryProvider: config.telemetryProvider, + metricsAttributes: metricsAttributes, + meterScope: serviceName, + tracerScope: serviceName + )) + .executeRequest(client) + .build() + return try await op.execute(input: input) + } + /// Performs the `PutPolicy` operation on the `MediaConvert` service. /// /// Create or change your policy. For more information about policies, see the user guide at http://docs.aws.amazon.com/mediaconvert/latest/ug/what-is.html diff --git a/Sources/Services/AWSMediaConvert/Sources/AWSMediaConvert/Models.swift b/Sources/Services/AWSMediaConvert/Sources/AWSMediaConvert/Models.swift index 74d0f7ec04a..280dff73b1a 100644 --- a/Sources/Services/AWSMediaConvert/Sources/AWSMediaConvert/Models.swift +++ b/Sources/Services/AWSMediaConvert/Sources/AWSMediaConvert/Models.swift @@ -438,7 +438,7 @@ extension MediaConvertClientTypes { extension MediaConvertClientTypes { - /// AAC Profile. + /// Specify the AAC profile. For the widest player compatibility and where higher bitrates are acceptable: Keep the default profile, LC (AAC-LC) For improved audio performance at lower bitrates: Choose HEV1 or HEV2. HEV1 (AAC-HE v1) adds spectral band replication to improve speech audio at low bitrates. HEV2 (AAC-HE v2) adds parametric stereo, which optimizes for encoding stereo audio at very low bitrates. public enum AacCodecProfile: Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Hashable { case hev1 case hev2 @@ -510,7 +510,7 @@ extension MediaConvertClientTypes { extension MediaConvertClientTypes { - /// Rate Control Mode. + /// Specify the AAC rate control mode. For a constant bitrate: Choose CBR. Your AAC output bitrate will be equal to the value that you choose for Bitrate. For a variable bitrate: Choose VBR. Your AAC output bitrate will vary according to your audio content and the value that you choose for Bitrate quality. public enum AacRateControlMode: Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Hashable { case cbr case vbr @@ -600,7 +600,7 @@ extension MediaConvertClientTypes { extension MediaConvertClientTypes { - /// VBR Quality Level - Only used if rate_control_mode is VBR. + /// Specify the quality of your variable bitrate (VBR) AAC audio. For a list of approximate VBR bitrates, see: https://docs.aws.amazon.com/mediaconvert/latest/ug/aac-support.html#aac_vbr public enum AacVbrQuality: Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Hashable { case high case low @@ -641,19 +641,19 @@ extension MediaConvertClientTypes { public var audioDescriptionBroadcasterMix: MediaConvertClientTypes.AacAudioDescriptionBroadcasterMix? /// Specify the average bitrate in bits per second. The set of valid values for this setting is: 6000, 8000, 10000, 12000, 14000, 16000, 20000, 24000, 28000, 32000, 40000, 48000, 56000, 64000, 80000, 96000, 112000, 128000, 160000, 192000, 224000, 256000, 288000, 320000, 384000, 448000, 512000, 576000, 640000, 768000, 896000, 1024000. The value you set is also constrained by the values that you choose for Profile, Bitrate control mode, and Sample rate. Default values depend on Bitrate control mode and Profile. public var bitrate: Swift.Int? - /// AAC Profile. + /// Specify the AAC profile. For the widest player compatibility and where higher bitrates are acceptable: Keep the default profile, LC (AAC-LC) For improved audio performance at lower bitrates: Choose HEV1 or HEV2. HEV1 (AAC-HE v1) adds spectral band replication to improve speech audio at low bitrates. HEV2 (AAC-HE v2) adds parametric stereo, which optimizes for encoding stereo audio at very low bitrates. public var codecProfile: MediaConvertClientTypes.AacCodecProfile? /// The Coding mode that you specify determines the number of audio channels and the audio channel layout metadata in your AAC output. Valid coding modes depend on the Rate control mode and Profile that you select. The following list shows the number of audio channels and channel layout for each coding mode. * 1.0 Audio Description (Receiver Mix): One channel, C. Includes audio description data from your stereo input. For more information see ETSI TS 101 154 Annex E. * 1.0 Mono: One channel, C. * 2.0 Stereo: Two channels, L, R. * 5.1 Surround: Six channels, C, L, R, Ls, Rs, LFE. public var codingMode: MediaConvertClientTypes.AacCodingMode? - /// Rate Control Mode. + /// Specify the AAC rate control mode. For a constant bitrate: Choose CBR. Your AAC output bitrate will be equal to the value that you choose for Bitrate. For a variable bitrate: Choose VBR. Your AAC output bitrate will vary according to your audio content and the value that you choose for Bitrate quality. public var rateControlMode: MediaConvertClientTypes.AacRateControlMode? /// Enables LATM/LOAS AAC output. Note that if you use LATM/LOAS AAC in an output, you must choose "No container" for the output container. public var rawFormat: MediaConvertClientTypes.AacRawFormat? - /// Specify the Sample rate in Hz. Valid sample rates depend on the Profile and Coding mode that you select. The following list shows valid sample rates for each Profile and Coding mode. * LC Profile, Coding mode 1.0, 2.0, and Receiver Mix: 8000, 12000, 16000, 22050, 24000, 32000, 44100, 48000, 88200, 96000. * LC Profile, Coding mode 5.1: 32000, 44100, 48000, 96000. * HEV1 Profile, Coding mode 1.0 and Receiver Mix: 22050, 24000, 32000, 44100, 48000. * HEV1 Profile, Coding mode 2.0 and 5.1: 32000, 44100, 48000, 96000. * HEV2 Profile, Coding mode 2.0: 22050, 24000, 32000, 44100, 48000. + /// Specify the AAC sample rate in samples per second (Hz). Valid sample rates depend on the AAC profile and Coding mode that you select. For a list of supported sample rates, see: https://docs.aws.amazon.com/mediaconvert/latest/ug/aac-support.html public var sampleRate: Swift.Int? /// Use MPEG-2 AAC instead of MPEG-4 AAC audio for raw or MPEG-2 Transport Stream containers. public var specification: MediaConvertClientTypes.AacSpecification? - /// VBR Quality Level - Only used if rate_control_mode is VBR. + /// Specify the quality of your variable bitrate (VBR) AAC audio. For a list of approximate VBR bitrates, see: https://docs.aws.amazon.com/mediaconvert/latest/ug/aac-support.html#aac_vbr public var vbrQuality: MediaConvertClientTypes.AacVbrQuality? public init( @@ -5187,10 +5187,11 @@ extension MediaConvertClientTypes { extension MediaConvertClientTypes { - /// Apply audio timing corrections to help synchronize audio and video in your output. To apply timing corrections, your input must meet the following requirements: * Container: MP4, or MOV, with an accurate time-to-sample (STTS) table. * Audio track: AAC. Choose from the following audio timing correction settings: * Disabled (Default): Apply no correction. * Auto: Recommended for most inputs. MediaConvert analyzes the audio timing in your input and determines which correction setting to use, if needed. * Track: Adjust the duration of each audio frame by a constant amount to align the audio track length with STTS duration. Track-level correction does not affect pitch, and is recommended for tonal audio content such as music. * Frame: Adjust the duration of each audio frame by a variable amount to align audio frames with STTS timestamps. No corrections are made to already-aligned frames. Frame-level correction may affect the pitch of corrected frames, and is recommended for atonal audio content such as speech or percussion. + /// Apply audio timing corrections to help synchronize audio and video in your output. To apply timing corrections, your input must meet the following requirements: * Container: MP4, or MOV, with an accurate time-to-sample (STTS) table. * Audio track: AAC. Choose from the following audio timing correction settings: * Disabled (Default): Apply no correction. * Auto: Recommended for most inputs. MediaConvert analyzes the audio timing in your input and determines which correction setting to use, if needed. * Track: Adjust the duration of each audio frame by a constant amount to align the audio track length with STTS duration. Track-level correction does not affect pitch, and is recommended for tonal audio content such as music. * Frame: Adjust the duration of each audio frame by a variable amount to align audio frames with STTS timestamps. No corrections are made to already-aligned frames. Frame-level correction may affect the pitch of corrected frames, and is recommended for atonal audio content such as speech or percussion. * Force: Apply audio duration correction, either Track or Frame depending on your input, regardless of the accuracy of your input's STTS table. Your output audio and video may not be aligned or it may contain audio artifacts. public enum AudioDurationCorrection: Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Hashable { case auto case disabled + case force case frame case track case sdkUnknown(Swift.String) @@ -5199,6 +5200,7 @@ extension MediaConvertClientTypes { return [ .auto, .disabled, + .force, .frame, .track ] @@ -5213,6 +5215,7 @@ extension MediaConvertClientTypes { switch self { case .auto: return "AUTO" case .disabled: return "DISABLED" + case .force: return "FORCE" case .frame: return "FRAME" case .track: return "TRACK" case let .sdkUnknown(s): return s @@ -5314,7 +5317,7 @@ extension MediaConvertClientTypes { extension MediaConvertClientTypes { /// Use Audio selectors to specify a track or set of tracks from the input that you will use in your outputs. You can use multiple Audio selectors per input. public struct AudioSelector { - /// Apply audio timing corrections to help synchronize audio and video in your output. To apply timing corrections, your input must meet the following requirements: * Container: MP4, or MOV, with an accurate time-to-sample (STTS) table. * Audio track: AAC. Choose from the following audio timing correction settings: * Disabled (Default): Apply no correction. * Auto: Recommended for most inputs. MediaConvert analyzes the audio timing in your input and determines which correction setting to use, if needed. * Track: Adjust the duration of each audio frame by a constant amount to align the audio track length with STTS duration. Track-level correction does not affect pitch, and is recommended for tonal audio content such as music. * Frame: Adjust the duration of each audio frame by a variable amount to align audio frames with STTS timestamps. No corrections are made to already-aligned frames. Frame-level correction may affect the pitch of corrected frames, and is recommended for atonal audio content such as speech or percussion. + /// Apply audio timing corrections to help synchronize audio and video in your output. To apply timing corrections, your input must meet the following requirements: * Container: MP4, or MOV, with an accurate time-to-sample (STTS) table. * Audio track: AAC. Choose from the following audio timing correction settings: * Disabled (Default): Apply no correction. * Auto: Recommended for most inputs. MediaConvert analyzes the audio timing in your input and determines which correction setting to use, if needed. * Track: Adjust the duration of each audio frame by a constant amount to align the audio track length with STTS duration. Track-level correction does not affect pitch, and is recommended for tonal audio content such as music. * Frame: Adjust the duration of each audio frame by a variable amount to align audio frames with STTS timestamps. No corrections are made to already-aligned frames. Frame-level correction may affect the pitch of corrected frames, and is recommended for atonal audio content such as speech or percussion. * Force: Apply audio duration correction, either Track or Frame depending on your input, regardless of the accuracy of your input's STTS table. Your output audio and video may not be aligned or it may contain audio artifacts. public var audioDurationCorrection: MediaConvertClientTypes.AudioDurationCorrection? /// Selects a specific language code from within an audio source, using the ISO 639-2 or ISO 639-3 three-letter language code public var customLanguageCode: Swift.String? @@ -5559,6 +5562,36 @@ extension MediaConvertClientTypes { } +extension MediaConvertClientTypes { + + /// Choose whether to limit the byte rate at which your SCC input captions are inserted into your output. To not limit the caption rate: We recommend that you keep the default value, Disabled. MediaConvert inserts captions in your output according to the byte rates listed in the EIA-608 specification, typically 2 or 3 caption bytes per frame depending on your output frame rate. To limit your output caption rate: Choose Enabled. Choose this option if your downstream systems require a maximum of 2 caption bytes per frame. Note that this setting has no effect when your output frame rate is 30 or 60. + public enum CaptionSourceByteRateLimit: Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Hashable { + case disabled + case enabled + case sdkUnknown(Swift.String) + + public static var allCases: [CaptionSourceByteRateLimit] { + return [ + .disabled, + .enabled + ] + } + + public init?(rawValue: Swift.String) { + let value = Self.allCases.first(where: { $0.rawValue == rawValue }) + self = value ?? Self.sdkUnknown(rawValue) + } + + public var rawValue: Swift.String { + switch self { + case .disabled: return "DISABLED" + case .enabled: return "ENABLED" + case let .sdkUnknown(s): return s + } + } + } +} + extension MediaConvertClientTypes { /// Specify whether this set of input captions appears in your outputs in both 608 and 708 format. If you choose Upconvert, MediaConvert includes the captions data in two ways: it passes the 608 data through using the 608 compatibility bytes fields of the 708 wrapper, and it also translates the 608 data into 708. @@ -5672,6 +5705,8 @@ extension MediaConvertClientTypes { extension MediaConvertClientTypes { /// If your input captions are SCC, SMI, SRT, STL, TTML, WebVTT, or IMSC 1.1 in an xml file, specify the URI of the input caption source file. If your caption source is IMSC in an IMF package, use TrackSourceSettings instead of FileSoureSettings. public struct FileSourceSettings { + /// Choose whether to limit the byte rate at which your SCC input captions are inserted into your output. To not limit the caption rate: We recommend that you keep the default value, Disabled. MediaConvert inserts captions in your output according to the byte rates listed in the EIA-608 specification, typically 2 or 3 caption bytes per frame depending on your output frame rate. To limit your output caption rate: Choose Enabled. Choose this option if your downstream systems require a maximum of 2 caption bytes per frame. Note that this setting has no effect when your output frame rate is 30 or 60. + public var byteRateLimit: MediaConvertClientTypes.CaptionSourceByteRateLimit? /// Specify whether this set of input captions appears in your outputs in both 608 and 708 format. If you choose Upconvert, MediaConvert includes the captions data in two ways: it passes the 608 data through using the 608 compatibility bytes fields of the 708 wrapper, and it also translates the 608 data into 708. public var convert608To708: MediaConvertClientTypes.FileSourceConvert608To708? /// Choose the presentation style of your input SCC captions. To use the same presentation style as your input: Keep the default value, Disabled. To convert paint-on captions to pop-on: Choose Enabled. We also recommend that you choose Enabled if you notice additional repeated lines in your output captions. @@ -5686,6 +5721,7 @@ extension MediaConvertClientTypes { public var timeDeltaUnits: MediaConvertClientTypes.FileSourceTimeDeltaUnits? public init( + byteRateLimit: MediaConvertClientTypes.CaptionSourceByteRateLimit? = nil, convert608To708: MediaConvertClientTypes.FileSourceConvert608To708? = nil, convertPaintToPop: MediaConvertClientTypes.CaptionSourceConvertPaintOnToPopOn? = nil, framerate: MediaConvertClientTypes.CaptionSourceFramerate? = nil, @@ -5694,6 +5730,7 @@ extension MediaConvertClientTypes { timeDeltaUnits: MediaConvertClientTypes.FileSourceTimeDeltaUnits? = nil ) { + self.byteRateLimit = byteRateLimit self.convert608To708 = convert608To708 self.convertPaintToPop = convertPaintToPop self.framerate = framerate @@ -6302,6 +6339,68 @@ extension MediaConvertClientTypes { } +extension MediaConvertClientTypes { + + /// Specify the Unit type to use when you enter a value for X position, Y position, Width, or Height. You can choose Pixels or Percentage. Leave blank to use the default value, Pixels. + public enum VideoOverlayUnit: Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Hashable { + case percentage + case pixels + case sdkUnknown(Swift.String) + + public static var allCases: [VideoOverlayUnit] { + return [ + .percentage, + .pixels + ] + } + + public init?(rawValue: Swift.String) { + let value = Self.allCases.first(where: { $0.rawValue == rawValue }) + self = value ?? Self.sdkUnknown(rawValue) + } + + public var rawValue: Swift.String { + switch self { + case .percentage: return "PERCENTAGE" + case .pixels: return "PIXELS" + case let .sdkUnknown(s): return s + } + } + } +} + +extension MediaConvertClientTypes { + /// position of video overlay + public struct VideoOverlayPosition { + /// To scale your video overlay to the same height as the base input video: Leave blank. To scale the height of your video overlay to a different height: Enter an integer representing the Unit type that you choose, either Pixels or Percentage. For example, when you enter 360 and choose Pixels, your video overlay will be rendered with a height of 360. When you enter 50, choose Percentage, and your overlay's source has a height of 1080, your video overlay will be rendered with a height of 540. To scale your overlay to a specific height while automatically maintaining its original aspect ratio, enter a value for Height and leave Width blank. + public var height: Swift.Int? + /// Specify the Unit type to use when you enter a value for X position, Y position, Width, or Height. You can choose Pixels or Percentage. Leave blank to use the default value, Pixels. + public var unit: MediaConvertClientTypes.VideoOverlayUnit? + /// To scale your video overlay to the same width as the base input video: Leave blank. To scale the width of your video overlay to a different width: Enter an integer representing the Unit type that you choose, either Pixels or Percentage. For example, when you enter 640 and choose Pixels, your video overlay will scale to a height of 640 pixels. When you enter 50, choose Percentage, and your overlay's source has a width of 1920, your video overlay will scale to a width of 960. To scale your overlay to a specific width while automatically maintaining its original aspect ratio, enter a value for Width and leave Height blank. + public var width: Swift.Int? + /// To position the left edge of your video overlay along the left edge of the base input video's frame: Keep blank, or enter 0. To position the left edge of your video overlay to the right, relative to the left edge of the base input video's frame: Enter an integer representing the Unit type that you choose, either Pixels or Percentage. For example, when you enter 10 and choose Pixels, your video overlay will be positioned 10 pixels from the left edge of the base input video's frame. When you enter 10, choose Percentage, and your base input video is 1920x1080, your video overlay will be positioned 192 pixels from the left edge of the base input video's frame. + public var xPosition: Swift.Int? + /// To position the top edge of your video overlay along the top edge of the base input video's frame: Keep blank, or enter 0. To position the top edge of your video overlay down, relative to the top edge of the base input video's frame: Enter an integer representing the Unit type that you choose, either Pixels or Percentage. For example, when you enter 10 and choose Pixels, your video overlay will be positioned 10 pixels from the top edge of the base input video's frame. When you enter 10, choose Percentage, and your underlying video is 1920x1080, your video overlay will be positioned 108 pixels from the top edge of the base input video's frame. + public var yPosition: Swift.Int? + + public init( + height: Swift.Int? = nil, + unit: MediaConvertClientTypes.VideoOverlayUnit? = nil, + width: Swift.Int? = nil, + xPosition: Swift.Int? = nil, + yPosition: Swift.Int? = nil + ) + { + self.height = height + self.unit = unit + self.width = width + self.xPosition = xPosition + self.yPosition = yPosition + } + } + +} + extension MediaConvertClientTypes { /// To transcode only portions of your video overlay, include one input clip for each part of your video overlay that you want in your output. public struct VideoOverlayInputClipping { @@ -6325,7 +6424,7 @@ extension MediaConvertClientTypes { extension MediaConvertClientTypes { /// Input settings for Video overlay. You can include one or more video overlays in sequence at different times that you specify. public struct VideoOverlayInput { - /// Specify the input file S3, HTTP, or HTTPS URI for your video overlay. For consistency in color and formatting in your output video image, we recommend that you specify a video with similar characteristics as the underlying input video. + /// Specify the input file S3, HTTP, or HTTPS URL for your video overlay. To specify one or more Transitions for your base input video instead: Leave blank. public var fileInput: Swift.String? /// Specify one or more clips to use from your video overlay. When you include an input clip, you must also specify its start timecode, end timecode, or both start and end timecode. public var inputClippings: [MediaConvertClientTypes.VideoOverlayInputClipping]? @@ -6350,25 +6449,91 @@ extension MediaConvertClientTypes { } +extension MediaConvertClientTypes { + + /// Specify whether your video overlay repeats or plays only once. To repeat your video overlay on a loop: Keep the default value, Repeat. Your overlay will repeat for the duration of the base input video. To playback your video overlay only once: Choose Once. With either option, you can end playback at a time that you specify by entering a value for End timecode. + public enum VideoOverlayPlayBackMode: Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Hashable { + case once + case `repeat` + case sdkUnknown(Swift.String) + + public static var allCases: [VideoOverlayPlayBackMode] { + return [ + .once, + .repeat + ] + } + + public init?(rawValue: Swift.String) { + let value = Self.allCases.first(where: { $0.rawValue == rawValue }) + self = value ?? Self.sdkUnknown(rawValue) + } + + public var rawValue: Swift.String { + switch self { + case .once: return "ONCE" + case .repeat: return "REPEAT" + case let .sdkUnknown(s): return s + } + } + } +} + +extension MediaConvertClientTypes { + /// Specify one or more Transitions for your video overlay. Use Transitions to reposition or resize your overlay over time. To use the same position and size for the duration of your video overlay: Leave blank. To specify a Transition: Enter a value for Start timecode, End Timecode, X Position, Y Position, Width, or Height. + public struct VideoOverlayTransition { + /// Specify the ending position for this transition, relative to the base input video's frame. Your video overlay will move smoothly to this position, beginning at this transition's Start timecode and ending at this transition's End timecode. + public var endPosition: MediaConvertClientTypes.VideoOverlayPosition? + /// Specify the timecode for when this transition ends. Use the format HH:MM:SS:FF or HH:MM:SS;FF, where HH is the hour, MM is the minute, SS is the second, and FF is the frame number. When entering this value, take into account your choice for Timecode source. + public var endTimecode: Swift.String? + /// Specify the timecode for when this transition begins. Use the format HH:MM:SS:FF or HH:MM:SS;FF, where HH is the hour, MM is the minute, SS is the second, and FF is the frame number. When entering this value, take into account your choice for Timecode source. + public var startTimecode: Swift.String? + + public init( + endPosition: MediaConvertClientTypes.VideoOverlayPosition? = nil, + endTimecode: Swift.String? = nil, + startTimecode: Swift.String? = nil + ) + { + self.endPosition = endPosition + self.endTimecode = endTimecode + self.startTimecode = startTimecode + } + } + +} + extension MediaConvertClientTypes { /// Overlay one or more videos on top of your input video. For more information, see https://docs.aws.amazon.com/mediaconvert/latest/ug/video-overlays.html public struct VideoOverlay { - /// Enter the end timecode in the underlying input video for this overlay. Your overlay will be active through this frame. To display your video overlay for the duration of the underlying video: Leave blank. Use the format HH:MM:SS:FF or HH:MM:SS;FF, where HH is the hour, MM is the minute, SS is the second, and FF is the frame number. When entering this value, take into account your choice for the underlying Input timecode source. For example, if you have embedded timecodes that start at 01:00:00:00 and you want your overlay to end ten minutes into the video, enter 01:10:00:00. + /// Enter the end timecode in the base input video for this overlay. Your overlay will be active through this frame. To display your video overlay for the duration of the base input video: Leave blank. Use the format HH:MM:SS:FF or HH:MM:SS;FF, where HH is the hour, MM is the minute, SS isthe second, and FF is the frame number. When entering this value, take into account your choice for the base input video's timecode source. For example, if you have embedded timecodes that start at 01:00:00:00 and you want your overlay to end ten minutes into the video, enter 01:10:00:00. public var endTimecode: Swift.String? + /// Specify the Initial position of your video overlay. To specify the Initial position of your video overlay, including distance from the left or top edge of the base input video's frame, or size: Enter a value for X position, Y position, Width, or Height. To use the full frame of the base input video: Leave blank. + public var initialPosition: MediaConvertClientTypes.VideoOverlayPosition? /// Input settings for Video overlay. You can include one or more video overlays in sequence at different times that you specify. public var input: MediaConvertClientTypes.VideoOverlayInput? - /// Enter the start timecode in the underlying input video for this overlay. Your overlay will be active starting with this frame. To display your video overlay starting at the beginning of the underlying video: Leave blank. Use the format HH:MM:SS:FF or HH:MM:SS;FF, where HH is the hour, MM is the minute, SS is the second, and FF is the frame number. When entering this value, take into account your choice for the underlying Input timecode source. For example, if you have embedded timecodes that start at 01:00:00:00 and you want your overlay to begin five minutes into the video, enter 01:05:00:00. + /// Specify whether your video overlay repeats or plays only once. To repeat your video overlay on a loop: Keep the default value, Repeat. Your overlay will repeat for the duration of the base input video. To playback your video overlay only once: Choose Once. With either option, you can end playback at a time that you specify by entering a value for End timecode. + public var playback: MediaConvertClientTypes.VideoOverlayPlayBackMode? + /// Enter the start timecode in the base input video for this overlay. Your overlay will be active starting with this frame. To display your video overlay starting at the beginning of the base input video: Leave blank. Use the format HH:MM:SS:FF or HH:MM:SS;FF, where HH is the hour, MM is the minute, SS is the second, and FF is the frame number. When entering this value, take into account your choice for the base input video's timecode source. For example, if you have embedded timecodes that start at 01:00:00:00 and you want your overlay to begin five minutes into the video, enter 01:05:00:00. public var startTimecode: Swift.String? + /// Specify one or more transitions for your video overlay. Use Transitions to reposition or resize your overlay over time. To use the same position and size for the duration of your video overlay: Leave blank. To specify a Transition: Enter a value for Start timecode, End Timecode, X Position, Y Position, Width, or Height. + public var transitions: [MediaConvertClientTypes.VideoOverlayTransition]? public init( endTimecode: Swift.String? = nil, + initialPosition: MediaConvertClientTypes.VideoOverlayPosition? = nil, input: MediaConvertClientTypes.VideoOverlayInput? = nil, - startTimecode: Swift.String? = nil + playback: MediaConvertClientTypes.VideoOverlayPlayBackMode? = nil, + startTimecode: Swift.String? = nil, + transitions: [MediaConvertClientTypes.VideoOverlayTransition]? = nil ) { self.endTimecode = endTimecode + self.initialPosition = initialPosition self.input = input + self.playback = playback self.startTimecode = startTimecode + self.transitions = transitions } } @@ -10904,6 +11069,7 @@ extension MediaConvertClientTypes { case mp4 case mpd case mxf + case ogg case raw case webm case y4m @@ -10920,6 +11086,7 @@ extension MediaConvertClientTypes { .mp4, .mpd, .mxf, + .ogg, .raw, .webm, .y4m @@ -10942,6 +11109,7 @@ extension MediaConvertClientTypes { case .mp4: return "MP4" case .mpd: return "MPD" case .mxf: return "MXF" + case .ogg: return "OGG" case .raw: return "RAW" case .webm: return "WEBM" case .y4m: return "Y4M" @@ -14617,6 +14785,36 @@ extension MediaConvertClientTypes { } } +extension MediaConvertClientTypes { + + /// Specify whether to apply Saliency aware encoding to your output. Use to improve the perceptual video quality of your output by allocating more encoding bits to the prominent or noticeable parts of your content. To apply saliency aware encoding, when possible: We recommend that you choose Preferred. The effects of Saliency aware encoding are best seen in lower bitrate outputs. When you choose Preferred, note that Saliency aware encoding will only apply to outputs that are 720p or higher in resolution. To not apply saliency aware encoding, prioritizing encoding speed over perceptual video quality: Choose Disabled. + public enum H264SaliencyAwareEncoding: Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Hashable { + case disabled + case preferred + case sdkUnknown(Swift.String) + + public static var allCases: [H264SaliencyAwareEncoding] { + return [ + .disabled, + .preferred + ] + } + + public init?(rawValue: Swift.String) { + let value = Self.allCases.first(where: { $0.rawValue == rawValue }) + self = value ?? Self.sdkUnknown(rawValue) + } + + public var rawValue: Swift.String { + switch self { + case .disabled: return "DISABLED" + case .preferred: return "PREFERRED" + case let .sdkUnknown(s): return s + } + } + } +} + extension MediaConvertClientTypes { /// Use this setting for interlaced outputs, when your output frame rate is half of your input frame rate. In this situation, choose Optimized interlacing to create a better quality interlaced output. In this case, each progressive frame from the input corresponds to an interlaced field in the output. Keep the default value, Basic interlacing, for all other output frame rates. With basic interlacing, MediaConvert performs any frame rate conversion first and then interlaces the frames. When you choose Optimized interlacing and you set your output frame rate to a value that isn't suitable for optimized interlacing, MediaConvert automatically falls back to basic interlacing. Required settings: To use optimized interlacing, you must set Telecine to None or Soft. You can't use optimized interlacing for hard telecine outputs. You must also set Interlace mode to a value other than Progressive. @@ -14912,7 +15110,7 @@ extension MediaConvertClientTypes { public var interlaceMode: MediaConvertClientTypes.H264InterlaceMode? /// Maximum bitrate in bits/second. For example, enter five megabits per second as 5000000. Required when Rate control mode is QVBR. public var maxBitrate: Swift.Int? - /// Use this setting only when you also enable Scene change detection. This setting determines how the encoder manages the spacing between I-frames that it inserts as part of the I-frame cadence and the I-frames that it inserts for Scene change detection. We recommend that you have the transcoder automatically choose this value for you based on characteristics of your input video. To enable this automatic behavior, do this by keeping the default empty value. When you explicitly specify a value for this setting, the encoder determines whether to skip a cadence-driven I-frame by the value you set. For example, if you set Min I interval to 5 and a cadence-driven I-frame would fall within 5 frames of a scene-change I-frame, then the encoder skips the cadence-driven I-frame. In this way, one GOP is shrunk slightly and one GOP is stretched slightly. When the cadence-driven I-frames are farther from the scene-change I-frame than the value you set, then the encoder leaves all I-frames in place and the GOPs surrounding the scene change are smaller than the usual cadence GOPs. + /// Specify the minimum number of frames allowed between two IDR-frames in your output. This includes frames created at the start of a GOP or a scene change. Use Min I-Interval to improve video compression by varying GOP size when two IDR-frames would be created near each other. For example, if a regular cadence-driven IDR-frame would fall within 5 frames of a scene-change IDR-frame, and you set Min I-interval to 5, then the encoder would only write an IDR-frame for the scene-change. In this way, one GOP is shortened or extended. If a cadence-driven IDR-frame would be further than 5 frames from a scene-change IDR-frame, then the encoder leaves all IDR-frames in place. To use an automatically determined interval: We recommend that you keep this value blank. This allows for MediaConvert to use an optimal setting according to the characteristics of your input video, and results in better video compression. To manually specify an interval: Enter a value from 1 to 30. Use when your downstream systems have specific GOP size requirements. To disable GOP size variance: Enter 0. MediaConvert will only create IDR-frames at the start of your output's cadence-driven GOP. Use when your downstream systems require a regular GOP size. public var minIInterval: Swift.Int? /// Specify the number of B-frames between reference frames in this output. For the best video quality: Leave blank. MediaConvert automatically determines the number of B-frames to use based on the characteristics of your input video. To manually specify the number of B-frames between reference frames: Enter an integer from 0 to 7. public var numberBFramesBetweenReferenceFrames: Swift.Int? @@ -14932,6 +15130,8 @@ extension MediaConvertClientTypes { public var rateControlMode: MediaConvertClientTypes.H264RateControlMode? /// Places a PPS header on each encoded picture, even if repeated. public var repeatPps: MediaConvertClientTypes.H264RepeatPps? + /// Specify whether to apply Saliency aware encoding to your output. Use to improve the perceptual video quality of your output by allocating more encoding bits to the prominent or noticeable parts of your content. To apply saliency aware encoding, when possible: We recommend that you choose Preferred. The effects of Saliency aware encoding are best seen in lower bitrate outputs. When you choose Preferred, note that Saliency aware encoding will only apply to outputs that are 720p or higher in resolution. To not apply saliency aware encoding, prioritizing encoding speed over perceptual video quality: Choose Disabled. + public var saliencyAwareEncoding: MediaConvertClientTypes.H264SaliencyAwareEncoding? /// Use this setting for interlaced outputs, when your output frame rate is half of your input frame rate. In this situation, choose Optimized interlacing to create a better quality interlaced output. In this case, each progressive frame from the input corresponds to an interlaced field in the output. Keep the default value, Basic interlacing, for all other output frame rates. With basic interlacing, MediaConvert performs any frame rate conversion first and then interlaces the frames. When you choose Optimized interlacing and you set your output frame rate to a value that isn't suitable for optimized interlacing, MediaConvert automatically falls back to basic interlacing. Required settings: To use optimized interlacing, you must set Telecine to None or Soft. You can't use optimized interlacing for hard telecine outputs. You must also set Interlace mode to a value other than Progressive. public var scanTypeConversionMode: MediaConvertClientTypes.H264ScanTypeConversionMode? /// Enable this setting to insert I-frames at scene changes that the service automatically detects. This improves video quality and is enabled by default. If this output uses QVBR, choose Transition detection for further video quality improvement. For more information about QVBR, see https://docs.aws.amazon.com/console/mediaconvert/cbr-vbr-qvbr. @@ -14987,6 +15187,7 @@ extension MediaConvertClientTypes { qvbrSettings: MediaConvertClientTypes.H264QvbrSettings? = nil, rateControlMode: MediaConvertClientTypes.H264RateControlMode? = nil, repeatPps: MediaConvertClientTypes.H264RepeatPps? = nil, + saliencyAwareEncoding: MediaConvertClientTypes.H264SaliencyAwareEncoding? = nil, scanTypeConversionMode: MediaConvertClientTypes.H264ScanTypeConversionMode? = nil, sceneChangeDetect: MediaConvertClientTypes.H264SceneChangeDetect? = nil, slices: Swift.Int? = nil, @@ -15032,6 +15233,7 @@ extension MediaConvertClientTypes { self.qvbrSettings = qvbrSettings self.rateControlMode = rateControlMode self.repeatPps = repeatPps + self.saliencyAwareEncoding = saliencyAwareEncoding self.scanTypeConversionMode = scanTypeConversionMode self.sceneChangeDetect = sceneChangeDetect self.slices = slices @@ -15997,7 +16199,7 @@ extension MediaConvertClientTypes { public var interlaceMode: MediaConvertClientTypes.H265InterlaceMode? /// Maximum bitrate in bits/second. For example, enter five megabits per second as 5000000. Required when Rate control mode is QVBR. public var maxBitrate: Swift.Int? - /// Use this setting only when you also enable Scene change detection. This setting determines how the encoder manages the spacing between I-frames that it inserts as part of the I-frame cadence and the I-frames that it inserts for Scene change detection. We recommend that you have the transcoder automatically choose this value for you based on characteristics of your input video. To enable this automatic behavior, do this by keeping the default empty value. When you explicitly specify a value for this setting, the encoder determines whether to skip a cadence-driven I-frame by the value you set. For example, if you set Min I interval to 5 and a cadence-driven I-frame would fall within 5 frames of a scene-change I-frame, then the encoder skips the cadence-driven I-frame. In this way, one GOP is shrunk slightly and one GOP is stretched slightly. When the cadence-driven I-frames are farther from the scene-change I-frame than the value you set, then the encoder leaves all I-frames in place and the GOPs surrounding the scene change are smaller than the usual cadence GOPs. + /// Specify the minimum number of frames allowed between two IDR-frames in your output. This includes frames created at the start of a GOP or a scene change. Use Min I-Interval to improve video compression by varying GOP size when two IDR-frames would be created near each other. For example, if a regular cadence-driven IDR-frame would fall within 5 frames of a scene-change IDR-frame, and you set Min I-interval to 5, then the encoder would only write an IDR-frame for the scene-change. In this way, one GOP is shortened or extended. If a cadence-driven IDR-frame would be further than 5 frames from a scene-change IDR-frame, then the encoder leaves all IDR-frames in place. To use an automatically determined interval: We recommend that you keep this value blank. This allows for MediaConvert to use an optimal setting according to the characteristics of your input video, and results in better video compression. To manually specify an interval: Enter a value from 1 to 30. Use when your downstream systems have specific GOP size requirements. To disable GOP size variance: Enter 0. MediaConvert will only create IDR-frames at the start of your output's cadence-driven GOP. Use when your downstream systems require a regular GOP size. public var minIInterval: Swift.Int? /// Specify the number of B-frames between reference frames in this output. For the best video quality: Leave blank. MediaConvert automatically determines the number of B-frames to use based on the characteristics of your input video. To manually specify the number of B-frames between reference frames: Enter an integer from 0 to 7. public var numberBFramesBetweenReferenceFrames: Swift.Int? @@ -16782,7 +16984,7 @@ extension MediaConvertClientTypes { public var intraDcPrecision: MediaConvertClientTypes.Mpeg2IntraDcPrecision? /// Maximum bitrate in bits/second. For example, enter five megabits per second as 5000000. public var maxBitrate: Swift.Int? - /// Use this setting only when you also enable Scene change detection. This setting determines how the encoder manages the spacing between I-frames that it inserts as part of the I-frame cadence and the I-frames that it inserts for Scene change detection. When you specify a value for this setting, the encoder determines whether to skip a cadence-driven I-frame by the value you set. For example, if you set Min I interval to 5 and a cadence-driven I-frame would fall within 5 frames of a scene-change I-frame, then the encoder skips the cadence-driven I-frame. In this way, one GOP is shrunk slightly and one GOP is stretched slightly. When the cadence-driven I-frames are farther from the scene-change I-frame than the value you set, then the encoder leaves all I-frames in place and the GOPs surrounding the scene change are smaller than the usual cadence GOPs. + /// Specify the minimum number of frames allowed between two IDR-frames in your output. This includes frames created at the start of a GOP or a scene change. Use Min I-Interval to improve video compression by varying GOP size when two IDR-frames would be created near each other. For example, if a regular cadence-driven IDR-frame would fall within 5 frames of a scene-change IDR-frame, and you set Min I-interval to 5, then the encoder would only write an IDR-frame for the scene-change. In this way, one GOP is shortened or extended. If a cadence-driven IDR-frame would be further than 5 frames from a scene-change IDR-frame, then the encoder leaves all IDR-frames in place. To manually specify an interval: Enter a value from 1 to 30. Use when your downstream systems have specific GOP size requirements. To disable GOP size variance: Enter 0. MediaConvert will only create IDR-frames at the start of your output's cadence-driven GOP. Use when your downstream systems require a regular GOP size. public var minIInterval: Swift.Int? /// Specify the number of B-frames that MediaConvert puts between reference frames in this output. Valid values are whole numbers from 0 through 7. When you don't specify a value, MediaConvert defaults to 2. public var numberBFramesBetweenReferenceFrames: Swift.Int? @@ -20735,6 +20937,10 @@ extension MediaConvertClientTypes { public var hopDestinations: [MediaConvertClientTypes.HopDestination]? /// A portion of the job's ARN, unique within your AWS Elemental MediaConvert resources public var id: Swift.String? + /// The Job engine version that you requested for your job. Valid versions are in a YYYY-MM-DD format. + public var jobEngineVersionRequested: Swift.String? + /// The Job engine version that your job used. Job engine versions are in a YYYY-MM-DD format. When you request an expired version, the response for this property will be empty. Requests to create jobs with an expired version result in a regular job, as if no specific Job engine version was requested. When you request an invalid version, the response for this property will be empty. Requests to create jobs with an invalid version result in a 400 error message, and no job is created. + public var jobEngineVersionUsed: Swift.String? /// An estimate of how far your job has progressed. This estimate is shown as a percentage of the total time from when your job leaves its queue to when your output files appear in your output Amazon S3 bucket. AWS Elemental MediaConvert provides jobPercentComplete in CloudWatch STATUS_UPDATE events and in the response to GetJob and ListJobs requests. The jobPercentComplete estimate is reliable for the following input containers: Quicktime, Transport Stream, MP4, and MXF. For some jobs, the service can't provide information about job progress. In those cases, jobPercentComplete returns a null value. public var jobPercentComplete: Swift.Int? /// The job template that the job is created from, if it is created from a job template. @@ -20782,6 +20988,8 @@ extension MediaConvertClientTypes { errorMessage: Swift.String? = nil, hopDestinations: [MediaConvertClientTypes.HopDestination]? = nil, id: Swift.String? = nil, + jobEngineVersionRequested: Swift.String? = nil, + jobEngineVersionUsed: Swift.String? = nil, jobPercentComplete: Swift.Int? = nil, jobTemplate: Swift.String? = nil, messages: MediaConvertClientTypes.JobMessages? = nil, @@ -20811,6 +21019,8 @@ extension MediaConvertClientTypes { self.errorMessage = errorMessage self.hopDestinations = hopDestinations self.id = id + self.jobEngineVersionRequested = jobEngineVersionRequested + self.jobEngineVersionUsed = jobEngineVersionUsed self.jobPercentComplete = jobPercentComplete self.jobTemplate = jobTemplate self.messages = messages @@ -20832,6 +21042,26 @@ extension MediaConvertClientTypes { } +extension MediaConvertClientTypes { + /// Use Job engine versions to run jobs for your production workflow on one version, while you test and validate the latest version. Job engine versions are in a YYYY-MM-DD format. + public struct JobEngineVersion { + /// The date that this Job engine version expires. Requests to create jobs with an expired version result in a regular job, as if no specific Job engine version was requested. + public var expirationDate: Foundation.Date? + /// Use Job engine versions to run jobs for your production workflow on one version, while you test and validate the latest version. Job engine versions are in a YYYY-MM-DD format. + public var version: Swift.String? + + public init( + expirationDate: Foundation.Date? = nil, + version: Swift.String? = nil + ) + { + self.expirationDate = expirationDate + self.version = version + } + } + +} + extension MediaConvertClientTypes { /// JobTemplateSettings contains all the transcode settings saved in the template that will be applied to jobs created from it. public struct JobTemplateSettings { @@ -21498,6 +21728,8 @@ public struct CreateJobInput { public var clientRequestToken: Swift.String? /// Optional. Use queue hopping to avoid overly long waits in the backlog of the queue that you submit your job to. Specify an alternate queue and the maximum time that your job will wait in the initial queue before hopping. For more information about this feature, see the AWS Elemental MediaConvert User Guide. public var hopDestinations: [MediaConvertClientTypes.HopDestination]? + /// Use Job engine versions to run jobs for your production workflow on one version, while you test and validate the latest version. To specify a Job engine version: Enter a date in a YYYY-MM-DD format. For a list of valid Job engine versions, submit a ListVersions request. To not specify a Job engine version: Leave blank. + public var jobEngineVersion: Swift.String? /// Optional. When you create a job, you can either specify a job template or specify the transcoding settings individually. public var jobTemplate: Swift.String? /// Optional. Specify the relative priority for this job. In any given queue, the service begins processing the job with the highest value first. When more than one job has the same priority, the service begins processing the job that you submitted first. If you don't specify a priority, the service uses the default value 0. @@ -21524,6 +21756,7 @@ public struct CreateJobInput { billingTagsSource: MediaConvertClientTypes.BillingTagsSource? = nil, clientRequestToken: Swift.String? = nil, hopDestinations: [MediaConvertClientTypes.HopDestination]? = nil, + jobEngineVersion: Swift.String? = nil, jobTemplate: Swift.String? = nil, priority: Swift.Int? = nil, queue: Swift.String? = nil, @@ -21539,6 +21772,7 @@ public struct CreateJobInput { self.billingTagsSource = billingTagsSource self.clientRequestToken = clientRequestToken self.hopDestinations = hopDestinations + self.jobEngineVersion = jobEngineVersion self.jobTemplate = jobTemplate self.priority = priority self.queue = queue @@ -22405,6 +22639,38 @@ public struct ListTagsForResourceOutput { } } +public struct ListVersionsInput { + /// Optional. Number of valid Job engine versions, up to twenty, that will be returned at one time. + public var maxResults: Swift.Int? + /// Optional. Use this string, provided with the response to a previous request, to request the next batch of Job engine versions. + public var nextToken: Swift.String? + + public init( + maxResults: Swift.Int? = nil, + nextToken: Swift.String? = nil + ) + { + self.maxResults = maxResults + self.nextToken = nextToken + } +} + +public struct ListVersionsOutput { + /// Optional. Use this string, provided with the response to a previous request, to request the next batch of Job engine versions. + public var nextToken: Swift.String? + /// Retrieve a JSON array of all available Job engine versions and the date they expire. + public var versions: [MediaConvertClientTypes.JobEngineVersion]? + + public init( + nextToken: Swift.String? = nil, + versions: [MediaConvertClientTypes.JobEngineVersion]? = nil + ) + { + self.nextToken = nextToken + self.versions = versions + } +} + public struct PutPolicyInput { /// A policy configures behavior that you allow or disallow for your account. For information about MediaConvert policies, see the user guide at http://docs.aws.amazon.com/mediaconvert/latest/ug/what-is.html /// This member is required. @@ -22946,6 +23212,29 @@ extension ListTagsForResourceInput { } } +extension ListVersionsInput { + + static func urlPathProvider(_ value: ListVersionsInput) -> Swift.String? { + return "/2017-08-29/versions" + } +} + +extension ListVersionsInput { + + static func queryItemProvider(_ value: ListVersionsInput) throws -> [Smithy.URIQueryItem] { + var items = [Smithy.URIQueryItem]() + if let nextToken = value.nextToken { + let nextTokenQueryItem = Smithy.URIQueryItem(name: "nextToken".urlPercentEncoding(), value: Swift.String(nextToken).urlPercentEncoding()) + items.append(nextTokenQueryItem) + } + if let maxResults = value.maxResults { + let maxResultsQueryItem = Smithy.URIQueryItem(name: "maxResults".urlPercentEncoding(), value: Swift.String(maxResults).urlPercentEncoding()) + items.append(maxResultsQueryItem) + } + return items + } +} + extension PutPolicyInput { static func urlPathProvider(_ value: PutPolicyInput) -> Swift.String? { @@ -23055,6 +23344,7 @@ extension CreateJobInput { try writer["billingTagsSource"].write(value.billingTagsSource) try writer["clientRequestToken"].write(value.clientRequestToken) try writer["hopDestinations"].writeList(value.hopDestinations, memberWritingClosure: MediaConvertClientTypes.HopDestination.write(value:to:), memberNodeInfo: "member", isFlattened: false) + try writer["jobEngineVersion"].write(value.jobEngineVersion) try writer["jobTemplate"].write(value.jobTemplate) try writer["priority"].write(value.priority) try writer["queue"].write(value.queue) @@ -23413,6 +23703,19 @@ extension ListTagsForResourceOutput { } } +extension ListVersionsOutput { + + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> ListVersionsOutput { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let reader = responseReader + var value = ListVersionsOutput() + value.nextToken = try reader["nextToken"].readIfPresent() + value.versions = try reader["versions"].readListIfPresent(memberReadingClosure: MediaConvertClientTypes.JobEngineVersion.read(from:), memberNodeInfo: "member", isFlattened: false) + return value + } +} + extension PutPolicyOutput { static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> PutPolicyOutput { @@ -23906,6 +24209,25 @@ enum ListTagsForResourceOutputError { } } +enum ListVersionsOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.RestJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "BadRequestException": return try BadRequestException.makeError(baseError: baseError) + case "ConflictException": return try ConflictException.makeError(baseError: baseError) + case "ForbiddenException": return try ForbiddenException.makeError(baseError: baseError) + case "InternalServerErrorException": return try InternalServerErrorException.makeError(baseError: baseError) + case "NotFoundException": return try NotFoundException.makeError(baseError: baseError) + case "TooManyRequestsException": return try TooManyRequestsException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + enum PutPolicyOutputError { static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { @@ -24133,6 +24455,8 @@ extension MediaConvertClientTypes.Job { value.errorMessage = try reader["errorMessage"].readIfPresent() value.hopDestinations = try reader["hopDestinations"].readListIfPresent(memberReadingClosure: MediaConvertClientTypes.HopDestination.read(from:), memberNodeInfo: "member", isFlattened: false) value.id = try reader["id"].readIfPresent() + value.jobEngineVersionRequested = try reader["jobEngineVersionRequested"].readIfPresent() + value.jobEngineVersionUsed = try reader["jobEngineVersionUsed"].readIfPresent() value.jobPercentComplete = try reader["jobPercentComplete"].readIfPresent() value.jobTemplate = try reader["jobTemplate"].readIfPresent() value.messages = try reader["messages"].readIfPresent(with: MediaConvertClientTypes.JobMessages.read(from:)) @@ -25386,6 +25710,7 @@ extension MediaConvertClientTypes.H264Settings { try writer["qvbrSettings"].write(value.qvbrSettings, with: MediaConvertClientTypes.H264QvbrSettings.write(value:to:)) try writer["rateControlMode"].write(value.rateControlMode) try writer["repeatPps"].write(value.repeatPps) + try writer["saliencyAwareEncoding"].write(value.saliencyAwareEncoding) try writer["scanTypeConversionMode"].write(value.scanTypeConversionMode) try writer["sceneChangeDetect"].write(value.sceneChangeDetect) try writer["slices"].write(value.slices) @@ -25434,6 +25759,7 @@ extension MediaConvertClientTypes.H264Settings { value.qvbrSettings = try reader["qvbrSettings"].readIfPresent(with: MediaConvertClientTypes.H264QvbrSettings.read(from:)) value.rateControlMode = try reader["rateControlMode"].readIfPresent() value.repeatPps = try reader["repeatPps"].readIfPresent() + value.saliencyAwareEncoding = try reader["saliencyAwareEncoding"].readIfPresent() value.scanTypeConversionMode = try reader["scanTypeConversionMode"].readIfPresent() value.sceneChangeDetect = try reader["sceneChangeDetect"].readIfPresent() value.slices = try reader["slices"].readIfPresent() @@ -27884,16 +28210,64 @@ extension MediaConvertClientTypes.VideoOverlay { static func write(value: MediaConvertClientTypes.VideoOverlay?, to writer: SmithyJSON.Writer) throws { guard let value else { return } try writer["endTimecode"].write(value.endTimecode) + try writer["initialPosition"].write(value.initialPosition, with: MediaConvertClientTypes.VideoOverlayPosition.write(value:to:)) try writer["input"].write(value.input, with: MediaConvertClientTypes.VideoOverlayInput.write(value:to:)) + try writer["playback"].write(value.playback) try writer["startTimecode"].write(value.startTimecode) + try writer["transitions"].writeList(value.transitions, memberWritingClosure: MediaConvertClientTypes.VideoOverlayTransition.write(value:to:), memberNodeInfo: "member", isFlattened: false) } static func read(from reader: SmithyJSON.Reader) throws -> MediaConvertClientTypes.VideoOverlay { guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } var value = MediaConvertClientTypes.VideoOverlay() value.endTimecode = try reader["endTimecode"].readIfPresent() + value.initialPosition = try reader["initialPosition"].readIfPresent(with: MediaConvertClientTypes.VideoOverlayPosition.read(from:)) value.input = try reader["input"].readIfPresent(with: MediaConvertClientTypes.VideoOverlayInput.read(from:)) + value.playback = try reader["playback"].readIfPresent() value.startTimecode = try reader["startTimecode"].readIfPresent() + value.transitions = try reader["transitions"].readListIfPresent(memberReadingClosure: MediaConvertClientTypes.VideoOverlayTransition.read(from:), memberNodeInfo: "member", isFlattened: false) + return value + } +} + +extension MediaConvertClientTypes.VideoOverlayTransition { + + static func write(value: MediaConvertClientTypes.VideoOverlayTransition?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["endPosition"].write(value.endPosition, with: MediaConvertClientTypes.VideoOverlayPosition.write(value:to:)) + try writer["endTimecode"].write(value.endTimecode) + try writer["startTimecode"].write(value.startTimecode) + } + + static func read(from reader: SmithyJSON.Reader) throws -> MediaConvertClientTypes.VideoOverlayTransition { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = MediaConvertClientTypes.VideoOverlayTransition() + value.endPosition = try reader["endPosition"].readIfPresent(with: MediaConvertClientTypes.VideoOverlayPosition.read(from:)) + value.endTimecode = try reader["endTimecode"].readIfPresent() + value.startTimecode = try reader["startTimecode"].readIfPresent() + return value + } +} + +extension MediaConvertClientTypes.VideoOverlayPosition { + + static func write(value: MediaConvertClientTypes.VideoOverlayPosition?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["height"].write(value.height) + try writer["unit"].write(value.unit) + try writer["width"].write(value.width) + try writer["xPosition"].write(value.xPosition) + try writer["yPosition"].write(value.yPosition) + } + + static func read(from reader: SmithyJSON.Reader) throws -> MediaConvertClientTypes.VideoOverlayPosition { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = MediaConvertClientTypes.VideoOverlayPosition() + value.height = try reader["height"].readIfPresent() + value.unit = try reader["unit"].readIfPresent() + value.width = try reader["width"].readIfPresent() + value.xPosition = try reader["xPosition"].readIfPresent() + value.yPosition = try reader["yPosition"].readIfPresent() return value } } @@ -28098,6 +28472,7 @@ extension MediaConvertClientTypes.FileSourceSettings { static func write(value: MediaConvertClientTypes.FileSourceSettings?, to writer: SmithyJSON.Writer) throws { guard let value else { return } + try writer["byteRateLimit"].write(value.byteRateLimit) try writer["convert608To708"].write(value.convert608To708) try writer["convertPaintToPop"].write(value.convertPaintToPop) try writer["framerate"].write(value.framerate, with: MediaConvertClientTypes.CaptionSourceFramerate.write(value:to:)) @@ -28109,6 +28484,7 @@ extension MediaConvertClientTypes.FileSourceSettings { static func read(from reader: SmithyJSON.Reader) throws -> MediaConvertClientTypes.FileSourceSettings { guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } var value = MediaConvertClientTypes.FileSourceSettings() + value.byteRateLimit = try reader["byteRateLimit"].readIfPresent() value.convert608To708 = try reader["convert608To708"].readIfPresent() value.convertPaintToPop = try reader["convertPaintToPop"].readIfPresent() value.framerate = try reader["framerate"].readIfPresent(with: MediaConvertClientTypes.CaptionSourceFramerate.read(from:)) @@ -28724,6 +29100,17 @@ extension MediaConvertClientTypes.ResourceTags { } } +extension MediaConvertClientTypes.JobEngineVersion { + + static func read(from reader: SmithyJSON.Reader) throws -> MediaConvertClientTypes.JobEngineVersion { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = MediaConvertClientTypes.JobEngineVersion() + value.expirationDate = try reader["expirationDate"].readTimestampIfPresent(format: SmithyTimestamps.TimestampFormat.epochSeconds) + value.version = try reader["version"].readIfPresent() + return value + } +} + extension MediaConvertClientTypes.ReservationPlanSettings { static func write(value: MediaConvertClientTypes.ReservationPlanSettings?, to writer: SmithyJSON.Writer) throws { diff --git a/Sources/Services/AWSMediaConvert/Sources/AWSMediaConvert/Paginators.swift b/Sources/Services/AWSMediaConvert/Sources/AWSMediaConvert/Paginators.swift index 4030d87dd0f..f8c89e93cf0 100644 --- a/Sources/Services/AWSMediaConvert/Sources/AWSMediaConvert/Paginators.swift +++ b/Sources/Services/AWSMediaConvert/Sources/AWSMediaConvert/Paginators.swift @@ -172,6 +172,36 @@ extension PaginatorSequence where OperationStackInput == ListQueuesInput, Operat return try await self.asyncCompactMap { item in item.queues } } } +extension MediaConvertClient { + /// Paginate over `[ListVersionsOutput]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListVersionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListVersionsOutput` + public func listVersionsPaginated(input: ListVersionsInput) -> ClientRuntime.PaginatorSequence { + return ClientRuntime.PaginatorSequence(input: input, inputKey: \.nextToken, outputKey: \.nextToken, paginationFunction: self.listVersions(input:)) + } +} + +extension ListVersionsInput: ClientRuntime.PaginateToken { + public func usingPaginationToken(_ token: Swift.String) -> ListVersionsInput { + return ListVersionsInput( + maxResults: self.maxResults, + nextToken: token + )} +} + +extension PaginatorSequence where OperationStackInput == ListVersionsInput, OperationStackOutput == ListVersionsOutput { + /// This paginator transforms the `AsyncSequence` returned by `listVersionsPaginated` + /// to access the nested member `[MediaConvertClientTypes.JobEngineVersion]` + /// - Returns: `[MediaConvertClientTypes.JobEngineVersion]` + public func versions() async throws -> [MediaConvertClientTypes.JobEngineVersion] { + return try await self.asyncCompactMap { item in item.versions } + } +} extension MediaConvertClient { /// Paginate over `[SearchJobsOutput]` results. /// diff --git a/Sources/Services/AWSRDS/Sources/AWSRDS/Models.swift b/Sources/Services/AWSRDS/Sources/AWSRDS/Models.swift index 4584e212c8b..f61ffb4ec7f 100644 --- a/Sources/Services/AWSRDS/Sources/AWSRDS/Models.swift +++ b/Sources/Services/AWSRDS/Sources/AWSRDS/Models.swift @@ -857,7 +857,20 @@ public struct ResourceNotFoundFault: ClientRuntime.ModeledError, AWSClientRuntim /// public struct ApplyPendingMaintenanceActionInput { - /// The pending maintenance action to apply to this resource. Valid Values: system-update, db-upgrade, hardware-maintenance, ca-certificate-rotation + /// The pending maintenance action to apply to this resource. Valid Values: + /// + /// * ca-certificate-rotation + /// + /// * db-upgrade + /// + /// * hardware-maintenance + /// + /// * os-upgrade + /// + /// * system-update + /// + /// + /// For more information about these actions, see [Maintenance actions for Amazon Aurora](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_UpgradeDBInstance.Maintenance.html#maintenance-actions-aurora) or [Maintenance actions for Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_UpgradeDBInstance.Maintenance.html#maintenance-actions-rds). /// This member is required. public var applyAction: Swift.String? /// A value that specifies the type of opt-in request, or undoes an opt-in request. An opt-in request of type immediate can't be undone. Valid Values: @@ -888,7 +901,20 @@ public struct ApplyPendingMaintenanceActionInput { extension RDSClientTypes { /// Provides information about a pending maintenance action for a resource. public struct PendingMaintenanceAction { - /// The type of pending maintenance action that is available for the resource. For more information about maintenance actions, see [Maintaining a DB instance](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_UpgradeDBInstance.Maintenance.html). Valid Values: system-update | db-upgrade | hardware-maintenance | ca-certificate-rotation + /// The type of pending maintenance action that is available for the resource. For more information about maintenance actions, see [Maintaining a DB instance](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_UpgradeDBInstance.Maintenance.html). Valid Values: + /// + /// * ca-certificate-rotation + /// + /// * db-upgrade + /// + /// * hardware-maintenance + /// + /// * os-upgrade + /// + /// * system-update + /// + /// + /// For more information about these actions, see [Maintenance actions for Amazon Aurora](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_UpgradeDBInstance.Maintenance.html#maintenance-actions-aurora) or [Maintenance actions for Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_UpgradeDBInstance.Maintenance.html#maintenance-actions-rds). public var action: Swift.String? /// The date of the maintenance window when the action is applied. The maintenance action is applied to the resource during its first maintenance window after this date. public var autoAppliedAfterDate: Foundation.Date? @@ -5742,8 +5768,6 @@ public struct CreateDBInstanceInput { /// /// * Must match the name of an existing DB subnet group. /// - /// * Must not be default. - /// /// /// Example: mydbsubnetgroup public var dbSubnetGroupName: Swift.String? @@ -5841,6 +5865,8 @@ public struct CreateDBInstanceInput { /// /// * custom-sqlserver-web (for RDS Custom for SQL Server DB instances) /// + /// * custom-sqlserver-dev (for RDS Custom for SQL Server DB instances) + /// /// * db2-ae /// /// * db2-se @@ -6269,7 +6295,17 @@ extension RDSClientTypes { public struct DBParameterGroupStatus { /// The name of the DB parameter group. public var dbParameterGroupName: Swift.String? - /// The status of parameter updates. + /// The status of parameter updates. Valid values are: + /// + /// * applying: The parameter group change is being applied to the database. + /// + /// * failed-to-apply: The parameter group is in an invalid state. + /// + /// * in-sync: The parameter group change is synchronized with the database. + /// + /// * pending-database-upgrade: The parameter group change will be applied after the DB instance is upgraded. + /// + /// * pending-reboot: The parameter group change will be applied after the DB instance reboots. public var parameterApplyStatus: Swift.String? public init( @@ -7123,7 +7159,7 @@ public struct CreateDBInstanceReadReplicaInput { /// * SourceDBInstanceIdentifier - The DB instance identifier for the encrypted DB instance to be replicated. This identifier must be in the Amazon Resource Name (ARN) format for the source Amazon Web Services Region. For example, if you are creating an encrypted read replica from a DB instance in the us-west-2 Amazon Web Services Region, then your SourceDBInstanceIdentifier looks like the following example: arn:aws:rds:us-west-2:123456789012:instance:mysql-instance1-20161115. /// /// - /// To learn how to generate a Signature Version 4 signed request, see [Authenticating Requests: Using Query Parameters (Amazon Web Services Signature Version 4)](https://docs.aws.amazon.com/AmazonS3/latest/API/sigv4-query-string-auth.html) and [Signature Version 4 Signing Process](https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html). If you are using an Amazon Web Services SDK tool or the CLI, you can specify SourceRegion (or --source-region for the CLI) instead of specifying PreSignedUrl manually. Specifying SourceRegion autogenerates a presigned URL that is a valid request for the operation that can run in the source Amazon Web Services Region. SourceRegion isn't supported for SQL Server, because Amazon RDS for SQL Server doesn't support cross-Region read replicas. This setting doesn't apply to RDS Custom DB instances. + /// To learn how to generate a Signature Version 4 signed request, see [Authenticating Requests: Using Query Parameters (Amazon Web Services Signature Version 4)](https://docs.aws.amazon.com/AmazonS3/latest/API/sigv4-query-string-auth.html) and [Signature Version 4 Signing Process](https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html). If you are using an Amazon Web Services SDK tool or the CLI, you can specify SourceRegion (or --source-region for the CLI) instead of specifying PreSignedUrl manually. Specifying SourceRegion autogenerates a presigned URL that is a valid request for the operation that can run in the source Amazon Web Services Region. This setting doesn't apply to RDS Custom DB instances. public var preSignedUrl: Swift.String? /// The number of CPU cores and the number of threads per core for the DB instance class of the DB instance. This setting doesn't apply to RDS Custom DB instances. public var processorFeatures: [RDSClientTypes.ProcessorFeature]? @@ -17931,7 +17967,7 @@ public struct ModifyDBProxyEndpointOutput { extension RDSClientTypes { /// Specifies the settings that control the size and behavior of the connection pool associated with a DBProxyTargetGroup. public struct ConnectionPoolConfiguration { - /// The number of seconds for a proxy to wait for a connection to become available in the connection pool. This setting only applies when the proxy has opened its maximum number of connections and all connections are busy with client sessions. For an unlimited wait time, specify 0. Default: 120 Constraints: + /// The number of seconds for a proxy to wait for a connection to become available in the connection pool. This setting only applies when the proxy has opened its maximum number of connections and all connections are busy with client sessions. Default: 120 Constraints: /// /// * Must be between 0 and 3600. public var connectionBorrowTimeout: Swift.Int? diff --git a/Sources/Services/AWSStorageGateway/Sources/AWSStorageGateway/Models.swift b/Sources/Services/AWSStorageGateway/Sources/AWSStorageGateway/Models.swift index d6ccdd360b0..bf54ce2fec5 100644 --- a/Sources/Services/AWSStorageGateway/Sources/AWSStorageGateway/Models.swift +++ b/Sources/Services/AWSStorageGateway/Sources/AWSStorageGateway/Models.swift @@ -957,7 +957,7 @@ extension StorageGatewayClientTypes { public struct CachediSCSIVolume { /// The date the volume was created. Volumes created prior to March 28, 2017 don’t have this timestamp. public var createdDate: Foundation.Date? - /// The Amazon Resource Name (ARN) of a symmetric customer master key (CMK) used for Amazon S3 server-side encryption. Storage Gateway does not support asymmetric CMKs. This value can only be set when KMSEncrypted is true. Optional. + /// Optional. The Amazon Resource Name (ARN) of a symmetric customer master key (CMK) used for Amazon S3 server-side encryption. Storage Gateway does not support asymmetric CMKs. This value must be set if KMSEncrypted is true, or if EncryptionType is SseKms or DsseKms. public var kmsKey: Swift.String? /// If the cached volume was created from a snapshot, this field contains the snapshot ID used, e.g., snap-78e22663. Otherwise, this field is not included. public var sourceSnapshotId: Swift.String? @@ -1211,6 +1211,38 @@ public struct CreateCachediSCSIVolumeOutput { } } +extension StorageGatewayClientTypes { + + public enum EncryptionType: Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Hashable { + case dssekms + case ssekms + case sses3 + case sdkUnknown(Swift.String) + + public static var allCases: [EncryptionType] { + return [ + .dssekms, + .ssekms, + .sses3 + ] + } + + public init?(rawValue: Swift.String) { + let value = Self.allCases.first(where: { $0.rawValue == rawValue }) + self = value ?? Self.sdkUnknown(rawValue) + } + + public var rawValue: Swift.String { + switch self { + case .dssekms: return "DsseKms" + case .ssekms: return "SseKms" + case .sses3: return "SseS3" + case let .sdkUnknown(s): return s + } + } + } +} + extension StorageGatewayClientTypes { /// Describes Network File System (NFS) file share default values. Files and folders stored as Amazon S3 objects in S3 buckets don't, by default, have Unix file permissions assigned to them. Upon discovery in an S3 bucket by Storage Gateway, the S3 objects that represent files and folders are assigned these default Unix permissions. This operation is only supported for S3 File Gateways. public struct NFSFileShareDefaults { @@ -1299,6 +1331,8 @@ public struct CreateNFSFileShareInput { public var clientToken: Swift.String? /// The default storage class for objects put into an Amazon S3 bucket by the S3 File Gateway. The default value is S3_STANDARD. Optional. Valid Values: S3_STANDARD | S3_INTELLIGENT_TIERING | S3_STANDARD_IA | S3_ONEZONE_IA public var defaultStorageClass: Swift.String? + /// A value that specifies the type of server-side encryption that the file share will use for the data that it stores in Amazon S3. We recommend using EncryptionType instead of KMSEncrypted to set the file share encryption method. You do not need to provide values for both parameters. If values for both parameters exist in the same request, then the specified encryption methods must not conflict. For example, if EncryptionType is SseS3, then KMSEncrypted must be false. If EncryptionType is SseKms or DsseKms, then KMSEncrypted must be true. + public var encryptionType: StorageGatewayClientTypes.EncryptionType? /// The name of the file share. Optional. FileShareName must be set if an S3 prefix name is set in LocationARN, or if an access point or access point alias is used. public var fileShareName: Swift.String? /// The Amazon Resource Name (ARN) of the S3 File Gateway on which you want to create a file share. @@ -1306,16 +1340,17 @@ public struct CreateNFSFileShareInput { public var gatewayARN: Swift.String? /// A value that enables guessing of the MIME type for uploaded objects based on file extensions. Set this value to true to enable MIME type guessing, otherwise set to false. The default value is true. Valid Values: true | false public var guessMIMETypeEnabled: Swift.Bool? - /// Set to true to use Amazon S3 server-side encryption with your own KMS key, or false to use a key managed by Amazon S3. Optional. Valid Values: true | false + /// Optional. Set to true to use Amazon S3 server-side encryption with your own KMS key (SSE-KMS), or false to use a key managed by Amazon S3 (SSE-S3). To use dual-layer encryption (DSSE-KMS), set the EncryptionType parameter instead. We recommend using EncryptionType instead of KMSEncrypted to set the file share encryption method. You do not need to provide values for both parameters. If values for both parameters exist in the same request, then the specified encryption methods must not conflict. For example, if EncryptionType is SseS3, then KMSEncrypted must be false. If EncryptionType is SseKms or DsseKms, then KMSEncrypted must be true. Valid Values: true | false + @available(*, deprecated, message: "KMSEncrypted is deprecated, use EncryptionType instead.") public var kmsEncrypted: Swift.Bool? - /// The Amazon Resource Name (ARN) of a symmetric customer master key (CMK) used for Amazon S3 server-side encryption. Storage Gateway does not support asymmetric CMKs. This value can only be set when KMSEncrypted is true. Optional. + /// Optional. The Amazon Resource Name (ARN) of a symmetric customer master key (CMK) used for Amazon S3 server-side encryption. Storage Gateway does not support asymmetric CMKs. This value must be set if KMSEncrypted is true, or if EncryptionType is SseKms or DsseKms. public var kmsKey: Swift.String? /// A custom ARN for the backend storage used for storing data for file shares. It includes a resource ARN with an optional prefix concatenation. The prefix must end with a forward slash (/). You can specify LocationARN as a bucket ARN, access point ARN or access point alias, as shown in the following examples. Bucket ARN: arn:aws:s3:::my-bucket/prefix/ Access point ARN: arn:aws:s3:region:account-id:accesspoint/access-point-name/prefix/ If you specify an access point, the bucket policy must be configured to delegate access control to the access point. For information, see [Delegating access control to access points](https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-points-policies.html#access-points-delegating-control) in the Amazon S3 User Guide. Access point alias: test-ap-ab123cdef4gehijklmn5opqrstuvuse1a-s3alias /// This member is required. public var locationARN: Swift.String? /// File share default values. Optional. public var nfsFileShareDefaults: StorageGatewayClientTypes.NFSFileShareDefaults? - /// The notification policy of the file share. SettlingTimeInSeconds controls the number of seconds to wait after the last point in time a client wrote to a file before generating an ObjectUploaded notification. Because clients can make many small writes to files, it's best to set this parameter for as long as possible to avoid generating multiple notifications for the same file in a small time period. SettlingTimeInSeconds has no effect on the timing of the object uploading to Amazon S3, only the timing of the notification. The following example sets NotificationPolicy on with SettlingTimeInSeconds set to 60. {\"Upload\": {\"SettlingTimeInSeconds\": 60}} The following example sets NotificationPolicy off. {} + /// The notification policy of the file share. SettlingTimeInSeconds controls the number of seconds to wait after the last point in time a client wrote to a file before generating an ObjectUploaded notification. Because clients can make many small writes to files, it's best to set this parameter for as long as possible to avoid generating multiple notifications for the same file in a small time period. SettlingTimeInSeconds has no effect on the timing of the object uploading to Amazon S3, only the timing of the notification. This setting is not meant to specify an exact time at which the notification will be sent. In some cases, the gateway might require more than the specified delay time to generate and send notifications. The following example sets NotificationPolicy on with SettlingTimeInSeconds set to 60. {\"Upload\": {\"SettlingTimeInSeconds\": 60}} The following example sets NotificationPolicy off. {} public var notificationPolicy: Swift.String? /// A value that sets the access control list (ACL) permission for objects in the S3 bucket that a S3 File Gateway puts objects into. The default value is private. public var objectACL: StorageGatewayClientTypes.ObjectACL? @@ -1346,6 +1381,7 @@ public struct CreateNFSFileShareInput { clientList: [Swift.String]? = nil, clientToken: Swift.String? = nil, defaultStorageClass: Swift.String? = nil, + encryptionType: StorageGatewayClientTypes.EncryptionType? = nil, fileShareName: Swift.String? = nil, gatewayARN: Swift.String? = nil, guessMIMETypeEnabled: Swift.Bool? = nil, @@ -1369,6 +1405,7 @@ public struct CreateNFSFileShareInput { self.clientList = clientList self.clientToken = clientToken self.defaultStorageClass = defaultStorageClass + self.encryptionType = encryptionType self.fileShareName = fileShareName self.gatewayARN = gatewayARN self.guessMIMETypeEnabled = guessMIMETypeEnabled @@ -1421,6 +1458,8 @@ public struct CreateSMBFileShareInput { public var clientToken: Swift.String? /// The default storage class for objects put into an Amazon S3 bucket by the S3 File Gateway. The default value is S3_STANDARD. Optional. Valid Values: S3_STANDARD | S3_INTELLIGENT_TIERING | S3_STANDARD_IA | S3_ONEZONE_IA public var defaultStorageClass: Swift.String? + /// A value that specifies the type of server-side encryption that the file share will use for the data that it stores in Amazon S3. We recommend using EncryptionType instead of KMSEncrypted to set the file share encryption method. You do not need to provide values for both parameters. If values for both parameters exist in the same request, then the specified encryption methods must not conflict. For example, if EncryptionType is SseS3, then KMSEncrypted must be false. If EncryptionType is SseKms or DsseKms, then KMSEncrypted must be true. + public var encryptionType: StorageGatewayClientTypes.EncryptionType? /// The name of the file share. Optional. FileShareName must be set if an S3 prefix name is set in LocationARN, or if an access point or access point alias is used. public var fileShareName: Swift.String? /// The ARN of the S3 File Gateway on which you want to create a file share. @@ -1430,14 +1469,15 @@ public struct CreateSMBFileShareInput { public var guessMIMETypeEnabled: Swift.Bool? /// A list of users or groups in the Active Directory that are not allowed to access the file share. A group must be prefixed with the @ character. Acceptable formats include: DOMAIN\User1, user1, @group1, and @DOMAIN\group1. Can only be set if Authentication is set to ActiveDirectory. public var invalidUserList: [Swift.String]? - /// Set to true to use Amazon S3 server-side encryption with your own KMS key, or false to use a key managed by Amazon S3. Optional. Valid Values: true | false + /// Optional. Set to true to use Amazon S3 server-side encryption with your own KMS key (SSE-KMS), or false to use a key managed by Amazon S3 (SSE-S3). To use dual-layer encryption (DSSE-KMS), set the EncryptionType parameter instead. We recommend using EncryptionType instead of KMSEncrypted to set the file share encryption method. You do not need to provide values for both parameters. If values for both parameters exist in the same request, then the specified encryption methods must not conflict. For example, if EncryptionType is SseS3, then KMSEncrypted must be false. If EncryptionType is SseKms or DsseKms, then KMSEncrypted must be true. Valid Values: true | false + @available(*, deprecated, message: "KMSEncrypted is deprecated, use EncryptionType instead.") public var kmsEncrypted: Swift.Bool? - /// The Amazon Resource Name (ARN) of a symmetric customer master key (CMK) used for Amazon S3 server-side encryption. Storage Gateway does not support asymmetric CMKs. This value can only be set when KMSEncrypted is true. Optional. + /// Optional. The Amazon Resource Name (ARN) of a symmetric customer master key (CMK) used for Amazon S3 server-side encryption. Storage Gateway does not support asymmetric CMKs. This value must be set if KMSEncrypted is true, or if EncryptionType is SseKms or DsseKms. public var kmsKey: Swift.String? /// A custom ARN for the backend storage used for storing data for file shares. It includes a resource ARN with an optional prefix concatenation. The prefix must end with a forward slash (/). You can specify LocationARN as a bucket ARN, access point ARN or access point alias, as shown in the following examples. Bucket ARN: arn:aws:s3:::my-bucket/prefix/ Access point ARN: arn:aws:s3:region:account-id:accesspoint/access-point-name/prefix/ If you specify an access point, the bucket policy must be configured to delegate access control to the access point. For information, see [Delegating access control to access points](https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-points-policies.html#access-points-delegating-control) in the Amazon S3 User Guide. Access point alias: test-ap-ab123cdef4gehijklmn5opqrstuvuse1a-s3alias /// This member is required. public var locationARN: Swift.String? - /// The notification policy of the file share. SettlingTimeInSeconds controls the number of seconds to wait after the last point in time a client wrote to a file before generating an ObjectUploaded notification. Because clients can make many small writes to files, it's best to set this parameter for as long as possible to avoid generating multiple notifications for the same file in a small time period. SettlingTimeInSeconds has no effect on the timing of the object uploading to Amazon S3, only the timing of the notification. The following example sets NotificationPolicy on with SettlingTimeInSeconds set to 60. {\"Upload\": {\"SettlingTimeInSeconds\": 60}} The following example sets NotificationPolicy off. {} + /// The notification policy of the file share. SettlingTimeInSeconds controls the number of seconds to wait after the last point in time a client wrote to a file before generating an ObjectUploaded notification. Because clients can make many small writes to files, it's best to set this parameter for as long as possible to avoid generating multiple notifications for the same file in a small time period. SettlingTimeInSeconds has no effect on the timing of the object uploading to Amazon S3, only the timing of the notification. This setting is not meant to specify an exact time at which the notification will be sent. In some cases, the gateway might require more than the specified delay time to generate and send notifications. The following example sets NotificationPolicy on with SettlingTimeInSeconds set to 60. {\"Upload\": {\"SettlingTimeInSeconds\": 60}} The following example sets NotificationPolicy off. {} public var notificationPolicy: Swift.String? /// A value that sets the access control list (ACL) permission for objects in the S3 bucket that a S3 File Gateway puts objects into. The default value is private. public var objectACL: StorageGatewayClientTypes.ObjectACL? @@ -1450,7 +1490,7 @@ public struct CreateSMBFileShareInput { /// The ARN of the Identity and Access Management (IAM) role that an S3 File Gateway assumes when it accesses the underlying storage. /// This member is required. public var role: Swift.String? - /// Set this value to true to enable access control list (ACL) on the SMB file share. Set it to false to map file and directory permissions to the POSIX permissions. For more information, see [Using Microsoft Windows ACLs to control access to an SMB file share](https://docs.aws.amazon.com/storagegateway/latest/userguide/smb-acl.html) in the Storage Gateway User Guide. Valid Values: true | false + /// Set this value to true to enable access control list (ACL) on the SMB file share. Set it to false to map file and directory permissions to the POSIX permissions. For more information, see [Using Windows ACLs to limit SMB file share access](https://docs.aws.amazon.com/filegateway/latest/files3/smb-acl.html) in the Amazon S3 File Gateway User Guide. Valid Values: true | false public var smbaclEnabled: Swift.Bool? /// A list of up to 50 tags that can be assigned to the NFS file share. Each tag is a key-value pair. Valid characters for key and value are letters, spaces, and numbers representable in UTF-8 format, and the following special characters: + - = . _ : / @. The maximum length of a tag's key is 128 characters, and the maximum length for a tag's value is 256. public var tags: [StorageGatewayClientTypes.Tag]? @@ -1469,6 +1509,7 @@ public struct CreateSMBFileShareInput { caseSensitivity: StorageGatewayClientTypes.CaseSensitivity? = nil, clientToken: Swift.String? = nil, defaultStorageClass: Swift.String? = nil, + encryptionType: StorageGatewayClientTypes.EncryptionType? = nil, fileShareName: Swift.String? = nil, gatewayARN: Swift.String? = nil, guessMIMETypeEnabled: Swift.Bool? = nil, @@ -1497,6 +1538,7 @@ public struct CreateSMBFileShareInput { self.caseSensitivity = caseSensitivity self.clientToken = clientToken self.defaultStorageClass = defaultStorageClass + self.encryptionType = encryptionType self.fileShareName = fileShareName self.gatewayARN = gatewayARN self.guessMIMETypeEnabled = guessMIMETypeEnabled @@ -2786,7 +2828,7 @@ public struct DescribeMaintenanceStartTimeInput { extension StorageGatewayClientTypes { /// A set of variables indicating the software update preferences for the gateway. public struct SoftwareUpdatePreferences { - /// Indicates the automatic update policy for a gateway. ALL_VERSIONS - Enables regular gateway maintenance updates. EMERGENCY_VERSIONS_ONLY - Disables regular gateway maintenance updates. + /// Indicates the automatic update policy for a gateway. ALL_VERSIONS - Enables regular gateway maintenance updates. EMERGENCY_VERSIONS_ONLY - Disables regular gateway maintenance updates. The gateway will still receive emergency version updates on rare occasions if necessary to remedy highly critical security or durability issues. You will be notified before an emergency version update is applied. These updates are applied during your gateway's scheduled maintenance window. public var automaticUpdatePolicy: StorageGatewayClientTypes.AutomaticUpdatePolicy? public init( @@ -2823,7 +2865,7 @@ public struct DescribeMaintenanceStartTimeOutput { public var hourOfDay: Swift.Int? /// The minute component of the maintenance start time represented as mm, where mm is the minute (0 to 59). The minute of the hour is in the time zone of the gateway. public var minuteOfHour: Swift.Int? - /// A set of variables indicating the software update preferences for the gateway. Includes AutomaticUpdatePolicy field with the following inputs: ALL_VERSIONS - Enables regular gateway maintenance updates. EMERGENCY_VERSIONS_ONLY - Disables regular gateway maintenance updates. + /// A set of variables indicating the software update preferences for the gateway. Includes AutomaticUpdatePolicy parameter with the following inputs: ALL_VERSIONS - Enables regular gateway maintenance updates. EMERGENCY_VERSIONS_ONLY - Disables regular gateway maintenance updates. The gateway will still receive emergency version updates on rare occasions if necessary to remedy highly critical security or durability issues. You will be notified before an emergency version update is applied. These updates are applied during your gateway's scheduled maintenance window. public var softwareUpdatePreferences: StorageGatewayClientTypes.SoftwareUpdatePreferences? /// A value that indicates the time zone that is set for the gateway. The start time and day of week specified should be in the time zone of the gateway. public var timezone: Swift.String? @@ -2875,6 +2917,8 @@ extension StorageGatewayClientTypes { public var clientList: [Swift.String]? /// The default storage class for objects put into an Amazon S3 bucket by the S3 File Gateway. The default value is S3_STANDARD. Optional. Valid Values: S3_STANDARD | S3_INTELLIGENT_TIERING | S3_STANDARD_IA | S3_ONEZONE_IA public var defaultStorageClass: Swift.String? + /// A value that specifies the type of server-side encryption that the file share will use for the data that it stores in Amazon S3. We recommend using EncryptionType instead of KMSEncrypted to set the file share encryption method. You do not need to provide values for both parameters. If values for both parameters exist in the same request, then the specified encryption methods must not conflict. For example, if EncryptionType is SseS3, then KMSEncrypted must be false. If EncryptionType is SseKms or DsseKms, then KMSEncrypted must be true. + public var encryptionType: StorageGatewayClientTypes.EncryptionType? /// The Amazon Resource Name (ARN) of the file share. public var fileShareARN: Swift.String? /// The ID of the file share. @@ -2887,15 +2931,16 @@ extension StorageGatewayClientTypes { public var gatewayARN: Swift.String? /// A value that enables guessing of the MIME type for uploaded objects based on file extensions. Set this value to true to enable MIME type guessing, otherwise set to false. The default value is true. Valid Values: true | false public var guessMIMETypeEnabled: Swift.Bool? - /// Set to true to use Amazon S3 server-side encryption with your own KMS key, or false to use a key managed by Amazon S3. Optional. Valid Values: true | false + /// Optional. Set to true to use Amazon S3 server-side encryption with your own KMS key (SSE-KMS), or false to use a key managed by Amazon S3 (SSE-S3). To use dual-layer encryption (DSSE-KMS), set the EncryptionType parameter instead. We recommend using EncryptionType instead of KMSEncrypted to set the file share encryption method. You do not need to provide values for both parameters. If values for both parameters exist in the same request, then the specified encryption methods must not conflict. For example, if EncryptionType is SseS3, then KMSEncrypted must be false. If EncryptionType is SseKms or DsseKms, then KMSEncrypted must be true. Valid Values: true | false + @available(*, deprecated, message: "KMSEncrypted is deprecated, use EncryptionType instead.") public var kmsEncrypted: Swift.Bool - /// The Amazon Resource Name (ARN) of a symmetric customer master key (CMK) used for Amazon S3 server-side encryption. Storage Gateway does not support asymmetric CMKs. This value can only be set when KMSEncrypted is true. Optional. + /// Optional. The Amazon Resource Name (ARN) of a symmetric customer master key (CMK) used for Amazon S3 server-side encryption. Storage Gateway does not support asymmetric CMKs. This value must be set if KMSEncrypted is true, or if EncryptionType is SseKms or DsseKms. public var kmsKey: Swift.String? /// A custom ARN for the backend storage used for storing data for file shares. It includes a resource ARN with an optional prefix concatenation. The prefix must end with a forward slash (/). You can specify LocationARN as a bucket ARN, access point ARN or access point alias, as shown in the following examples. Bucket ARN: arn:aws:s3:::my-bucket/prefix/ Access point ARN: arn:aws:s3:region:account-id:accesspoint/access-point-name/prefix/ If you specify an access point, the bucket policy must be configured to delegate access control to the access point. For information, see [Delegating access control to access points](https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-points-policies.html#access-points-delegating-control) in the Amazon S3 User Guide. Access point alias: test-ap-ab123cdef4gehijklmn5opqrstuvuse1a-s3alias public var locationARN: Swift.String? /// Describes Network File System (NFS) file share default values. Files and folders stored as Amazon S3 objects in S3 buckets don't, by default, have Unix file permissions assigned to them. Upon discovery in an S3 bucket by Storage Gateway, the S3 objects that represent files and folders are assigned these default Unix permissions. This operation is only supported for S3 File Gateways. public var nfsFileShareDefaults: StorageGatewayClientTypes.NFSFileShareDefaults? - /// The notification policy of the file share. SettlingTimeInSeconds controls the number of seconds to wait after the last point in time a client wrote to a file before generating an ObjectUploaded notification. Because clients can make many small writes to files, it's best to set this parameter for as long as possible to avoid generating multiple notifications for the same file in a small time period. SettlingTimeInSeconds has no effect on the timing of the object uploading to Amazon S3, only the timing of the notification. The following example sets NotificationPolicy on with SettlingTimeInSeconds set to 60. {\"Upload\": {\"SettlingTimeInSeconds\": 60}} The following example sets NotificationPolicy off. {} + /// The notification policy of the file share. SettlingTimeInSeconds controls the number of seconds to wait after the last point in time a client wrote to a file before generating an ObjectUploaded notification. Because clients can make many small writes to files, it's best to set this parameter for as long as possible to avoid generating multiple notifications for the same file in a small time period. SettlingTimeInSeconds has no effect on the timing of the object uploading to Amazon S3, only the timing of the notification. This setting is not meant to specify an exact time at which the notification will be sent. In some cases, the gateway might require more than the specified delay time to generate and send notifications. The following example sets NotificationPolicy on with SettlingTimeInSeconds set to 60. {\"Upload\": {\"SettlingTimeInSeconds\": 60}} The following example sets NotificationPolicy off. {} public var notificationPolicy: Swift.String? /// A value that sets the access control list (ACL) permission for objects in the S3 bucket that an S3 File Gateway puts objects into. The default value is private. public var objectACL: StorageGatewayClientTypes.ObjectACL? @@ -2926,6 +2971,7 @@ extension StorageGatewayClientTypes { cacheAttributes: StorageGatewayClientTypes.CacheAttributes? = nil, clientList: [Swift.String]? = nil, defaultStorageClass: Swift.String? = nil, + encryptionType: StorageGatewayClientTypes.EncryptionType? = nil, fileShareARN: Swift.String? = nil, fileShareId: Swift.String? = nil, fileShareName: Swift.String? = nil, @@ -2952,6 +2998,7 @@ extension StorageGatewayClientTypes { self.cacheAttributes = cacheAttributes self.clientList = clientList self.defaultStorageClass = defaultStorageClass + self.encryptionType = encryptionType self.fileShareARN = fileShareARN self.fileShareId = fileShareId self.fileShareName = fileShareName @@ -3022,6 +3069,8 @@ extension StorageGatewayClientTypes { public var caseSensitivity: StorageGatewayClientTypes.CaseSensitivity? /// The default storage class for objects put into an Amazon S3 bucket by the S3 File Gateway. The default value is S3_STANDARD. Optional. Valid Values: S3_STANDARD | S3_INTELLIGENT_TIERING | S3_STANDARD_IA | S3_ONEZONE_IA public var defaultStorageClass: Swift.String? + /// A value that specifies the type of server-side encryption that the file share will use for the data that it stores in Amazon S3. We recommend using EncryptionType instead of KMSEncrypted to set the file share encryption method. You do not need to provide values for both parameters. If values for both parameters exist in the same request, then the specified encryption methods must not conflict. For example, if EncryptionType is SseS3, then KMSEncrypted must be false. If EncryptionType is SseKms or DsseKms, then KMSEncrypted must be true. + public var encryptionType: StorageGatewayClientTypes.EncryptionType? /// The Amazon Resource Name (ARN) of the file share. public var fileShareARN: Swift.String? /// The ID of the file share. @@ -3036,13 +3085,14 @@ extension StorageGatewayClientTypes { public var guessMIMETypeEnabled: Swift.Bool? /// A list of users or groups in the Active Directory that are not allowed to access the file share. A group must be prefixed with the @ character. Acceptable formats include: DOMAIN\User1, user1, @group1, and @DOMAIN\group1. Can only be set if Authentication is set to ActiveDirectory. public var invalidUserList: [Swift.String]? - /// Set to true to use Amazon S3 server-side encryption with your own KMS key, or false to use a key managed by Amazon S3. Optional. Valid Values: true | false + /// Optional. Set to true to use Amazon S3 server-side encryption with your own KMS key (SSE-KMS), or false to use a key managed by Amazon S3 (SSE-S3). To use dual-layer encryption (DSSE-KMS), set the EncryptionType parameter instead. We recommend using EncryptionType instead of KMSEncrypted to set the file share encryption method. You do not need to provide values for both parameters. If values for both parameters exist in the same request, then the specified encryption methods must not conflict. For example, if EncryptionType is SseS3, then KMSEncrypted must be false. If EncryptionType is SseKms or DsseKms, then KMSEncrypted must be true. Valid Values: true | false + @available(*, deprecated, message: "KMSEncrypted is deprecated, use EncryptionType instead.") public var kmsEncrypted: Swift.Bool - /// The Amazon Resource Name (ARN) of a symmetric customer master key (CMK) used for Amazon S3 server-side encryption. Storage Gateway does not support asymmetric CMKs. This value can only be set when KMSEncrypted is true. Optional. + /// Optional. The Amazon Resource Name (ARN) of a symmetric customer master key (CMK) used for Amazon S3 server-side encryption. Storage Gateway does not support asymmetric CMKs. This value must be set if KMSEncrypted is true, or if EncryptionType is SseKms or DsseKms. public var kmsKey: Swift.String? /// A custom ARN for the backend storage used for storing data for file shares. It includes a resource ARN with an optional prefix concatenation. The prefix must end with a forward slash (/). You can specify LocationARN as a bucket ARN, access point ARN or access point alias, as shown in the following examples. Bucket ARN: arn:aws:s3:::my-bucket/prefix/ Access point ARN: arn:aws:s3:region:account-id:accesspoint/access-point-name/prefix/ If you specify an access point, the bucket policy must be configured to delegate access control to the access point. For information, see [Delegating access control to access points](https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-points-policies.html#access-points-delegating-control) in the Amazon S3 User Guide. Access point alias: test-ap-ab123cdef4gehijklmn5opqrstuvuse1a-s3alias public var locationARN: Swift.String? - /// The notification policy of the file share. SettlingTimeInSeconds controls the number of seconds to wait after the last point in time a client wrote to a file before generating an ObjectUploaded notification. Because clients can make many small writes to files, it's best to set this parameter for as long as possible to avoid generating multiple notifications for the same file in a small time period. SettlingTimeInSeconds has no effect on the timing of the object uploading to Amazon S3, only the timing of the notification. The following example sets NotificationPolicy on with SettlingTimeInSeconds set to 60. {\"Upload\": {\"SettlingTimeInSeconds\": 60}} The following example sets NotificationPolicy off. {} + /// The notification policy of the file share. SettlingTimeInSeconds controls the number of seconds to wait after the last point in time a client wrote to a file before generating an ObjectUploaded notification. Because clients can make many small writes to files, it's best to set this parameter for as long as possible to avoid generating multiple notifications for the same file in a small time period. SettlingTimeInSeconds has no effect on the timing of the object uploading to Amazon S3, only the timing of the notification. This setting is not meant to specify an exact time at which the notification will be sent. In some cases, the gateway might require more than the specified delay time to generate and send notifications. The following example sets NotificationPolicy on with SettlingTimeInSeconds set to 60. {\"Upload\": {\"SettlingTimeInSeconds\": 60}} The following example sets NotificationPolicy off. {} public var notificationPolicy: Swift.String? /// A value that sets the access control list (ACL) permission for objects in the S3 bucket that an S3 File Gateway puts objects into. The default value is private. public var objectACL: StorageGatewayClientTypes.ObjectACL? @@ -3056,7 +3106,7 @@ extension StorageGatewayClientTypes { public var requesterPays: Swift.Bool? /// The ARN of the IAM role that an S3 File Gateway assumes when it accesses the underlying storage. public var role: Swift.String? - /// If this value is set to true, it indicates that access control list (ACL) is enabled on the SMB file share. If it is set to false, it indicates that file and directory permissions are mapped to the POSIX permission. For more information, see [Using Microsoft Windows ACLs to control access to an SMB file share](https://docs.aws.amazon.com/storagegateway/latest/userguide/smb-acl.html) in the Storage Gateway User Guide. + /// If this value is set to true, it indicates that access control list (ACL) is enabled on the SMB file share. If it is set to false, it indicates that file and directory permissions are mapped to the POSIX permission. For more information, see [Using Windows ACLs to limit SMB file share access](https://docs.aws.amazon.com/filegateway/latest/files3/smb-acl.html) in the Amazon S3 File Gateway User Guide. public var smbaclEnabled: Swift.Bool? /// A list of up to 50 tags assigned to the SMB file share, sorted alphabetically by key name. Each tag is a key-value pair. For a gateway with more than 10 tags assigned, you can view all tags using the ListTagsForResource API operation. public var tags: [StorageGatewayClientTypes.Tag]? @@ -3074,6 +3124,7 @@ extension StorageGatewayClientTypes { cacheAttributes: StorageGatewayClientTypes.CacheAttributes? = nil, caseSensitivity: StorageGatewayClientTypes.CaseSensitivity? = nil, defaultStorageClass: Swift.String? = nil, + encryptionType: StorageGatewayClientTypes.EncryptionType? = nil, fileShareARN: Swift.String? = nil, fileShareId: Swift.String? = nil, fileShareName: Swift.String? = nil, @@ -3105,6 +3156,7 @@ extension StorageGatewayClientTypes { self.cacheAttributes = cacheAttributes self.caseSensitivity = caseSensitivity self.defaultStorageClass = defaultStorageClass + self.encryptionType = encryptionType self.fileShareARN = fileShareARN self.fileShareId = fileShareId self.fileShareName = fileShareName @@ -3331,7 +3383,7 @@ extension StorageGatewayClientTypes { public struct StorediSCSIVolume { /// The date the volume was created. Volumes created prior to March 28, 2017 don’t have this timestamp. public var createdDate: Foundation.Date? - /// The Amazon Resource Name (ARN) of a symmetric customer master key (CMK) used for Amazon S3 server-side encryption. Storage Gateway does not support asymmetric CMKs. This value can only be set when KMSEncrypted is true. Optional. + /// Optional. The Amazon Resource Name (ARN) of a symmetric customer master key (CMK) used for Amazon S3 server-side encryption. Storage Gateway does not support asymmetric CMKs. This value must be set if KMSEncrypted is true, or if EncryptionType is SseKms or DsseKms. public var kmsKey: Swift.String? /// Indicates if when the stored volume was created, existing data on the underlying local disk was preserved. Valid Values: true | false public var preservedExistingData: Swift.Bool @@ -3468,7 +3520,7 @@ extension StorageGatewayClientTypes { public struct TapeArchive { /// The time that the archiving of the virtual tape was completed. The default timestamp format is in the ISO8601 extended YYYY-MM-DD'T'HH:MM:SS'Z' format. public var completionTime: Foundation.Date? - /// The Amazon Resource Name (ARN) of a symmetric customer master key (CMK) used for Amazon S3 server-side encryption. Storage Gateway does not support asymmetric CMKs. This value can only be set when KMSEncrypted is true. Optional. + /// Optional. The Amazon Resource Name (ARN) of a symmetric customer master key (CMK) used for Amazon S3 server-side encryption. Storage Gateway does not support asymmetric CMKs. This value must be set if KMSEncrypted is true, or if EncryptionType is SseKms or DsseKms. public var kmsKey: Swift.String? /// The time that the tape entered the custom tape pool. The default timestamp format is in the ISO8601 extended YYYY-MM-DD'T'HH:MM:SS'Z' format. public var poolEntryDate: Foundation.Date? @@ -3644,7 +3696,7 @@ public struct DescribeTapesInput { extension StorageGatewayClientTypes { /// Describes a virtual tape object. public struct Tape { - /// The Amazon Resource Name (ARN) of a symmetric customer master key (CMK) used for Amazon S3 server-side encryption. Storage Gateway does not support asymmetric CMKs. This value can only be set when KMSEncrypted is true. Optional. + /// Optional. The Amazon Resource Name (ARN) of a symmetric customer master key (CMK) used for Amazon S3 server-side encryption. Storage Gateway does not support asymmetric CMKs. This value must be set if KMSEncrypted is true, or if EncryptionType is SseKms or DsseKms. public var kmsKey: Swift.String? /// The date that the tape enters a custom tape pool. public var poolEntryDate: Foundation.Date? @@ -5483,7 +5535,7 @@ public struct UpdateMaintenanceStartTimeInput { public var hourOfDay: Swift.Int? /// The minute component of the maintenance start time represented as mm, where mm is the minute (00 to 59). The minute of the hour is in the time zone of the gateway. public var minuteOfHour: Swift.Int? - /// A set of variables indicating the software update preferences for the gateway. Includes AutomaticUpdatePolicy field with the following inputs: ALL_VERSIONS - Enables regular gateway maintenance updates. EMERGENCY_VERSIONS_ONLY - Disables regular gateway maintenance updates. + /// A set of variables indicating the software update preferences for the gateway. Includes AutomaticUpdatePolicy field with the following inputs: ALL_VERSIONS - Enables regular gateway maintenance updates. EMERGENCY_VERSIONS_ONLY - Disables regular gateway maintenance updates. The gateway will still receive emergency version updates on rare occasions if necessary to remedy highly critical security or durability issues. You will be notified before an emergency version update is applied. These updates are applied during your gateway's scheduled maintenance window. public var softwareUpdatePreferences: StorageGatewayClientTypes.SoftwareUpdatePreferences? public init( @@ -5527,6 +5579,8 @@ public struct UpdateNFSFileShareInput { public var clientList: [Swift.String]? /// The default storage class for objects put into an Amazon S3 bucket by the S3 File Gateway. The default value is S3_STANDARD. Optional. Valid Values: S3_STANDARD | S3_INTELLIGENT_TIERING | S3_STANDARD_IA | S3_ONEZONE_IA public var defaultStorageClass: Swift.String? + /// A value that specifies the type of server-side encryption that the file share will use for the data that it stores in Amazon S3. We recommend using EncryptionType instead of KMSEncrypted to set the file share encryption method. You do not need to provide values for both parameters. If values for both parameters exist in the same request, then the specified encryption methods must not conflict. For example, if EncryptionType is SseS3, then KMSEncrypted must be false. If EncryptionType is SseKms or DsseKms, then KMSEncrypted must be true. + public var encryptionType: StorageGatewayClientTypes.EncryptionType? /// The Amazon Resource Name (ARN) of the file share to be updated. /// This member is required. public var fileShareARN: Swift.String? @@ -5534,13 +5588,14 @@ public struct UpdateNFSFileShareInput { public var fileShareName: Swift.String? /// A value that enables guessing of the MIME type for uploaded objects based on file extensions. Set this value to true to enable MIME type guessing, otherwise set to false. The default value is true. Valid Values: true | false public var guessMIMETypeEnabled: Swift.Bool? - /// Set to true to use Amazon S3 server-side encryption with your own KMS key, or false to use a key managed by Amazon S3. Optional. Valid Values: true | false + /// Optional. Set to true to use Amazon S3 server-side encryption with your own KMS key (SSE-KMS), or false to use a key managed by Amazon S3 (SSE-S3). To use dual-layer encryption (DSSE-KMS), set the EncryptionType parameter instead. We recommend using EncryptionType instead of KMSEncrypted to set the file share encryption method. You do not need to provide values for both parameters. If values for both parameters exist in the same request, then the specified encryption methods must not conflict. For example, if EncryptionType is SseS3, then KMSEncrypted must be false. If EncryptionType is SseKms or DsseKms, then KMSEncrypted must be true. Valid Values: true | false + @available(*, deprecated, message: "KMSEncrypted is deprecated, use EncryptionType instead.") public var kmsEncrypted: Swift.Bool? - /// The Amazon Resource Name (ARN) of a symmetric customer master key (CMK) used for Amazon S3 server-side encryption. Storage Gateway does not support asymmetric CMKs. This value can only be set when KMSEncrypted is true. Optional. + /// Optional. The Amazon Resource Name (ARN) of a symmetric customer master key (CMK) used for Amazon S3 server-side encryption. Storage Gateway does not support asymmetric CMKs. This value must be set if KMSEncrypted is true, or if EncryptionType is SseKms or DsseKms. public var kmsKey: Swift.String? /// The default values for the file share. Optional. public var nfsFileShareDefaults: StorageGatewayClientTypes.NFSFileShareDefaults? - /// The notification policy of the file share. SettlingTimeInSeconds controls the number of seconds to wait after the last point in time a client wrote to a file before generating an ObjectUploaded notification. Because clients can make many small writes to files, it's best to set this parameter for as long as possible to avoid generating multiple notifications for the same file in a small time period. SettlingTimeInSeconds has no effect on the timing of the object uploading to Amazon S3, only the timing of the notification. The following example sets NotificationPolicy on with SettlingTimeInSeconds set to 60. {\"Upload\": {\"SettlingTimeInSeconds\": 60}} The following example sets NotificationPolicy off. {} + /// The notification policy of the file share. SettlingTimeInSeconds controls the number of seconds to wait after the last point in time a client wrote to a file before generating an ObjectUploaded notification. Because clients can make many small writes to files, it's best to set this parameter for as long as possible to avoid generating multiple notifications for the same file in a small time period. SettlingTimeInSeconds has no effect on the timing of the object uploading to Amazon S3, only the timing of the notification. This setting is not meant to specify an exact time at which the notification will be sent. In some cases, the gateway might require more than the specified delay time to generate and send notifications. The following example sets NotificationPolicy on with SettlingTimeInSeconds set to 60. {\"Upload\": {\"SettlingTimeInSeconds\": 60}} The following example sets NotificationPolicy off. {} public var notificationPolicy: Swift.String? /// A value that sets the access control list (ACL) permission for objects in the S3 bucket that a S3 File Gateway puts objects into. The default value is private. public var objectACL: StorageGatewayClientTypes.ObjectACL? @@ -5562,6 +5617,7 @@ public struct UpdateNFSFileShareInput { cacheAttributes: StorageGatewayClientTypes.CacheAttributes? = nil, clientList: [Swift.String]? = nil, defaultStorageClass: Swift.String? = nil, + encryptionType: StorageGatewayClientTypes.EncryptionType? = nil, fileShareARN: Swift.String? = nil, fileShareName: Swift.String? = nil, guessMIMETypeEnabled: Swift.Bool? = nil, @@ -5579,6 +5635,7 @@ public struct UpdateNFSFileShareInput { self.cacheAttributes = cacheAttributes self.clientList = clientList self.defaultStorageClass = defaultStorageClass + self.encryptionType = encryptionType self.fileShareARN = fileShareARN self.fileShareName = fileShareName self.guessMIMETypeEnabled = guessMIMETypeEnabled @@ -5620,6 +5677,8 @@ public struct UpdateSMBFileShareInput { public var caseSensitivity: StorageGatewayClientTypes.CaseSensitivity? /// The default storage class for objects put into an Amazon S3 bucket by the S3 File Gateway. The default value is S3_STANDARD. Optional. Valid Values: S3_STANDARD | S3_INTELLIGENT_TIERING | S3_STANDARD_IA | S3_ONEZONE_IA public var defaultStorageClass: Swift.String? + /// A value that specifies the type of server-side encryption that the file share will use for the data that it stores in Amazon S3. We recommend using EncryptionType instead of KMSEncrypted to set the file share encryption method. You do not need to provide values for both parameters. If values for both parameters exist in the same request, then the specified encryption methods must not conflict. For example, if EncryptionType is SseS3, then KMSEncrypted must be false. If EncryptionType is SseKms or DsseKms, then KMSEncrypted must be true. + public var encryptionType: StorageGatewayClientTypes.EncryptionType? /// The Amazon Resource Name (ARN) of the SMB file share that you want to update. /// This member is required. public var fileShareARN: Swift.String? @@ -5629,11 +5688,12 @@ public struct UpdateSMBFileShareInput { public var guessMIMETypeEnabled: Swift.Bool? /// A list of users or groups in the Active Directory that are not allowed to access the file share. A group must be prefixed with the @ character. Acceptable formats include: DOMAIN\User1, user1, @group1, and @DOMAIN\group1. Can only be set if Authentication is set to ActiveDirectory. public var invalidUserList: [Swift.String]? - /// Set to true to use Amazon S3 server-side encryption with your own KMS key, or false to use a key managed by Amazon S3. Optional. Valid Values: true | false + /// Optional. Set to true to use Amazon S3 server-side encryption with your own KMS key (SSE-KMS), or false to use a key managed by Amazon S3 (SSE-S3). To use dual-layer encryption (DSSE-KMS), set the EncryptionType parameter instead. We recommend using EncryptionType instead of KMSEncrypted to set the file share encryption method. You do not need to provide values for both parameters. If values for both parameters exist in the same request, then the specified encryption methods must not conflict. For example, if EncryptionType is SseS3, then KMSEncrypted must be false. If EncryptionType is SseKms or DsseKms, then KMSEncrypted must be true. Valid Values: true | false + @available(*, deprecated, message: "KMSEncrypted is deprecated, use EncryptionType instead.") public var kmsEncrypted: Swift.Bool? - /// The Amazon Resource Name (ARN) of a symmetric customer master key (CMK) used for Amazon S3 server-side encryption. Storage Gateway does not support asymmetric CMKs. This value can only be set when KMSEncrypted is true. Optional. + /// Optional. The Amazon Resource Name (ARN) of a symmetric customer master key (CMK) used for Amazon S3 server-side encryption. Storage Gateway does not support asymmetric CMKs. This value must be set if KMSEncrypted is true, or if EncryptionType is SseKms or DsseKms. public var kmsKey: Swift.String? - /// The notification policy of the file share. SettlingTimeInSeconds controls the number of seconds to wait after the last point in time a client wrote to a file before generating an ObjectUploaded notification. Because clients can make many small writes to files, it's best to set this parameter for as long as possible to avoid generating multiple notifications for the same file in a small time period. SettlingTimeInSeconds has no effect on the timing of the object uploading to Amazon S3, only the timing of the notification. The following example sets NotificationPolicy on with SettlingTimeInSeconds set to 60. {\"Upload\": {\"SettlingTimeInSeconds\": 60}} The following example sets NotificationPolicy off. {} + /// The notification policy of the file share. SettlingTimeInSeconds controls the number of seconds to wait after the last point in time a client wrote to a file before generating an ObjectUploaded notification. Because clients can make many small writes to files, it's best to set this parameter for as long as possible to avoid generating multiple notifications for the same file in a small time period. SettlingTimeInSeconds has no effect on the timing of the object uploading to Amazon S3, only the timing of the notification. This setting is not meant to specify an exact time at which the notification will be sent. In some cases, the gateway might require more than the specified delay time to generate and send notifications. The following example sets NotificationPolicy on with SettlingTimeInSeconds set to 60. {\"Upload\": {\"SettlingTimeInSeconds\": 60}} The following example sets NotificationPolicy off. {} public var notificationPolicy: Swift.String? /// A value that sets the access control list (ACL) permission for objects in the S3 bucket that a S3 File Gateway puts objects into. The default value is private. public var objectACL: StorageGatewayClientTypes.ObjectACL? @@ -5643,7 +5703,7 @@ public struct UpdateSMBFileShareInput { public var readOnly: Swift.Bool? /// A value that sets who pays the cost of the request and the cost associated with data download from the S3 bucket. If this value is set to true, the requester pays the costs; otherwise, the S3 bucket owner pays. However, the S3 bucket owner always pays the cost of storing data. RequesterPays is a configuration for the S3 bucket that backs the file share, so make sure that the configuration on the file share is the same as the S3 bucket configuration. Valid Values: true | false public var requesterPays: Swift.Bool? - /// Set this value to true to enable access control list (ACL) on the SMB file share. Set it to false to map file and directory permissions to the POSIX permissions. For more information, see [Using Microsoft Windows ACLs to control access to an SMB file share](https://docs.aws.amazon.com/storagegateway/latest/userguide/smb-acl.html) in the Storage Gateway User Guide. Valid Values: true | false + /// Set this value to true to enable access control list (ACL) on the SMB file share. Set it to false to map file and directory permissions to the POSIX permissions. For more information, see [Using Windows ACLs to limit SMB file share access](https://docs.aws.amazon.com/filegateway/latest/files3/smb-acl.html) in the Amazon S3 File Gateway User Guide. Valid Values: true | false public var smbaclEnabled: Swift.Bool? /// A list of users or groups in the Active Directory that are allowed to access the file share. A group must be prefixed with the @ character. Acceptable formats include: DOMAIN\User1, user1, @group1, and @DOMAIN\group1. Can only be set if Authentication is set to ActiveDirectory. public var validUserList: [Swift.String]? @@ -5655,6 +5715,7 @@ public struct UpdateSMBFileShareInput { cacheAttributes: StorageGatewayClientTypes.CacheAttributes? = nil, caseSensitivity: StorageGatewayClientTypes.CaseSensitivity? = nil, defaultStorageClass: Swift.String? = nil, + encryptionType: StorageGatewayClientTypes.EncryptionType? = nil, fileShareARN: Swift.String? = nil, fileShareName: Swift.String? = nil, guessMIMETypeEnabled: Swift.Bool? = nil, @@ -5676,6 +5737,7 @@ public struct UpdateSMBFileShareInput { self.cacheAttributes = cacheAttributes self.caseSensitivity = caseSensitivity self.defaultStorageClass = defaultStorageClass + self.encryptionType = encryptionType self.fileShareARN = fileShareARN self.fileShareName = fileShareName self.guessMIMETypeEnabled = guessMIMETypeEnabled @@ -6643,6 +6705,7 @@ extension CreateNFSFileShareInput { try writer["ClientList"].writeList(value.clientList, memberWritingClosure: SmithyReadWrite.WritingClosures.writeString(value:to:), memberNodeInfo: "member", isFlattened: false) try writer["ClientToken"].write(value.clientToken) try writer["DefaultStorageClass"].write(value.defaultStorageClass) + try writer["EncryptionType"].write(value.encryptionType) try writer["FileShareName"].write(value.fileShareName) try writer["GatewayARN"].write(value.gatewayARN) try writer["GuessMIMETypeEnabled"].write(value.guessMIMETypeEnabled) @@ -6674,6 +6737,7 @@ extension CreateSMBFileShareInput { try writer["CaseSensitivity"].write(value.caseSensitivity) try writer["ClientToken"].write(value.clientToken) try writer["DefaultStorageClass"].write(value.defaultStorageClass) + try writer["EncryptionType"].write(value.encryptionType) try writer["FileShareName"].write(value.fileShareName) try writer["GatewayARN"].write(value.gatewayARN) try writer["GuessMIMETypeEnabled"].write(value.guessMIMETypeEnabled) @@ -7358,6 +7422,7 @@ extension UpdateNFSFileShareInput { try writer["CacheAttributes"].write(value.cacheAttributes, with: StorageGatewayClientTypes.CacheAttributes.write(value:to:)) try writer["ClientList"].writeList(value.clientList, memberWritingClosure: SmithyReadWrite.WritingClosures.writeString(value:to:), memberNodeInfo: "member", isFlattened: false) try writer["DefaultStorageClass"].write(value.defaultStorageClass) + try writer["EncryptionType"].write(value.encryptionType) try writer["FileShareARN"].write(value.fileShareARN) try writer["FileShareName"].write(value.fileShareName) try writer["GuessMIMETypeEnabled"].write(value.guessMIMETypeEnabled) @@ -7382,6 +7447,7 @@ extension UpdateSMBFileShareInput { try writer["CacheAttributes"].write(value.cacheAttributes, with: StorageGatewayClientTypes.CacheAttributes.write(value:to:)) try writer["CaseSensitivity"].write(value.caseSensitivity) try writer["DefaultStorageClass"].write(value.defaultStorageClass) + try writer["EncryptionType"].write(value.encryptionType) try writer["FileShareARN"].write(value.fileShareARN) try writer["FileShareName"].write(value.fileShareName) try writer["GuessMIMETypeEnabled"].write(value.guessMIMETypeEnabled) @@ -10195,6 +10261,7 @@ extension StorageGatewayClientTypes.NFSFileShareInfo { value.fileShareId = try reader["FileShareId"].readIfPresent() value.fileShareStatus = try reader["FileShareStatus"].readIfPresent() value.gatewayARN = try reader["GatewayARN"].readIfPresent() + value.encryptionType = try reader["EncryptionType"].readIfPresent() value.kmsEncrypted = try reader["KMSEncrypted"].readIfPresent() ?? false value.kmsKey = try reader["KMSKey"].readIfPresent() value.path = try reader["Path"].readIfPresent() @@ -10248,6 +10315,7 @@ extension StorageGatewayClientTypes.SMBFileShareInfo { value.fileShareId = try reader["FileShareId"].readIfPresent() value.fileShareStatus = try reader["FileShareStatus"].readIfPresent() value.gatewayARN = try reader["GatewayARN"].readIfPresent() + value.encryptionType = try reader["EncryptionType"].readIfPresent() value.kmsEncrypted = try reader["KMSEncrypted"].readIfPresent() ?? false value.kmsKey = try reader["KMSKey"].readIfPresent() value.path = try reader["Path"].readIfPresent() diff --git a/Sources/Services/AWSSynthetics/Sources/AWSSynthetics/Models.swift b/Sources/Services/AWSSynthetics/Sources/AWSSynthetics/Models.swift index 3825affe5ed..d40e0f419ca 100644 --- a/Sources/Services/AWSSynthetics/Sources/AWSSynthetics/Models.swift +++ b/Sources/Services/AWSSynthetics/Sources/AWSSynthetics/Models.swift @@ -26,6 +26,7 @@ import protocol ClientRuntime.ModeledError @_spi(SmithyReadWrite) import struct AWSClientRuntime.RestJSONError @_spi(UnknownAWSHTTPServiceError) import struct AWSClientRuntime.UnknownAWSHTTPServiceError import struct Smithy.URIQueryItem +@_spi(SmithyReadWrite) import struct SmithyReadWrite.WritingClosureBox extension SyntheticsClientTypes { @@ -803,7 +804,11 @@ extension SyntheticsClientTypes { } extension SyntheticsClientTypes { - /// Use this structure to input your script code for the canary. This structure contains the Lambda handler with the location where the canary should start running the script. If the script is stored in an S3 bucket, the bucket name, key, and version are also included. If the script was passed into the canary directly, the script code is contained in the value of Zipfile. + /// Use this structure to input your script code for the canary. This structure contains the Lambda handler with the location where the canary should start running the script. If the script is stored in an S3 bucket, the bucket name, key, and version are also included. If the script was passed into the canary directly, the script code is contained in the value of Zipfile. If you are uploading your canary scripts with an Amazon S3 bucket, your zip file should include your script in a certain folder structure. + /// + /// * For Node.js canaries, the folder structure must be nodejs/node_modules/myCanaryFilename.js For more information, see [Packaging your Node.js canary files](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Synthetics_Canaries_WritingCanary_Nodejs.html#CloudWatch_Synthetics_Canaries_package) + /// + /// * For Python canaries, the folder structure must be python/myCanaryFilename.p or python/myFolder/myCanaryFilename.py For more information, see [Packaging your Python canary files](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Synthetics_Canaries_WritingCanary_Python.html#CloudWatch_Synthetics_Canaries_WritingCanary_Python_package) public struct CanaryCodeInput { /// The entry point to use for the source code when running the canary. For canaries that use the syn-python-selenium-1.0 runtime or a syn-nodejs.puppeteer runtime earlier than syn-nodejs.puppeteer-3.4, the handler must be specified as fileName.handler. For syn-python-selenium-1.1, syn-nodejs.puppeteer-3.4, and later runtimes, the handler can be specified as fileName.functionName , or you can specify a folder where canary scripts reside as folder/fileName.functionName . /// This member is required. @@ -908,6 +913,32 @@ public struct RequestEntityTooLargeException: ClientRuntime.ModeledError, AWSCli } } +extension SyntheticsClientTypes { + + public enum ResourceToTag: Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Hashable { + case lambdaFunction + case sdkUnknown(Swift.String) + + public static var allCases: [ResourceToTag] { + return [ + .lambdaFunction + ] + } + + public init?(rawValue: Swift.String) { + let value = Self.allCases.first(where: { $0.rawValue == rawValue }) + self = value ?? Self.sdkUnknown(rawValue) + } + + public var rawValue: Swift.String { + switch self { + case .lambdaFunction: return "lambda-function" + case let .sdkUnknown(s): return s + } + } + } +} + extension SyntheticsClientTypes { /// If this canary is to test an endpoint in a VPC, this structure contains information about the subnets and security groups of the VPC endpoint. For more information, see [ Running a Canary in a VPC](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Synthetics_Canaries_VPC.html). public struct VpcConfigInput { @@ -959,6 +990,8 @@ public struct CreateCanaryInput { /// The name for this canary. Be sure to give it a descriptive name that distinguishes it from other canaries in your account. Do not include secrets or proprietary information in your canary names. The canary name makes up part of the canary ARN, and the ARN is included in outbound calls over the internet. For more information, see [Security Considerations for Synthetics Canaries](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/servicelens_canaries_security.html). /// This member is required. public var name: Swift.String? + /// To have the tags that you apply to this canary also be applied to the Lambda function that the canary uses, specify this parameter with the value lambda-function. If you specify this parameter and don't specify any tags in the Tags parameter, the canary creation fails. + public var resourcesToReplicateTags: [SyntheticsClientTypes.ResourceToTag]? /// A structure that contains the configuration for individual canary runs, such as timeout value and environment variables. The environment variables keys and values are not encrypted. Do not store sensitive information in this field. public var runConfig: SyntheticsClientTypes.CanaryRunConfigInput? /// Specifies the runtime version to use for the canary. For a list of valid runtime versions and more information about runtime versions, see [ Canary Runtime Versions](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Synthetics_Canaries_Library.html). @@ -969,7 +1002,7 @@ public struct CreateCanaryInput { public var schedule: SyntheticsClientTypes.CanaryScheduleInput? /// The number of days to retain data about successful runs of this canary. If you omit this field, the default of 31 days is used. The valid range is 1 to 455 days. public var successRetentionPeriodInDays: Swift.Int? - /// A list of key-value pairs to associate with the canary. You can associate as many as 50 tags with a canary. Tags can help you organize and categorize your resources. You can also use them to scope user permissions, by granting a user permission to access or change only the resources that have certain tag values. + /// A list of key-value pairs to associate with the canary. You can associate as many as 50 tags with a canary. Tags can help you organize and categorize your resources. You can also use them to scope user permissions, by granting a user permission to access or change only the resources that have certain tag values. To have the tags that you apply to this canary also be applied to the Lambda function that the canary uses, specify this parameter with the value lambda-function. public var tags: [Swift.String: Swift.String]? /// If this canary is to test an endpoint in a VPC, this structure contains information about the subnet and security groups of the VPC endpoint. For more information, see [ Running a Canary in a VPC](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Synthetics_Canaries_VPC.html). public var vpcConfig: SyntheticsClientTypes.VpcConfigInput? @@ -981,6 +1014,7 @@ public struct CreateCanaryInput { executionRoleArn: Swift.String? = nil, failureRetentionPeriodInDays: Swift.Int? = nil, name: Swift.String? = nil, + resourcesToReplicateTags: [SyntheticsClientTypes.ResourceToTag]? = nil, runConfig: SyntheticsClientTypes.CanaryRunConfigInput? = nil, runtimeVersion: Swift.String? = nil, schedule: SyntheticsClientTypes.CanaryScheduleInput? = nil, @@ -995,6 +1029,7 @@ public struct CreateCanaryInput { self.executionRoleArn = executionRoleArn self.failureRetentionPeriodInDays = failureRetentionPeriodInDays self.name = name + self.resourcesToReplicateTags = resourcesToReplicateTags self.runConfig = runConfig self.runtimeVersion = runtimeVersion self.schedule = schedule @@ -1122,7 +1157,7 @@ public struct DeleteGroupOutput { } public struct DescribeCanariesInput { - /// Specify this parameter to limit how many canaries are returned each time you use the DescribeCanaries operation. If you omit this parameter, the default of 100 is used. + /// Specify this parameter to limit how many canaries are returned each time you use the DescribeCanaries operation. If you omit this parameter, the default of 20 is used. public var maxResults: Swift.Int? /// Use this parameter to return only canaries that match the names that you specify here. You can specify as many as five canary names. If you specify this parameter, the operation is successful only if you have authorization to view all the canaries that you specify in your request. If you do not have permission to view any of the canaries, the request fails with a 403 response. You are required to use this parameter if you are logged on to a user or role that has an IAM policy that restricts which canaries that you are allowed to view. For more information, see [ Limiting a user to viewing specific canaries](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Synthetics_Canaries_Restricted.html). public var names: [Swift.String]? @@ -2007,6 +2042,7 @@ extension CreateCanaryInput { try writer["ExecutionRoleArn"].write(value.executionRoleArn) try writer["FailureRetentionPeriodInDays"].write(value.failureRetentionPeriodInDays) try writer["Name"].write(value.name) + try writer["ResourcesToReplicateTags"].writeList(value.resourcesToReplicateTags, memberWritingClosure: SmithyReadWrite.WritingClosureBox().write(value:to:), memberNodeInfo: "member", isFlattened: false) try writer["RunConfig"].write(value.runConfig, with: SyntheticsClientTypes.CanaryRunConfigInput.write(value:to:)) try writer["RuntimeVersion"].write(value.runtimeVersion) try writer["Schedule"].write(value.schedule, with: SyntheticsClientTypes.CanaryScheduleInput.write(value:to:)) diff --git a/Sources/Services/AWSSynthetics/Sources/AWSSynthetics/SyntheticsClient.swift b/Sources/Services/AWSSynthetics/Sources/AWSSynthetics/SyntheticsClient.swift index a0ab0de0d3d..fa494cf1811 100644 --- a/Sources/Services/AWSSynthetics/Sources/AWSSynthetics/SyntheticsClient.swift +++ b/Sources/Services/AWSSynthetics/Sources/AWSSynthetics/SyntheticsClient.swift @@ -410,13 +410,13 @@ extension SyntheticsClient { /// /// Permanently deletes the specified canary. If you specify DeleteLambda to true, CloudWatch Synthetics also deletes the Lambda functions and layers that are used by the canary. Other resources used and created by the canary are not automatically deleted. After you delete a canary that you do not intend to use again, you should also delete the following: /// - /// * The CloudWatch alarms created for this canary. These alarms have a name of Synthetics-SharpDrop-Alarm-MyCanaryName . + /// * The CloudWatch alarms created for this canary. These alarms have a name of Synthetics-Alarm-first-198-characters-of-canary-name-canaryId-alarm number /// /// * Amazon S3 objects and buckets, such as the canary's artifact location. /// - /// * IAM roles created for the canary. If they were created in the console, these roles have the name role/service-role/CloudWatchSyntheticsRole-MyCanaryName . + /// * IAM roles created for the canary. If they were created in the console, these roles have the name role/service-role/CloudWatchSyntheticsRole-First-21-Characters-of-CanaryName /// - /// * CloudWatch Logs log groups created for the canary. These logs groups have the name /aws/lambda/cwsyn-MyCanaryName . + /// * CloudWatch Logs log groups created for the canary. These logs groups have the name /aws/lambda/cwsyn-First-21-Characters-of-CanaryName /// /// /// Before you delete a canary, you might want to use GetCanary to display the information about this canary. Make note of the information returned by this operation so that you can delete these resources after you delete the canary. diff --git a/packageDependencies.plist b/packageDependencies.plist index 23f607b9a82..89a5e9b5bf1 100644 --- a/packageDependencies.plist +++ b/packageDependencies.plist @@ -9,6 +9,6 @@ clientRuntimeBranch main clientRuntimeVersion - 0.67.0 + 0.68.0