From e683b00744de7445497c128f57e58e6b418e40a8 Mon Sep 17 00:00:00 2001
From: AWS Mobile SDK Bot <46607340+awsmobilesdk@users.noreply.github.com>
Date: Wed, 28 Jun 2023 13:39:48 -0700
Subject: [PATCH] feat(aws-android-sdk-connect): update models to latest
 (#3337)

Co-authored-by: Erica Eaton <67125657+eeatonaws@users.noreply.github.com>
---
 .../services/connect/AmazonConnect.java       |  81 ++-
 .../services/connect/AmazonConnectAsync.java  | 169 +++++-
 .../connect/AmazonConnectAsyncClient.java     | 185 ++++++-
 .../services/connect/AmazonConnectClient.java | 110 +++-
 ...AssociateInstanceStorageConfigRequest.java |  18 +-
 .../model/ClaimPhoneNumberRequest.java        |  20 +
 .../DescribeInstanceStorageConfigRequest.java |  18 +-
 ...associateInstanceStorageConfigRequest.java |  18 +-
 .../services/connect/model/Instance.java      |  70 ++-
 .../model/InstanceStorageResourceType.java    |   4 +-
 .../connect/model/InstanceSummary.java        |  70 ++-
 .../ListInstanceStorageConfigsRequest.java    |  18 +-
 .../model/MaximumResultReturnedException.java |  38 ++
 .../model/ReleasePhoneNumberRequest.java      |  20 +
 .../model/ResourceTagsSearchCriteria.java     | 123 +++++
 .../model/ResumeContactRecordingRequest.java  |   4 +-
 .../model/SearchResourceTagsRequest.java      | 489 ++++++++++++++++++
 .../model/SearchResourceTagsResult.java       | 224 ++++++++
 .../model/SuspendContactRecordingRequest.java |  10 +-
 .../connect/model/TagSearchCondition.java     | 460 ++++++++++++++++
 .../services/connect/model/TagSet.java        | 208 ++++++++
 .../UpdateInstanceStorageConfigRequest.java   |  18 +-
 .../transform/InstanceJsonMarshaller.java     |   5 +
 .../transform/InstanceJsonUnmarshaller.java   |   3 +
 .../InstanceSummaryJsonMarshaller.java        |   5 +
 .../InstanceSummaryJsonUnmarshaller.java      |   3 +
 ...umResultReturnedExceptionUnmarshaller.java |  42 ++
 ...ourceTagsSearchCriteriaJsonMarshaller.java |  46 ++
 ...rceTagsSearchCriteriaJsonUnmarshaller.java |  58 +++
 .../SearchResourceTagsRequestMarshaller.java  | 114 ++++
 ...rchResourceTagsResultJsonUnmarshaller.java |  60 +++
 .../TagSearchConditionJsonMarshaller.java     |  60 +++
 .../TagSearchConditionJsonUnmarshaller.java   |  66 +++
 .../model/transform/TagSetJsonMarshaller.java |  49 ++
 .../transform/TagSetJsonUnmarshaller.java     |  59 +++
 35 files changed, 2869 insertions(+), 76 deletions(-)
 create mode 100644 aws-android-sdk-connect/src/main/java/com/amazonaws/services/connect/model/MaximumResultReturnedException.java
 create mode 100644 aws-android-sdk-connect/src/main/java/com/amazonaws/services/connect/model/ResourceTagsSearchCriteria.java
 create mode 100644 aws-android-sdk-connect/src/main/java/com/amazonaws/services/connect/model/SearchResourceTagsRequest.java
 create mode 100644 aws-android-sdk-connect/src/main/java/com/amazonaws/services/connect/model/SearchResourceTagsResult.java
 create mode 100644 aws-android-sdk-connect/src/main/java/com/amazonaws/services/connect/model/TagSearchCondition.java
 create mode 100644 aws-android-sdk-connect/src/main/java/com/amazonaws/services/connect/model/TagSet.java
 create mode 100644 aws-android-sdk-connect/src/main/java/com/amazonaws/services/connect/model/transform/MaximumResultReturnedExceptionUnmarshaller.java
 create mode 100644 aws-android-sdk-connect/src/main/java/com/amazonaws/services/connect/model/transform/ResourceTagsSearchCriteriaJsonMarshaller.java
 create mode 100644 aws-android-sdk-connect/src/main/java/com/amazonaws/services/connect/model/transform/ResourceTagsSearchCriteriaJsonUnmarshaller.java
 create mode 100644 aws-android-sdk-connect/src/main/java/com/amazonaws/services/connect/model/transform/SearchResourceTagsRequestMarshaller.java
 create mode 100644 aws-android-sdk-connect/src/main/java/com/amazonaws/services/connect/model/transform/SearchResourceTagsResultJsonUnmarshaller.java
 create mode 100644 aws-android-sdk-connect/src/main/java/com/amazonaws/services/connect/model/transform/TagSearchConditionJsonMarshaller.java
 create mode 100644 aws-android-sdk-connect/src/main/java/com/amazonaws/services/connect/model/transform/TagSearchConditionJsonUnmarshaller.java
 create mode 100644 aws-android-sdk-connect/src/main/java/com/amazonaws/services/connect/model/transform/TagSetJsonMarshaller.java
 create mode 100644 aws-android-sdk-connect/src/main/java/com/amazonaws/services/connect/model/transform/TagSetJsonUnmarshaller.java

diff --git a/aws-android-sdk-connect/src/main/java/com/amazonaws/services/connect/AmazonConnect.java b/aws-android-sdk-connect/src/main/java/com/amazonaws/services/connect/AmazonConnect.java
index 2ca2b24e40..b8c80edbdc 100644
--- a/aws-android-sdk-connect/src/main/java/com/amazonaws/services/connect/AmazonConnect.java
+++ b/aws-android-sdk-connect/src/main/java/com/amazonaws/services/connect/AmazonConnect.java
@@ -466,6 +466,27 @@ AssociateSecurityKeyResult associateSecurityKey(
      * >ClaimPhoneNumber</a> operation.
      * </p>
      * </important>
+     * <p>
+     * If you plan to claim and release numbers frequently during a 30 day
+     * period, contact us for a service quota exception. Otherwise, it is
+     * possible you will be blocked from claiming and releasing any more numbers
+     * until 30 days past the oldest number released has expired.
+     * </p>
+     * <p>
+     * By default you can claim and release up to 200% of your maximum number of
+     * active phone numbers during any 30 day period. If you claim and release
+     * phone numbers using the UI or API during a rolling 30 day cycle that
+     * exceeds 200% of your phone number service level quota, you will be
+     * blocked from claiming any more numbers until 30 days past the oldest
+     * number released has expired.
+     * </p>
+     * <p>
+     * For example, if you already have 99 claimed numbers and a service level
+     * quota of 99 phone numbers, and in any 30 day period you release 99, claim
+     * 99, and then release 99, you will have exceeded the 200% limit. At that
+     * point you are blocked from claiming any more numbers until you open an
+     * Amazon Web Services support ticket.
+     * </p>
      * 
      * @param claimPhoneNumberRequest
      * @return claimPhoneNumberResult The response from the ClaimPhoneNumber
@@ -3854,6 +3875,27 @@ PutUserStatusResult putUserStatus(PutUserStatusRequest putUserStatusRequest)
      * Amazon Web Services Support.
      * </p>
      * </important>
+     * <p>
+     * If you plan to claim and release numbers frequently during a 30 day
+     * period, contact us for a service quota exception. Otherwise, it is
+     * possible you will be blocked from claiming and releasing any more numbers
+     * until 30 days past the oldest number released has expired.
+     * </p>
+     * <p>
+     * By default you can claim and release up to 200% of your maximum number of
+     * active phone numbers during any 30 day period. If you claim and release
+     * phone numbers using the UI or API during a rolling 30 day cycle that
+     * exceeds 200% of your phone number service level quota, you will be
+     * blocked from claiming any more numbers until 30 days past the oldest
+     * number released has expired.
+     * </p>
+     * <p>
+     * For example, if you already have 99 claimed numbers and a service level
+     * quota of 99 phone numbers, and in any 30 day period you release 99, claim
+     * 99, and then release 99, you will have exceeded the 200% limit. At that
+     * point you are blocked from claiming any more numbers until you open an
+     * Amazon Web Services support ticket.
+     * </p>
      * 
      * @param releasePhoneNumberRequest
      * @throws InvalidParameterException
@@ -3912,10 +3954,11 @@ ReplicateInstanceResult replicateInstance(ReplicateInstanceRequest replicateInst
     /**
      * <p>
      * When a contact is being recorded, and the recording has been suspended
-     * using SuspendContactRecording, this API resumes recording the call.
+     * using SuspendContactRecording, this API resumes recording the call or
+     * screen.
      * </p>
      * <p>
-     * Only voice recordings are supported at this time.
+     * Voice and screen recordings are supported.
      * </p>
      * 
      * @param resumeContactRecordingRequest
@@ -4072,6 +4115,32 @@ SearchQuickConnectsResult searchQuickConnects(
             SearchQuickConnectsRequest searchQuickConnectsRequest) throws AmazonClientException,
             AmazonServiceException;
 
+    /**
+     * <p>
+     * Searches tags used in an Amazon Connect instance using optional search
+     * criteria.
+     * </p>
+     * 
+     * @param searchResourceTagsRequest
+     * @return searchResourceTagsResult The response from the SearchResourceTags
+     *         service method, as returned by Amazon Connect.
+     * @throws InvalidRequestException
+     * @throws InvalidParameterException
+     * @throws ResourceNotFoundException
+     * @throws ThrottlingException
+     * @throws InternalServiceException
+     * @throws MaximumResultReturnedException
+     * @throws AmazonClientException If any internal errors are encountered
+     *             inside the client while attempting to make the request or
+     *             handle the response. For example if a network connection is
+     *             not available.
+     * @throws AmazonServiceException If an error response is returned by Amazon
+     *             Connect indicating either a problem with the data in the
+     *             request, or a server side issue.
+     */
+    SearchResourceTagsResult searchResourceTags(SearchResourceTagsRequest searchResourceTagsRequest)
+            throws AmazonClientException, AmazonServiceException;
+
     /**
      * <p>
      * This API is in preview release for Amazon Connect and is subject to
@@ -4602,9 +4671,9 @@ SubmitContactEvaluationResult submitContactEvaluation(
 
     /**
      * <p>
-     * When a contact is being recorded, this API suspends recording the call.
-     * For example, you might suspend the call recording while collecting
-     * sensitive information, such as a credit card number. Then use
+     * When a contact is being recorded, this API suspends recording the call or
+     * screen. For example, you might suspend the call or screen recording while
+     * collecting sensitive information, such as a credit card number. Then use
      * ResumeContactRecording to restart recording.
      * </p>
      * <p>
@@ -4612,7 +4681,7 @@ SubmitContactEvaluationResult submitContactEvaluation(
      * in the final recording.
      * </p>
      * <p>
-     * Only voice recordings are supported at this time.
+     * Voice and screen recordings are supported.
      * </p>
      * 
      * @param suspendContactRecordingRequest
diff --git a/aws-android-sdk-connect/src/main/java/com/amazonaws/services/connect/AmazonConnectAsync.java b/aws-android-sdk-connect/src/main/java/com/amazonaws/services/connect/AmazonConnectAsync.java
index adbba3697b..42aff0b82b 100644
--- a/aws-android-sdk-connect/src/main/java/com/amazonaws/services/connect/AmazonConnectAsync.java
+++ b/aws-android-sdk-connect/src/main/java/com/amazonaws/services/connect/AmazonConnectAsync.java
@@ -840,6 +840,27 @@ Future<AssociateSecurityKeyResult> associateSecurityKeyAsync(
      * >ClaimPhoneNumber</a> operation.
      * </p>
      * </important>
+     * <p>
+     * If you plan to claim and release numbers frequently during a 30 day
+     * period, contact us for a service quota exception. Otherwise, it is
+     * possible you will be blocked from claiming and releasing any more numbers
+     * until 30 days past the oldest number released has expired.
+     * </p>
+     * <p>
+     * By default you can claim and release up to 200% of your maximum number of
+     * active phone numbers during any 30 day period. If you claim and release
+     * phone numbers using the UI or API during a rolling 30 day cycle that
+     * exceeds 200% of your phone number service level quota, you will be
+     * blocked from claiming any more numbers until 30 days past the oldest
+     * number released has expired.
+     * </p>
+     * <p>
+     * For example, if you already have 99 claimed numbers and a service level
+     * quota of 99 phone numbers, and in any 30 day period you release 99, claim
+     * 99, and then release 99, you will have exceeded the 200% limit. At that
+     * point you are blocked from claiming any more numbers until you open an
+     * Amazon Web Services support ticket.
+     * </p>
      * 
      * @param claimPhoneNumberRequest
      * @return A Java Future object containing the response from the
@@ -889,6 +910,27 @@ Future<ClaimPhoneNumberResult> claimPhoneNumberAsync(
      * >ClaimPhoneNumber</a> operation.
      * </p>
      * </important>
+     * <p>
+     * If you plan to claim and release numbers frequently during a 30 day
+     * period, contact us for a service quota exception. Otherwise, it is
+     * possible you will be blocked from claiming and releasing any more numbers
+     * until 30 days past the oldest number released has expired.
+     * </p>
+     * <p>
+     * By default you can claim and release up to 200% of your maximum number of
+     * active phone numbers during any 30 day period. If you claim and release
+     * phone numbers using the UI or API during a rolling 30 day cycle that
+     * exceeds 200% of your phone number service level quota, you will be
+     * blocked from claiming any more numbers until 30 days past the oldest
+     * number released has expired.
+     * </p>
+     * <p>
+     * For example, if you already have 99 claimed numbers and a service level
+     * quota of 99 phone numbers, and in any 30 day period you release 99, claim
+     * 99, and then release 99, you will have exceeded the 200% limit. At that
+     * point you are blocked from claiming any more numbers until you open an
+     * Amazon Web Services support ticket.
+     * </p>
      * 
      * @param claimPhoneNumberRequest
      * @param asyncHandler Asynchronous callback handler for events in the
@@ -8377,6 +8419,27 @@ Future<PutUserStatusResult> putUserStatusAsync(PutUserStatusRequest putUserStatu
      * Amazon Web Services Support.
      * </p>
      * </important>
+     * <p>
+     * If you plan to claim and release numbers frequently during a 30 day
+     * period, contact us for a service quota exception. Otherwise, it is
+     * possible you will be blocked from claiming and releasing any more numbers
+     * until 30 days past the oldest number released has expired.
+     * </p>
+     * <p>
+     * By default you can claim and release up to 200% of your maximum number of
+     * active phone numbers during any 30 day period. If you claim and release
+     * phone numbers using the UI or API during a rolling 30 day cycle that
+     * exceeds 200% of your phone number service level quota, you will be
+     * blocked from claiming any more numbers until 30 days past the oldest
+     * number released has expired.
+     * </p>
+     * <p>
+     * For example, if you already have 99 claimed numbers and a service level
+     * quota of 99 phone numbers, and in any 30 day period you release 99, claim
+     * 99, and then release 99, you will have exceeded the 200% limit. At that
+     * point you are blocked from claiming any more numbers until you open an
+     * Amazon Web Services support ticket.
+     * </p>
      * 
      * @param releasePhoneNumberRequest
      * @return A Java Future object containing the response from the
@@ -8417,6 +8480,27 @@ Future<Void> releasePhoneNumberAsync(ReleasePhoneNumberRequest releasePhoneNumbe
      * Amazon Web Services Support.
      * </p>
      * </important>
+     * <p>
+     * If you plan to claim and release numbers frequently during a 30 day
+     * period, contact us for a service quota exception. Otherwise, it is
+     * possible you will be blocked from claiming and releasing any more numbers
+     * until 30 days past the oldest number released has expired.
+     * </p>
+     * <p>
+     * By default you can claim and release up to 200% of your maximum number of
+     * active phone numbers during any 30 day period. If you claim and release
+     * phone numbers using the UI or API during a rolling 30 day cycle that
+     * exceeds 200% of your phone number service level quota, you will be
+     * blocked from claiming any more numbers until 30 days past the oldest
+     * number released has expired.
+     * </p>
+     * <p>
+     * For example, if you already have 99 claimed numbers and a service level
+     * quota of 99 phone numbers, and in any 30 day period you release 99, claim
+     * 99, and then release 99, you will have exceeded the 200% limit. At that
+     * point you are blocked from claiming any more numbers until you open an
+     * Amazon Web Services support ticket.
+     * </p>
      * 
      * @param releasePhoneNumberRequest
      * @param asyncHandler Asynchronous callback handler for events in the
@@ -8524,10 +8608,11 @@ Future<ReplicateInstanceResult> replicateInstanceAsync(
     /**
      * <p>
      * When a contact is being recorded, and the recording has been suspended
-     * using SuspendContactRecording, this API resumes recording the call.
+     * using SuspendContactRecording, this API resumes recording the call or
+     * screen.
      * </p>
      * <p>
-     * Only voice recordings are supported at this time.
+     * Voice and screen recordings are supported.
      * </p>
      * 
      * @param resumeContactRecordingRequest
@@ -8552,10 +8637,11 @@ Future<ResumeContactRecordingResult> resumeContactRecordingAsync(
     /**
      * <p>
      * When a contact is being recorded, and the recording has been suspended
-     * using SuspendContactRecording, this API resumes recording the call.
+     * using SuspendContactRecording, this API resumes recording the call or
+     * screen.
      * </p>
      * <p>
-     * Only voice recordings are supported at this time.
+     * Voice and screen recordings are supported.
      * </p>
      * 
      * @param resumeContactRecordingRequest
@@ -8877,6 +8963,65 @@ Future<SearchQuickConnectsResult> searchQuickConnectsAsync(
             AsyncHandler<SearchQuickConnectsRequest, SearchQuickConnectsResult> asyncHandler)
             throws AmazonServiceException, AmazonClientException;
 
+    /**
+     * <p>
+     * Searches tags used in an Amazon Connect instance using optional search
+     * criteria.
+     * </p>
+     * 
+     * @param searchResourceTagsRequest
+     * @return A Java Future object containing the response from the
+     *         SearchResourceTags service method, as returned by Amazon Connect.
+     * @throws InvalidRequestException
+     * @throws InvalidParameterException
+     * @throws ResourceNotFoundException
+     * @throws ThrottlingException
+     * @throws InternalServiceException
+     * @throws MaximumResultReturnedException
+     * @throws AmazonClientException If any internal errors are encountered
+     *             inside the client while attempting to make the request or
+     *             handle the response. For example if a network connection is
+     *             not available.
+     * @throws AmazonServiceException If an error response is returned by Amazon
+     *             Connect indicating either a problem with the data in the
+     *             request, or a server side issue.
+     */
+    Future<SearchResourceTagsResult> searchResourceTagsAsync(
+            SearchResourceTagsRequest searchResourceTagsRequest) throws AmazonServiceException,
+            AmazonClientException;
+
+    /**
+     * <p>
+     * Searches tags used in an Amazon Connect instance using optional search
+     * criteria.
+     * </p>
+     * 
+     * @param searchResourceTagsRequest
+     * @param asyncHandler Asynchronous callback handler for events in the
+     *            life-cycle of the request. Users could provide the
+     *            implementation of the four callback methods in this interface
+     *            to process the operation result or handle the exception.
+     * @return A Java Future object containing the response from the
+     *         SearchResourceTags service method, as returned by Amazon Connect.
+     * @throws InvalidRequestException
+     * @throws InvalidParameterException
+     * @throws ResourceNotFoundException
+     * @throws ThrottlingException
+     * @throws InternalServiceException
+     * @throws MaximumResultReturnedException
+     * @throws AmazonClientException If any internal errors are encountered
+     *             inside the client while attempting to make the request or
+     *             handle the response. For example if a network connection is
+     *             not available.
+     * @throws AmazonServiceException If an error response is returned by Amazon
+     *             Connect indicating either a problem with the data in the
+     *             request, or a server side issue.
+     */
+    Future<SearchResourceTagsResult> searchResourceTagsAsync(
+            SearchResourceTagsRequest searchResourceTagsRequest,
+            AsyncHandler<SearchResourceTagsRequest, SearchResourceTagsResult> asyncHandler)
+            throws AmazonServiceException, AmazonClientException;
+
     /**
      * <p>
      * This API is in preview release for Amazon Connect and is subject to
@@ -10011,9 +10156,9 @@ Future<SubmitContactEvaluationResult> submitContactEvaluationAsync(
 
     /**
      * <p>
-     * When a contact is being recorded, this API suspends recording the call.
-     * For example, you might suspend the call recording while collecting
-     * sensitive information, such as a credit card number. Then use
+     * When a contact is being recorded, this API suspends recording the call or
+     * screen. For example, you might suspend the call or screen recording while
+     * collecting sensitive information, such as a credit card number. Then use
      * ResumeContactRecording to restart recording.
      * </p>
      * <p>
@@ -10021,7 +10166,7 @@ Future<SubmitContactEvaluationResult> submitContactEvaluationAsync(
      * in the final recording.
      * </p>
      * <p>
-     * Only voice recordings are supported at this time.
+     * Voice and screen recordings are supported.
      * </p>
      * 
      * @param suspendContactRecordingRequest
@@ -10045,9 +10190,9 @@ Future<SuspendContactRecordingResult> suspendContactRecordingAsync(
 
     /**
      * <p>
-     * When a contact is being recorded, this API suspends recording the call.
-     * For example, you might suspend the call recording while collecting
-     * sensitive information, such as a credit card number. Then use
+     * When a contact is being recorded, this API suspends recording the call or
+     * screen. For example, you might suspend the call or screen recording while
+     * collecting sensitive information, such as a credit card number. Then use
      * ResumeContactRecording to restart recording.
      * </p>
      * <p>
@@ -10055,7 +10200,7 @@ Future<SuspendContactRecordingResult> suspendContactRecordingAsync(
      * in the final recording.
      * </p>
      * <p>
-     * Only voice recordings are supported at this time.
+     * Voice and screen recordings are supported.
      * </p>
      * 
      * @param suspendContactRecordingRequest
diff --git a/aws-android-sdk-connect/src/main/java/com/amazonaws/services/connect/AmazonConnectAsyncClient.java b/aws-android-sdk-connect/src/main/java/com/amazonaws/services/connect/AmazonConnectAsyncClient.java
index 0008fd73fe..2cf9b27683 100644
--- a/aws-android-sdk-connect/src/main/java/com/amazonaws/services/connect/AmazonConnectAsyncClient.java
+++ b/aws-android-sdk-connect/src/main/java/com/amazonaws/services/connect/AmazonConnectAsyncClient.java
@@ -1249,6 +1249,27 @@ public AssociateSecurityKeyResult call() throws Exception {
      * >ClaimPhoneNumber</a> operation.
      * </p>
      * </important>
+     * <p>
+     * If you plan to claim and release numbers frequently during a 30 day
+     * period, contact us for a service quota exception. Otherwise, it is
+     * possible you will be blocked from claiming and releasing any more numbers
+     * until 30 days past the oldest number released has expired.
+     * </p>
+     * <p>
+     * By default you can claim and release up to 200% of your maximum number of
+     * active phone numbers during any 30 day period. If you claim and release
+     * phone numbers using the UI or API during a rolling 30 day cycle that
+     * exceeds 200% of your phone number service level quota, you will be
+     * blocked from claiming any more numbers until 30 days past the oldest
+     * number released has expired.
+     * </p>
+     * <p>
+     * For example, if you already have 99 claimed numbers and a service level
+     * quota of 99 phone numbers, and in any 30 day period you release 99, claim
+     * 99, and then release 99, you will have exceeded the 200% limit. At that
+     * point you are blocked from claiming any more numbers until you open an
+     * Amazon Web Services support ticket.
+     * </p>
      * 
      * @param claimPhoneNumberRequest
      * @return A Java Future object containing the response from the
@@ -1304,6 +1325,27 @@ public ClaimPhoneNumberResult call() throws Exception {
      * >ClaimPhoneNumber</a> operation.
      * </p>
      * </important>
+     * <p>
+     * If you plan to claim and release numbers frequently during a 30 day
+     * period, contact us for a service quota exception. Otherwise, it is
+     * possible you will be blocked from claiming and releasing any more numbers
+     * until 30 days past the oldest number released has expired.
+     * </p>
+     * <p>
+     * By default you can claim and release up to 200% of your maximum number of
+     * active phone numbers during any 30 day period. If you claim and release
+     * phone numbers using the UI or API during a rolling 30 day cycle that
+     * exceeds 200% of your phone number service level quota, you will be
+     * blocked from claiming any more numbers until 30 days past the oldest
+     * number released has expired.
+     * </p>
+     * <p>
+     * For example, if you already have 99 claimed numbers and a service level
+     * quota of 99 phone numbers, and in any 30 day period you release 99, claim
+     * 99, and then release 99, you will have exceeded the 200% limit. At that
+     * point you are blocked from claiming any more numbers until you open an
+     * Amazon Web Services support ticket.
+     * </p>
      * 
      * @param claimPhoneNumberRequest
      * @return A Java Future object containing the response from the
@@ -10714,6 +10756,27 @@ public PutUserStatusResult call() throws Exception {
      * Amazon Web Services Support.
      * </p>
      * </important>
+     * <p>
+     * If you plan to claim and release numbers frequently during a 30 day
+     * period, contact us for a service quota exception. Otherwise, it is
+     * possible you will be blocked from claiming and releasing any more numbers
+     * until 30 days past the oldest number released has expired.
+     * </p>
+     * <p>
+     * By default you can claim and release up to 200% of your maximum number of
+     * active phone numbers during any 30 day period. If you claim and release
+     * phone numbers using the UI or API during a rolling 30 day cycle that
+     * exceeds 200% of your phone number service level quota, you will be
+     * blocked from claiming any more numbers until 30 days past the oldest
+     * number released has expired.
+     * </p>
+     * <p>
+     * For example, if you already have 99 claimed numbers and a service level
+     * quota of 99 phone numbers, and in any 30 day period you release 99, claim
+     * 99, and then release 99, you will have exceeded the 200% limit. At that
+     * point you are blocked from claiming any more numbers until you open an
+     * Amazon Web Services support ticket.
+     * </p>
      * 
      * @param releasePhoneNumberRequest
      * @return A Java Future object containing the response from the
@@ -10762,6 +10825,27 @@ public Void call() throws Exception {
      * Amazon Web Services Support.
      * </p>
      * </important>
+     * <p>
+     * If you plan to claim and release numbers frequently during a 30 day
+     * period, contact us for a service quota exception. Otherwise, it is
+     * possible you will be blocked from claiming and releasing any more numbers
+     * until 30 days past the oldest number released has expired.
+     * </p>
+     * <p>
+     * By default you can claim and release up to 200% of your maximum number of
+     * active phone numbers during any 30 day period. If you claim and release
+     * phone numbers using the UI or API during a rolling 30 day cycle that
+     * exceeds 200% of your phone number service level quota, you will be
+     * blocked from claiming any more numbers until 30 days past the oldest
+     * number released has expired.
+     * </p>
+     * <p>
+     * For example, if you already have 99 claimed numbers and a service level
+     * quota of 99 phone numbers, and in any 30 day period you release 99, claim
+     * 99, and then release 99, you will have exceeded the 200% limit. At that
+     * point you are blocked from claiming any more numbers until you open an
+     * Amazon Web Services support ticket.
+     * </p>
      * 
      * @param releasePhoneNumberRequest
      * @return A Java Future object containing the response from the
@@ -10896,10 +10980,11 @@ public ReplicateInstanceResult call() throws Exception {
     /**
      * <p>
      * When a contact is being recorded, and the recording has been suspended
-     * using SuspendContactRecording, this API resumes recording the call.
+     * using SuspendContactRecording, this API resumes recording the call or
+     * screen.
      * </p>
      * <p>
-     * Only voice recordings are supported at this time.
+     * Voice and screen recordings are supported.
      * </p>
      * 
      * @param resumeContactRecordingRequest
@@ -10930,10 +11015,11 @@ public ResumeContactRecordingResult call() throws Exception {
     /**
      * <p>
      * When a contact is being recorded, and the recording has been suspended
-     * using SuspendContactRecording, this API resumes recording the call.
+     * using SuspendContactRecording, this API resumes recording the call or
+     * screen.
      * </p>
      * <p>
-     * Only voice recordings are supported at this time.
+     * Voice and screen recordings are supported.
      * </p>
      * 
      * @param resumeContactRecordingRequest
@@ -11349,6 +11435,81 @@ public SearchQuickConnectsResult call() throws Exception {
         });
     }
 
+    /**
+     * <p>
+     * Searches tags used in an Amazon Connect instance using optional search
+     * criteria.
+     * </p>
+     * 
+     * @param searchResourceTagsRequest
+     * @return A Java Future object containing the response from the
+     *         SearchResourceTags service method, as returned by Amazon Connect.
+     * @throws InvalidRequestException
+     * @throws InvalidParameterException
+     * @throws ResourceNotFoundException
+     * @throws ThrottlingException
+     * @throws InternalServiceException
+     * @throws MaximumResultReturnedException
+     * @throws AmazonClientException If any internal errors are encountered
+     *             inside the client while attempting to make the request or
+     *             handle the response. For example if a network connection is
+     *             not available.
+     * @throws AmazonServiceException If an error response is returned by Amazon
+     *             Connect indicating either a problem with the data in the
+     *             request, or a server side issue.
+     */
+    public Future<SearchResourceTagsResult> searchResourceTagsAsync(
+            final SearchResourceTagsRequest searchResourceTagsRequest)
+            throws AmazonServiceException, AmazonClientException {
+        return executorService.submit(new Callable<SearchResourceTagsResult>() {
+            public SearchResourceTagsResult call() throws Exception {
+                return searchResourceTags(searchResourceTagsRequest);
+            }
+        });
+    }
+
+    /**
+     * <p>
+     * Searches tags used in an Amazon Connect instance using optional search
+     * criteria.
+     * </p>
+     * 
+     * @param searchResourceTagsRequest
+     * @return A Java Future object containing the response from the
+     *         SearchResourceTags service method, as returned by Amazon Connect.
+     * @throws InvalidRequestException
+     * @throws InvalidParameterException
+     * @throws ResourceNotFoundException
+     * @throws ThrottlingException
+     * @throws InternalServiceException
+     * @throws MaximumResultReturnedException
+     * @throws AmazonClientException If any internal errors are encountered
+     *             inside the client while attempting to make the request or
+     *             handle the response. For example if a network connection is
+     *             not available.
+     * @throws AmazonServiceException If an error response is returned by Amazon
+     *             Connect indicating either a problem with the data in the
+     *             request, or a server side issue.
+     */
+    public Future<SearchResourceTagsResult> searchResourceTagsAsync(
+            final SearchResourceTagsRequest searchResourceTagsRequest,
+            final AsyncHandler<SearchResourceTagsRequest, SearchResourceTagsResult> asyncHandler)
+            throws AmazonServiceException, AmazonClientException {
+        return executorService.submit(new Callable<SearchResourceTagsResult>() {
+            public SearchResourceTagsResult call() throws Exception {
+                SearchResourceTagsResult result = null;
+                try {
+                    result = searchResourceTags(searchResourceTagsRequest);
+                } catch (Exception ex) {
+                    asyncHandler.onError(ex);
+                    throw ex;
+                }
+                asyncHandler.onSuccess(searchResourceTagsRequest, result);
+                return result;
+            }
+        });
+    }
+
     /**
      * <p>
      * This API is in preview release for Amazon Connect and is subject to
@@ -12707,9 +12868,9 @@ public SubmitContactEvaluationResult call() throws Exception {
 
     /**
      * <p>
-     * When a contact is being recorded, this API suspends recording the call.
-     * For example, you might suspend the call recording while collecting
-     * sensitive information, such as a credit card number. Then use
+     * When a contact is being recorded, this API suspends recording the call or
+     * screen. For example, you might suspend the call or screen recording while
+     * collecting sensitive information, such as a credit card number. Then use
      * ResumeContactRecording to restart recording.
      * </p>
      * <p>
@@ -12717,7 +12878,7 @@ public SubmitContactEvaluationResult call() throws Exception {
      * in the final recording.
      * </p>
      * <p>
-     * Only voice recordings are supported at this time.
+     * Voice and screen recordings are supported.
      * </p>
      * 
      * @param suspendContactRecordingRequest
@@ -12747,9 +12908,9 @@ public SuspendContactRecordingResult call() throws Exception {
 
     /**
      * <p>
-     * When a contact is being recorded, this API suspends recording the call.
-     * For example, you might suspend the call recording while collecting
-     * sensitive information, such as a credit card number. Then use
+     * When a contact is being recorded, this API suspends recording the call or
+     * screen. For example, you might suspend the call or screen recording while
+     * collecting sensitive information, such as a credit card number. Then use
      * ResumeContactRecording to restart recording.
      * </p>
      * <p>
@@ -12757,7 +12918,7 @@ public SuspendContactRecordingResult call() throws Exception {
      * in the final recording.
      * </p>
      * <p>
-     * Only voice recordings are supported at this time.
+     * Voice and screen recordings are supported.
      * </p>
      * 
      * @param suspendContactRecordingRequest
diff --git a/aws-android-sdk-connect/src/main/java/com/amazonaws/services/connect/AmazonConnectClient.java b/aws-android-sdk-connect/src/main/java/com/amazonaws/services/connect/AmazonConnectClient.java
index 3ca3ff9504..1a1ac5474e 100644
--- a/aws-android-sdk-connect/src/main/java/com/amazonaws/services/connect/AmazonConnectClient.java
+++ b/aws-android-sdk-connect/src/main/java/com/amazonaws/services/connect/AmazonConnectClient.java
@@ -356,6 +356,7 @@ private void init() {
         jsonErrorUnmarshallers.add(new InvalidParameterExceptionUnmarshaller());
         jsonErrorUnmarshallers.add(new InvalidRequestExceptionUnmarshaller());
         jsonErrorUnmarshallers.add(new LimitExceededExceptionUnmarshaller());
+        jsonErrorUnmarshallers.add(new MaximumResultReturnedExceptionUnmarshaller());
         jsonErrorUnmarshallers.add(new OutboundContactNotPermittedExceptionUnmarshaller());
         jsonErrorUnmarshallers.add(new PropertyValidationExceptionUnmarshaller());
         jsonErrorUnmarshallers.add(new ResourceConflictExceptionUnmarshaller());
@@ -1007,6 +1008,27 @@ public AssociateSecurityKeyResult associateSecurityKey(
      * >ClaimPhoneNumber</a> operation.
      * </p>
      * </important>
+     * <p>
+     * If you plan to claim and release numbers frequently during a 30 day
+     * period, contact us for a service quota exception. Otherwise, it is
+     * possible you will be blocked from claiming and releasing any more numbers
+     * until 30 days past the oldest number released has expired.
+     * </p>
+     * <p>
+     * By default you can claim and release up to 200% of your maximum number of
+     * active phone numbers during any 30 day period. If you claim and release
+     * phone numbers using the UI or API during a rolling 30 day cycle that
+     * exceeds 200% of your phone number service level quota, you will be
+     * blocked from claiming any more numbers until 30 days past the oldest
+     * number released has expired.
+     * </p>
+     * <p>
+     * For example, if you already have 99 claimed numbers and a service level
+     * quota of 99 phone numbers, and in any 30 day period you release 99, claim
+     * 99, and then release 99, you will have exceeded the 200% limit. At that
+     * point you are blocked from claiming any more numbers until you open an
+     * Amazon Web Services support ticket.
+     * </p>
      * 
      * @param claimPhoneNumberRequest
      * @return claimPhoneNumberResult The response from the ClaimPhoneNumber
@@ -7429,6 +7451,27 @@ public PutUserStatusResult putUserStatus(PutUserStatusRequest putUserStatusReque
      * Amazon Web Services Support.
      * </p>
      * </important>
+     * <p>
+     * If you plan to claim and release numbers frequently during a 30 day
+     * period, contact us for a service quota exception. Otherwise, it is
+     * possible you will be blocked from claiming and releasing any more numbers
+     * until 30 days past the oldest number released has expired.
+     * </p>
+     * <p>
+     * By default you can claim and release up to 200% of your maximum number of
+     * active phone numbers during any 30 day period. If you claim and release
+     * phone numbers using the UI or API during a rolling 30 day cycle that
+     * exceeds 200% of your phone number service level quota, you will be
+     * blocked from claiming any more numbers until 30 days past the oldest
+     * number released has expired.
+     * </p>
+     * <p>
+     * For example, if you already have 99 claimed numbers and a service level
+     * quota of 99 phone numbers, and in any 30 day period you release 99, claim
+     * 99, and then release 99, you will have exceeded the 200% limit. At that
+     * point you are blocked from claiming any more numbers until you open an
+     * Amazon Web Services support ticket.
+     * </p>
      * 
      * @param releasePhoneNumberRequest
      * @throws InvalidParameterException
@@ -7537,10 +7580,11 @@ public ReplicateInstanceResult replicateInstance(
     /**
      * <p>
      * When a contact is being recorded, and the recording has been suspended
-     * using SuspendContactRecording, this API resumes recording the call.
+     * using SuspendContactRecording, this API resumes recording the call or
+     * screen.
      * </p>
      * <p>
-     * Only voice recordings are supported at this time.
+     * Voice and screen recordings are supported.
      * </p>
      * 
      * @param resumeContactRecordingRequest
@@ -7857,6 +7901,60 @@ public SearchQuickConnectsResult searchQuickConnects(
         }
     }
 
+    /**
+     * <p>
+     * Searches tags used in an Amazon Connect instance using optional search
+     * criteria.
+     * </p>
+     * 
+     * @param searchResourceTagsRequest
+     * @return searchResourceTagsResult The response from the SearchResourceTags
+     *         service method, as returned by Amazon Connect.
+     * @throws InvalidRequestException
+     * @throws InvalidParameterException
+     * @throws ResourceNotFoundException
+     * @throws ThrottlingException
+     * @throws InternalServiceException
+     * @throws MaximumResultReturnedException
+     * @throws AmazonClientException If any internal errors are encountered
+     *             inside the client while attempting to make the request or
+     *             handle the response. For example if a network connection is
+     *             not available.
+     * @throws AmazonServiceException If an error response is returned by Amazon
+     *             Connect indicating either a problem with the data in the
+     *             request, or a server side issue.
+     */
+    public SearchResourceTagsResult searchResourceTags(
+            SearchResourceTagsRequest searchResourceTagsRequest)
+            throws AmazonServiceException, AmazonClientException {
+        ExecutionContext executionContext = createExecutionContext(searchResourceTagsRequest);
+        AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
+        awsRequestMetrics.startEvent(Field.ClientExecuteTime);
+        Request<SearchResourceTagsRequest> request = null;
+        Response<SearchResourceTagsResult> response = null;
+        try {
+            awsRequestMetrics.startEvent(Field.RequestMarshallTime);
+            try {
+                request = new SearchResourceTagsRequestMarshaller()
+                        .marshall(searchResourceTagsRequest);
+                // Binds the request metrics to the current request.
+                request.setAWSRequestMetrics(awsRequestMetrics);
+            } finally {
+                awsRequestMetrics.endEvent(Field.RequestMarshallTime);
+            }
+            Unmarshaller<SearchResourceTagsResult, JsonUnmarshallerContext> unmarshaller = new SearchResourceTagsResultJsonUnmarshaller();
+            JsonResponseHandler<SearchResourceTagsResult> responseHandler = new JsonResponseHandler<SearchResourceTagsResult>(
+                    unmarshaller);
+
+            response = invoke(request, responseHandler, executionContext);
+
+            return response.getAwsResponse();
+        } finally {
+            awsRequestMetrics.endEvent(Field.ClientExecuteTime);
+            endClientExecution(awsRequestMetrics, request, response, LOGGING_AWS_REQUEST_METRIC);
+        }
+    }
+
     /**
      * <p>
      * This API is in preview release for Amazon Connect and is subject to
@@ -8762,9 +8860,9 @@ public SubmitContactEvaluationResult submitContactEvaluation(
 
     /**
      * <p>
-     * When a contact is being recorded, this API suspends recording the call.
-     * For example, you might suspend the call recording while collecting
-     * sensitive information, such as a credit card number. Then use
+     * When a contact is being recorded, this API suspends recording the call or
+     * screen. For example, you might suspend the call or screen recording while
+     * collecting sensitive information, such as a credit card number. Then use
      * ResumeContactRecording to restart recording.
      * </p>
      * <p>
@@ -8772,7 +8870,7 @@ public SubmitContactEvaluationResult submitContactEvaluation(
      * in the final recording.
      * </p>
      * <p>
-     * Only voice recordings are supported at this time.
+     * Voice and screen recordings are supported.
      * </p>
      * 
      * @param suspendContactRecordingRequest
diff --git a/aws-android-sdk-connect/src/main/java/com/amazonaws/services/connect/model/AssociateInstanceStorageConfigRequest.java b/aws-android-sdk-connect/src/main/java/com/amazonaws/services/connect/model/AssociateInstanceStorageConfigRequest.java
index 19fdab2c67..b3f7313df7 100644
--- a/aws-android-sdk-connect/src/main/java/com/amazonaws/services/connect/model/AssociateInstanceStorageConfigRequest.java
+++ b/aws-android-sdk-connect/src/main/java/com/amazonaws/services/connect/model/AssociateInstanceStorageConfigRequest.java
@@ -58,7 +58,8 @@ public class AssociateInstanceStorageConfigRequest extends AmazonWebServiceReque
      * <b>Constraints:</b><br/>
      * <b>Allowed Values: </b>CHAT_TRANSCRIPTS, CALL_RECORDINGS,
      * SCHEDULED_REPORTS, MEDIA_STREAMS, CONTACT_TRACE_RECORDS, AGENT_EVENTS,
-     * REAL_TIME_CONTACT_ANALYSIS_SEGMENTS, ATTACHMENTS, CONTACT_EVALUATIONS
+     * REAL_TIME_CONTACT_ANALYSIS_SEGMENTS, ATTACHMENTS, CONTACT_EVALUATIONS,
+     * SCREEN_RECORDINGS
      */
     private String resourceType;
 
@@ -151,7 +152,8 @@ public AssociateInstanceStorageConfigRequest withInstanceId(String instanceId) {
      * <b>Constraints:</b><br/>
      * <b>Allowed Values: </b>CHAT_TRANSCRIPTS, CALL_RECORDINGS,
      * SCHEDULED_REPORTS, MEDIA_STREAMS, CONTACT_TRACE_RECORDS, AGENT_EVENTS,
-     * REAL_TIME_CONTACT_ANALYSIS_SEGMENTS, ATTACHMENTS, CONTACT_EVALUATIONS
+     * REAL_TIME_CONTACT_ANALYSIS_SEGMENTS, ATTACHMENTS, CONTACT_EVALUATIONS,
+     * SCREEN_RECORDINGS
      *
      * @return <p>
      *         A valid resource type.
@@ -170,7 +172,8 @@ public String getResourceType() {
      * <b>Constraints:</b><br/>
      * <b>Allowed Values: </b>CHAT_TRANSCRIPTS, CALL_RECORDINGS,
      * SCHEDULED_REPORTS, MEDIA_STREAMS, CONTACT_TRACE_RECORDS, AGENT_EVENTS,
-     * REAL_TIME_CONTACT_ANALYSIS_SEGMENTS, ATTACHMENTS, CONTACT_EVALUATIONS
+     * REAL_TIME_CONTACT_ANALYSIS_SEGMENTS, ATTACHMENTS, CONTACT_EVALUATIONS,
+     * SCREEN_RECORDINGS
      *
      * @param resourceType <p>
      *            A valid resource type.
@@ -192,7 +195,8 @@ public void setResourceType(String resourceType) {
      * <b>Constraints:</b><br/>
      * <b>Allowed Values: </b>CHAT_TRANSCRIPTS, CALL_RECORDINGS,
      * SCHEDULED_REPORTS, MEDIA_STREAMS, CONTACT_TRACE_RECORDS, AGENT_EVENTS,
-     * REAL_TIME_CONTACT_ANALYSIS_SEGMENTS, ATTACHMENTS, CONTACT_EVALUATIONS
+     * REAL_TIME_CONTACT_ANALYSIS_SEGMENTS, ATTACHMENTS, CONTACT_EVALUATIONS,
+     * SCREEN_RECORDINGS
      *
      * @param resourceType <p>
      *            A valid resource type.
@@ -214,7 +218,8 @@ public AssociateInstanceStorageConfigRequest withResourceType(String resourceTyp
      * <b>Constraints:</b><br/>
      * <b>Allowed Values: </b>CHAT_TRANSCRIPTS, CALL_RECORDINGS,
      * SCHEDULED_REPORTS, MEDIA_STREAMS, CONTACT_TRACE_RECORDS, AGENT_EVENTS,
-     * REAL_TIME_CONTACT_ANALYSIS_SEGMENTS, ATTACHMENTS, CONTACT_EVALUATIONS
+     * REAL_TIME_CONTACT_ANALYSIS_SEGMENTS, ATTACHMENTS, CONTACT_EVALUATIONS,
+     * SCREEN_RECORDINGS
      *
      * @param resourceType <p>
      *            A valid resource type.
@@ -236,7 +241,8 @@ public void setResourceType(InstanceStorageResourceType resourceType) {
      * <b>Constraints:</b><br/>
      * <b>Allowed Values: </b>CHAT_TRANSCRIPTS, CALL_RECORDINGS,
      * SCHEDULED_REPORTS, MEDIA_STREAMS, CONTACT_TRACE_RECORDS, AGENT_EVENTS,
-     * REAL_TIME_CONTACT_ANALYSIS_SEGMENTS, ATTACHMENTS, CONTACT_EVALUATIONS
+     * REAL_TIME_CONTACT_ANALYSIS_SEGMENTS, ATTACHMENTS, CONTACT_EVALUATIONS,
+     * SCREEN_RECORDINGS
      *
      * @param resourceType <p>
      *            A valid resource type.
diff --git a/aws-android-sdk-connect/src/main/java/com/amazonaws/services/connect/model/ClaimPhoneNumberRequest.java b/aws-android-sdk-connect/src/main/java/com/amazonaws/services/connect/model/ClaimPhoneNumberRequest.java
index 0e34dc26c2..8cced6a880 100644
--- a/aws-android-sdk-connect/src/main/java/com/amazonaws/services/connect/model/ClaimPhoneNumberRequest.java
+++ b/aws-android-sdk-connect/src/main/java/com/amazonaws/services/connect/model/ClaimPhoneNumberRequest.java
@@ -46,6 +46,26 @@
  * >ClaimPhoneNumber</a> operation.
  * </p>
  * </important>
+ * <p>
+ * If you plan to claim and release numbers frequently during a 30 day period,
+ * contact us for a service quota exception. Otherwise, it is possible you will
+ * be blocked from claiming and releasing any more numbers until 30 days past
+ * the oldest number released has expired.
+ * </p>
+ * <p>
+ * By default you can claim and release up to 200% of your maximum number of
+ * active phone numbers during any 30 day period. If you claim and release phone
+ * numbers using the UI or API during a rolling 30 day cycle that exceeds 200%
+ * of your phone number service level quota, you will be blocked from claiming
+ * any more numbers until 30 days past the oldest number released has expired.
+ * </p>
+ * <p>
+ * For example, if you already have 99 claimed numbers and a service level quota
+ * of 99 phone numbers, and in any 30 day period you release 99, claim 99, and
+ * then release 99, you will have exceeded the 200% limit. At that point you are
+ * blocked from claiming any more numbers until you open an Amazon Web Services
+ * support ticket.
+ * </p>
  */
 public class ClaimPhoneNumberRequest extends AmazonWebServiceRequest implements Serializable {
     /**
diff --git a/aws-android-sdk-connect/src/main/java/com/amazonaws/services/connect/model/DescribeInstanceStorageConfigRequest.java b/aws-android-sdk-connect/src/main/java/com/amazonaws/services/connect/model/DescribeInstanceStorageConfigRequest.java
index 7fa10e93b5..5990e2387d 100644
--- a/aws-android-sdk-connect/src/main/java/com/amazonaws/services/connect/model/DescribeInstanceStorageConfigRequest.java
+++ b/aws-android-sdk-connect/src/main/java/com/amazonaws/services/connect/model/DescribeInstanceStorageConfigRequest.java
@@ -62,7 +62,8 @@ public class DescribeInstanceStorageConfigRequest extends AmazonWebServiceReques
      * <b>Constraints:</b><br/>
      * <b>Allowed Values: </b>CHAT_TRANSCRIPTS, CALL_RECORDINGS,
      * SCHEDULED_REPORTS, MEDIA_STREAMS, CONTACT_TRACE_RECORDS, AGENT_EVENTS,
-     * REAL_TIME_CONTACT_ANALYSIS_SEGMENTS, ATTACHMENTS, CONTACT_EVALUATIONS
+     * REAL_TIME_CONTACT_ANALYSIS_SEGMENTS, ATTACHMENTS, CONTACT_EVALUATIONS,
+     * SCREEN_RECORDINGS
      */
     private String resourceType;
 
@@ -210,7 +211,8 @@ public DescribeInstanceStorageConfigRequest withAssociationId(String association
      * <b>Constraints:</b><br/>
      * <b>Allowed Values: </b>CHAT_TRANSCRIPTS, CALL_RECORDINGS,
      * SCHEDULED_REPORTS, MEDIA_STREAMS, CONTACT_TRACE_RECORDS, AGENT_EVENTS,
-     * REAL_TIME_CONTACT_ANALYSIS_SEGMENTS, ATTACHMENTS, CONTACT_EVALUATIONS
+     * REAL_TIME_CONTACT_ANALYSIS_SEGMENTS, ATTACHMENTS, CONTACT_EVALUATIONS,
+     * SCREEN_RECORDINGS
      *
      * @return <p>
      *         A valid resource type.
@@ -229,7 +231,8 @@ public String getResourceType() {
      * <b>Constraints:</b><br/>
      * <b>Allowed Values: </b>CHAT_TRANSCRIPTS, CALL_RECORDINGS,
      * SCHEDULED_REPORTS, MEDIA_STREAMS, CONTACT_TRACE_RECORDS, AGENT_EVENTS,
-     * REAL_TIME_CONTACT_ANALYSIS_SEGMENTS, ATTACHMENTS, CONTACT_EVALUATIONS
+     * REAL_TIME_CONTACT_ANALYSIS_SEGMENTS, ATTACHMENTS, CONTACT_EVALUATIONS,
+     * SCREEN_RECORDINGS
      *
      * @param resourceType <p>
      *            A valid resource type.
@@ -251,7 +254,8 @@ public void setResourceType(String resourceType) {
      * <b>Constraints:</b><br/>
      * <b>Allowed Values: </b>CHAT_TRANSCRIPTS, CALL_RECORDINGS,
      * SCHEDULED_REPORTS, MEDIA_STREAMS, CONTACT_TRACE_RECORDS, AGENT_EVENTS,
-     * REAL_TIME_CONTACT_ANALYSIS_SEGMENTS, ATTACHMENTS, CONTACT_EVALUATIONS
+     * REAL_TIME_CONTACT_ANALYSIS_SEGMENTS, ATTACHMENTS, CONTACT_EVALUATIONS,
+     * SCREEN_RECORDINGS
      *
      * @param resourceType <p>
      *            A valid resource type.
@@ -273,7 +277,8 @@ public DescribeInstanceStorageConfigRequest withResourceType(String resourceType
      * <b>Constraints:</b><br/>
      * <b>Allowed Values: </b>CHAT_TRANSCRIPTS, CALL_RECORDINGS,
      * SCHEDULED_REPORTS, MEDIA_STREAMS, CONTACT_TRACE_RECORDS, AGENT_EVENTS,
-     * REAL_TIME_CONTACT_ANALYSIS_SEGMENTS, ATTACHMENTS, CONTACT_EVALUATIONS
+     * REAL_TIME_CONTACT_ANALYSIS_SEGMENTS, ATTACHMENTS, CONTACT_EVALUATIONS,
+     * SCREEN_RECORDINGS
      *
      * @param resourceType <p>
      *            A valid resource type.
@@ -295,7 +300,8 @@ public void setResourceType(InstanceStorageResourceType resourceType) {
      * <b>Constraints:</b><br/>
      * <b>Allowed Values: </b>CHAT_TRANSCRIPTS, CALL_RECORDINGS,
      * SCHEDULED_REPORTS, MEDIA_STREAMS, CONTACT_TRACE_RECORDS, AGENT_EVENTS,
-     * REAL_TIME_CONTACT_ANALYSIS_SEGMENTS, ATTACHMENTS, CONTACT_EVALUATIONS
+     * REAL_TIME_CONTACT_ANALYSIS_SEGMENTS, ATTACHMENTS, CONTACT_EVALUATIONS,
+     * SCREEN_RECORDINGS
      *
      * @param resourceType <p>
      *            A valid resource type.
diff --git a/aws-android-sdk-connect/src/main/java/com/amazonaws/services/connect/model/DisassociateInstanceStorageConfigRequest.java b/aws-android-sdk-connect/src/main/java/com/amazonaws/services/connect/model/DisassociateInstanceStorageConfigRequest.java
index d146ab002a..1b8cbd23d3 100644
--- a/aws-android-sdk-connect/src/main/java/com/amazonaws/services/connect/model/DisassociateInstanceStorageConfigRequest.java
+++ b/aws-android-sdk-connect/src/main/java/com/amazonaws/services/connect/model/DisassociateInstanceStorageConfigRequest.java
@@ -62,7 +62,8 @@ public class DisassociateInstanceStorageConfigRequest extends AmazonWebServiceRe
      * <b>Constraints:</b><br/>
      * <b>Allowed Values: </b>CHAT_TRANSCRIPTS, CALL_RECORDINGS,
      * SCHEDULED_REPORTS, MEDIA_STREAMS, CONTACT_TRACE_RECORDS, AGENT_EVENTS,
-     * REAL_TIME_CONTACT_ANALYSIS_SEGMENTS, ATTACHMENTS, CONTACT_EVALUATIONS
+     * REAL_TIME_CONTACT_ANALYSIS_SEGMENTS, ATTACHMENTS, CONTACT_EVALUATIONS,
+     * SCREEN_RECORDINGS
      */
     private String resourceType;
 
@@ -210,7 +211,8 @@ public DisassociateInstanceStorageConfigRequest withAssociationId(String associa
      * <b>Constraints:</b><br/>
      * <b>Allowed Values: </b>CHAT_TRANSCRIPTS, CALL_RECORDINGS,
      * SCHEDULED_REPORTS, MEDIA_STREAMS, CONTACT_TRACE_RECORDS, AGENT_EVENTS,
-     * REAL_TIME_CONTACT_ANALYSIS_SEGMENTS, ATTACHMENTS, CONTACT_EVALUATIONS
+     * REAL_TIME_CONTACT_ANALYSIS_SEGMENTS, ATTACHMENTS, CONTACT_EVALUATIONS,
+     * SCREEN_RECORDINGS
      *
      * @return <p>
      *         A valid resource type.
@@ -229,7 +231,8 @@ public String getResourceType() {
      * <b>Constraints:</b><br/>
      * <b>Allowed Values: </b>CHAT_TRANSCRIPTS, CALL_RECORDINGS,
      * SCHEDULED_REPORTS, MEDIA_STREAMS, CONTACT_TRACE_RECORDS, AGENT_EVENTS,
-     * REAL_TIME_CONTACT_ANALYSIS_SEGMENTS, ATTACHMENTS, CONTACT_EVALUATIONS
+     * REAL_TIME_CONTACT_ANALYSIS_SEGMENTS, ATTACHMENTS, CONTACT_EVALUATIONS,
+     * SCREEN_RECORDINGS
      *
      * @param resourceType <p>
      *            A valid resource type.
@@ -251,7 +254,8 @@ public void setResourceType(String resourceType) {
      * <b>Constraints:</b><br/>
      * <b>Allowed Values: </b>CHAT_TRANSCRIPTS, CALL_RECORDINGS,
      * SCHEDULED_REPORTS, MEDIA_STREAMS, CONTACT_TRACE_RECORDS, AGENT_EVENTS,
-     * REAL_TIME_CONTACT_ANALYSIS_SEGMENTS, ATTACHMENTS, CONTACT_EVALUATIONS
+     * REAL_TIME_CONTACT_ANALYSIS_SEGMENTS, ATTACHMENTS, CONTACT_EVALUATIONS,
+     * SCREEN_RECORDINGS
      *
      * @param resourceType <p>
      *            A valid resource type.
@@ -273,7 +277,8 @@ public DisassociateInstanceStorageConfigRequest withResourceType(String resource
      * <b>Constraints:</b><br/>
      * <b>Allowed Values: </b>CHAT_TRANSCRIPTS, CALL_RECORDINGS,
      * SCHEDULED_REPORTS, MEDIA_STREAMS, CONTACT_TRACE_RECORDS, AGENT_EVENTS,
-     * REAL_TIME_CONTACT_ANALYSIS_SEGMENTS, ATTACHMENTS, CONTACT_EVALUATIONS
+     * REAL_TIME_CONTACT_ANALYSIS_SEGMENTS, ATTACHMENTS, CONTACT_EVALUATIONS,
+     * SCREEN_RECORDINGS
      *
      * @param resourceType <p>
      *            A valid resource type.
@@ -295,7 +300,8 @@ public void setResourceType(InstanceStorageResourceType resourceType) {
      * <b>Constraints:</b><br/>
      * <b>Allowed Values: </b>CHAT_TRANSCRIPTS, CALL_RECORDINGS,
      * SCHEDULED_REPORTS, MEDIA_STREAMS, CONTACT_TRACE_RECORDS, AGENT_EVENTS,
-     * REAL_TIME_CONTACT_ANALYSIS_SEGMENTS, ATTACHMENTS, CONTACT_EVALUATIONS
+     * REAL_TIME_CONTACT_ANALYSIS_SEGMENTS, ATTACHMENTS, CONTACT_EVALUATIONS,
+     * SCREEN_RECORDINGS
      *
      * @param resourceType <p>
      *            A valid resource type.
diff --git a/aws-android-sdk-connect/src/main/java/com/amazonaws/services/connect/model/Instance.java b/aws-android-sdk-connect/src/main/java/com/amazonaws/services/connect/model/Instance.java
index e9b4279298..e8de5e3f7f 100644
--- a/aws-android-sdk-connect/src/main/java/com/amazonaws/services/connect/model/Instance.java
+++ b/aws-android-sdk-connect/src/main/java/com/amazonaws/services/connect/model/Instance.java
@@ -109,6 +109,14 @@ public class Instance implements Serializable {
      */
     private Boolean outboundCallsEnabled;
 
+    /**
+     * <p>
+     * This URL allows contact center users to access Amazon Connect admin
+     * website.
+     * </p>
+     */
+    private String instanceAccessUrl;
+
     /**
      * <p>
      * The identifier of the Amazon Connect instance. You can <a href=
@@ -732,6 +740,57 @@ public Instance withOutboundCallsEnabled(Boolean outboundCallsEnabled) {
         return this;
     }
 
+    /**
+     * <p>
+     * This URL allows contact center users to access Amazon Connect admin
+     * website.
+     * </p>
+     *
+     * @return <p>
+     *         This URL allows contact center users to access Amazon Connect
+     *         admin website.
+     *         </p>
+     */
+    public String getInstanceAccessUrl() {
+        return instanceAccessUrl;
+    }
+
+    /**
+     * <p>
+     * This URL allows contact center users to access Amazon Connect admin
+     * website.
+     * </p>
+     *
+     * @param instanceAccessUrl <p>
+     *            This URL allows contact center users to access Amazon Connect
+     *            admin website.
+     *            </p>
+     */
+    public void setInstanceAccessUrl(String instanceAccessUrl) {
+        this.instanceAccessUrl = instanceAccessUrl;
+    }
+
+    /**
+     * <p>
+     * This URL allows contact center users to access Amazon Connect admin
+     * website.
+     * </p>
+     * <p>
+     * Returns a reference to this object so that method calls can be chained
+     * together.
+     *
+     * @param instanceAccessUrl <p>
+     *            This URL allows contact center users to access Amazon Connect
+     *            admin website.
+     *            </p>
+     * @return A reference to this updated object so that method calls can be
+     *         chained together.
+     */
+    public Instance withInstanceAccessUrl(String instanceAccessUrl) {
+        this.instanceAccessUrl = instanceAccessUrl;
+        return this;
+    }
+
     /**
      * Returns a string representation of this object; useful for testing and
      * debugging.
@@ -762,7 +821,9 @@ public String toString() {
         if (getInboundCallsEnabled() != null)
             sb.append("InboundCallsEnabled: " + getInboundCallsEnabled() + ",");
         if (getOutboundCallsEnabled() != null)
-            sb.append("OutboundCallsEnabled: " + getOutboundCallsEnabled());
+            sb.append("OutboundCallsEnabled: " + getOutboundCallsEnabled() + ",");
+        if (getInstanceAccessUrl() != null)
+            sb.append("InstanceAccessUrl: " + getInstanceAccessUrl());
         sb.append("}");
         return sb.toString();
     }
@@ -792,6 +853,8 @@ public int hashCode() {
                 + ((getInboundCallsEnabled() == null) ? 0 : getInboundCallsEnabled().hashCode());
         hashCode = prime * hashCode
                 + ((getOutboundCallsEnabled() == null) ? 0 : getOutboundCallsEnabled().hashCode());
+        hashCode = prime * hashCode
+                + ((getInstanceAccessUrl() == null) ? 0 : getInstanceAccessUrl().hashCode());
         return hashCode;
     }
 
@@ -854,6 +917,11 @@ public boolean equals(Object obj) {
         if (other.getOutboundCallsEnabled() != null
                 && other.getOutboundCallsEnabled().equals(this.getOutboundCallsEnabled()) == false)
             return false;
+        if (other.getInstanceAccessUrl() == null ^ this.getInstanceAccessUrl() == null)
+            return false;
+        if (other.getInstanceAccessUrl() != null
+                && other.getInstanceAccessUrl().equals(this.getInstanceAccessUrl()) == false)
+            return false;
         return true;
     }
 }
diff --git a/aws-android-sdk-connect/src/main/java/com/amazonaws/services/connect/model/InstanceStorageResourceType.java b/aws-android-sdk-connect/src/main/java/com/amazonaws/services/connect/model/InstanceStorageResourceType.java
index c61c090cdd..997f6c8379 100644
--- a/aws-android-sdk-connect/src/main/java/com/amazonaws/services/connect/model/InstanceStorageResourceType.java
+++ b/aws-android-sdk-connect/src/main/java/com/amazonaws/services/connect/model/InstanceStorageResourceType.java
@@ -31,7 +31,8 @@ public enum InstanceStorageResourceType {
     AGENT_EVENTS("AGENT_EVENTS"),
     REAL_TIME_CONTACT_ANALYSIS_SEGMENTS("REAL_TIME_CONTACT_ANALYSIS_SEGMENTS"),
     ATTACHMENTS("ATTACHMENTS"),
-    CONTACT_EVALUATIONS("CONTACT_EVALUATIONS");
+    CONTACT_EVALUATIONS("CONTACT_EVALUATIONS"),
+    SCREEN_RECORDINGS("SCREEN_RECORDINGS");
 
     private String value;
 
@@ -56,6 +57,7 @@ public String toString() {
         enumMap.put("REAL_TIME_CONTACT_ANALYSIS_SEGMENTS", REAL_TIME_CONTACT_ANALYSIS_SEGMENTS);
         enumMap.put("ATTACHMENTS", ATTACHMENTS);
         enumMap.put("CONTACT_EVALUATIONS", CONTACT_EVALUATIONS);
+        enumMap.put("SCREEN_RECORDINGS", SCREEN_RECORDINGS);
     }
 
     /**
diff --git a/aws-android-sdk-connect/src/main/java/com/amazonaws/services/connect/model/InstanceSummary.java b/aws-android-sdk-connect/src/main/java/com/amazonaws/services/connect/model/InstanceSummary.java
index a6fea2bcd6..40fba11031 100644
--- a/aws-android-sdk-connect/src/main/java/com/amazonaws/services/connect/model/InstanceSummary.java
+++ b/aws-android-sdk-connect/src/main/java/com/amazonaws/services/connect/model/InstanceSummary.java
@@ -99,6 +99,14 @@ public class InstanceSummary implements Serializable {
      */
     private Boolean outboundCallsEnabled;
 
+    /**
+     * <p>
+     * This URL allows contact center users to access Amazon Connect admin
+     * website.
+     * </p>
+     */
+    private String instanceAccessUrl;
+
     /**
      * <p>
      * The identifier of the instance.
@@ -655,6 +663,57 @@ public InstanceSummary withOutboundCallsEnabled(Boolean outboundCallsEnabled) {
         return this;
     }
 
+    /**
+     * <p>
+     * This URL allows contact center users to access Amazon Connect admin
+     * website.
+     * </p>
+     *
+     * @return <p>
+     *         This URL allows contact center users to access Amazon Connect
+     *         admin website.
+     *         </p>
+     */
+    public String getInstanceAccessUrl() {
+        return instanceAccessUrl;
+    }
+
+    /**
+     * <p>
+     * This URL allows contact center users to access Amazon Connect admin
+     * website.
+     * </p>
+     *
+     * @param instanceAccessUrl <p>
+     *            This URL allows contact center users to access Amazon Connect
+     *            admin website.
+     *            </p>
+     */
+    public void setInstanceAccessUrl(String instanceAccessUrl) {
+        this.instanceAccessUrl = instanceAccessUrl;
+    }
+
+    /**
+     * <p>
+     * This URL allows contact center users to access Amazon Connect admin
+     * website.
+     * </p>
+     * <p>
+     * Returns a reference to this object so that method calls can be chained
+     * together.
+     *
+     * @param instanceAccessUrl <p>
+     *            This URL allows contact center users to access Amazon Connect
+     *            admin website.
+     *            </p>
+     * @return A reference to this updated object so that method calls can be
+     *         chained together.
+     */
+    public InstanceSummary withInstanceAccessUrl(String instanceAccessUrl) {
+        this.instanceAccessUrl = instanceAccessUrl;
+        return this;
+    }
+
     /**
      * Returns a string representation of this object; useful for testing and
      * debugging.
@@ -683,7 +742,9 @@ public String toString() {
         if (getInboundCallsEnabled() != null)
             sb.append("InboundCallsEnabled: " + getInboundCallsEnabled() + ",");
         if (getOutboundCallsEnabled() != null)
-            sb.append("OutboundCallsEnabled: " + getOutboundCallsEnabled());
+            sb.append("OutboundCallsEnabled: " + getOutboundCallsEnabled() + ",");
+        if (getInstanceAccessUrl() != null)
+            sb.append("InstanceAccessUrl: " + getInstanceAccessUrl());
         sb.append("}");
         return sb.toString();
     }
@@ -711,6 +772,8 @@ public int hashCode() {
                 + ((getInboundCallsEnabled() == null) ? 0 : getInboundCallsEnabled().hashCode());
         hashCode = prime * hashCode
                 + ((getOutboundCallsEnabled() == null) ? 0 : getOutboundCallsEnabled().hashCode());
+        hashCode = prime * hashCode
+                + ((getInstanceAccessUrl() == null) ? 0 : getInstanceAccessUrl().hashCode());
         return hashCode;
     }
 
@@ -768,6 +831,11 @@ public boolean equals(Object obj) {
         if (other.getOutboundCallsEnabled() != null
                 && other.getOutboundCallsEnabled().equals(this.getOutboundCallsEnabled()) == false)
             return false;
+        if (other.getInstanceAccessUrl() == null ^ this.getInstanceAccessUrl() == null)
+            return false;
+        if (other.getInstanceAccessUrl() != null
+                && other.getInstanceAccessUrl().equals(this.getInstanceAccessUrl()) == false)
+            return false;
         return true;
     }
 }
diff --git a/aws-android-sdk-connect/src/main/java/com/amazonaws/services/connect/model/ListInstanceStorageConfigsRequest.java b/aws-android-sdk-connect/src/main/java/com/amazonaws/services/connect/model/ListInstanceStorageConfigsRequest.java
index 2387323eb0..a5c0c9f95d 100644
--- a/aws-android-sdk-connect/src/main/java/com/amazonaws/services/connect/model/ListInstanceStorageConfigsRequest.java
+++ b/aws-android-sdk-connect/src/main/java/com/amazonaws/services/connect/model/ListInstanceStorageConfigsRequest.java
@@ -51,7 +51,8 @@ public class ListInstanceStorageConfigsRequest extends AmazonWebServiceRequest i
      * <b>Constraints:</b><br/>
      * <b>Allowed Values: </b>CHAT_TRANSCRIPTS, CALL_RECORDINGS,
      * SCHEDULED_REPORTS, MEDIA_STREAMS, CONTACT_TRACE_RECORDS, AGENT_EVENTS,
-     * REAL_TIME_CONTACT_ANALYSIS_SEGMENTS, ATTACHMENTS, CONTACT_EVALUATIONS
+     * REAL_TIME_CONTACT_ANALYSIS_SEGMENTS, ATTACHMENTS, CONTACT_EVALUATIONS,
+     * SCREEN_RECORDINGS
      */
     private String resourceType;
 
@@ -156,7 +157,8 @@ public ListInstanceStorageConfigsRequest withInstanceId(String instanceId) {
      * <b>Constraints:</b><br/>
      * <b>Allowed Values: </b>CHAT_TRANSCRIPTS, CALL_RECORDINGS,
      * SCHEDULED_REPORTS, MEDIA_STREAMS, CONTACT_TRACE_RECORDS, AGENT_EVENTS,
-     * REAL_TIME_CONTACT_ANALYSIS_SEGMENTS, ATTACHMENTS, CONTACT_EVALUATIONS
+     * REAL_TIME_CONTACT_ANALYSIS_SEGMENTS, ATTACHMENTS, CONTACT_EVALUATIONS,
+     * SCREEN_RECORDINGS
      *
      * @return <p>
      *         A valid resource type.
@@ -175,7 +177,8 @@ public String getResourceType() {
      * <b>Constraints:</b><br/>
      * <b>Allowed Values: </b>CHAT_TRANSCRIPTS, CALL_RECORDINGS,
      * SCHEDULED_REPORTS, MEDIA_STREAMS, CONTACT_TRACE_RECORDS, AGENT_EVENTS,
-     * REAL_TIME_CONTACT_ANALYSIS_SEGMENTS, ATTACHMENTS, CONTACT_EVALUATIONS
+     * REAL_TIME_CONTACT_ANALYSIS_SEGMENTS, ATTACHMENTS, CONTACT_EVALUATIONS,
+     * SCREEN_RECORDINGS
      *
      * @param resourceType <p>
      *            A valid resource type.
@@ -197,7 +200,8 @@ public void setResourceType(String resourceType) {
      * <b>Constraints:</b><br/>
      * <b>Allowed Values: </b>CHAT_TRANSCRIPTS, CALL_RECORDINGS,
      * SCHEDULED_REPORTS, MEDIA_STREAMS, CONTACT_TRACE_RECORDS, AGENT_EVENTS,
-     * REAL_TIME_CONTACT_ANALYSIS_SEGMENTS, ATTACHMENTS, CONTACT_EVALUATIONS
+     * REAL_TIME_CONTACT_ANALYSIS_SEGMENTS, ATTACHMENTS, CONTACT_EVALUATIONS,
+     * SCREEN_RECORDINGS
      *
      * @param resourceType <p>
      *            A valid resource type.
@@ -219,7 +223,8 @@ public ListInstanceStorageConfigsRequest withResourceType(String resourceType) {
      * <b>Constraints:</b><br/>
      * <b>Allowed Values: </b>CHAT_TRANSCRIPTS, CALL_RECORDINGS,
      * SCHEDULED_REPORTS, MEDIA_STREAMS, CONTACT_TRACE_RECORDS, AGENT_EVENTS,
-     * REAL_TIME_CONTACT_ANALYSIS_SEGMENTS, ATTACHMENTS, CONTACT_EVALUATIONS
+     * REAL_TIME_CONTACT_ANALYSIS_SEGMENTS, ATTACHMENTS, CONTACT_EVALUATIONS,
+     * SCREEN_RECORDINGS
      *
      * @param resourceType <p>
      *            A valid resource type.
@@ -241,7 +246,8 @@ public void setResourceType(InstanceStorageResourceType resourceType) {
      * <b>Constraints:</b><br/>
      * <b>Allowed Values: </b>CHAT_TRANSCRIPTS, CALL_RECORDINGS,
      * SCHEDULED_REPORTS, MEDIA_STREAMS, CONTACT_TRACE_RECORDS, AGENT_EVENTS,
-     * REAL_TIME_CONTACT_ANALYSIS_SEGMENTS, ATTACHMENTS, CONTACT_EVALUATIONS
+     * REAL_TIME_CONTACT_ANALYSIS_SEGMENTS, ATTACHMENTS, CONTACT_EVALUATIONS,
+     * SCREEN_RECORDINGS
      *
      * @param resourceType <p>
      *            A valid resource type.
diff --git a/aws-android-sdk-connect/src/main/java/com/amazonaws/services/connect/model/MaximumResultReturnedException.java b/aws-android-sdk-connect/src/main/java/com/amazonaws/services/connect/model/MaximumResultReturnedException.java
new file mode 100644
index 0000000000..f3e68c89d8
--- /dev/null
+++ b/aws-android-sdk-connect/src/main/java/com/amazonaws/services/connect/model/MaximumResultReturnedException.java
@@ -0,0 +1,38 @@
+/*
+ * Copyright 2010-2023 Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License").
+ * You may not use this file except in compliance with the License.
+ * A copy of the License is located at
+ *
+ *  http://aws.amazon.com/apache2.0
+ *
+ * or in the "license" file accompanying this file. This file is distributed
+ * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
+ * express or implied. See the License for the specific language governing
+ * permissions and limitations under the License.
+ */
+
+package com.amazonaws.services.connect.model;
+
+import com.amazonaws.AmazonServiceException;
+
+/**
+ * <p>
+ * Maximum number (1000) of tags have been returned with current request.
+ * Consider changing request parameters to get more tags.
+ * </p>
+ */
+public class MaximumResultReturnedException extends AmazonServiceException {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * Constructs a new MaximumResultReturnedException with the specified error
+     * message.
+     *
+     * @param message Describes the error encountered.
+     */
+    public MaximumResultReturnedException(String message) {
+        super(message);
+    }
+}
diff --git a/aws-android-sdk-connect/src/main/java/com/amazonaws/services/connect/model/ReleasePhoneNumberRequest.java b/aws-android-sdk-connect/src/main/java/com/amazonaws/services/connect/model/ReleasePhoneNumberRequest.java
index 12533a8e95..8040b1a471 100644
--- a/aws-android-sdk-connect/src/main/java/com/amazonaws/services/connect/model/ReleasePhoneNumberRequest.java
+++ b/aws-android-sdk-connect/src/main/java/com/amazonaws/services/connect/model/ReleasePhoneNumberRequest.java
@@ -37,6 +37,26 @@
  * Web Services Support.
  * </p>
  * </important>
+ * <p>
+ * If you plan to claim and release numbers frequently during a 30 day period,
+ * contact us for a service quota exception. Otherwise, it is possible you will
+ * be blocked from claiming and releasing any more numbers until 30 days past
+ * the oldest number released has expired.
+ * </p>
+ * <p>
+ * By default you can claim and release up to 200% of your maximum number of
+ * active phone numbers during any 30 day period. If you claim and release phone
+ * numbers using the UI or API during a rolling 30 day cycle that exceeds 200%
+ * of your phone number service level quota, you will be blocked from claiming
+ * any more numbers until 30 days past the oldest number released has expired.
+ * </p>
+ * <p>
+ * For example, if you already have 99 claimed numbers and a service level quota
+ * of 99 phone numbers, and in any 30 day period you release 99, claim 99, and
+ * then release 99, you will have exceeded the 200% limit. At that point you are
+ * blocked from claiming any more numbers until you open an Amazon Web Services
+ * support ticket.
+ * </p>
  */
 public class ReleasePhoneNumberRequest extends AmazonWebServiceRequest implements Serializable {
     /**
diff --git a/aws-android-sdk-connect/src/main/java/com/amazonaws/services/connect/model/ResourceTagsSearchCriteria.java b/aws-android-sdk-connect/src/main/java/com/amazonaws/services/connect/model/ResourceTagsSearchCriteria.java
new file mode 100644
index 0000000000..0aff142221
--- /dev/null
+++ b/aws-android-sdk-connect/src/main/java/com/amazonaws/services/connect/model/ResourceTagsSearchCriteria.java
@@ -0,0 +1,123 @@
+/*
+ * Copyright 2010-2023 Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License").
+ * You may not use this file except in compliance with the License.
+ * A copy of the License is located at
+ *
+ *  http://aws.amazon.com/apache2.0
+ *
+ * or in the "license" file accompanying this file. This file is distributed
+ * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
+ * express or implied. See the License for the specific language governing
+ * permissions and limitations under the License.
+ */
+
+package com.amazonaws.services.connect.model;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * The search criteria to be used to search tags.
+ * </p>
+ */
+public class ResourceTagsSearchCriteria implements Serializable {
+    /**
+     * <p>
+     * The search criteria to be used to return tags.
+     * </p>
+     */
+    private TagSearchCondition tagSearchCondition;
+
+    /**
+     * <p>
+     * The search criteria to be used to return tags.
+     * </p>
+     *
+     * @return <p>
+     *         The search criteria to be used to return tags.
+     *         </p>
+     */
+    public TagSearchCondition getTagSearchCondition() {
+        return tagSearchCondition;
+    }
+
+    /**
+     * <p>
+     * The search criteria to be used to return tags.
+     * </p>
+     *
+     * @param tagSearchCondition <p>
+     *            The search criteria to be used to return tags.
+     *            </p>
+     */
+    public void setTagSearchCondition(TagSearchCondition tagSearchCondition) {
+        this.tagSearchCondition = tagSearchCondition;
+    }
+
+    /**
+     * <p>
+     * The search criteria to be used to return tags.
+     * </p>
+     * <p>
+     * Returns a reference to this object so that method calls can be chained
+     * together.
+     *
+     * @param tagSearchCondition <p>
+     *            The search criteria to be used to return tags.
+     *            </p>
+     * @return A reference to this updated object so that method calls can be
+     *         chained together.
+     */
+    public ResourceTagsSearchCriteria withTagSearchCondition(TagSearchCondition tagSearchCondition) {
+        this.tagSearchCondition = tagSearchCondition;
+        return this;
+    }
+
+    /**
+     * Returns a string representation of this object; useful for testing and
+     * debugging.
+     *
+     * @return A string representation of this object.
+     * @see java.lang.Object#toString()
+     */
+    @Override
+    public String toString() {
+        StringBuilder sb = new StringBuilder();
+        sb.append("{");
+        if (getTagSearchCondition() != null)
+            sb.append("TagSearchCondition: " + getTagSearchCondition());
+        sb.append("}");
+        return sb.toString();
+    }
+
+    @Override
+    public int hashCode() {
+        final int prime = 31;
+        int hashCode = 1;
+
+        hashCode = prime * hashCode
+                + ((getTagSearchCondition() == null) ? 0 : getTagSearchCondition().hashCode());
+        return hashCode;
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        if (this == obj)
+            return true;
+        if (obj == null)
+            return false;
+
+        if (obj instanceof ResourceTagsSearchCriteria == false)
+            return false;
+        ResourceTagsSearchCriteria other = (ResourceTagsSearchCriteria) obj;
+
+        if (other.getTagSearchCondition() == null ^ this.getTagSearchCondition() == null)
+            return false;
+        if (other.getTagSearchCondition() != null
+                && other.getTagSearchCondition().equals(this.getTagSearchCondition()) == false)
+            return false;
+        return true;
+    }
+}
diff --git a/aws-android-sdk-connect/src/main/java/com/amazonaws/services/connect/model/ResumeContactRecordingRequest.java b/aws-android-sdk-connect/src/main/java/com/amazonaws/services/connect/model/ResumeContactRecordingRequest.java
index 1ee3be8a57..49bbf69313 100644
--- a/aws-android-sdk-connect/src/main/java/com/amazonaws/services/connect/model/ResumeContactRecordingRequest.java
+++ b/aws-android-sdk-connect/src/main/java/com/amazonaws/services/connect/model/ResumeContactRecordingRequest.java
@@ -22,10 +22,10 @@
 /**
  * <p>
  * When a contact is being recorded, and the recording has been suspended using
- * SuspendContactRecording, this API resumes recording the call.
+ * SuspendContactRecording, this API resumes recording the call or screen.
  * </p>
  * <p>
- * Only voice recordings are supported at this time.
+ * Voice and screen recordings are supported.
  * </p>
  */
 public class ResumeContactRecordingRequest extends AmazonWebServiceRequest implements Serializable {
diff --git a/aws-android-sdk-connect/src/main/java/com/amazonaws/services/connect/model/SearchResourceTagsRequest.java b/aws-android-sdk-connect/src/main/java/com/amazonaws/services/connect/model/SearchResourceTagsRequest.java
new file mode 100644
index 0000000000..a7fc7a83b4
--- /dev/null
+++ b/aws-android-sdk-connect/src/main/java/com/amazonaws/services/connect/model/SearchResourceTagsRequest.java
@@ -0,0 +1,489 @@
+/*
+ * Copyright 2010-2023 Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License").
+ * You may not use this file except in compliance with the License.
+ * A copy of the License is located at
+ *
+ *  http://aws.amazon.com/apache2.0
+ *
+ * or in the "license" file accompanying this file. This file is distributed
+ * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
+ * express or implied. See the License for the specific language governing
+ * permissions and limitations under the License.
+ */
+
+package com.amazonaws.services.connect.model;
+
+import java.io.Serializable;
+
+import com.amazonaws.AmazonWebServiceRequest;
+
+/**
+ * <p>
+ * Searches tags used in an Amazon Connect instance using optional search
+ * criteria.
+ * </p>
+ */
+public class SearchResourceTagsRequest extends AmazonWebServiceRequest implements Serializable {
+    /**
+     * <p>
+     * The identifier of the Amazon Connect instance. You can find the
+     * instanceId in the Amazon Resource Name (ARN) of the instance.
+     * </p>
+     * <p>
+     * <b>Constraints:</b><br/>
+     * <b>Length: </b>1 - 250<br/>
+     * <b>Pattern:
+     * </b>^(arn:(aws|aws-us-gov):connect:[a-z]{2}-[a-z]+-[0-9]{1}:[0
+     * -9]{1,20}:instance
+     * /)?[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$<br/>
+     */
+    private String instanceId;
+
+    /**
+     * <p>
+     * The list of resource types to be used to search tags from. If not
+     * provided or if any empty list is provided, this API will search from all
+     * supported resource types.
+     * </p>
+     */
+    private java.util.List<String> resourceTypes;
+
+    /**
+     * <p>
+     * The token for the next set of results. Use the value returned in the
+     * previous response in the next request to retrieve the next set of
+     * results.
+     * </p>
+     * <p>
+     * <b>Constraints:</b><br/>
+     * <b>Length: </b>1 - 2500<br/>
+     */
+    private String nextToken;
+
+    /**
+     * <p>
+     * The maximum number of results to return per page.
+     * </p>
+     * <p>
+     * <b>Constraints:</b><br/>
+     * <b>Range: </b>1 - 100<br/>
+     */
+    private Integer maxResults;
+
+    /**
+     * <p>
+     * The search criteria to be used to return tags.
+     * </p>
+     */
+    private ResourceTagsSearchCriteria searchCriteria;
+
+    /**
+     * <p>
+     * The identifier of the Amazon Connect instance. You can find the
+     * instanceId in the Amazon Resource Name (ARN) of the instance.
+     * </p>
+     * <p>
+     * <b>Constraints:</b><br/>
+     * <b>Length: </b>1 - 250<br/>
+     * <b>Pattern:
+     * </b>^(arn:(aws|aws-us-gov):connect:[a-z]{2}-[a-z]+-[0-9]{1}:[0
+     * -9]{1,20}:instance
+     * /)?[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$<br/>
+     *
+     * @return <p>
+     *         The identifier of the Amazon Connect instance. You can find the
+     *         instanceId in the Amazon Resource Name (ARN) of the instance.
+     *         </p>
+     */
+    public String getInstanceId() {
+        return instanceId;
+    }
+
+    /**
+     * <p>
+     * The identifier of the Amazon Connect instance. You can find the
+     * instanceId in the Amazon Resource Name (ARN) of the instance.
+     * </p>
+     * <p>
+     * <b>Constraints:</b><br/>
+     * <b>Length: </b>1 - 250<br/>
+     * <b>Pattern:
+     * </b>^(arn:(aws|aws-us-gov):connect:[a-z]{2}-[a-z]+-[0-9]{1}:[0
+     * -9]{1,20}:instance
+     * /)?[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$<br/>
+     *
+     * @param instanceId <p>
+     *            The identifier of the Amazon Connect instance. You can find
+     *            the instanceId in the Amazon Resource Name (ARN) of the
+     *            instance.
+     *            </p>
+     */
+    public void setInstanceId(String instanceId) {
+        this.instanceId = instanceId;
+    }
+
+    /**
+     * <p>
+     * The identifier of the Amazon Connect instance. You can find the
+     * instanceId in the Amazon Resource Name (ARN) of the instance.
+     * </p>
+     * <p>
+     * Returns a reference to this object so that method calls can be chained
+     * together.
+     * <p>
+     * <b>Constraints:</b><br/>
+     * <b>Length: </b>1 - 250<br/>
+     * <b>Pattern:
+     * </b>^(arn:(aws|aws-us-gov):connect:[a-z]{2}-[a-z]+-[0-9]{1}:[0
+     * -9]{1,20}:instance
+     * /)?[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$<br/>
+     *
+     * @param instanceId <p>
+     *            The identifier of the Amazon Connect instance. You can find
+     *            the instanceId in the Amazon Resource Name (ARN) of the
+     *            instance.
+     *            </p>
+     * @return A reference to this updated object so that method calls can be
+     *         chained together.
+     */
+    public SearchResourceTagsRequest withInstanceId(String instanceId) {
+        this.instanceId = instanceId;
+        return this;
+    }
+
+    /**
+     * <p>
+     * The list of resource types to be used to search tags from. If not
+     * provided or if any empty list is provided, this API will search from all
+     * supported resource types.
+     * </p>
+     *
+     * @return <p>
+     *         The list of resource types to be used to search tags from. If not
+     *         provided or if any empty list is provided, this API will search
+     *         from all supported resource types.
+     *         </p>
+     */
+    public java.util.List<String> getResourceTypes() {
+        return resourceTypes;
+    }
+
+    /**
+     * <p>
+     * The list of resource types to be used to search tags from. If not
+     * provided or if any empty list is provided, this API will search from all
+     * supported resource types.
+     * </p>
+     *
+     * @param resourceTypes <p>
+     *            The list of resource types to be used to search tags from. If
+     *            not provided or if any empty list is provided, this API will
+     *            search from all supported resource types.
+     *            </p>
+     */
+    public void setResourceTypes(java.util.Collection<String> resourceTypes) {
+        if (resourceTypes == null) {
+            this.resourceTypes = null;
+            return;
+        }
+
+        this.resourceTypes = new java.util.ArrayList<String>(resourceTypes);
+    }
+
+    /**
+     * <p>
+     * The list of resource types to be used to search tags from. If not
+     * provided or if any empty list is provided, this API will search from all
+     * supported resource types.
+     * </p>
+     * <p>
+     * Returns a reference to this object so that method calls can be chained
+     * together.
+     *
+     * @param resourceTypes <p>
+     *            The list of resource types to be used to search tags from. If
+     *            not provided or if any empty list is provided, this API will
+     *            search from all supported resource types.
+     *            </p>
+     * @return A reference to this updated object so that method calls can be
+     *         chained together.
+     */
+    public SearchResourceTagsRequest withResourceTypes(String... resourceTypes) {
+        if (getResourceTypes() == null) {
+            this.resourceTypes = new java.util.ArrayList<String>(resourceTypes.length);
+        }
+        for (String value : resourceTypes) {
+            this.resourceTypes.add(value);
+        }
+        return this;
+    }
+
+    /**
+     * <p>
+     * The list of resource types to be used to search tags from. If not
+     * provided or if any empty list is provided, this API will search from all
+     * supported resource types.
+     * </p>
+     * <p>
+     * Returns a reference to this object so that method calls can be chained
+     * together.
+     *
+     * @param resourceTypes <p>
+     *            The list of resource types to be used to search tags from. If
+     *            not provided or if any empty list is provided, this API will
+     *            search from all supported resource types.
+     *            </p>
+     * @return A reference to this updated object so that method calls can be
+     *         chained together.
+     */
+    public SearchResourceTagsRequest withResourceTypes(java.util.Collection<String> resourceTypes) {
+        setResourceTypes(resourceTypes);
+        return this;
+    }
+
+    /**
+     * <p>
+     * The token for the next set of results. Use the value returned in the
+     * previous response in the next request to retrieve the next set of
+     * results.
+     * </p>
+     * <p>
+     * <b>Constraints:</b><br/>
+     * <b>Length: </b>1 - 2500<br/>
+     *
+     * @return <p>
+     *         The token for the next set of results. Use the value returned in
+     *         the previous response in the next request to retrieve the next
+     *         set of results.
+     *         </p>
+     */
+    public String getNextToken() {
+        return nextToken;
+    }
+
+    /**
+     * <p>
+     * The token for the next set of results. Use the value returned in the
+     * previous response in the next request to retrieve the next set of
+     * results.
+     * </p>
+     * <p>
+     * <b>Constraints:</b><br/>
+     * <b>Length: </b>1 - 2500<br/>
+     *
+     * @param nextToken <p>
+     *            The token for the next set of results. Use the value returned
+     *            in the previous response in the next request to retrieve the
+     *            next set of results.
+     *            </p>
+     */
+    public void setNextToken(String nextToken) {
+        this.nextToken = nextToken;
+    }
+
+    /**
+     * <p>
+     * The token for the next set of results. Use the value returned in the
+     * previous response in the next request to retrieve the next set of
+     * results.
+     * </p>
+     * <p>
+     * Returns a reference to this object so that method calls can be chained
+     * together.
+     * <p>
+     * <b>Constraints:</b><br/>
+     * <b>Length: </b>1 - 2500<br/>
+     *
+     * @param nextToken <p>
+     *            The token for the next set of results. Use the value returned
+     *            in the previous response in the next request to retrieve the
+     *            next set of results.
+     *            </p>
+     * @return A reference to this updated object so that method calls can be
+     *         chained together.
+     */
+    public SearchResourceTagsRequest withNextToken(String nextToken) {
+        this.nextToken = nextToken;
+        return this;
+    }
+
+    /**
+     * <p>
+     * The maximum number of results to return per page.
+     * </p>
+     * <p>
+     * <b>Constraints:</b><br/>
+     * <b>Range: </b>1 - 100<br/>
+     *
+     * @return <p>
+     *         The maximum number of results to return per page.
+     *         </p>
+     */
+    public Integer getMaxResults() {
+        return maxResults;
+    }
+
+    /**
+     * <p>
+     * The maximum number of results to return per page.
+     * </p>
+     * <p>
+     * <b>Constraints:</b><br/>
+     * <b>Range: </b>1 - 100<br/>
+     *
+     * @param maxResults <p>
+     *            The maximum number of results to return per page.
+     *            </p>
+     */
+    public void setMaxResults(Integer maxResults) {
+        this.maxResults = maxResults;
+    }
+
+    /**
+     * <p>
+     * The maximum number of results to return per page.
+     * </p>
+     * <p>
+     * Returns a reference to this object so that method calls can be chained
+     * together.
+     * <p>
+     * <b>Constraints:</b><br/>
+     * <b>Range: </b>1 - 100<br/>
+     *
+     * @param maxResults <p>
+     *            The maximum number of results to return per page.
+     *            </p>
+     * @return A reference to this updated object so that method calls can be
+     *         chained together.
+     */
+    public SearchResourceTagsRequest withMaxResults(Integer maxResults) {
+        this.maxResults = maxResults;
+        return this;
+    }
+
+    /**
+     * <p>
+     * The search criteria to be used to return tags.
+     * </p>
+     *
+     * @return <p>
+     *         The search criteria to be used to return tags.
+     *         </p>
+     */
+    public ResourceTagsSearchCriteria getSearchCriteria() {
+        return searchCriteria;
+    }
+
+    /**
+     * <p>
+     * The search criteria to be used to return tags.
+     * </p>
+     *
+     * @param searchCriteria <p>
+     *            The search criteria to be used to return tags.
+     *            </p>
+     */
+    public void setSearchCriteria(ResourceTagsSearchCriteria searchCriteria) {
+        this.searchCriteria = searchCriteria;
+    }
+
+    /**
+     * <p>
+     * The search criteria to be used to return tags.
+     * </p>
+     * <p>
+     * Returns a reference to this object so that method calls can be chained
+     * together.
+     *
+     * @param searchCriteria <p>
+     *            The search criteria to be used to return tags.
+     *            </p>
+     * @return A reference to this updated object so that method calls can be
+     *         chained together.
+     */
+    public SearchResourceTagsRequest withSearchCriteria(ResourceTagsSearchCriteria searchCriteria) {
+        this.searchCriteria = searchCriteria;
+        return this;
+    }
+
+    /**
+     * Returns a string representation of this object; useful for testing and
+     * debugging.
+     *
+     * @return A string representation of this object.
+     * @see java.lang.Object#toString()
+     */
+    @Override
+    public String toString() {
+        StringBuilder sb = new StringBuilder();
+        sb.append("{");
+        if (getInstanceId() != null)
+            sb.append("InstanceId: " + getInstanceId() + ",");
+        if (getResourceTypes() != null)
+            sb.append("ResourceTypes: " + getResourceTypes() + ",");
+        if (getNextToken() != null)
+            sb.append("NextToken: " + getNextToken() + ",");
+        if (getMaxResults() != null)
+            sb.append("MaxResults: " + getMaxResults() + ",");
+        if (getSearchCriteria() != null)
+            sb.append("SearchCriteria: " + getSearchCriteria());
+        sb.append("}");
+        return sb.toString();
+    }
+
+    @Override
+    public int hashCode() {
+        final int prime = 31;
+        int hashCode = 1;
+
+        hashCode = prime * hashCode + ((getInstanceId() == null) ? 0 : getInstanceId().hashCode());
+        hashCode = prime * hashCode
+                + ((getResourceTypes() == null) ? 0 : getResourceTypes().hashCode());
+        hashCode = prime * hashCode + ((getNextToken() == null) ? 0 : getNextToken().hashCode());
+        hashCode = prime * hashCode + ((getMaxResults() == null) ? 0 : getMaxResults().hashCode());
+        hashCode = prime * hashCode
+                + ((getSearchCriteria() == null) ? 0 : getSearchCriteria().hashCode());
+        return hashCode;
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        if (this == obj)
+            return true;
+        if (obj == null)
+            return false;
+
+        if (obj instanceof SearchResourceTagsRequest == false)
+            return false;
+        SearchResourceTagsRequest other = (SearchResourceTagsRequest) obj;
+
+        if (other.getInstanceId() == null ^ this.getInstanceId() == null)
+            return false;
+        if (other.getInstanceId() != null
+                && other.getInstanceId().equals(this.getInstanceId()) == false)
+            return false;
+        if (other.getResourceTypes() == null ^ this.getResourceTypes() == null)
+            return false;
+        if (other.getResourceTypes() != null
+                && other.getResourceTypes().equals(this.getResourceTypes()) == false)
+            return false;
+        if (other.getNextToken() == null ^ this.getNextToken() == null)
+            return false;
+        if (other.getNextToken() != null
+                && other.getNextToken().equals(this.getNextToken()) == false)
+            return false;
+        if (other.getMaxResults() == null ^ this.getMaxResults() == null)
+            return false;
+        if (other.getMaxResults() != null
+                && other.getMaxResults().equals(this.getMaxResults()) == false)
+            return false;
+        if (other.getSearchCriteria() == null ^ this.getSearchCriteria() == null)
+            return false;
+        if (other.getSearchCriteria() != null
+                && other.getSearchCriteria().equals(this.getSearchCriteria()) == false)
+            return false;
+        return true;
+    }
+}
diff --git a/aws-android-sdk-connect/src/main/java/com/amazonaws/services/connect/model/SearchResourceTagsResult.java b/aws-android-sdk-connect/src/main/java/com/amazonaws/services/connect/model/SearchResourceTagsResult.java
new file mode 100644
index 0000000000..187cbccee1
--- /dev/null
+++ b/aws-android-sdk-connect/src/main/java/com/amazonaws/services/connect/model/SearchResourceTagsResult.java
@@ -0,0 +1,224 @@
+/*
+ * Copyright 2010-2023 Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License").
+ * You may not use this file except in compliance with the License.
+ * A copy of the License is located at
+ *
+ *  http://aws.amazon.com/apache2.0
+ *
+ * or in the "license" file accompanying this file. This file is distributed
+ * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
+ * express or implied. See the License for the specific language governing
+ * permissions and limitations under the License.
+ */
+
+package com.amazonaws.services.connect.model;
+
+import java.io.Serializable;
+
+public class SearchResourceTagsResult implements Serializable {
+    /**
+     * <p>
+     * A list of tags used in the Amazon Connect instance.
+     * </p>
+     */
+    private java.util.List<TagSet> tags;
+
+    /**
+     * <p>
+     * If there are additional results, this is the token for the next set of
+     * results.
+     * </p>
+     * <p>
+     * <b>Constraints:</b><br/>
+     * <b>Length: </b>1 - 2500<br/>
+     */
+    private String nextToken;
+
+    /**
+     * <p>
+     * A list of tags used in the Amazon Connect instance.
+     * </p>
+     *
+     * @return <p>
+     *         A list of tags used in the Amazon Connect instance.
+     *         </p>
+     */
+    public java.util.List<TagSet> getTags() {
+        return tags;
+    }
+
+    /**
+     * <p>
+     * A list of tags used in the Amazon Connect instance.
+     * </p>
+     *
+     * @param tags <p>
+     *            A list of tags used in the Amazon Connect instance.
+     *            </p>
+     */
+    public void setTags(java.util.Collection<TagSet> tags) {
+        if (tags == null) {
+            this.tags = null;
+            return;
+        }
+
+        this.tags = new java.util.ArrayList<TagSet>(tags);
+    }
+
+    /**
+     * <p>
+     * A list of tags used in the Amazon Connect instance.
+     * </p>
+     * <p>
+     * Returns a reference to this object so that method calls can be chained
+     * together.
+     *
+     * @param tags <p>
+     *            A list of tags used in the Amazon Connect instance.
+     *            </p>
+     * @return A reference to this updated object so that method calls can be
+     *         chained together.
+     */
+    public SearchResourceTagsResult withTags(TagSet... tags) {
+        if (getTags() == null) {
+            this.tags = new java.util.ArrayList<TagSet>(tags.length);
+        }
+        for (TagSet value : tags) {
+            this.tags.add(value);
+        }
+        return this;
+    }
+
+    /**
+     * <p>
+     * A list of tags used in the Amazon Connect instance.
+     * </p>
+     * <p>
+     * Returns a reference to this object so that method calls can be chained
+     * together.
+     *
+     * @param tags <p>
+     *            A list of tags used in the Amazon Connect instance.
+     *            </p>
+     * @return A reference to this updated object so that method calls can be
+     *         chained together.
+     */
+    public SearchResourceTagsResult withTags(java.util.Collection<TagSet> tags) {
+        setTags(tags);
+        return this;
+    }
+
+    /**
+     * <p>
+     * If there are additional results, this is the token for the next set of
+     * results.
+     * </p>
+     * <p>
+     * <b>Constraints:</b><br/>
+     * <b>Length: </b>1 - 2500<br/>
+     *
+     * @return <p>
+     *         If there are additional results, this is the token for the next
+     *         set of results.
+     *         </p>
+     */
+    public String getNextToken() {
+        return nextToken;
+    }
+
+    /**
+     * <p>
+     * If there are additional results, this is the token for the next set of
+     * results.
+     * </p>
+     * <p>
+     * <b>Constraints:</b><br/>
+     * <b>Length: </b>1 - 2500<br/>
+     *
+     * @param nextToken <p>
+     *            If there are additional results, this is the token for the
+     *            next set of results.
+     *            </p>
+     */
+    public void setNextToken(String nextToken) {
+        this.nextToken = nextToken;
+    }
+
+    /**
+     * <p>
+     * If there are additional results, this is the token for the next set of
+     * results.
+     * </p>
+     * <p>
+     * Returns a reference to this object so that method calls can be chained
+     * together.
+     * <p>
+     * <b>Constraints:</b><br/>
+     * <b>Length: </b>1 - 2500<br/>
+     *
+     * @param nextToken <p>
+     *            If there are additional results, this is the token for the
+     *            next set of results.
+     *            </p>
+     * @return A reference to this updated object so that method calls can be
+     *         chained together.
+     */
+    public SearchResourceTagsResult withNextToken(String nextToken) {
+        this.nextToken = nextToken;
+        return this;
+    }
+
+    /**
+     * Returns a string representation of this object; useful for testing and
+     * debugging.
+     *
+     * @return A string representation of this object.
+     * @see java.lang.Object#toString()
+     */
+    @Override
+    public String toString() {
+        StringBuilder sb = new StringBuilder();
+        sb.append("{");
+        if (getTags() != null)
+            sb.append("Tags: " + getTags() + ",");
+        if (getNextToken() != null)
+            sb.append("NextToken: " + getNextToken());
+        sb.append("}");
+        return sb.toString();
+    }
+
+    @Override
+    public int hashCode() {
+        final int prime = 31;
+        int hashCode = 1;
+
+        hashCode = prime * hashCode + ((getTags() == null) ? 0 : getTags().hashCode());
+        hashCode = prime * hashCode + ((getNextToken() == null) ? 0 : getNextToken().hashCode());
+        return hashCode;
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        if (this == obj)
+            return true;
+        if (obj == null)
+            return false;
+
+        if (obj instanceof SearchResourceTagsResult == false)
+            return false;
+        SearchResourceTagsResult other = (SearchResourceTagsResult) obj;
+
+        if (other.getTags() == null ^ this.getTags() == null)
+            return false;
+        if (other.getTags() != null && other.getTags().equals(this.getTags()) == false)
+            return false;
+        if (other.getNextToken() == null ^ this.getNextToken() == null)
+            return false;
+        if (other.getNextToken() != null
+                && other.getNextToken().equals(this.getNextToken()) == false)
+            return false;
+        return true;
+    }
+}
diff --git a/aws-android-sdk-connect/src/main/java/com/amazonaws/services/connect/model/SuspendContactRecordingRequest.java b/aws-android-sdk-connect/src/main/java/com/amazonaws/services/connect/model/SuspendContactRecordingRequest.java
index bc929176f2..b8389b4308 100644
--- a/aws-android-sdk-connect/src/main/java/com/amazonaws/services/connect/model/SuspendContactRecordingRequest.java
+++ b/aws-android-sdk-connect/src/main/java/com/amazonaws/services/connect/model/SuspendContactRecordingRequest.java
@@ -21,17 +21,17 @@
 
 /**
  * <p>
- * When a contact is being recorded, this API suspends recording the call. For
- * example, you might suspend the call recording while collecting sensitive
- * information, such as a credit card number. Then use ResumeContactRecording to
- * restart recording.
+ * When a contact is being recorded, this API suspends recording the call or
+ * screen. For example, you might suspend the call or screen recording while
+ * collecting sensitive information, such as a credit card number. Then use
+ * ResumeContactRecording to restart recording.
  * </p>
  * <p>
  * The period of time that the recording is suspended is filled with silence in
  * the final recording.
  * </p>
  * <p>
- * Only voice recordings are supported at this time.
+ * Voice and screen recordings are supported.
  * </p>
  */
 public class SuspendContactRecordingRequest extends AmazonWebServiceRequest implements Serializable {
diff --git a/aws-android-sdk-connect/src/main/java/com/amazonaws/services/connect/model/TagSearchCondition.java b/aws-android-sdk-connect/src/main/java/com/amazonaws/services/connect/model/TagSearchCondition.java
new file mode 100644
index 0000000000..c795287a56
--- /dev/null
+++ b/aws-android-sdk-connect/src/main/java/com/amazonaws/services/connect/model/TagSearchCondition.java
@@ -0,0 +1,460 @@
+/*
+ * Copyright 2010-2023 Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License").
+ * You may not use this file except in compliance with the License.
+ * A copy of the License is located at
+ *
+ *  http://aws.amazon.com/apache2.0
+ *
+ * or in the "license" file accompanying this file. This file is distributed
+ * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
+ * express or implied. See the License for the specific language governing
+ * permissions and limitations under the License.
+ */
+
+package com.amazonaws.services.connect.model;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * The search criteria to be used to return tags.
+ * </p>
+ */
+public class TagSearchCondition implements Serializable {
+    /**
+     * <p>
+     * The tag key used in the tag search condition.
+     * </p>
+     * <p>
+     * <b>Constraints:</b><br/>
+     * <b>Length: </b> - 128<br/>
+     */
+    private String tagKey;
+
+    /**
+     * <p>
+     * The tag value used in the tag search condition.
+     * </p>
+     * <p>
+     * <b>Constraints:</b><br/>
+     * <b>Length: </b> - 256<br/>
+     */
+    private String tagValue;
+
+    /**
+     * <p>
+     * The type of comparison to be made when evaluating the tag key in tag
+     * search condition.
+     * </p>
+     * <p>
+     * <b>Constraints:</b><br/>
+     * <b>Allowed Values: </b>STARTS_WITH, CONTAINS, EXACT
+     */
+    private String tagKeyComparisonType;
+
+    /**
+     * <p>
+     * The type of comparison to be made when evaluating the tag value in tag
+     * search condition.
+     * </p>
+     * <p>
+     * <b>Constraints:</b><br/>
+     * <b>Allowed Values: </b>STARTS_WITH, CONTAINS, EXACT
+     */
+    private String tagValueComparisonType;
+
+    /**
+     * <p>
+     * The tag key used in the tag search condition.
+     * </p>
+     * <p>
+     * <b>Constraints:</b><br/>
+     * <b>Length: </b> - 128<br/>
+     *
+     * @return <p>
+     *         The tag key used in the tag search condition.
+     *         </p>
+     */
+    public String getTagKey() {
+        return tagKey;
+    }
+
+    /**
+     * <p>
+     * The tag key used in the tag search condition.
+     * </p>
+     * <p>
+     * <b>Constraints:</b><br/>
+     * <b>Length: </b> - 128<br/>
+     *
+     * @param tagKey <p>
+     *            The tag key used in the tag search condition.
+     *            </p>
+     */
+    public void setTagKey(String tagKey) {
+        this.tagKey = tagKey;
+    }
+
+    /**
+     * <p>
+     * The tag key used in the tag search condition.
+     * </p>
+     * <p>
+     * Returns a reference to this object so that method calls can be chained
+     * together.
+     * <p>
+     * <b>Constraints:</b><br/>
+     * <b>Length: </b> - 128<br/>
+     *
+     * @param tagKey <p>
+     *            The tag key used in the tag search condition.
+     *            </p>
+     * @return A reference to this updated object so that method calls can be
+     *         chained together.
+     */
+    public TagSearchCondition withTagKey(String tagKey) {
+        this.tagKey = tagKey;
+        return this;
+    }
+
+    /**
+     * <p>
+     * The tag value used in the tag search condition.
+     * </p>
+     * <p>
+     * <b>Constraints:</b><br/>
+     * <b>Length: </b> - 256<br/>
+     *
+     * @return <p>
+     *         The tag value used in the tag search condition.
+     *         </p>
+     */
+    public String getTagValue() {
+        return tagValue;
+    }
+
+    /**
+     * <p>
+     * The tag value used in the tag search condition.
+     * </p>
+     * <p>
+     * <b>Constraints:</b><br/>
+     * <b>Length: </b> - 256<br/>
+     *
+     * @param tagValue <p>
+     *            The tag value used in the tag search condition.
+     *            </p>
+     */
+    public void setTagValue(String tagValue) {
+        this.tagValue = tagValue;
+    }
+
+    /**
+     * <p>
+     * The tag value used in the tag search condition.
+     * </p>
+     * <p>
+     * Returns a reference to this object so that method calls can be chained
+     * together.
+     * <p>
+     * <b>Constraints:</b><br/>
+     * <b>Length: </b> - 256<br/>
+     *
+     * @param tagValue <p>
+     *            The tag value used in the tag search condition.
+     *            </p>
+     * @return A reference to this updated object so that method calls can be
+     *         chained together.
+     */
+    public TagSearchCondition withTagValue(String tagValue) {
+        this.tagValue = tagValue;
+        return this;
+    }
+
+    /**
+     * <p>
+     * The type of comparison to be made when evaluating the tag key in tag
+     * search condition.
+     * </p>
+     * <p>
+     * <b>Constraints:</b><br/>
+     * <b>Allowed Values: </b>STARTS_WITH, CONTAINS, EXACT
+     *
+     * @return <p>
+     *         The type of comparison to be made when evaluating the tag key in
+     *         tag search condition.
+     *         </p>
+     * @see StringComparisonType
+     */
+    public String getTagKeyComparisonType() {
+        return tagKeyComparisonType;
+    }
+
+    /**
+     * <p>
+     * The type of comparison to be made when evaluating the tag key in tag
+     * search condition.
+     * </p>
+     * <p>
+     * <b>Constraints:</b><br/>
+     * <b>Allowed Values: </b>STARTS_WITH, CONTAINS, EXACT
+     *
+     * @param tagKeyComparisonType <p>
+     *            The type of comparison to be made when evaluating the tag key
+     *            in tag search condition.
+     *            </p>
+     * @see StringComparisonType
+     */
+    public void setTagKeyComparisonType(String tagKeyComparisonType) {
+        this.tagKeyComparisonType = tagKeyComparisonType;
+    }
+
+    /**
+     * <p>
+     * The type of comparison to be made when evaluating the tag key in tag
+     * search condition.
+     * </p>
+     * <p>
+     * Returns a reference to this object so that method calls can be chained
+     * together.
+     * <p>
+     * <b>Constraints:</b><br/>
+     * <b>Allowed Values: </b>STARTS_WITH, CONTAINS, EXACT
+     *
+     * @param tagKeyComparisonType <p>
+     *            The type of comparison to be made when evaluating the tag key
+     *            in tag search condition.
+     *            </p>
+     * @return A reference to this updated object so that method calls can be
+     *         chained together.
+     * @see StringComparisonType
+     */
+    public TagSearchCondition withTagKeyComparisonType(String tagKeyComparisonType) {
+        this.tagKeyComparisonType = tagKeyComparisonType;
+        return this;
+    }
+
+    /**
+     * <p>
+     * The type of comparison to be made when evaluating the tag key in tag
+     * search condition.
+     * </p>
+     * <p>
+     * <b>Constraints:</b><br/>
+     * <b>Allowed Values: </b>STARTS_WITH, CONTAINS, EXACT
+     *
+     * @param tagKeyComparisonType <p>
+     *            The type of comparison to be made when evaluating the tag key
+     *            in tag search condition.
+     *            </p>
+     * @see StringComparisonType
+     */
+    public void setTagKeyComparisonType(StringComparisonType tagKeyComparisonType) {
+        this.tagKeyComparisonType = tagKeyComparisonType.toString();
+    }
+
+    /**
+     * <p>
+     * The type of comparison to be made when evaluating the tag key in tag
+     * search condition.
+     * </p>
+     * <p>
+     * Returns a reference to this object so that method calls can be chained
+     * together.
+     * <p>
+     * <b>Constraints:</b><br/>
+     * <b>Allowed Values: </b>STARTS_WITH, CONTAINS, EXACT
+     *
+     * @param tagKeyComparisonType <p>
+     *            The type of comparison to be made when evaluating the tag key
+     *            in tag search condition.
+     *            </p>
+     * @return A reference to this updated object so that method calls can be
+     *         chained together.
+     * @see StringComparisonType
+     */
+    public TagSearchCondition withTagKeyComparisonType(StringComparisonType tagKeyComparisonType) {
+        this.tagKeyComparisonType = tagKeyComparisonType.toString();
+        return this;
+    }
+
+    /**
+     * <p>
+     * The type of comparison to be made when evaluating the tag value in tag
+     * search condition.
+     * </p>
+     * <p>
+     * <b>Constraints:</b><br/>
+     * <b>Allowed Values: </b>STARTS_WITH, CONTAINS, EXACT
+     *
+     * @return <p>
+     *         The type of comparison to be made when evaluating the tag value
+     *         in tag search condition.
+     *         </p>
+     * @see StringComparisonType
+     */
+    public String getTagValueComparisonType() {
+        return tagValueComparisonType;
+    }
+
+    /**
+     * <p>
+     * The type of comparison to be made when evaluating the tag value in tag
+     * search condition.
+     * </p>
+     * <p>
+     * <b>Constraints:</b><br/>
+     * <b>Allowed Values: </b>STARTS_WITH, CONTAINS, EXACT
+     *
+     * @param tagValueComparisonType <p>
+     *            The type of comparison to be made when evaluating the tag
+     *            value in tag search condition.
+     *            </p>
+     * @see StringComparisonType
+     */
+    public void setTagValueComparisonType(String tagValueComparisonType) {
+        this.tagValueComparisonType = tagValueComparisonType;
+    }
+
+    /**
+     * <p>
+     * The type of comparison to be made when evaluating the tag value in tag
+     * search condition.
+     * </p>
+     * <p>
+     * Returns a reference to this object so that method calls can be chained
+     * together.
+     * <p>
+     * <b>Constraints:</b><br/>
+     * <b>Allowed Values: </b>STARTS_WITH, CONTAINS, EXACT
+     *
+     * @param tagValueComparisonType <p>
+     *            The type of comparison to be made when evaluating the tag
+     *            value in tag search condition.
+     *            </p>
+     * @return A reference to this updated object so that method calls can be
+     *         chained together.
+     * @see StringComparisonType
+     */
+    public TagSearchCondition withTagValueComparisonType(String tagValueComparisonType) {
+        this.tagValueComparisonType = tagValueComparisonType;
+        return this;
+    }
+
+    /**
+     * <p>
+     * The type of comparison to be made when evaluating the tag value in tag
+     * search condition.
+     * </p>
+     * <p>
+     * <b>Constraints:</b><br/>
+     * <b>Allowed Values: </b>STARTS_WITH, CONTAINS, EXACT
+     *
+     * @param tagValueComparisonType <p>
+     *            The type of comparison to be made when evaluating the tag
+     *            value in tag search condition.
+     *            </p>
+     * @see StringComparisonType
+     */
+    public void setTagValueComparisonType(StringComparisonType tagValueComparisonType) {
+        this.tagValueComparisonType = tagValueComparisonType.toString();
+    }
+
+    /**
+     * <p>
+     * The type of comparison to be made when evaluating the tag value in tag
+     * search condition.
+     * </p>
+     * <p>
+     * Returns a reference to this object so that method calls can be chained
+     * together.
+     * <p>
+     * <b>Constraints:</b><br/>
+     * <b>Allowed Values: </b>STARTS_WITH, CONTAINS, EXACT
+     *
+     * @param tagValueComparisonType <p>
+     *            The type of comparison to be made when evaluating the tag
+     *            value in tag search condition.
+     *            </p>
+     * @return A reference to this updated object so that method calls can be
+     *         chained together.
+     * @see StringComparisonType
+     */
+    public TagSearchCondition withTagValueComparisonType(StringComparisonType tagValueComparisonType) {
+        this.tagValueComparisonType = tagValueComparisonType.toString();
+        return this;
+    }
+
+    /**
+     * Returns a string representation of this object; useful for testing and
+     * debugging.
+     *
+     * @return A string representation of this object.
+     * @see java.lang.Object#toString()
+     */
+    @Override
+    public String toString() {
+        StringBuilder sb = new StringBuilder();
+        sb.append("{");
+        if (getTagKey() != null)
+            sb.append("tagKey: " + getTagKey() + ",");
+        if (getTagValue() != null)
+            sb.append("tagValue: " + getTagValue() + ",");
+        if (getTagKeyComparisonType() != null)
+            sb.append("tagKeyComparisonType: " + getTagKeyComparisonType() + ",");
+        if (getTagValueComparisonType() != null)
+            sb.append("tagValueComparisonType: " + getTagValueComparisonType());
+        sb.append("}");
+        return sb.toString();
+    }
+
+    @Override
+    public int hashCode() {
+        final int prime = 31;
+        int hashCode = 1;
+
+        hashCode = prime * hashCode + ((getTagKey() == null) ? 0 : getTagKey().hashCode());
+        hashCode = prime * hashCode + ((getTagValue() == null) ? 0 : getTagValue().hashCode());
+        hashCode = prime * hashCode
+                + ((getTagKeyComparisonType() == null) ? 0 : getTagKeyComparisonType().hashCode());
+        hashCode = prime
+                * hashCode
+                + ((getTagValueComparisonType() == null) ? 0 : getTagValueComparisonType()
+                        .hashCode());
+        return hashCode;
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        if (this == obj)
+            return true;
+        if (obj == null)
+            return false;
+
+        if (obj instanceof TagSearchCondition == false)
+            return false;
+        TagSearchCondition other = (TagSearchCondition) obj;
+
+        if (other.getTagKey() == null ^ this.getTagKey() == null)
+            return false;
+        if (other.getTagKey() != null && other.getTagKey().equals(this.getTagKey()) == false)
+            return false;
+        if (other.getTagValue() == null ^ this.getTagValue() == null)
+            return false;
+        if (other.getTagValue() != null && other.getTagValue().equals(this.getTagValue()) == false)
+            return false;
+        if (other.getTagKeyComparisonType() == null ^ this.getTagKeyComparisonType() == null)
+            return false;
+        if (other.getTagKeyComparisonType() != null
+                && other.getTagKeyComparisonType().equals(this.getTagKeyComparisonType()) == false)
+            return false;
+        if (other.getTagValueComparisonType() == null ^ this.getTagValueComparisonType() == null)
+            return false;
+        if (other.getTagValueComparisonType() != null
+                && other.getTagValueComparisonType().equals(this.getTagValueComparisonType()) == false)
+            return false;
+        return true;
+    }
+}
diff --git a/aws-android-sdk-connect/src/main/java/com/amazonaws/services/connect/model/TagSet.java b/aws-android-sdk-connect/src/main/java/com/amazonaws/services/connect/model/TagSet.java
new file mode 100644
index 0000000000..5a0ae5c746
--- /dev/null
+++ b/aws-android-sdk-connect/src/main/java/com/amazonaws/services/connect/model/TagSet.java
@@ -0,0 +1,208 @@
+/*
+ * Copyright 2010-2023 Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License").
+ * You may not use this file except in compliance with the License.
+ * A copy of the License is located at
+ *
+ *  http://aws.amazon.com/apache2.0
+ *
+ * or in the "license" file accompanying this file. This file is distributed
+ * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
+ * express or implied. See the License for the specific language governing
+ * permissions and limitations under the License.
+ */
+
+package com.amazonaws.services.connect.model;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * A tag set contains tag key and tag value.
+ * </p>
+ */
+public class TagSet implements Serializable {
+    /**
+     * <p>
+     * The tag key in the tagSet.
+     * </p>
+     * <p>
+     * <b>Constraints:</b><br/>
+     * <b>Length: </b>1 - 128<br/>
+     * <b>Pattern: </b>^(?!aws:)[a-zA-Z+-=._:/]+$<br/>
+     */
+    private String key;
+
+    /**
+     * <p>
+     * The tag value in the tagSet.
+     * </p>
+     * <p>
+     * <b>Constraints:</b><br/>
+     * <b>Length: </b> - 256<br/>
+     */
+    private String value;
+
+    /**
+     * <p>
+     * The tag key in the tagSet.
+     * </p>
+     * <p>
+     * <b>Constraints:</b><br/>
+     * <b>Length: </b>1 - 128<br/>
+     * <b>Pattern: </b>^(?!aws:)[a-zA-Z+-=._:/]+$<br/>
+     *
+     * @return <p>
+     *         The tag key in the tagSet.
+     *         </p>
+     */
+    public String getKey() {
+        return key;
+    }
+
+    /**
+     * <p>
+     * The tag key in the tagSet.
+     * </p>
+     * <p>
+     * <b>Constraints:</b><br/>
+     * <b>Length: </b>1 - 128<br/>
+     * <b>Pattern: </b>^(?!aws:)[a-zA-Z+-=._:/]+$<br/>
+     *
+     * @param key <p>
+     *            The tag key in the tagSet.
+     *            </p>
+     */
+    public void setKey(String key) {
+        this.key = key;
+    }
+
+    /**
+     * <p>
+     * The tag key in the tagSet.
+     * </p>
+     * <p>
+     * Returns a reference to this object so that method calls can be chained
+     * together.
+     * <p>
+     * <b>Constraints:</b><br/>
+     * <b>Length: </b>1 - 128<br/>
+     * <b>Pattern: </b>^(?!aws:)[a-zA-Z+-=._:/]+$<br/>
+     *
+     * @param key <p>
+     *            The tag key in the tagSet.
+     *            </p>
+     * @return A reference to this updated object so that method calls can be
+     *         chained together.
+     */
+    public TagSet withKey(String key) {
+        this.key = key;
+        return this;
+    }
+
+    /**
+     * <p>
+     * The tag value in the tagSet.
+     * </p>
+     * <p>
+     * <b>Constraints:</b><br/>
+     * <b>Length: </b> - 256<br/>
+     *
+     * @return <p>
+     *         The tag value in the tagSet.
+     *         </p>
+     */
+    public String getValue() {
+        return value;
+    }
+
+    /**
+     * <p>
+     * The tag value in the tagSet.
+     * </p>
+     * <p>
+     * <b>Constraints:</b><br/>
+     * <b>Length: </b> - 256<br/>
+     *
+     * @param value <p>
+     *            The tag value in the tagSet.
+     *            </p>
+     */
+    public void setValue(String value) {
+        this.value = value;
+    }
+
+    /**
+     * <p>
+     * The tag value in the tagSet.
+     * </p>
+     * <p>
+     * Returns a reference to this object so that method calls can be chained
+     * together.
+     * <p>
+     * <b>Constraints:</b><br/>
+     * <b>Length: </b> - 256<br/>
+     *
+     * @param value <p>
+     *            The tag value in the tagSet.
+     *            </p>
+     * @return A reference to this updated object so that method calls can be
+     *         chained together.
+     */
+    public TagSet withValue(String value) {
+        this.value = value;
+        return this;
+    }
+
+    /**
+     * Returns a string representation of this object; useful for testing and
+     * debugging.
+     *
+     * @return A string representation of this object.
+     * @see java.lang.Object#toString()
+     */
+    @Override
+    public String toString() {
+        StringBuilder sb = new StringBuilder();
+        sb.append("{");
+        if (getKey() != null)
+            sb.append("key: " + getKey() + ",");
+        if (getValue() != null)
+            sb.append("value: " + getValue());
+        sb.append("}");
+        return sb.toString();
+    }
+
+    @Override
+    public int hashCode() {
+        final int prime = 31;
+        int hashCode = 1;
+
+        hashCode = prime * hashCode + ((getKey() == null) ? 0 : getKey().hashCode());
+        hashCode = prime * hashCode + ((getValue() == null) ? 0 : getValue().hashCode());
+        return hashCode;
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        if (this == obj)
+            return true;
+        if (obj == null)
+            return false;
+
+        if (obj instanceof TagSet == false)
+            return false;
+        TagSet other = (TagSet) obj;
+
+        if (other.getKey() == null ^ this.getKey() == null)
+            return false;
+        if (other.getKey() != null && other.getKey().equals(this.getKey()) == false)
+            return false;
+        if (other.getValue() == null ^ this.getValue() == null)
+            return false;
+        if (other.getValue() != null && other.getValue().equals(this.getValue()) == false)
+            return false;
+        return true;
+    }
+}
diff --git a/aws-android-sdk-connect/src/main/java/com/amazonaws/services/connect/model/UpdateInstanceStorageConfigRequest.java b/aws-android-sdk-connect/src/main/java/com/amazonaws/services/connect/model/UpdateInstanceStorageConfigRequest.java
index 2202b60331..4f622c02fe 100644
--- a/aws-android-sdk-connect/src/main/java/com/amazonaws/services/connect/model/UpdateInstanceStorageConfigRequest.java
+++ b/aws-android-sdk-connect/src/main/java/com/amazonaws/services/connect/model/UpdateInstanceStorageConfigRequest.java
@@ -62,7 +62,8 @@ public class UpdateInstanceStorageConfigRequest extends AmazonWebServiceRequest
      * <b>Constraints:</b><br/>
      * <b>Allowed Values: </b>CHAT_TRANSCRIPTS, CALL_RECORDINGS,
      * SCHEDULED_REPORTS, MEDIA_STREAMS, CONTACT_TRACE_RECORDS, AGENT_EVENTS,
-     * REAL_TIME_CONTACT_ANALYSIS_SEGMENTS, ATTACHMENTS, CONTACT_EVALUATIONS
+     * REAL_TIME_CONTACT_ANALYSIS_SEGMENTS, ATTACHMENTS, CONTACT_EVALUATIONS,
+     * SCREEN_RECORDINGS
      */
     private String resourceType;
 
@@ -217,7 +218,8 @@ public UpdateInstanceStorageConfigRequest withAssociationId(String associationId
      * <b>Constraints:</b><br/>
      * <b>Allowed Values: </b>CHAT_TRANSCRIPTS, CALL_RECORDINGS,
      * SCHEDULED_REPORTS, MEDIA_STREAMS, CONTACT_TRACE_RECORDS, AGENT_EVENTS,
-     * REAL_TIME_CONTACT_ANALYSIS_SEGMENTS, ATTACHMENTS, CONTACT_EVALUATIONS
+     * REAL_TIME_CONTACT_ANALYSIS_SEGMENTS, ATTACHMENTS, CONTACT_EVALUATIONS,
+     * SCREEN_RECORDINGS
      *
      * @return <p>
      *         A valid resource type.
@@ -236,7 +238,8 @@ public String getResourceType() {
      * <b>Constraints:</b><br/>
      * <b>Allowed Values: </b>CHAT_TRANSCRIPTS, CALL_RECORDINGS,
      * SCHEDULED_REPORTS, MEDIA_STREAMS, CONTACT_TRACE_RECORDS, AGENT_EVENTS,
-     * REAL_TIME_CONTACT_ANALYSIS_SEGMENTS, ATTACHMENTS, CONTACT_EVALUATIONS
+     * REAL_TIME_CONTACT_ANALYSIS_SEGMENTS, ATTACHMENTS, CONTACT_EVALUATIONS,
+     * SCREEN_RECORDINGS
      *
      * @param resourceType <p>
      *            A valid resource type.
@@ -258,7 +261,8 @@ public void setResourceType(String resourceType) {
      * <b>Constraints:</b><br/>
      * <b>Allowed Values: </b>CHAT_TRANSCRIPTS, CALL_RECORDINGS,
      * SCHEDULED_REPORTS, MEDIA_STREAMS, CONTACT_TRACE_RECORDS, AGENT_EVENTS,
-     * REAL_TIME_CONTACT_ANALYSIS_SEGMENTS, ATTACHMENTS, CONTACT_EVALUATIONS
+     * REAL_TIME_CONTACT_ANALYSIS_SEGMENTS, ATTACHMENTS, CONTACT_EVALUATIONS,
+     * SCREEN_RECORDINGS
      *
      * @param resourceType <p>
      *            A valid resource type.
@@ -280,7 +284,8 @@ public UpdateInstanceStorageConfigRequest withResourceType(String resourceType)
      * <b>Constraints:</b><br/>
      * <b>Allowed Values: </b>CHAT_TRANSCRIPTS, CALL_RECORDINGS,
      * SCHEDULED_REPORTS, MEDIA_STREAMS, CONTACT_TRACE_RECORDS, AGENT_EVENTS,
-     * REAL_TIME_CONTACT_ANALYSIS_SEGMENTS, ATTACHMENTS, CONTACT_EVALUATIONS
+     * REAL_TIME_CONTACT_ANALYSIS_SEGMENTS, ATTACHMENTS, CONTACT_EVALUATIONS,
+     * SCREEN_RECORDINGS
      *
      * @param resourceType <p>
      *            A valid resource type.
@@ -302,7 +307,8 @@ public void setResourceType(InstanceStorageResourceType resourceType) {
      * <b>Constraints:</b><br/>
      * <b>Allowed Values: </b>CHAT_TRANSCRIPTS, CALL_RECORDINGS,
      * SCHEDULED_REPORTS, MEDIA_STREAMS, CONTACT_TRACE_RECORDS, AGENT_EVENTS,
-     * REAL_TIME_CONTACT_ANALYSIS_SEGMENTS, ATTACHMENTS, CONTACT_EVALUATIONS
+     * REAL_TIME_CONTACT_ANALYSIS_SEGMENTS, ATTACHMENTS, CONTACT_EVALUATIONS,
+     * SCREEN_RECORDINGS
      *
      * @param resourceType <p>
      *            A valid resource type.
diff --git a/aws-android-sdk-connect/src/main/java/com/amazonaws/services/connect/model/transform/InstanceJsonMarshaller.java b/aws-android-sdk-connect/src/main/java/com/amazonaws/services/connect/model/transform/InstanceJsonMarshaller.java
index 536e5d1280..2ce53ef847 100644
--- a/aws-android-sdk-connect/src/main/java/com/amazonaws/services/connect/model/transform/InstanceJsonMarshaller.java
+++ b/aws-android-sdk-connect/src/main/java/com/amazonaws/services/connect/model/transform/InstanceJsonMarshaller.java
@@ -76,6 +76,11 @@ public void marshall(Instance instance, AwsJsonWriter jsonWriter) throws Excepti
             jsonWriter.name("OutboundCallsEnabled");
             jsonWriter.value(outboundCallsEnabled);
         }
+        if (instance.getInstanceAccessUrl() != null) {
+            String instanceAccessUrl = instance.getInstanceAccessUrl();
+            jsonWriter.name("InstanceAccessUrl");
+            jsonWriter.value(instanceAccessUrl);
+        }
         jsonWriter.endObject();
     }
 
diff --git a/aws-android-sdk-connect/src/main/java/com/amazonaws/services/connect/model/transform/InstanceJsonUnmarshaller.java b/aws-android-sdk-connect/src/main/java/com/amazonaws/services/connect/model/transform/InstanceJsonUnmarshaller.java
index f159ff3ef4..46cec8025e 100644
--- a/aws-android-sdk-connect/src/main/java/com/amazonaws/services/connect/model/transform/InstanceJsonUnmarshaller.java
+++ b/aws-android-sdk-connect/src/main/java/com/amazonaws/services/connect/model/transform/InstanceJsonUnmarshaller.java
@@ -65,6 +65,9 @@ public Instance unmarshall(JsonUnmarshallerContext context) throws Exception {
             } else if (name.equals("OutboundCallsEnabled")) {
                 instance.setOutboundCallsEnabled(BooleanJsonUnmarshaller.getInstance()
                         .unmarshall(context));
+            } else if (name.equals("InstanceAccessUrl")) {
+                instance.setInstanceAccessUrl(StringJsonUnmarshaller.getInstance()
+                        .unmarshall(context));
             } else {
                 reader.skipValue();
             }
diff --git a/aws-android-sdk-connect/src/main/java/com/amazonaws/services/connect/model/transform/InstanceSummaryJsonMarshaller.java b/aws-android-sdk-connect/src/main/java/com/amazonaws/services/connect/model/transform/InstanceSummaryJsonMarshaller.java
index 85d5c0102f..477ac87d81 100644
--- a/aws-android-sdk-connect/src/main/java/com/amazonaws/services/connect/model/transform/InstanceSummaryJsonMarshaller.java
+++ b/aws-android-sdk-connect/src/main/java/com/amazonaws/services/connect/model/transform/InstanceSummaryJsonMarshaller.java
@@ -72,6 +72,11 @@ public void marshall(InstanceSummary instanceSummary, AwsJsonWriter jsonWriter)
             jsonWriter.name("OutboundCallsEnabled");
             jsonWriter.value(outboundCallsEnabled);
         }
+        if (instanceSummary.getInstanceAccessUrl() != null) {
+            String instanceAccessUrl = instanceSummary.getInstanceAccessUrl();
+            jsonWriter.name("InstanceAccessUrl");
+            jsonWriter.value(instanceAccessUrl);
+        }
         jsonWriter.endObject();
     }
 
diff --git a/aws-android-sdk-connect/src/main/java/com/amazonaws/services/connect/model/transform/InstanceSummaryJsonUnmarshaller.java b/aws-android-sdk-connect/src/main/java/com/amazonaws/services/connect/model/transform/InstanceSummaryJsonUnmarshaller.java
index 8b3b06cb4f..1cf590de74 100644
--- a/aws-android-sdk-connect/src/main/java/com/amazonaws/services/connect/model/transform/InstanceSummaryJsonUnmarshaller.java
+++ b/aws-android-sdk-connect/src/main/java/com/amazonaws/services/connect/model/transform/InstanceSummaryJsonUnmarshaller.java
@@ -63,6 +63,9 @@ public InstanceSummary unmarshall(JsonUnmarshallerContext context) throws Except
             } else if (name.equals("OutboundCallsEnabled")) {
                 instanceSummary.setOutboundCallsEnabled(BooleanJsonUnmarshaller.getInstance()
                         .unmarshall(context));
+            } else if (name.equals("InstanceAccessUrl")) {
+                instanceSummary.setInstanceAccessUrl(StringJsonUnmarshaller.getInstance()
+                        .unmarshall(context));
             } else {
                 reader.skipValue();
             }
diff --git a/aws-android-sdk-connect/src/main/java/com/amazonaws/services/connect/model/transform/MaximumResultReturnedExceptionUnmarshaller.java b/aws-android-sdk-connect/src/main/java/com/amazonaws/services/connect/model/transform/MaximumResultReturnedExceptionUnmarshaller.java
new file mode 100644
index 0000000000..3b4b9afa0a
--- /dev/null
+++ b/aws-android-sdk-connect/src/main/java/com/amazonaws/services/connect/model/transform/MaximumResultReturnedExceptionUnmarshaller.java
@@ -0,0 +1,42 @@
+/*
+ * Copyright 2010-2023 Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License").
+ * You may not use this file except in compliance with the License.
+ * A copy of the License is located at
+ *
+ *  http://aws.amazon.com/apache2.0
+ *
+ * or in the "license" file accompanying this file. This file is distributed
+ * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
+ * express or implied. See the License for the specific language governing
+ * permissions and limitations under the License.
+ */
+
+package com.amazonaws.services.connect.model.transform;
+
+import com.amazonaws.AmazonServiceException;
+import com.amazonaws.http.JsonErrorResponseHandler.JsonErrorResponse;
+import com.amazonaws.transform.JsonErrorUnmarshaller;
+import com.amazonaws.services.connect.model.MaximumResultReturnedException;
+
+public class MaximumResultReturnedExceptionUnmarshaller extends JsonErrorUnmarshaller {
+
+    public MaximumResultReturnedExceptionUnmarshaller() {
+        super(MaximumResultReturnedException.class);
+    }
+
+    @Override
+    public boolean match(JsonErrorResponse error) throws Exception {
+        return error.getErrorCode().equals("MaximumResultReturnedException");
+    }
+
+    @Override
+    public AmazonServiceException unmarshall(JsonErrorResponse error) throws Exception {
+
+        MaximumResultReturnedException e = (MaximumResultReturnedException) super.unmarshall(error);
+        e.setErrorCode("MaximumResultReturnedException");
+
+        return e;
+    }
+}
diff --git a/aws-android-sdk-connect/src/main/java/com/amazonaws/services/connect/model/transform/ResourceTagsSearchCriteriaJsonMarshaller.java b/aws-android-sdk-connect/src/main/java/com/amazonaws/services/connect/model/transform/ResourceTagsSearchCriteriaJsonMarshaller.java
new file mode 100644
index 0000000000..7db71967da
--- /dev/null
+++ b/aws-android-sdk-connect/src/main/java/com/amazonaws/services/connect/model/transform/ResourceTagsSearchCriteriaJsonMarshaller.java
@@ -0,0 +1,46 @@
+/*
+ * Copyright 2010-2023 Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License").
+ * You may not use this file except in compliance with the License.
+ * A copy of the License is located at
+ *
+ *  http://aws.amazon.com/apache2.0
+ *
+ * or in the "license" file accompanying this file. This file is distributed
+ * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
+ * express or implied. See the License for the specific language governing
+ * permissions and limitations under the License.
+ */
+
+package com.amazonaws.services.connect.model.transform;
+
+import com.amazonaws.services.connect.model.*;
+import com.amazonaws.util.DateUtils;
+import com.amazonaws.util.json.AwsJsonWriter;
+
+/**
+ * JSON marshaller for POJO ResourceTagsSearchCriteria
+ */
+class ResourceTagsSearchCriteriaJsonMarshaller {
+
+    public void marshall(ResourceTagsSearchCriteria resourceTagsSearchCriteria,
+            AwsJsonWriter jsonWriter) throws Exception {
+        jsonWriter.beginObject();
+        if (resourceTagsSearchCriteria.getTagSearchCondition() != null) {
+            TagSearchCondition tagSearchCondition = resourceTagsSearchCriteria
+                    .getTagSearchCondition();
+            jsonWriter.name("TagSearchCondition");
+            TagSearchConditionJsonMarshaller.getInstance().marshall(tagSearchCondition, jsonWriter);
+        }
+        jsonWriter.endObject();
+    }
+
+    private static ResourceTagsSearchCriteriaJsonMarshaller instance;
+
+    public static ResourceTagsSearchCriteriaJsonMarshaller getInstance() {
+        if (instance == null)
+            instance = new ResourceTagsSearchCriteriaJsonMarshaller();
+        return instance;
+    }
+}
diff --git a/aws-android-sdk-connect/src/main/java/com/amazonaws/services/connect/model/transform/ResourceTagsSearchCriteriaJsonUnmarshaller.java b/aws-android-sdk-connect/src/main/java/com/amazonaws/services/connect/model/transform/ResourceTagsSearchCriteriaJsonUnmarshaller.java
new file mode 100644
index 0000000000..42627ada57
--- /dev/null
+++ b/aws-android-sdk-connect/src/main/java/com/amazonaws/services/connect/model/transform/ResourceTagsSearchCriteriaJsonUnmarshaller.java
@@ -0,0 +1,58 @@
+/*
+ * Copyright 2010-2023 Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License").
+ * You may not use this file except in compliance with the License.
+ * A copy of the License is located at
+ *
+ *  http://aws.amazon.com/apache2.0
+ *
+ * or in the "license" file accompanying this file. This file is distributed
+ * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
+ * express or implied. See the License for the specific language governing
+ * permissions and limitations under the License.
+ */
+
+package com.amazonaws.services.connect.model.transform;
+
+import com.amazonaws.services.connect.model.*;
+import com.amazonaws.transform.SimpleTypeJsonUnmarshallers.*;
+import com.amazonaws.transform.*;
+import com.amazonaws.util.json.AwsJsonReader;
+
+/**
+ * JSON unmarshaller for POJO ResourceTagsSearchCriteria
+ */
+class ResourceTagsSearchCriteriaJsonUnmarshaller implements
+        Unmarshaller<ResourceTagsSearchCriteria, JsonUnmarshallerContext> {
+
+    public ResourceTagsSearchCriteria unmarshall(JsonUnmarshallerContext context) throws Exception {
+        AwsJsonReader reader = context.getReader();
+        if (!reader.isContainer()) {
+            reader.skipValue();
+            return null;
+        }
+        ResourceTagsSearchCriteria resourceTagsSearchCriteria = new ResourceTagsSearchCriteria();
+        reader.beginObject();
+        while (reader.hasNext()) {
+            String name = reader.nextName();
+            if (name.equals("TagSearchCondition")) {
+                resourceTagsSearchCriteria.setTagSearchCondition(TagSearchConditionJsonUnmarshaller
+                        .getInstance()
+                        .unmarshall(context));
+            } else {
+                reader.skipValue();
+            }
+        }
+        reader.endObject();
+        return resourceTagsSearchCriteria;
+    }
+
+    private static ResourceTagsSearchCriteriaJsonUnmarshaller instance;
+
+    public static ResourceTagsSearchCriteriaJsonUnmarshaller getInstance() {
+        if (instance == null)
+            instance = new ResourceTagsSearchCriteriaJsonUnmarshaller();
+        return instance;
+    }
+}
diff --git a/aws-android-sdk-connect/src/main/java/com/amazonaws/services/connect/model/transform/SearchResourceTagsRequestMarshaller.java b/aws-android-sdk-connect/src/main/java/com/amazonaws/services/connect/model/transform/SearchResourceTagsRequestMarshaller.java
new file mode 100644
index 0000000000..1011a7c478
--- /dev/null
+++ b/aws-android-sdk-connect/src/main/java/com/amazonaws/services/connect/model/transform/SearchResourceTagsRequestMarshaller.java
@@ -0,0 +1,114 @@
+/*
+ * Copyright 2010-2023 Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License").
+ * You may not use this file except in compliance with the License.
+ * A copy of the License is located at
+ *
+ *  http://aws.amazon.com/apache2.0
+ *
+ * or in the "license" file accompanying this file. This file is distributed
+ * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
+ * express or implied. See the License for the specific language governing
+ * permissions and limitations under the License.
+ */
+
+package com.amazonaws.services.connect.model.transform;
+
+import static com.amazonaws.util.StringUtils.UTF8;
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.OutputStreamWriter;
+import java.io.StringWriter;
+import java.io.Writer;
+
+import android.text.TextUtils;
+
+import com.amazonaws.AmazonClientException;
+import com.amazonaws.Request;
+import com.amazonaws.DefaultRequest;
+import com.amazonaws.http.HttpMethodName;
+import com.amazonaws.services.connect.model.*;
+import com.amazonaws.transform.Marshaller;
+import com.amazonaws.util.BinaryUtils;
+import com.amazonaws.util.DateUtils;
+import com.amazonaws.util.StringUtils;
+import com.amazonaws.util.StringInputStream;
+import com.amazonaws.util.json.AwsJsonWriter;
+import com.amazonaws.util.json.JsonUtils;
+
+/**
+ * JSON request marshaller for SearchResourceTagsRequest
+ */
+public class SearchResourceTagsRequestMarshaller implements
+        Marshaller<Request<SearchResourceTagsRequest>, SearchResourceTagsRequest> {
+
+    public Request<SearchResourceTagsRequest> marshall(
+            SearchResourceTagsRequest searchResourceTagsRequest) {
+        if (searchResourceTagsRequest == null) {
+            throw new AmazonClientException(
+                    "Invalid argument passed to marshall(SearchResourceTagsRequest)");
+        }
+
+        Request<SearchResourceTagsRequest> request = new DefaultRequest<SearchResourceTagsRequest>(
+                searchResourceTagsRequest, "AmazonConnect");
+        request.setHttpMethod(HttpMethodName.POST);
+
+        String uriResourcePath = "/search-resource-tags";
+        request.setResourcePath(uriResourcePath);
+        try {
+            StringWriter stringWriter = new StringWriter();
+            AwsJsonWriter jsonWriter = JsonUtils.getJsonWriter(stringWriter);
+            jsonWriter.beginObject();
+
+            if (searchResourceTagsRequest.getInstanceId() != null) {
+                String instanceId = searchResourceTagsRequest.getInstanceId();
+                jsonWriter.name("InstanceId");
+                jsonWriter.value(instanceId);
+            }
+            if (searchResourceTagsRequest.getResourceTypes() != null) {
+                java.util.List<String> resourceTypes = searchResourceTagsRequest.getResourceTypes();
+                jsonWriter.name("ResourceTypes");
+                jsonWriter.beginArray();
+                for (String resourceTypesItem : resourceTypes) {
+                    if (resourceTypesItem != null) {
+                        jsonWriter.value(resourceTypesItem);
+                    }
+                }
+                jsonWriter.endArray();
+            }
+            if (searchResourceTagsRequest.getNextToken() != null) {
+                String nextToken = searchResourceTagsRequest.getNextToken();
+                jsonWriter.name("NextToken");
+                jsonWriter.value(nextToken);
+            }
+            if (searchResourceTagsRequest.getMaxResults() != null) {
+                Integer maxResults = searchResourceTagsRequest.getMaxResults();
+                jsonWriter.name("MaxResults");
+                jsonWriter.value(maxResults);
+            }
+            if (searchResourceTagsRequest.getSearchCriteria() != null) {
+                ResourceTagsSearchCriteria searchCriteria = searchResourceTagsRequest
+                        .getSearchCriteria();
+                jsonWriter.name("SearchCriteria");
+                ResourceTagsSearchCriteriaJsonMarshaller.getInstance().marshall(searchCriteria,
+                        jsonWriter);
+            }
+
+            jsonWriter.endObject();
+            jsonWriter.close();
+            String snippet = stringWriter.toString();
+            byte[] content = snippet.getBytes(UTF8);
+            request.setContent(new StringInputStream(snippet));
+            request.addHeader("Content-Length", Integer.toString(content.length));
+        } catch (Throwable t) {
+            throw new AmazonClientException(
+                    "Unable to marshall request to JSON: " + t.getMessage(), t);
+        }
+        if (!request.getHeaders().containsKey("Content-Type")) {
+            request.addHeader("Content-Type", "application/x-amz-json-1.1");
+        }
+
+        return request;
+    }
+}
diff --git a/aws-android-sdk-connect/src/main/java/com/amazonaws/services/connect/model/transform/SearchResourceTagsResultJsonUnmarshaller.java b/aws-android-sdk-connect/src/main/java/com/amazonaws/services/connect/model/transform/SearchResourceTagsResultJsonUnmarshaller.java
new file mode 100644
index 0000000000..f8f489eacb
--- /dev/null
+++ b/aws-android-sdk-connect/src/main/java/com/amazonaws/services/connect/model/transform/SearchResourceTagsResultJsonUnmarshaller.java
@@ -0,0 +1,60 @@
+/*
+ * Copyright 2010-2023 Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License").
+ * You may not use this file except in compliance with the License.
+ * A copy of the License is located at
+ *
+ *  http://aws.amazon.com/apache2.0
+ *
+ * or in the "license" file accompanying this file. This file is distributed
+ * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
+ * express or implied. See the License for the specific language governing
+ * permissions and limitations under the License.
+ */
+
+package com.amazonaws.services.connect.model.transform;
+
+import com.amazonaws.services.connect.model.*;
+import com.amazonaws.transform.SimpleTypeJsonUnmarshallers.*;
+import com.amazonaws.transform.*;
+import com.amazonaws.util.json.AwsJsonReader;
+
+/**
+ * JSON unmarshaller for response SearchResourceTagsResult
+ */
+public class SearchResourceTagsResultJsonUnmarshaller implements
+        Unmarshaller<SearchResourceTagsResult, JsonUnmarshallerContext> {
+
+    public SearchResourceTagsResult unmarshall(JsonUnmarshallerContext context) throws Exception {
+        SearchResourceTagsResult searchResourceTagsResult = new SearchResourceTagsResult();
+
+        AwsJsonReader reader = context.getReader();
+        reader.beginObject();
+        while (reader.hasNext()) {
+            String name = reader.nextName();
+            if (name.equals("Tags")) {
+                searchResourceTagsResult.setTags(new ListUnmarshaller<TagSet>(
+                        TagSetJsonUnmarshaller.getInstance()
+                        )
+                                .unmarshall(context));
+            } else if (name.equals("NextToken")) {
+                searchResourceTagsResult.setNextToken(StringJsonUnmarshaller.getInstance()
+                        .unmarshall(context));
+            } else {
+                reader.skipValue();
+            }
+        }
+        reader.endObject();
+
+        return searchResourceTagsResult;
+    }
+
+    private static SearchResourceTagsResultJsonUnmarshaller instance;
+
+    public static SearchResourceTagsResultJsonUnmarshaller getInstance() {
+        if (instance == null)
+            instance = new SearchResourceTagsResultJsonUnmarshaller();
+        return instance;
+    }
+}
diff --git a/aws-android-sdk-connect/src/main/java/com/amazonaws/services/connect/model/transform/TagSearchConditionJsonMarshaller.java b/aws-android-sdk-connect/src/main/java/com/amazonaws/services/connect/model/transform/TagSearchConditionJsonMarshaller.java
new file mode 100644
index 0000000000..502f690ede
--- /dev/null
+++ b/aws-android-sdk-connect/src/main/java/com/amazonaws/services/connect/model/transform/TagSearchConditionJsonMarshaller.java
@@ -0,0 +1,60 @@
+/*
+ * Copyright 2010-2023 Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License").
+ * You may not use this file except in compliance with the License.
+ * A copy of the License is located at
+ *
+ *  http://aws.amazon.com/apache2.0
+ *
+ * or in the "license" file accompanying this file. This file is distributed
+ * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
+ * express or implied. See the License for the specific language governing
+ * permissions and limitations under the License.
+ */
+
+package com.amazonaws.services.connect.model.transform;
+
+import com.amazonaws.services.connect.model.*;
+import com.amazonaws.util.DateUtils;
+import com.amazonaws.util.json.AwsJsonWriter;
+
+/**
+ * JSON marshaller for POJO TagSearchCondition
+ */
+class TagSearchConditionJsonMarshaller {
+
+    public void marshall(TagSearchCondition tagSearchCondition, AwsJsonWriter jsonWriter)
+            throws Exception {
+        jsonWriter.beginObject();
+        if (tagSearchCondition.getTagKey() != null) {
+            String tagKey = tagSearchCondition.getTagKey();
+            jsonWriter.name("tagKey");
+            jsonWriter.value(tagKey);
+        }
+        if (tagSearchCondition.getTagValue() != null) {
+            String tagValue = tagSearchCondition.getTagValue();
+            jsonWriter.name("tagValue");
+            jsonWriter.value(tagValue);
+        }
+        if (tagSearchCondition.getTagKeyComparisonType() != null) {
+            String tagKeyComparisonType = tagSearchCondition.getTagKeyComparisonType();
+            jsonWriter.name("tagKeyComparisonType");
+            jsonWriter.value(tagKeyComparisonType);
+        }
+        if (tagSearchCondition.getTagValueComparisonType() != null) {
+            String tagValueComparisonType = tagSearchCondition.getTagValueComparisonType();
+            jsonWriter.name("tagValueComparisonType");
+            jsonWriter.value(tagValueComparisonType);
+        }
+        jsonWriter.endObject();
+    }
+
+    private static TagSearchConditionJsonMarshaller instance;
+
+    public static TagSearchConditionJsonMarshaller getInstance() {
+        if (instance == null)
+            instance = new TagSearchConditionJsonMarshaller();
+        return instance;
+    }
+}
diff --git a/aws-android-sdk-connect/src/main/java/com/amazonaws/services/connect/model/transform/TagSearchConditionJsonUnmarshaller.java b/aws-android-sdk-connect/src/main/java/com/amazonaws/services/connect/model/transform/TagSearchConditionJsonUnmarshaller.java
new file mode 100644
index 0000000000..d27c7af3e1
--- /dev/null
+++ b/aws-android-sdk-connect/src/main/java/com/amazonaws/services/connect/model/transform/TagSearchConditionJsonUnmarshaller.java
@@ -0,0 +1,66 @@
+/*
+ * Copyright 2010-2023 Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License").
+ * You may not use this file except in compliance with the License.
+ * A copy of the License is located at
+ *
+ *  http://aws.amazon.com/apache2.0
+ *
+ * or in the "license" file accompanying this file. This file is distributed
+ * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
+ * express or implied. See the License for the specific language governing
+ * permissions and limitations under the License.
+ */
+
+package com.amazonaws.services.connect.model.transform;
+
+import com.amazonaws.services.connect.model.*;
+import com.amazonaws.transform.SimpleTypeJsonUnmarshallers.*;
+import com.amazonaws.transform.*;
+import com.amazonaws.util.json.AwsJsonReader;
+
+/**
+ * JSON unmarshaller for POJO TagSearchCondition
+ */
+class TagSearchConditionJsonUnmarshaller implements
+        Unmarshaller<TagSearchCondition, JsonUnmarshallerContext> {
+
+    public TagSearchCondition unmarshall(JsonUnmarshallerContext context) throws Exception {
+        AwsJsonReader reader = context.getReader();
+        if (!reader.isContainer()) {
+            reader.skipValue();
+            return null;
+        }
+        TagSearchCondition tagSearchCondition = new TagSearchCondition();
+        reader.beginObject();
+        while (reader.hasNext()) {
+            String name = reader.nextName();
+            if (name.equals("tagKey")) {
+                tagSearchCondition.setTagKey(StringJsonUnmarshaller.getInstance()
+                        .unmarshall(context));
+            } else if (name.equals("tagValue")) {
+                tagSearchCondition.setTagValue(StringJsonUnmarshaller.getInstance()
+                        .unmarshall(context));
+            } else if (name.equals("tagKeyComparisonType")) {
+                tagSearchCondition.setTagKeyComparisonType(StringJsonUnmarshaller.getInstance()
+                        .unmarshall(context));
+            } else if (name.equals("tagValueComparisonType")) {
+                tagSearchCondition.setTagValueComparisonType(StringJsonUnmarshaller.getInstance()
+                        .unmarshall(context));
+            } else {
+                reader.skipValue();
+            }
+        }
+        reader.endObject();
+        return tagSearchCondition;
+    }
+
+    private static TagSearchConditionJsonUnmarshaller instance;
+
+    public static TagSearchConditionJsonUnmarshaller getInstance() {
+        if (instance == null)
+            instance = new TagSearchConditionJsonUnmarshaller();
+        return instance;
+    }
+}
diff --git a/aws-android-sdk-connect/src/main/java/com/amazonaws/services/connect/model/transform/TagSetJsonMarshaller.java b/aws-android-sdk-connect/src/main/java/com/amazonaws/services/connect/model/transform/TagSetJsonMarshaller.java
new file mode 100644
index 0000000000..53b5389a7b
--- /dev/null
+++ b/aws-android-sdk-connect/src/main/java/com/amazonaws/services/connect/model/transform/TagSetJsonMarshaller.java
@@ -0,0 +1,49 @@
+/*
+ * Copyright 2010-2023 Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License").
+ * You may not use this file except in compliance with the License.
+ * A copy of the License is located at
+ *
+ *  http://aws.amazon.com/apache2.0
+ *
+ * or in the "license" file accompanying this file. This file is distributed
+ * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
+ * express or implied. See the License for the specific language governing
+ * permissions and limitations under the License.
+ */
+
+package com.amazonaws.services.connect.model.transform;
+
+import com.amazonaws.services.connect.model.*;
+import com.amazonaws.util.DateUtils;
+import com.amazonaws.util.json.AwsJsonWriter;
+
+/**
+ * JSON marshaller for POJO TagSet
+ */
+class TagSetJsonMarshaller {
+
+    public void marshall(TagSet tagSet, AwsJsonWriter jsonWriter) throws Exception {
+        jsonWriter.beginObject();
+        if (tagSet.getKey() != null) {
+            String key = tagSet.getKey();
+            jsonWriter.name("key");
+            jsonWriter.value(key);
+        }
+        if (tagSet.getValue() != null) {
+            String value = tagSet.getValue();
+            jsonWriter.name("value");
+            jsonWriter.value(value);
+        }
+        jsonWriter.endObject();
+    }
+
+    private static TagSetJsonMarshaller instance;
+
+    public static TagSetJsonMarshaller getInstance() {
+        if (instance == null)
+            instance = new TagSetJsonMarshaller();
+        return instance;
+    }
+}
diff --git a/aws-android-sdk-connect/src/main/java/com/amazonaws/services/connect/model/transform/TagSetJsonUnmarshaller.java b/aws-android-sdk-connect/src/main/java/com/amazonaws/services/connect/model/transform/TagSetJsonUnmarshaller.java
new file mode 100644
index 0000000000..0161c1a88e
--- /dev/null
+++ b/aws-android-sdk-connect/src/main/java/com/amazonaws/services/connect/model/transform/TagSetJsonUnmarshaller.java
@@ -0,0 +1,59 @@
+/*
+ * Copyright 2010-2023 Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License").
+ * You may not use this file except in compliance with the License.
+ * A copy of the License is located at
+ *
+ *  http://aws.amazon.com/apache2.0
+ *
+ * or in the "license" file accompanying this file. This file is distributed
+ * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
+ * express or implied. See the License for the specific language governing
+ * permissions and limitations under the License.
+ */
+
+package com.amazonaws.services.connect.model.transform;
+
+import com.amazonaws.services.connect.model.*;
+import com.amazonaws.transform.SimpleTypeJsonUnmarshallers.*;
+import com.amazonaws.transform.*;
+import com.amazonaws.util.json.AwsJsonReader;
+
+/**
+ * JSON unmarshaller for POJO TagSet
+ */
+class TagSetJsonUnmarshaller implements Unmarshaller<TagSet, JsonUnmarshallerContext> {
+
+    public TagSet unmarshall(JsonUnmarshallerContext context) throws Exception {
+        AwsJsonReader reader = context.getReader();
+        if (!reader.isContainer()) {
+            reader.skipValue();
+            return null;
+        }
+        TagSet tagSet = new TagSet();
+        reader.beginObject();
+        while (reader.hasNext()) {
+            String name = reader.nextName();
+            if (name.equals("key")) {
+                tagSet.setKey(StringJsonUnmarshaller.getInstance()
+                        .unmarshall(context));
+            } else if (name.equals("value")) {
+                tagSet.setValue(StringJsonUnmarshaller.getInstance()
+                        .unmarshall(context));
+            } else {
+                reader.skipValue();
+            }
+        }
+        reader.endObject();
+        return tagSet;
+    }
+
+    private static TagSetJsonUnmarshaller instance;
+
+    public static TagSetJsonUnmarshaller getInstance() {
+        if (instance == null)
+            instance = new TagSetJsonUnmarshaller();
+        return instance;
+    }
+}