Repository: beartype/bearboto3 (language: python)

Issue:
Improve integration testing
From #3:

> Expand upon/rework the integration/test projects to cover multiple versions of beartype since that is a core dependency.

> Look into using [test-pypi](https://test.pypi.org/) or something else for staging/installing the packge into the test project. Right now this is done manually by specifying a path to the built wheel locally which needs to be changed with each version (and is generally annoying)


Discussion / hints:
Currently, the integration `pyproject.toml` is static - perhaps it would be better to switch to creating it fresh every time with `poetry` since it's simple and small. This would avoid the need to keep updating the `bearboto3` version in the integration `pyproject.toml`.

Fix patch:
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index 2bdcc0b..50a3aa0 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -2,58 +2,32 @@ name: Build
 on:
   push:
     branches-ignore:
-      - 'main'
+      - main
     paths:
-      - 'Dockerfile'
-      - 'poetry.lock'
+      - Dockerfile
+      - Dockerfile.base
+      - poetry.lock
   workflow_dispatch:
 
 jobs:
-  build:
-    strategy:
-      fail-fast: false
-      matrix:
-        python-version:
-          - '3.7'
-          - '3.8'
-          - '3.9'
-          - '3.10'
-    runs-on: ubuntu-latest
-    steps:
-      - name: Clone repo
-        uses: actions/checkout@v2
+  build-base:
+    uses: ./.github/workflows/docker.yml
+    with:
+      dockerfile: Dockerfile.base
+      image-name: bearboto3-base
 
-      - name: Login to GitHub Container Registry
-        uses: docker/login-action@v1
-        with:
-          registry: ghcr.io
-          username: ${{ github.actor }}
-          password: ${{ secrets.GITHUB_TOKEN }}
+  build-project:
+    needs: build-base
+    uses: ./.github/workflows/docker.yml
+    with:
+      dockerfile: Dockerfile
+      image-name: bearboto3
+      pyproject-path: .
 
-      - name: Docker Setup Buildx
-        id: buildx
-        uses: docker/setup-buildx-action@v1.6.0
-
-      - name: Cache Docker layers
-        uses: actions/cache@v2
-        with:
-          path: /tmp/.buildx-cache
-          key: ${{ runner.os }}-buildx-${{ matrix.python-version }}
-          restore-keys: ${{ runner.os }}-buildx-
-
-      - name: Build and push Docker images
-        uses: docker/build-push-action@v2.7.0
-        with:
-          context: .
-          builder: ${{ steps.buildx.outputs.name }}
-          push: true
-          tags: ghcr.io/beartype/bearboto3:${{ matrix.python-version }}
-          cache-from: type=local,src=/tmp/.buildx-cache
-          cache-to: type=local,dest=/tmp/.buildx-cache-new
-          build-args: |
-            PYTHON_VERSION=${{ matrix.python-version }}
-
-      - name: Move cache
-        run: |
-          rm -rf /tmp/.buildx-cache
-          mv /tmp/.buildx-cache-new /tmp/.buildx-cache
\ No newline at end of file
+  build-integration:
+    needs: build-base
+    uses: ./.github/workflows/docker.yml
+    with:
+      dockerfile: Dockerfile
+      image-name: bearboto3-int
+      pyproject-path: integration/
diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml
new file mode 100644
index 0000000..373c39e
--- /dev/null
+++ b/.github/workflows/docker.yml
@@ -0,0 +1,65 @@
+name: Docker
+on:
+  workflow_call:
+    inputs:
+      dockerfile:
+        required: true
+        type: string
+      image-name:
+        required: true
+        type: string
+      pyproject-path:
+        required: false
+        type: string
+
+jobs:
+  build:
+    strategy:
+      fail-fast: false
+      matrix:
+        python-version:
+          - 3.7
+          - 3.8
+          - 3.9
+          - '3.10'
+    runs-on: ubuntu-latest
+    steps:
+      - name: Clone repo
+        uses: actions/checkout@v3
+
+      - name: Login to GitHub Container Registry
+        uses: docker/login-action@v1
+        with:
+          registry: ghcr.io
+          username: ${{ github.actor }}
+          password: ${{ secrets.GITHUB_TOKEN }}
+
+      - name: Docker Setup Buildx
+        id: buildx
+        uses: docker/setup-buildx-action@v1.6.0
+
+      - name: Cache Docker layers
+        uses: actions/cache@v2
+        with:
+          path: /tmp/.buildx-cache
+          key: ${{ runner.os }}-buildx-${{ matrix.python-version }}
+          restore-keys: ${{ runner.os }}-buildx-
+
+      - name: Build and push Docker images
+        uses: docker/build-push-action@v2.7.0
+        with:
+          context: .
+          builder: ${{ steps.buildx.outputs.name }}
+          push: true
+          tags: ghcr.io/beartype/${{ inputs.image-name }}:${{ matrix.python-version }}
+          cache-from: type=local,src=/tmp/.buildx-cache
+          cache-to: type=local,dest=/tmp/.buildx-cache-new
+          file: ${{ inputs.dockerfile }}
+          build-args: |
+            PYTHON_VERSION=${{ matrix.python-version }}
+            PYPROJECT_PATH=${{ inputs.pyproject-path }}
+
+      - name: Move cache
+        run: |
+          rm -rf /tmp/.buildx-cache
+          mv /tmp/.buildx-cache-new /tmp/.buildx-cache
\ No newline at end of file
diff --git a/.github/workflows/integration.yml b/.github/workflows/integration.yml
new file mode 100644
index 0000000..b99112f
--- /dev/null
+++ b/.github/workflows/integration.yml
@@ -0,0 +1,44 @@
+name: Integration
+on:
+  pull_request:
+    branches:
+      - main
+    types:
+      - closed
+  workflow_dispatch:
+
+jobs:
+  integration:
+    if: github.event.pull_request.merged == true
+    strategy:
+      fail-fast: false
+      matrix:
+        python-version:
+          - 3.7
+          - 3.8
+          - 3.9
+          - '3.10'
+        beartype-version:
+          - 0.9
+          - 0.10
+        stubs:
+          - ''
+          - '[s3,ec2]'
+    runs-on: ubuntu-latest
+    container:
+      image: ghcr.io/beartype/bearboto3-int:${{ matrix.python-version }}
+    defaults:
+      run:
+        working-directory: ./integration
+    steps:
+      - name: Clone repo
+        uses: actions/checkout@v3
+      
+      - name: Install beartype ${{ matrix.beartype-version }}
+        run: poetry add beartype@^${{ matrix.beartype-version }}
+      
+      - name: Update bearboto3 (and optionally install stub extras)
+        run: poetry add git+https://github.com/beartype/bearboto3.git#main${{ matrix.stubs }}
+      
+      - name: Run integration project
+        run: python3 integration.py
\ No newline at end of file
diff --git a/.github/workflows/pull-request.yml b/.github/workflows/pull-request.yml
new file mode 100644
index 0000000..3270662
--- /dev/null
+++ b/.github/workflows/pull-request.yml
@@ -0,0 +1,53 @@
+name: Pull Request
+on:
+  pull_request:
+    types:
+      - opened
+      - synchronize
+      - reopened
+    branches:
+      - main
+    paths:
+      - .github/workflows/pull-request.yml
+      - bearboto3/**
+      - tests/**
+      - pyproject.toml
+      - poetry.lock
+  workflow_dispatch:
+
+jobs:
+  lint:
+    strategy:
+      fail-fast: false
+      matrix:
+        python-version:
+          - 3.7
+          - 3.8
+          - 3.9
+          - '3.10'
+    runs-on: ubuntu-latest
+    container: ghcr.io/beartype/bearboto3:${{ matrix.python-version }}
+    steps:
+      - name: Clone repo
+        uses: actions/checkout@v3
+
+      - name: Lint code
+        run: pylint bearboto3
+
+  test:
+    strategy:
+      fail-fast: false
+      matrix:
+        python-version:
+          - 3.7
+          - 3.8
+          - 3.9
+          - '3.10'
+    runs-on: ubuntu-latest
+    container: ghcr.io/beartype/bearboto3:${{ matrix.python-version }}
+    steps:
+      - name: Clone repo
+        uses: actions/checkout@v3
+
+      - name: Run unit tests
+        run: pytest
\ No newline at end of file
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index cddbb3b..c24a09f 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -10,7 +10,7 @@ jobs:
     runs-on: ubuntu-latest
     steps:
       - name: Clone repo
-        uses: actions/checkout@v2
+        uses: actions/checkout@v3
       
       - name: Publish to PyPi
         uses: JRubics/poetry-publish@v1.10
diff --git a/Dockerfile b/Dockerfile
index eecfd2e..9645b9a 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -1,17 +1,9 @@
 ARG PYTHON_VERSION
 
-FROM python:${PYTHON_VERSION}
+FROM ghcr.io/beartype/bearboto3-base:${PYTHON_VERSION}
 
-ARG WORKDIR=/__w/bearboto3/bearboto3
+ARG PYPROJECT_PATH
 
-RUN pip3 install poetry
+COPY ${PYPROJECT_PATH} ${WORKDIR}
 
-COPY . ${WORKDIR}
-
-WORKDIR ${WORKDIR}
-
-VOLUME ${WORKDIR}
-
-RUN poetry config virtualenvs.create false
-
-RUN poetry install --remove-untracked
\ No newline at end of file
+RUN poetry install
diff --git a/Dockerfile.base b/Dockerfile.base
new file mode 100644
index 0000000..120a48b
--- /dev/null
+++ b/Dockerfile.base
@@ -0,0 +1,13 @@
+ARG PYTHON_VERSION
+
+FROM python:${PYTHON_VERSION}
+
+ARG WORKDIR=/__w/bearboto3/bearboto3
+
+RUN pip3 install poetry
+
+RUN poetry config virtualenvs.create false
+
+WORKDIR ${WORKDIR}
+
+VOLUME ${WORKDIR}
\ No newline at end of file
diff --git a/tests/integration/integration.py b/integration/integration.py
similarity index 100%
rename from tests/integration/integration.py
rename to integration/integration.py
diff --git a/tests/integration/pyproject.toml b/integration/pyproject.toml
similarity index 62%
rename from tests/integration/pyproject.toml
rename to integration/pyproject.toml
index 1d5b1a8..345af2c 100644
--- a/tests/integration/pyproject.toml
+++ b/integration/pyproject.toml
@@ -1,15 +1,13 @@
 [tool.poetry]
 name = "bearboto3-integration"
-version = "0.1.1"
-description = "Bearboto3 integration tests"
+version = "0.1.0"
+description = "Bearboto3 integration project"
 authors = ["Paul <dev@studiop.page>"]
 license = "MIT"
 
 [tool.poetry.dependencies]
 python = "^3.7"
-boto3 = "^1.20.42"
-beartype = "^0.10.2"
-bearboto3 = {path = "bearboto3.whl"}
+boto3 = "^1.21.37"
 
 [build-system]
 requires = ["poetry-core>=1.0.0"]
diff --git a/poetry.lock b/poetry.lock
index 1badb47..2fd4cc3 100644
--- a/poetry.lock
+++ b/poetry.lock
@@ -123,617 +123,625 @@ crt = ["botocore[crt] (>=1.21.0,<2.0a0)"]
 
 [[package]]
 name = "boto3-stubs"
-version = "1.21.4"
-description = "Type annotations for boto3 1.21.4 generated with mypy-boto3-builder 7.1.2"
+version = "1.21.37"
+description = "Type annotations for boto3 1.21.37 generated with mypy-boto3-builder 7.5.8"
 category = "dev"
 optional = false
 python-versions = ">=3.6"
 
 [package.dependencies]
 botocore-stubs = "*"
-mypy-boto3-accessanalyzer = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-account = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-acm = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-acm-pca = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-alexaforbusiness = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-amp = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-amplify = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-amplifybackend = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-amplifyuibuilder = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-apigateway = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-apigatewaymanagementapi = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-apigatewayv2 = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-appconfig = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-appconfigdata = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-appflow = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-appintegrations = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-application-autoscaling = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-application-insights = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-applicationcostprofiler = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-appmesh = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-apprunner = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-appstream = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-appsync = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-athena = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-auditmanager = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-autoscaling = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-autoscaling-plans = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-backup = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-backup-gateway = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-batch = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-braket = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-budgets = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-ce = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-chime = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-chime-sdk-identity = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-chime-sdk-meetings = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-chime-sdk-messaging = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-cloud9 = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-cloudcontrol = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-clouddirectory = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-cloudformation = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-cloudfront = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-cloudhsm = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-cloudhsmv2 = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-cloudsearch = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-cloudsearchdomain = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-cloudtrail = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-cloudwatch = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-codeartifact = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-codebuild = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-codecommit = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-codedeploy = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-codeguru-reviewer = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-codeguruprofiler = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-codepipeline = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-codestar = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-codestar-connections = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-codestar-notifications = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-cognito-identity = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-cognito-idp = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-cognito-sync = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-comprehend = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-comprehendmedical = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-compute-optimizer = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-config = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-connect = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-connect-contact-lens = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-connectparticipant = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-cur = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-customer-profiles = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-databrew = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-dataexchange = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-datapipeline = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-datasync = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-dax = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-detective = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-devicefarm = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-devops-guru = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-directconnect = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-discovery = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-dlm = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-dms = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-docdb = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-drs = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-ds = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-dynamodb = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-dynamodbstreams = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-ebs = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-ec2 = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-ec2-instance-connect = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-ecr = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-ecr-public = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-ecs = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-efs = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-eks = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-elastic-inference = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-elasticache = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-elasticbeanstalk = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-elastictranscoder = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-elb = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-elbv2 = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-emr = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-emr-containers = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-es = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-events = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-evidently = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-finspace = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-finspace-data = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-firehose = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-fis = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-fms = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-forecast = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-forecastquery = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-frauddetector = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-fsx = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-gamelift = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-glacier = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-globalaccelerator = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-glue = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-grafana = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-greengrass = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-greengrassv2 = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-groundstation = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-guardduty = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-health = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-healthlake = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-honeycode = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-iam = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-identitystore = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-imagebuilder = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-importexport = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-inspector = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-inspector2 = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-iot = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-iot-data = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-iot-jobs-data = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-iot1click-devices = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-iot1click-projects = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-iotanalytics = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-iotdeviceadvisor = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-iotevents = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-iotevents-data = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-iotfleethub = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-iotsecuretunneling = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-iotsitewise = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-iotthingsgraph = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-iottwinmaker = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-iotwireless = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-ivs = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-kafka = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-kafkaconnect = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-kendra = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-kinesis = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-kinesis-video-archived-media = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-kinesis-video-media = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-kinesis-video-signaling = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-kinesisanalytics = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-kinesisanalyticsv2 = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-kinesisvideo = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-kms = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-lakeformation = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-lambda = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-lex-models = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-lex-runtime = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-lexv2-models = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-lexv2-runtime = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-license-manager = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-lightsail = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-location = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-logs = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-lookoutequipment = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-lookoutmetrics = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-lookoutvision = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-machinelearning = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-macie = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-macie2 = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-managedblockchain = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-marketplace-catalog = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-marketplace-entitlement = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-marketplacecommerceanalytics = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-mediaconnect = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-mediaconvert = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-medialive = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-mediapackage = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-mediapackage-vod = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-mediastore = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-mediastore-data = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-mediatailor = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-memorydb = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-meteringmarketplace = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-mgh = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-mgn = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-migration-hub-refactor-spaces = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-migrationhub-config = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-migrationhubstrategy = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-mobile = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-mq = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-mturk = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-mwaa = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-neptune = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-network-firewall = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-networkmanager = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-nimble = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-opensearch = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-opsworks = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-opsworkscm = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-organizations = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-outposts = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-panorama = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-personalize = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-personalize-events = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-personalize-runtime = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-pi = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-pinpoint = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-pinpoint-email = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-pinpoint-sms-voice = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-polly = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-pricing = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-proton = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-qldb = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-qldb-session = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-quicksight = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-ram = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-rbin = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-rds = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-rds-data = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-redshift = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-redshift-data = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-rekognition = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-resiliencehub = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-resource-groups = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-resourcegroupstaggingapi = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-robomaker = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-route53 = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-route53-recovery-cluster = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-route53-recovery-control-config = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-route53-recovery-readiness = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-route53domains = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-route53resolver = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-rum = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-s3 = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-s3control = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-s3outposts = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-sagemaker = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-sagemaker-a2i-runtime = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-sagemaker-edge = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-sagemaker-featurestore-runtime = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-sagemaker-runtime = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-savingsplans = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-schemas = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-sdb = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-secretsmanager = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-securityhub = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-serverlessrepo = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-service-quotas = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-servicecatalog = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-servicecatalog-appregistry = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-servicediscovery = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-ses = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-sesv2 = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-shield = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-signer = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-sms = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-sms-voice = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-snow-device-management = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-snowball = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-sns = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-sqs = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-ssm = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-ssm-contacts = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-ssm-incidents = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-sso = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-sso-admin = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-sso-oidc = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-stepfunctions = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-storagegateway = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-sts = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-support = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-swf = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-synthetics = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-textract = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-timestream-query = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-timestream-write = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-transcribe = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-transfer = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-translate = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-voice-id = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-waf = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-waf-regional = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-wafv2 = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-wellarchitected = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-wisdom = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-workdocs = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-worklink = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-workmail = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-workmailmessageflow = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-workspaces = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-workspaces-web = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-mypy-boto3-xray = {version = ">=1.21.0", optional = true, markers = "extra == \"all\""}
-typing-extensions = {version = "*", markers = "python_version < \"3.9\""}
+mypy-boto3-accessanalyzer = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-account = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-acm = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-acm-pca = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-alexaforbusiness = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-amp = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-amplify = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-amplifybackend = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-amplifyuibuilder = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-apigateway = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-apigatewaymanagementapi = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-apigatewayv2 = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-appconfig = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-appconfigdata = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-appflow = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-appintegrations = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-application-autoscaling = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-application-insights = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-applicationcostprofiler = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-appmesh = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-apprunner = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-appstream = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-appsync = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-athena = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-auditmanager = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-autoscaling = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-autoscaling-plans = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-backup = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-backup-gateway = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-batch = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-billingconductor = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-braket = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-budgets = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-ce = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-chime = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-chime-sdk-identity = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-chime-sdk-meetings = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-chime-sdk-messaging = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-cloud9 = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-cloudcontrol = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-clouddirectory = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-cloudformation = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-cloudfront = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-cloudhsm = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-cloudhsmv2 = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-cloudsearch = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-cloudsearchdomain = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-cloudtrail = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-cloudwatch = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-codeartifact = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-codebuild = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-codecommit = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-codedeploy = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-codeguru-reviewer = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-codeguruprofiler = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-codepipeline = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-codestar = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-codestar-connections = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-codestar-notifications = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-cognito-identity = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-cognito-idp = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-cognito-sync = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-comprehend = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-comprehendmedical = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-compute-optimizer = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-config = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-connect = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-connect-contact-lens = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-connectparticipant = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-cur = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-customer-profiles = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-databrew = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-dataexchange = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-datapipeline = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-datasync = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-dax = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-detective = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-devicefarm = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-devops-guru = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-directconnect = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-discovery = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-dlm = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-dms = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-docdb = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-drs = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-ds = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-dynamodb = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-dynamodbstreams = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-ebs = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-ec2 = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-ec2-instance-connect = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-ecr = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-ecr-public = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-ecs = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-efs = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-eks = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-elastic-inference = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-elasticache = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-elasticbeanstalk = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-elastictranscoder = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-elb = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-elbv2 = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-emr = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-emr-containers = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-es = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-events = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-evidently = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-finspace = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-finspace-data = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-firehose = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-fis = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-fms = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-forecast = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-forecastquery = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-frauddetector = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-fsx = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-gamelift = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-gamesparks = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-glacier = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-globalaccelerator = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-glue = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-grafana = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-greengrass = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-greengrassv2 = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-groundstation = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-guardduty = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-health = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-healthlake = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-honeycode = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-iam = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-identitystore = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-imagebuilder = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-importexport = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-inspector = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-inspector2 = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-iot = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-iot-data = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-iot-jobs-data = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-iot1click-devices = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-iot1click-projects = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-iotanalytics = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-iotdeviceadvisor = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-iotevents = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-iotevents-data = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-iotfleethub = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-iotsecuretunneling = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-iotsitewise = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-iotthingsgraph = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-iottwinmaker = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-iotwireless = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-ivs = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-kafka = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-kafkaconnect = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-kendra = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-keyspaces = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-kinesis = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-kinesis-video-archived-media = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-kinesis-video-media = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-kinesis-video-signaling = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-kinesisanalytics = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-kinesisanalyticsv2 = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-kinesisvideo = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-kms = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-lakeformation = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-lambda = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-lex-models = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-lex-runtime = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-lexv2-models = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-lexv2-runtime = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-license-manager = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-lightsail = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-location = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-logs = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-lookoutequipment = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-lookoutmetrics = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-lookoutvision = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-machinelearning = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-macie = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-macie2 = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-managedblockchain = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-marketplace-catalog = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-marketplace-entitlement = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-marketplacecommerceanalytics = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-mediaconnect = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-mediaconvert = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-medialive = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-mediapackage = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-mediapackage-vod = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-mediastore = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-mediastore-data = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-mediatailor = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-memorydb = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-meteringmarketplace = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-mgh = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-mgn = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-migration-hub-refactor-spaces = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-migrationhub-config = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-migrationhubstrategy = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-mobile = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-mq = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-mturk = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-mwaa = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-neptune = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-network-firewall = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-networkmanager = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-nimble = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-opensearch = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-opsworks = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-opsworkscm = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-organizations = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-outposts = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-panorama = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-personalize = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-personalize-events = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-personalize-runtime = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-pi = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-pinpoint = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-pinpoint-email = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-pinpoint-sms-voice = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-pinpoint-sms-voice-v2 = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-polly = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-pricing = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-proton = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-qldb = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-qldb-session = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-quicksight = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-ram = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-rbin = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-rds = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-rds-data = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-redshift = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-redshift-data = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-rekognition = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-resiliencehub = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-resource-groups = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-resourcegroupstaggingapi = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-robomaker = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-route53 = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-route53-recovery-cluster = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-route53-recovery-control-config = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-route53-recovery-readiness = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-route53domains = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-route53resolver = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-rum = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-s3 = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-s3control = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-s3outposts = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-sagemaker = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-sagemaker-a2i-runtime = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-sagemaker-edge = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-sagemaker-featurestore-runtime = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-sagemaker-runtime = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-savingsplans = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-schemas = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-sdb = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-secretsmanager = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-securityhub = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-serverlessrepo = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-service-quotas = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-servicecatalog = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-servicecatalog-appregistry = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-servicediscovery = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-ses = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-sesv2 = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-shield = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-signer = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-sms = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-sms-voice = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-snow-device-management = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-snowball = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-sns = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-sqs = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-ssm = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-ssm-contacts = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-ssm-incidents = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-sso = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-sso-admin = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-sso-oidc = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-stepfunctions = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-storagegateway = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-sts = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-support = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-swf = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-synthetics = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-textract = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-timestream-query = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-timestream-write = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-transcribe = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-transfer = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-translate = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-voice-id = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-waf = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-waf-regional = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-wafv2 = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-wellarchitected = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-wisdom = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-workdocs = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-worklink = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-workmail = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-workmailmessageflow = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-workspaces = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-workspaces-web = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+mypy-boto3-xray = {version = ">=1.21.0,<1.22.0", optional = true, markers = "extra == \"all\""}
+typing-extensions = ">=4.1.0"
 
 [package.extras]
-all = ["mypy-boto3-lookoutvision (>=1.21.0)", "mypy-boto3-machinelearning (>=1.21.0)", "mypy-boto3-macie (>=1.21.0)", "mypy-boto3-macie2 (>=1.21.0)", "mypy-boto3-managedblockchain (>=1.21.0)", "mypy-boto3-marketplace-catalog (>=1.21.0)", "mypy-boto3-marketplace-entitlement (>=1.21.0)", "mypy-boto3-marketplacecommerceanalytics (>=1.21.0)", "mypy-boto3-mediaconnect (>=1.21.0)", "mypy-boto3-mediaconvert (>=1.21.0)", "mypy-boto3-medialive (>=1.21.0)", "mypy-boto3-mediapackage (>=1.21.0)", "mypy-boto3-mediapackage-vod (>=1.21.0)", "mypy-boto3-mediastore (>=1.21.0)", "mypy-boto3-mediastore-data (>=1.21.0)", "mypy-boto3-mediatailor (>=1.21.0)", "mypy-boto3-memorydb (>=1.21.0)", "mypy-boto3-meteringmarketplace (>=1.21.0)", "mypy-boto3-mgh (>=1.21.0)", "mypy-boto3-mgn (>=1.21.0)", "mypy-boto3-migration-hub-refactor-spaces (>=1.21.0)", "mypy-boto3-migrationhub-config (>=1.21.0)", "mypy-boto3-migrationhubstrategy (>=1.21.0)", "mypy-boto3-mobile (>=1.21.0)", "mypy-boto3-mq (>=1.21.0)", "mypy-boto3-mturk (>=1.21.0)", "mypy-boto3-mwaa (>=1.21.0)", "mypy-boto3-neptune (>=1.21.0)", "mypy-boto3-network-firewall (>=1.21.0)", "mypy-boto3-networkmanager (>=1.21.0)", "mypy-boto3-nimble (>=1.21.0)", "mypy-boto3-opensearch (>=1.21.0)", "mypy-boto3-opsworks (>=1.21.0)", "mypy-boto3-opsworkscm (>=1.21.0)", "mypy-boto3-organizations (>=1.21.0)", "mypy-boto3-outposts (>=1.21.0)", "mypy-boto3-panorama (>=1.21.0)", "mypy-boto3-personalize (>=1.21.0)", "mypy-boto3-personalize-events (>=1.21.0)", "mypy-boto3-personalize-runtime (>=1.21.0)", "mypy-boto3-pi (>=1.21.0)", "mypy-boto3-pinpoint (>=1.21.0)", "mypy-boto3-pinpoint-email (>=1.21.0)", "mypy-boto3-pinpoint-sms-voice (>=1.21.0)", "mypy-boto3-polly (>=1.21.0)", "mypy-boto3-pricing (>=1.21.0)", "mypy-boto3-proton (>=1.21.0)", "mypy-boto3-qldb (>=1.21.0)", "mypy-boto3-qldb-session (>=1.21.0)", "mypy-boto3-quicksight (>=1.21.0)", "mypy-boto3-ram (>=1.21.0)", "mypy-boto3-rbin (>=1.21.0)", "mypy-boto3-rds (>=1.21.0)", "mypy-boto3-rds-data (>=1.21.0)", "mypy-boto3-redshift (>=1.21.0)", "mypy-boto3-redshift-data (>=1.21.0)", "mypy-boto3-rekognition (>=1.21.0)", "mypy-boto3-resiliencehub (>=1.21.0)", "mypy-boto3-resource-groups (>=1.21.0)", "mypy-boto3-resourcegroupstaggingapi (>=1.21.0)", "mypy-boto3-robomaker (>=1.21.0)", "mypy-boto3-route53 (>=1.21.0)", "mypy-boto3-route53-recovery-cluster (>=1.21.0)", "mypy-boto3-route53-recovery-control-config (>=1.21.0)", "mypy-boto3-route53-recovery-readiness (>=1.21.0)", "mypy-boto3-route53domains (>=1.21.0)", "mypy-boto3-route53resolver (>=1.21.0)", "mypy-boto3-rum (>=1.21.0)", "mypy-boto3-s3 (>=1.21.0)", "mypy-boto3-s3control (>=1.21.0)", "mypy-boto3-s3outposts (>=1.21.0)", "mypy-boto3-sagemaker (>=1.21.0)", "mypy-boto3-sagemaker-a2i-runtime (>=1.21.0)", "mypy-boto3-sagemaker-edge (>=1.21.0)", "mypy-boto3-sagemaker-featurestore-runtime (>=1.21.0)", "mypy-boto3-sagemaker-runtime (>=1.21.0)", "mypy-boto3-savingsplans (>=1.21.0)", "mypy-boto3-schemas (>=1.21.0)", "mypy-boto3-sdb (>=1.21.0)", "mypy-boto3-secretsmanager (>=1.21.0)", "mypy-boto3-securityhub (>=1.21.0)", "mypy-boto3-serverlessrepo (>=1.21.0)", "mypy-boto3-service-quotas (>=1.21.0)", "mypy-boto3-servicecatalog (>=1.21.0)", "mypy-boto3-servicecatalog-appregistry (>=1.21.0)", "mypy-boto3-servicediscovery (>=1.21.0)", "mypy-boto3-ses (>=1.21.0)", "mypy-boto3-sesv2 (>=1.21.0)", "mypy-boto3-shield (>=1.21.0)", "mypy-boto3-signer (>=1.21.0)", "mypy-boto3-sms (>=1.21.0)", "mypy-boto3-sms-voice (>=1.21.0)", "mypy-boto3-snow-device-management (>=1.21.0)", "mypy-boto3-snowball (>=1.21.0)", "mypy-boto3-sns (>=1.21.0)", "mypy-boto3-sqs (>=1.21.0)", "mypy-boto3-ssm (>=1.21.0)", "mypy-boto3-ssm-contacts (>=1.21.0)", "mypy-boto3-ssm-incidents (>=1.21.0)", "mypy-boto3-sso (>=1.21.0)", "mypy-boto3-sso-admin (>=1.21.0)", "mypy-boto3-sso-oidc (>=1.21.0)", "mypy-boto3-stepfunctions (>=1.21.0)", "mypy-boto3-storagegateway (>=1.21.0)", "mypy-boto3-sts (>=1.21.0)", "mypy-boto3-support (>=1.21.0)", "mypy-boto3-swf (>=1.21.0)", "mypy-boto3-synthetics (>=1.21.0)", "mypy-boto3-textract (>=1.21.0)", "mypy-boto3-timestream-query (>=1.21.0)", "mypy-boto3-timestream-write (>=1.21.0)", "mypy-boto3-transcribe (>=1.21.0)", "mypy-boto3-transfer (>=1.21.0)", "mypy-boto3-translate (>=1.21.0)", "mypy-boto3-voice-id (>=1.21.0)", "mypy-boto3-waf (>=1.21.0)", "mypy-boto3-waf-regional (>=1.21.0)", "mypy-boto3-wafv2 (>=1.21.0)", "mypy-boto3-wellarchitected (>=1.21.0)", "mypy-boto3-wisdom (>=1.21.0)", "mypy-boto3-workdocs (>=1.21.0)", "mypy-boto3-worklink (>=1.21.0)", "mypy-boto3-workmail (>=1.21.0)", "mypy-boto3-workmailmessageflow (>=1.21.0)", "mypy-boto3-workspaces (>=1.21.0)", "mypy-boto3-workspaces-web (>=1.21.0)", "mypy-boto3-xray (>=1.21.0)", "mypy-boto3-accessanalyzer (>=1.21.0)", "mypy-boto3-account (>=1.21.0)", "mypy-boto3-acm (>=1.21.0)", "mypy-boto3-acm-pca (>=1.21.0)", "mypy-boto3-alexaforbusiness (>=1.21.0)", "mypy-boto3-amp (>=1.21.0)", "mypy-boto3-amplify (>=1.21.0)", "mypy-boto3-amplifybackend (>=1.21.0)", "mypy-boto3-amplifyuibuilder (>=1.21.0)", "mypy-boto3-apigateway (>=1.21.0)", "mypy-boto3-apigatewaymanagementapi (>=1.21.0)", "mypy-boto3-apigatewayv2 (>=1.21.0)", "mypy-boto3-appconfig (>=1.21.0)", "mypy-boto3-appconfigdata (>=1.21.0)", "mypy-boto3-appflow (>=1.21.0)", "mypy-boto3-appintegrations (>=1.21.0)", "mypy-boto3-application-autoscaling (>=1.21.0)", "mypy-boto3-application-insights (>=1.21.0)", "mypy-boto3-applicationcostprofiler (>=1.21.0)", "mypy-boto3-appmesh (>=1.21.0)", "mypy-boto3-apprunner (>=1.21.0)", "mypy-boto3-appstream (>=1.21.0)", "mypy-boto3-appsync (>=1.21.0)", "mypy-boto3-athena (>=1.21.0)", "mypy-boto3-auditmanager (>=1.21.0)", "mypy-boto3-autoscaling (>=1.21.0)", "mypy-boto3-autoscaling-plans (>=1.21.0)", "mypy-boto3-backup (>=1.21.0)", "mypy-boto3-backup-gateway (>=1.21.0)", "mypy-boto3-batch (>=1.21.0)", "mypy-boto3-braket (>=1.21.0)", "mypy-boto3-budgets (>=1.21.0)", "mypy-boto3-ce (>=1.21.0)", "mypy-boto3-chime (>=1.21.0)", "mypy-boto3-chime-sdk-identity (>=1.21.0)", "mypy-boto3-chime-sdk-meetings (>=1.21.0)", "mypy-boto3-chime-sdk-messaging (>=1.21.0)", "mypy-boto3-cloud9 (>=1.21.0)", "mypy-boto3-cloudcontrol (>=1.21.0)", "mypy-boto3-clouddirectory (>=1.21.0)", "mypy-boto3-cloudformation (>=1.21.0)", "mypy-boto3-cloudfront (>=1.21.0)", "mypy-boto3-cloudhsm (>=1.21.0)", "mypy-boto3-cloudhsmv2 (>=1.21.0)", "mypy-boto3-cloudsearch (>=1.21.0)", "mypy-boto3-cloudsearchdomain (>=1.21.0)", "mypy-boto3-cloudtrail (>=1.21.0)", "mypy-boto3-cloudwatch (>=1.21.0)", "mypy-boto3-codeartifact (>=1.21.0)", "mypy-boto3-codebuild (>=1.21.0)", "mypy-boto3-codecommit (>=1.21.0)", "mypy-boto3-codedeploy (>=1.21.0)", "mypy-boto3-codeguru-reviewer (>=1.21.0)", "mypy-boto3-codeguruprofiler (>=1.21.0)", "mypy-boto3-codepipeline (>=1.21.0)", "mypy-boto3-codestar (>=1.21.0)", "mypy-boto3-codestar-connections (>=1.21.0)", "mypy-boto3-codestar-notifications (>=1.21.0)", "mypy-boto3-cognito-identity (>=1.21.0)", "mypy-boto3-cognito-idp (>=1.21.0)", "mypy-boto3-cognito-sync (>=1.21.0)", "mypy-boto3-comprehend (>=1.21.0)", "mypy-boto3-comprehendmedical (>=1.21.0)", "mypy-boto3-compute-optimizer (>=1.21.0)", "mypy-boto3-config (>=1.21.0)", "mypy-boto3-connect (>=1.21.0)", "mypy-boto3-connect-contact-lens (>=1.21.0)", "mypy-boto3-connectparticipant (>=1.21.0)", "mypy-boto3-cur (>=1.21.0)", "mypy-boto3-customer-profiles (>=1.21.0)", "mypy-boto3-databrew (>=1.21.0)", "mypy-boto3-dataexchange (>=1.21.0)", "mypy-boto3-datapipeline (>=1.21.0)", "mypy-boto3-datasync (>=1.21.0)", "mypy-boto3-dax (>=1.21.0)", "mypy-boto3-detective (>=1.21.0)", "mypy-boto3-devicefarm (>=1.21.0)", "mypy-boto3-devops-guru (>=1.21.0)", "mypy-boto3-directconnect (>=1.21.0)", "mypy-boto3-discovery (>=1.21.0)", "mypy-boto3-dlm (>=1.21.0)", "mypy-boto3-dms (>=1.21.0)", "mypy-boto3-docdb (>=1.21.0)", "mypy-boto3-drs (>=1.21.0)", "mypy-boto3-ds (>=1.21.0)", "mypy-boto3-dynamodb (>=1.21.0)", "mypy-boto3-dynamodbstreams (>=1.21.0)", "mypy-boto3-ebs (>=1.21.0)", "mypy-boto3-ec2 (>=1.21.0)", "mypy-boto3-ec2-instance-connect (>=1.21.0)", "mypy-boto3-ecr (>=1.21.0)", "mypy-boto3-ecr-public (>=1.21.0)", "mypy-boto3-ecs (>=1.21.0)", "mypy-boto3-efs (>=1.21.0)", "mypy-boto3-eks (>=1.21.0)", "mypy-boto3-elastic-inference (>=1.21.0)", "mypy-boto3-elasticache (>=1.21.0)", "mypy-boto3-elasticbeanstalk (>=1.21.0)", "mypy-boto3-elastictranscoder (>=1.21.0)", "mypy-boto3-elb (>=1.21.0)", "mypy-boto3-elbv2 (>=1.21.0)", "mypy-boto3-emr (>=1.21.0)", "mypy-boto3-emr-containers (>=1.21.0)", "mypy-boto3-es (>=1.21.0)", "mypy-boto3-events (>=1.21.0)", "mypy-boto3-evidently (>=1.21.0)", "mypy-boto3-finspace (>=1.21.0)", "mypy-boto3-finspace-data (>=1.21.0)", "mypy-boto3-firehose (>=1.21.0)", "mypy-boto3-fis (>=1.21.0)", "mypy-boto3-fms (>=1.21.0)", "mypy-boto3-forecast (>=1.21.0)", "mypy-boto3-forecastquery (>=1.21.0)", "mypy-boto3-frauddetector (>=1.21.0)", "mypy-boto3-fsx (>=1.21.0)", "mypy-boto3-gamelift (>=1.21.0)", "mypy-boto3-glacier (>=1.21.0)", "mypy-boto3-globalaccelerator (>=1.21.0)", "mypy-boto3-glue (>=1.21.0)", "mypy-boto3-grafana (>=1.21.0)", "mypy-boto3-greengrass (>=1.21.0)", "mypy-boto3-greengrassv2 (>=1.21.0)", "mypy-boto3-groundstation (>=1.21.0)", "mypy-boto3-guardduty (>=1.21.0)", "mypy-boto3-health (>=1.21.0)", "mypy-boto3-healthlake (>=1.21.0)", "mypy-boto3-honeycode (>=1.21.0)", "mypy-boto3-iam (>=1.21.0)", "mypy-boto3-identitystore (>=1.21.0)", "mypy-boto3-imagebuilder (>=1.21.0)", "mypy-boto3-importexport (>=1.21.0)", "mypy-boto3-inspector (>=1.21.0)", "mypy-boto3-inspector2 (>=1.21.0)", "mypy-boto3-iot (>=1.21.0)", "mypy-boto3-iot-data (>=1.21.0)", "mypy-boto3-iot-jobs-data (>=1.21.0)", "mypy-boto3-iot1click-devices (>=1.21.0)", "mypy-boto3-iot1click-projects (>=1.21.0)", "mypy-boto3-iotanalytics (>=1.21.0)", "mypy-boto3-iotdeviceadvisor (>=1.21.0)", "mypy-boto3-iotevents (>=1.21.0)", "mypy-boto3-iotevents-data (>=1.21.0)", "mypy-boto3-iotfleethub (>=1.21.0)", "mypy-boto3-iotsecuretunneling (>=1.21.0)", "mypy-boto3-iotsitewise (>=1.21.0)", "mypy-boto3-iotthingsgraph (>=1.21.0)", "mypy-boto3-iottwinmaker (>=1.21.0)", "mypy-boto3-iotwireless (>=1.21.0)", "mypy-boto3-ivs (>=1.21.0)", "mypy-boto3-kafka (>=1.21.0)", "mypy-boto3-kafkaconnect (>=1.21.0)", "mypy-boto3-kendra (>=1.21.0)", "mypy-boto3-kinesis (>=1.21.0)", "mypy-boto3-kinesis-video-archived-media (>=1.21.0)", "mypy-boto3-kinesis-video-media (>=1.21.0)", "mypy-boto3-kinesis-video-signaling (>=1.21.0)", "mypy-boto3-kinesisanalytics (>=1.21.0)", "mypy-boto3-kinesisanalyticsv2 (>=1.21.0)", "mypy-boto3-kinesisvideo (>=1.21.0)", "mypy-boto3-kms (>=1.21.0)", "mypy-boto3-lakeformation (>=1.21.0)", "mypy-boto3-lambda (>=1.21.0)", "mypy-boto3-lex-models (>=1.21.0)", "mypy-boto3-lex-runtime (>=1.21.0)", "mypy-boto3-lexv2-models (>=1.21.0)", "mypy-boto3-lexv2-runtime (>=1.21.0)", "mypy-boto3-license-manager (>=1.21.0)", "mypy-boto3-lightsail (>=1.21.0)", "mypy-boto3-location (>=1.21.0)", "mypy-boto3-logs (>=1.21.0)", "mypy-boto3-lookoutequipment (>=1.21.0)", "mypy-boto3-lookoutmetrics (>=1.21.0)"]
-amp = ["mypy-boto3-amp (>=1.21.0)"]
-amplify = ["mypy-boto3-amplify (>=1.21.0)"]
-amplifybackend = ["mypy-boto3-amplifybackend (>=1.21.0)"]
-amplifyuibuilder = ["mypy-boto3-amplifyuibuilder (>=1.21.0)"]
-apigateway = ["mypy-boto3-apigateway (>=1.21.0)"]
-apigatewaymanagementapi = ["mypy-boto3-apigatewaymanagementapi (>=1.21.0)"]
-apigatewayv2 = ["mypy-boto3-apigatewayv2 (>=1.21.0)"]
-appconfig = ["mypy-boto3-appconfig (>=1.21.0)"]
-appconfigdata = ["mypy-boto3-appconfigdata (>=1.21.0)"]
-appflow = ["mypy-boto3-appflow (>=1.21.0)"]
-appintegrations = ["mypy-boto3-appintegrations (>=1.21.0)"]
-application-autoscaling = ["mypy-boto3-application-autoscaling (>=1.21.0)"]
-application-insights = ["mypy-boto3-application-insights (>=1.21.0)"]
-applicationcostprofiler = ["mypy-boto3-applicationcostprofiler (>=1.21.0)"]
-appmesh = ["mypy-boto3-appmesh (>=1.21.0)"]
-apprunner = ["mypy-boto3-apprunner (>=1.21.0)"]
-appstream = ["mypy-boto3-appstream (>=1.21.0)"]
-appsync = ["mypy-boto3-appsync (>=1.21.0)"]
-athena = ["mypy-boto3-athena (>=1.21.0)"]
-auditmanager = ["mypy-boto3-auditmanager (>=1.21.0)"]
-autoscaling = ["mypy-boto3-autoscaling (>=1.21.0)"]
-autoscaling-plans = ["mypy-boto3-autoscaling-plans (>=1.21.0)"]
-backup = ["mypy-boto3-backup (>=1.21.0)"]
-backup-gateway = ["mypy-boto3-backup-gateway (>=1.21.0)"]
-batch = ["mypy-boto3-batch (>=1.21.0)"]
-braket = ["mypy-boto3-braket (>=1.21.0)"]
-budgets = ["mypy-boto3-budgets (>=1.21.0)"]
-ce = ["mypy-boto3-ce (>=1.21.0)"]
-chime = ["mypy-boto3-chime (>=1.21.0)"]
-chime-sdk-identity = ["mypy-boto3-chime-sdk-identity (>=1.21.0)"]
-chime-sdk-meetings = ["mypy-boto3-chime-sdk-meetings (>=1.21.0)"]
-chime-sdk-messaging = ["mypy-boto3-chime-sdk-messaging (>=1.21.0)"]
-cloud9 = ["mypy-boto3-cloud9 (>=1.21.0)"]
-cloudcontrol = ["mypy-boto3-cloudcontrol (>=1.21.0)"]
-clouddirectory = ["mypy-boto3-clouddirectory (>=1.21.0)"]
-cloudformation = ["mypy-boto3-cloudformation (>=1.21.0)"]
-cloudfront = ["mypy-boto3-cloudfront (>=1.21.0)"]
-cloudhsm = ["mypy-boto3-cloudhsm (>=1.21.0)"]
-cloudhsmv2 = ["mypy-boto3-cloudhsmv2 (>=1.21.0)"]
-cloudsearch = ["mypy-boto3-cloudsearch (>=1.21.0)"]
-cloudsearchdomain = ["mypy-boto3-cloudsearchdomain (>=1.21.0)"]
-cloudtrail = ["mypy-boto3-cloudtrail (>=1.21.0)"]
-cloudwatch = ["mypy-boto3-cloudwatch (>=1.21.0)"]
-codeartifact = ["mypy-boto3-codeartifact (>=1.21.0)"]
-codebuild = ["mypy-boto3-codebuild (>=1.21.0)"]
-codecommit = ["mypy-boto3-codecommit (>=1.21.0)"]
-codedeploy = ["mypy-boto3-codedeploy (>=1.21.0)"]
-codeguru-reviewer = ["mypy-boto3-codeguru-reviewer (>=1.21.0)"]
-codeguruprofiler = ["mypy-boto3-codeguruprofiler (>=1.21.0)"]
-codepipeline = ["mypy-boto3-codepipeline (>=1.21.0)"]
-codestar = ["mypy-boto3-codestar (>=1.21.0)"]
-codestar-connections = ["mypy-boto3-codestar-connections (>=1.21.0)"]
-codestar-notifications = ["mypy-boto3-codestar-notifications (>=1.21.0)"]
-cognito-identity = ["mypy-boto3-cognito-identity (>=1.21.0)"]
-cognito-idp = ["mypy-boto3-cognito-idp (>=1.21.0)"]
-cognito-sync = ["mypy-boto3-cognito-sync (>=1.21.0)"]
-comprehend = ["mypy-boto3-comprehend (>=1.21.0)"]
-comprehendmedical = ["mypy-boto3-comprehendmedical (>=1.21.0)"]
-compute-optimizer = ["mypy-boto3-compute-optimizer (>=1.21.0)"]
-config = ["mypy-boto3-config (>=1.21.0)"]
-connect = ["mypy-boto3-connect (>=1.21.0)"]
-connect-contact-lens = ["mypy-boto3-connect-contact-lens (>=1.21.0)"]
-connectparticipant = ["mypy-boto3-connectparticipant (>=1.21.0)"]
-cur = ["mypy-boto3-cur (>=1.21.0)"]
-customer-profiles = ["mypy-boto3-customer-profiles (>=1.21.0)"]
-databrew = ["mypy-boto3-databrew (>=1.21.0)"]
-dataexchange = ["mypy-boto3-dataexchange (>=1.21.0)"]
-datapipeline = ["mypy-boto3-datapipeline (>=1.21.0)"]
-datasync = ["mypy-boto3-datasync (>=1.21.0)"]
-dax = ["mypy-boto3-dax (>=1.21.0)"]
-detective = ["mypy-boto3-detective (>=1.21.0)"]
-devicefarm = ["mypy-boto3-devicefarm (>=1.21.0)"]
-devops-guru = ["mypy-boto3-devops-guru (>=1.21.0)"]
-directconnect = ["mypy-boto3-directconnect (>=1.21.0)"]
-discovery = ["mypy-boto3-discovery (>=1.21.0)"]
-dlm = ["mypy-boto3-dlm (>=1.21.0)"]
-dms = ["mypy-boto3-dms (>=1.21.0)"]
-docdb = ["mypy-boto3-docdb (>=1.21.0)"]
-drs = ["mypy-boto3-drs (>=1.21.0)"]
-ds = ["mypy-boto3-ds (>=1.21.0)"]
-dynamodb = ["mypy-boto3-dynamodb (>=1.21.0)"]
-dynamodbstreams = ["mypy-boto3-dynamodbstreams (>=1.21.0)"]
-ebs = ["mypy-boto3-ebs (>=1.21.0)"]
-ec2 = ["mypy-boto3-ec2 (>=1.21.0)"]
-accessanalyzer = ["mypy-boto3-accessanalyzer (>=1.21.0)"]
-account = ["mypy-boto3-account (>=1.21.0)"]
-acm = ["mypy-boto3-acm (>=1.21.0)"]
-acm-pca = ["mypy-boto3-acm-pca (>=1.21.0)"]
-alexaforbusiness = ["mypy-boto3-alexaforbusiness (>=1.21.0)"]
-ec2-instance-connect = ["mypy-boto3-ec2-instance-connect (>=1.21.0)"]
-ecr = ["mypy-boto3-ecr (>=1.21.0)"]
-ecr-public = ["mypy-boto3-ecr-public (>=1.21.0)"]
-ecs = ["mypy-boto3-ecs (>=1.21.0)"]
-efs = ["mypy-boto3-efs (>=1.21.0)"]
-eks = ["mypy-boto3-eks (>=1.21.0)"]
-elastic-inference = ["mypy-boto3-elastic-inference (>=1.21.0)"]
-elasticache = ["mypy-boto3-elasticache (>=1.21.0)"]
-elasticbeanstalk = ["mypy-boto3-elasticbeanstalk (>=1.21.0)"]
-elastictranscoder = ["mypy-boto3-elastictranscoder (>=1.21.0)"]
-elb = ["mypy-boto3-elb (>=1.21.0)"]
-elbv2 = ["mypy-boto3-elbv2 (>=1.21.0)"]
-emr = ["mypy-boto3-emr (>=1.21.0)"]
-emr-containers = ["mypy-boto3-emr-containers (>=1.21.0)"]
-es = ["mypy-boto3-es (>=1.21.0)"]
-essential = ["mypy-boto3-cloudformation (>=1.21.0)", "mypy-boto3-dynamodb (>=1.21.0)", "mypy-boto3-ec2 (>=1.21.0)", "mypy-boto3-lambda (>=1.21.0)", "mypy-boto3-rds (>=1.21.0)", "mypy-boto3-s3 (>=1.21.0)", "mypy-boto3-sqs (>=1.21.0)"]
-events = ["mypy-boto3-events (>=1.21.0)"]
-evidently = ["mypy-boto3-evidently (>=1.21.0)"]
-finspace = ["mypy-boto3-finspace (>=1.21.0)"]
-finspace-data = ["mypy-boto3-finspace-data (>=1.21.0)"]
-firehose = ["mypy-boto3-firehose (>=1.21.0)"]
-fis = ["mypy-boto3-fis (>=1.21.0)"]
-fms = ["mypy-boto3-fms (>=1.21.0)"]
-forecast = ["mypy-boto3-forecast (>=1.21.0)"]
-forecastquery = ["mypy-boto3-forecastquery (>=1.21.0)"]
-frauddetector = ["mypy-boto3-frauddetector (>=1.21.0)"]
-fsx = ["mypy-boto3-fsx (>=1.21.0)"]
-gamelift = ["mypy-boto3-gamelift (>=1.21.0)"]
-glacier = ["mypy-boto3-glacier (>=1.21.0)"]
-globalaccelerator = ["mypy-boto3-globalaccelerator (>=1.21.0)"]
-glue = ["mypy-boto3-glue (>=1.21.0)"]
-grafana = ["mypy-boto3-grafana (>=1.21.0)"]
-greengrass = ["mypy-boto3-greengrass (>=1.21.0)"]
-greengrassv2 = ["mypy-boto3-greengrassv2 (>=1.21.0)"]
-groundstation = ["mypy-boto3-groundstation (>=1.21.0)"]
-guardduty = ["mypy-boto3-guardduty (>=1.21.0)"]
-health = ["mypy-boto3-health (>=1.21.0)"]
-healthlake = ["mypy-boto3-healthlake (>=1.21.0)"]
-honeycode = ["mypy-boto3-honeycode (>=1.21.0)"]
-iam = ["mypy-boto3-iam (>=1.21.0)"]
-identitystore = ["mypy-boto3-identitystore (>=1.21.0)"]
-imagebuilder = ["mypy-boto3-imagebuilder (>=1.21.0)"]
-importexport = ["mypy-boto3-importexport (>=1.21.0)"]
-inspector = ["mypy-boto3-inspector (>=1.21.0)"]
-inspector2 = ["mypy-boto3-inspector2 (>=1.21.0)"]
-iot = ["mypy-boto3-iot (>=1.21.0)"]
-iot-data = ["mypy-boto3-iot-data (>=1.21.0)"]
-iot-jobs-data = ["mypy-boto3-iot-jobs-data (>=1.21.0)"]
-iot1click-devices = ["mypy-boto3-iot1click-devices (>=1.21.0)"]
-iot1click-projects = ["mypy-boto3-iot1click-projects (>=1.21.0)"]
-iotanalytics = ["mypy-boto3-iotanalytics (>=1.21.0)"]
-iotdeviceadvisor = ["mypy-boto3-iotdeviceadvisor (>=1.21.0)"]
-iotevents = ["mypy-boto3-iotevents (>=1.21.0)"]
-iotevents-data = ["mypy-boto3-iotevents-data (>=1.21.0)"]
-iotfleethub = ["mypy-boto3-iotfleethub (>=1.21.0)"]
-iotsecuretunneling = ["mypy-boto3-iotsecuretunneling (>=1.21.0)"]
-iotsitewise = ["mypy-boto3-iotsitewise (>=1.21.0)"]
-iotthingsgraph = ["mypy-boto3-iotthingsgraph (>=1.21.0)"]
-iottwinmaker = ["mypy-boto3-iottwinmaker (>=1.21.0)"]
-iotwireless = ["mypy-boto3-iotwireless (>=1.21.0)"]
-ivs = ["mypy-boto3-ivs (>=1.21.0)"]
-kafka = ["mypy-boto3-kafka (>=1.21.0)"]
-kafkaconnect = ["mypy-boto3-kafkaconnect (>=1.21.0)"]
-kendra = ["mypy-boto3-kendra (>=1.21.0)"]
-kinesis = ["mypy-boto3-kinesis (>=1.21.0)"]
-kinesis-video-archived-media = ["mypy-boto3-kinesis-video-archived-media (>=1.21.0)"]
-kinesis-video-media = ["mypy-boto3-kinesis-video-media (>=1.21.0)"]
-kinesis-video-signaling = ["mypy-boto3-kinesis-video-signaling (>=1.21.0)"]
-kinesisanalytics = ["mypy-boto3-kinesisanalytics (>=1.21.0)"]
-kinesisanalyticsv2 = ["mypy-boto3-kinesisanalyticsv2 (>=1.21.0)"]
-kinesisvideo = ["mypy-boto3-kinesisvideo (>=1.21.0)"]
-kms = ["mypy-boto3-kms (>=1.21.0)"]
-lakeformation = ["mypy-boto3-lakeformation (>=1.21.0)"]
-lambda = ["mypy-boto3-lambda (>=1.21.0)"]
-lex-models = ["mypy-boto3-lex-models (>=1.21.0)"]
-lex-runtime = ["mypy-boto3-lex-runtime (>=1.21.0)"]
-lexv2-models = ["mypy-boto3-lexv2-models (>=1.21.0)"]
-lexv2-runtime = ["mypy-boto3-lexv2-runtime (>=1.21.0)"]
-license-manager = ["mypy-boto3-license-manager (>=1.21.0)"]
-lightsail = ["mypy-boto3-lightsail (>=1.21.0)"]
-location = ["mypy-boto3-location (>=1.21.0)"]
-logs = ["mypy-boto3-logs (>=1.21.0)"]
-lookoutequipment = ["mypy-boto3-lookoutequipment (>=1.21.0)"]
-lookoutmetrics = ["mypy-boto3-lookoutmetrics (>=1.21.0)"]
-lookoutvision = ["mypy-boto3-lookoutvision (>=1.21.0)"]
-machinelearning = ["mypy-boto3-machinelearning (>=1.21.0)"]
-macie = ["mypy-boto3-macie (>=1.21.0)"]
-macie2 = ["mypy-boto3-macie2 (>=1.21.0)"]
-managedblockchain = ["mypy-boto3-managedblockchain (>=1.21.0)"]
-marketplace-catalog = ["mypy-boto3-marketplace-catalog (>=1.21.0)"]
-marketplace-entitlement = ["mypy-boto3-marketplace-entitlement (>=1.21.0)"]
-marketplacecommerceanalytics = ["mypy-boto3-marketplacecommerceanalytics (>=1.21.0)"]
-mediaconnect = ["mypy-boto3-mediaconnect (>=1.21.0)"]
-mediaconvert = ["mypy-boto3-mediaconvert (>=1.21.0)"]
-medialive = ["mypy-boto3-medialive (>=1.21.0)"]
-mediapackage = ["mypy-boto3-mediapackage (>=1.21.0)"]
-mediapackage-vod = ["mypy-boto3-mediapackage-vod (>=1.21.0)"]
-mediastore = ["mypy-boto3-mediastore (>=1.21.0)"]
-mediastore-data = ["mypy-boto3-mediastore-data (>=1.21.0)"]
-mediatailor = ["mypy-boto3-mediatailor (>=1.21.0)"]
-memorydb = ["mypy-boto3-memorydb (>=1.21.0)"]
-meteringmarketplace = ["mypy-boto3-meteringmarketplace (>=1.21.0)"]
-mgh = ["mypy-boto3-mgh (>=1.21.0)"]
-mgn = ["mypy-boto3-mgn (>=1.21.0)"]
-migration-hub-refactor-spaces = ["mypy-boto3-migration-hub-refactor-spaces (>=1.21.0)"]
-migrationhub-config = ["mypy-boto3-migrationhub-config (>=1.21.0)"]
-migrationhubstrategy = ["mypy-boto3-migrationhubstrategy (>=1.21.0)"]
-mobile = ["mypy-boto3-mobile (>=1.21.0)"]
-mq = ["mypy-boto3-mq (>=1.21.0)"]
-mturk = ["mypy-boto3-mturk (>=1.21.0)"]
-mwaa = ["mypy-boto3-mwaa (>=1.21.0)"]
-neptune = ["mypy-boto3-neptune (>=1.21.0)"]
-network-firewall = ["mypy-boto3-network-firewall (>=1.21.0)"]
-networkmanager = ["mypy-boto3-networkmanager (>=1.21.0)"]
-nimble = ["mypy-boto3-nimble (>=1.21.0)"]
-opensearch = ["mypy-boto3-opensearch (>=1.21.0)"]
-opsworks = ["mypy-boto3-opsworks (>=1.21.0)"]
-opsworkscm = ["mypy-boto3-opsworkscm (>=1.21.0)"]
-organizations = ["mypy-boto3-organizations (>=1.21.0)"]
-outposts = ["mypy-boto3-outposts (>=1.21.0)"]
-panorama = ["mypy-boto3-panorama (>=1.21.0)"]
-personalize = ["mypy-boto3-personalize (>=1.21.0)"]
-personalize-events = ["mypy-boto3-personalize-events (>=1.21.0)"]
-personalize-runtime = ["mypy-boto3-personalize-runtime (>=1.21.0)"]
-pi = ["mypy-boto3-pi (>=1.21.0)"]
-pinpoint = ["mypy-boto3-pinpoint (>=1.21.0)"]
-pinpoint-email = ["mypy-boto3-pinpoint-email (>=1.21.0)"]
-pinpoint-sms-voice = ["mypy-boto3-pinpoint-sms-voice (>=1.21.0)"]
-polly = ["mypy-boto3-polly (>=1.21.0)"]
-pricing = ["mypy-boto3-pricing (>=1.21.0)"]
-proton = ["mypy-boto3-proton (>=1.21.0)"]
-qldb = ["mypy-boto3-qldb (>=1.21.0)"]
-qldb-session = ["mypy-boto3-qldb-session (>=1.21.0)"]
-quicksight = ["mypy-boto3-quicksight (>=1.21.0)"]
-ram = ["mypy-boto3-ram (>=1.21.0)"]
-rbin = ["mypy-boto3-rbin (>=1.21.0)"]
-rds = ["mypy-boto3-rds (>=1.21.0)"]
-rds-data = ["mypy-boto3-rds-data (>=1.21.0)"]
-redshift = ["mypy-boto3-redshift (>=1.21.0)"]
-redshift-data = ["mypy-boto3-redshift-data (>=1.21.0)"]
-rekognition = ["mypy-boto3-rekognition (>=1.21.0)"]
-resiliencehub = ["mypy-boto3-resiliencehub (>=1.21.0)"]
-resource-groups = ["mypy-boto3-resource-groups (>=1.21.0)"]
-resourcegroupstaggingapi = ["mypy-boto3-resourcegroupstaggingapi (>=1.21.0)"]
-robomaker = ["mypy-boto3-robomaker (>=1.21.0)"]
-route53 = ["mypy-boto3-route53 (>=1.21.0)"]
-route53-recovery-cluster = ["mypy-boto3-route53-recovery-cluster (>=1.21.0)"]
-route53-recovery-control-config = ["mypy-boto3-route53-recovery-control-config (>=1.21.0)"]
-route53-recovery-readiness = ["mypy-boto3-route53-recovery-readiness (>=1.21.0)"]
-route53domains = ["mypy-boto3-route53domains (>=1.21.0)"]
-route53resolver = ["mypy-boto3-route53resolver (>=1.21.0)"]
-rum = ["mypy-boto3-rum (>=1.21.0)"]
-s3 = ["mypy-boto3-s3 (>=1.21.0)"]
-s3control = ["mypy-boto3-s3control (>=1.21.0)"]
-s3outposts = ["mypy-boto3-s3outposts (>=1.21.0)"]
-sagemaker = ["mypy-boto3-sagemaker (>=1.21.0)"]
-sagemaker-a2i-runtime = ["mypy-boto3-sagemaker-a2i-runtime (>=1.21.0)"]
-sagemaker-edge = ["mypy-boto3-sagemaker-edge (>=1.21.0)"]
-sagemaker-featurestore-runtime = ["mypy-boto3-sagemaker-featurestore-runtime (>=1.21.0)"]
-sagemaker-runtime = ["mypy-boto3-sagemaker-runtime (>=1.21.0)"]
-savingsplans = ["mypy-boto3-savingsplans (>=1.21.0)"]
-schemas = ["mypy-boto3-schemas (>=1.21.0)"]
-sdb = ["mypy-boto3-sdb (>=1.21.0)"]
-secretsmanager = ["mypy-boto3-secretsmanager (>=1.21.0)"]
-securityhub = ["mypy-boto3-securityhub (>=1.21.0)"]
-serverlessrepo = ["mypy-boto3-serverlessrepo (>=1.21.0)"]
-service-quotas = ["mypy-boto3-service-quotas (>=1.21.0)"]
-servicecatalog = ["mypy-boto3-servicecatalog (>=1.21.0)"]
-servicecatalog-appregistry = ["mypy-boto3-servicecatalog-appregistry (>=1.21.0)"]
-servicediscovery = ["mypy-boto3-servicediscovery (>=1.21.0)"]
-ses = ["mypy-boto3-ses (>=1.21.0)"]
-sesv2 = ["mypy-boto3-sesv2 (>=1.21.0)"]
-shield = ["mypy-boto3-shield (>=1.21.0)"]
-signer = ["mypy-boto3-signer (>=1.21.0)"]
-sms = ["mypy-boto3-sms (>=1.21.0)"]
-sms-voice = ["mypy-boto3-sms-voice (>=1.21.0)"]
-snow-device-management = ["mypy-boto3-snow-device-management (>=1.21.0)"]
-snowball = ["mypy-boto3-snowball (>=1.21.0)"]
-sns = ["mypy-boto3-sns (>=1.21.0)"]
-sqs = ["mypy-boto3-sqs (>=1.21.0)"]
-ssm = ["mypy-boto3-ssm (>=1.21.0)"]
-ssm-contacts = ["mypy-boto3-ssm-contacts (>=1.21.0)"]
-ssm-incidents = ["mypy-boto3-ssm-incidents (>=1.21.0)"]
-sso = ["mypy-boto3-sso (>=1.21.0)"]
-sso-admin = ["mypy-boto3-sso-admin (>=1.21.0)"]
-sso-oidc = ["mypy-boto3-sso-oidc (>=1.21.0)"]
-stepfunctions = ["mypy-boto3-stepfunctions (>=1.21.0)"]
-storagegateway = ["mypy-boto3-storagegateway (>=1.21.0)"]
-sts = ["mypy-boto3-sts (>=1.21.0)"]
-support = ["mypy-boto3-support (>=1.21.0)"]
-swf = ["mypy-boto3-swf (>=1.21.0)"]
-synthetics = ["mypy-boto3-synthetics (>=1.21.0)"]
-textract = ["mypy-boto3-textract (>=1.21.0)"]
-timestream-query = ["mypy-boto3-timestream-query (>=1.21.0)"]
-timestream-write = ["mypy-boto3-timestream-write (>=1.21.0)"]
-transcribe = ["mypy-boto3-transcribe (>=1.21.0)"]
-transfer = ["mypy-boto3-transfer (>=1.21.0)"]
-translate = ["mypy-boto3-translate (>=1.21.0)"]
-voice-id = ["mypy-boto3-voice-id (>=1.21.0)"]
-waf = ["mypy-boto3-waf (>=1.21.0)"]
-waf-regional = ["mypy-boto3-waf-regional (>=1.21.0)"]
-wafv2 = ["mypy-boto3-wafv2 (>=1.21.0)"]
-wellarchitected = ["mypy-boto3-wellarchitected (>=1.21.0)"]
-wisdom = ["mypy-boto3-wisdom (>=1.21.0)"]
-workdocs = ["mypy-boto3-workdocs (>=1.21.0)"]
-worklink = ["mypy-boto3-worklink (>=1.21.0)"]
-workmail = ["mypy-boto3-workmail (>=1.21.0)"]
-workmailmessageflow = ["mypy-boto3-workmailmessageflow (>=1.21.0)"]
-workspaces = ["mypy-boto3-workspaces (>=1.21.0)"]
-workspaces-web = ["mypy-boto3-workspaces-web (>=1.21.0)"]
-xray = ["mypy-boto3-xray (>=1.21.0)"]
+accessanalyzer = ["mypy-boto3-accessanalyzer (>=1.21.0,<1.22.0)"]
+account = ["mypy-boto3-account (>=1.21.0,<1.22.0)"]
+acm = ["mypy-boto3-acm (>=1.21.0,<1.22.0)"]
+acm-pca = ["mypy-boto3-acm-pca (>=1.21.0,<1.22.0)"]
+alexaforbusiness = ["mypy-boto3-alexaforbusiness (>=1.21.0,<1.22.0)"]
+all = ["mypy-boto3-accessanalyzer (>=1.21.0,<1.22.0)", "mypy-boto3-account (>=1.21.0,<1.22.0)", "mypy-boto3-acm (>=1.21.0,<1.22.0)", "mypy-boto3-acm-pca (>=1.21.0,<1.22.0)", "mypy-boto3-alexaforbusiness (>=1.21.0,<1.22.0)", "mypy-boto3-amp (>=1.21.0,<1.22.0)", "mypy-boto3-amplify (>=1.21.0,<1.22.0)", "mypy-boto3-amplifybackend (>=1.21.0,<1.22.0)", "mypy-boto3-amplifyuibuilder (>=1.21.0,<1.22.0)", "mypy-boto3-apigateway (>=1.21.0,<1.22.0)", "mypy-boto3-apigatewaymanagementapi (>=1.21.0,<1.22.0)", "mypy-boto3-apigatewayv2 (>=1.21.0,<1.22.0)", "mypy-boto3-appconfig (>=1.21.0,<1.22.0)", "mypy-boto3-appconfigdata (>=1.21.0,<1.22.0)", "mypy-boto3-appflow (>=1.21.0,<1.22.0)", "mypy-boto3-appintegrations (>=1.21.0,<1.22.0)", "mypy-boto3-application-autoscaling (>=1.21.0,<1.22.0)", "mypy-boto3-application-insights (>=1.21.0,<1.22.0)", "mypy-boto3-applicationcostprofiler (>=1.21.0,<1.22.0)", "mypy-boto3-appmesh (>=1.21.0,<1.22.0)", "mypy-boto3-apprunner (>=1.21.0,<1.22.0)", "mypy-boto3-appstream (>=1.21.0,<1.22.0)", "mypy-boto3-appsync (>=1.21.0,<1.22.0)", "mypy-boto3-athena (>=1.21.0,<1.22.0)", "mypy-boto3-auditmanager (>=1.21.0,<1.22.0)", "mypy-boto3-autoscaling (>=1.21.0,<1.22.0)", "mypy-boto3-autoscaling-plans (>=1.21.0,<1.22.0)", "mypy-boto3-backup (>=1.21.0,<1.22.0)", "mypy-boto3-backup-gateway (>=1.21.0,<1.22.0)", "mypy-boto3-batch (>=1.21.0,<1.22.0)", "mypy-boto3-billingconductor (>=1.21.0,<1.22.0)", "mypy-boto3-braket (>=1.21.0,<1.22.0)", "mypy-boto3-budgets (>=1.21.0,<1.22.0)", "mypy-boto3-ce (>=1.21.0,<1.22.0)", "mypy-boto3-chime (>=1.21.0,<1.22.0)", "mypy-boto3-chime-sdk-identity (>=1.21.0,<1.22.0)", "mypy-boto3-chime-sdk-meetings (>=1.21.0,<1.22.0)", "mypy-boto3-chime-sdk-messaging (>=1.21.0,<1.22.0)", "mypy-boto3-cloud9 (>=1.21.0,<1.22.0)", "mypy-boto3-cloudcontrol (>=1.21.0,<1.22.0)", "mypy-boto3-clouddirectory (>=1.21.0,<1.22.0)", "mypy-boto3-cloudformation (>=1.21.0,<1.22.0)", "mypy-boto3-cloudfront (>=1.21.0,<1.22.0)", "mypy-boto3-cloudhsm (>=1.21.0,<1.22.0)", "mypy-boto3-cloudhsmv2 (>=1.21.0,<1.22.0)", "mypy-boto3-cloudsearch (>=1.21.0,<1.22.0)", "mypy-boto3-cloudsearchdomain (>=1.21.0,<1.22.0)", "mypy-boto3-cloudtrail (>=1.21.0,<1.22.0)", "mypy-boto3-cloudwatch (>=1.21.0,<1.22.0)", "mypy-boto3-codeartifact (>=1.21.0,<1.22.0)", "mypy-boto3-codebuild (>=1.21.0,<1.22.0)", "mypy-boto3-codecommit (>=1.21.0,<1.22.0)", "mypy-boto3-codedeploy (>=1.21.0,<1.22.0)", "mypy-boto3-codeguru-reviewer (>=1.21.0,<1.22.0)", "mypy-boto3-codeguruprofiler (>=1.21.0,<1.22.0)", "mypy-boto3-codepipeline (>=1.21.0,<1.22.0)", "mypy-boto3-codestar (>=1.21.0,<1.22.0)", "mypy-boto3-codestar-connections (>=1.21.0,<1.22.0)", "mypy-boto3-codestar-notifications (>=1.21.0,<1.22.0)", "mypy-boto3-cognito-identity (>=1.21.0,<1.22.0)", "mypy-boto3-cognito-idp (>=1.21.0,<1.22.0)", "mypy-boto3-cognito-sync (>=1.21.0,<1.22.0)", "mypy-boto3-comprehend (>=1.21.0,<1.22.0)", "mypy-boto3-comprehendmedical (>=1.21.0,<1.22.0)", "mypy-boto3-compute-optimizer (>=1.21.0,<1.22.0)", "mypy-boto3-config (>=1.21.0,<1.22.0)", "mypy-boto3-connect (>=1.21.0,<1.22.0)", "mypy-boto3-connect-contact-lens (>=1.21.0,<1.22.0)", "mypy-boto3-connectparticipant (>=1.21.0,<1.22.0)", "mypy-boto3-cur (>=1.21.0,<1.22.0)", "mypy-boto3-customer-profiles (>=1.21.0,<1.22.0)", "mypy-boto3-databrew (>=1.21.0,<1.22.0)", "mypy-boto3-dataexchange (>=1.21.0,<1.22.0)", "mypy-boto3-datapipeline (>=1.21.0,<1.22.0)", "mypy-boto3-datasync (>=1.21.0,<1.22.0)", "mypy-boto3-dax (>=1.21.0,<1.22.0)", "mypy-boto3-detective (>=1.21.0,<1.22.0)", "mypy-boto3-devicefarm (>=1.21.0,<1.22.0)", "mypy-boto3-devops-guru (>=1.21.0,<1.22.0)", "mypy-boto3-directconnect (>=1.21.0,<1.22.0)", "mypy-boto3-discovery (>=1.21.0,<1.22.0)", "mypy-boto3-dlm (>=1.21.0,<1.22.0)", "mypy-boto3-dms (>=1.21.0,<1.22.0)", "mypy-boto3-docdb (>=1.21.0,<1.22.0)", "mypy-boto3-drs (>=1.21.0,<1.22.0)", "mypy-boto3-ds (>=1.21.0,<1.22.0)", "mypy-boto3-dynamodb (>=1.21.0,<1.22.0)", "mypy-boto3-dynamodbstreams (>=1.21.0,<1.22.0)", "mypy-boto3-ebs (>=1.21.0,<1.22.0)", "mypy-boto3-ec2 (>=1.21.0,<1.22.0)", "mypy-boto3-ec2-instance-connect (>=1.21.0,<1.22.0)", "mypy-boto3-ecr (>=1.21.0,<1.22.0)", "mypy-boto3-ecr-public (>=1.21.0,<1.22.0)", "mypy-boto3-ecs (>=1.21.0,<1.22.0)", "mypy-boto3-efs (>=1.21.0,<1.22.0)", "mypy-boto3-eks (>=1.21.0,<1.22.0)", "mypy-boto3-elastic-inference (>=1.21.0,<1.22.0)", "mypy-boto3-elasticache (>=1.21.0,<1.22.0)", "mypy-boto3-elasticbeanstalk (>=1.21.0,<1.22.0)", "mypy-boto3-elastictranscoder (>=1.21.0,<1.22.0)", "mypy-boto3-elb (>=1.21.0,<1.22.0)", "mypy-boto3-elbv2 (>=1.21.0,<1.22.0)", "mypy-boto3-emr (>=1.21.0,<1.22.0)", "mypy-boto3-emr-containers (>=1.21.0,<1.22.0)", "mypy-boto3-es (>=1.21.0,<1.22.0)", "mypy-boto3-events (>=1.21.0,<1.22.0)", "mypy-boto3-evidently (>=1.21.0,<1.22.0)", "mypy-boto3-finspace (>=1.21.0,<1.22.0)", "mypy-boto3-finspace-data (>=1.21.0,<1.22.0)", "mypy-boto3-firehose (>=1.21.0,<1.22.0)", "mypy-boto3-fis (>=1.21.0,<1.22.0)", "mypy-boto3-fms (>=1.21.0,<1.22.0)", "mypy-boto3-forecast (>=1.21.0,<1.22.0)", "mypy-boto3-forecastquery (>=1.21.0,<1.22.0)", "mypy-boto3-frauddetector (>=1.21.0,<1.22.0)", "mypy-boto3-fsx (>=1.21.0,<1.22.0)", "mypy-boto3-gamelift (>=1.21.0,<1.22.0)", "mypy-boto3-gamesparks (>=1.21.0,<1.22.0)", "mypy-boto3-glacier (>=1.21.0,<1.22.0)", "mypy-boto3-globalaccelerator (>=1.21.0,<1.22.0)", "mypy-boto3-glue (>=1.21.0,<1.22.0)", "mypy-boto3-grafana (>=1.21.0,<1.22.0)", "mypy-boto3-greengrass (>=1.21.0,<1.22.0)", "mypy-boto3-greengrassv2 (>=1.21.0,<1.22.0)", "mypy-boto3-groundstation (>=1.21.0,<1.22.0)", "mypy-boto3-guardduty (>=1.21.0,<1.22.0)", "mypy-boto3-health (>=1.21.0,<1.22.0)", "mypy-boto3-healthlake (>=1.21.0,<1.22.0)", "mypy-boto3-honeycode (>=1.21.0,<1.22.0)", "mypy-boto3-iam (>=1.21.0,<1.22.0)", "mypy-boto3-identitystore (>=1.21.0,<1.22.0)", "mypy-boto3-imagebuilder (>=1.21.0,<1.22.0)", "mypy-boto3-importexport (>=1.21.0,<1.22.0)", "mypy-boto3-inspector (>=1.21.0,<1.22.0)", "mypy-boto3-inspector2 (>=1.21.0,<1.22.0)", "mypy-boto3-iot (>=1.21.0,<1.22.0)", "mypy-boto3-iot-data (>=1.21.0,<1.22.0)", "mypy-boto3-iot-jobs-data (>=1.21.0,<1.22.0)", "mypy-boto3-iot1click-devices (>=1.21.0,<1.22.0)", "mypy-boto3-iot1click-projects (>=1.21.0,<1.22.0)", "mypy-boto3-iotanalytics (>=1.21.0,<1.22.0)", "mypy-boto3-iotdeviceadvisor (>=1.21.0,<1.22.0)", "mypy-boto3-iotevents (>=1.21.0,<1.22.0)", "mypy-boto3-iotevents-data (>=1.21.0,<1.22.0)", "mypy-boto3-iotfleethub (>=1.21.0,<1.22.0)", "mypy-boto3-iotsecuretunneling (>=1.21.0,<1.22.0)", "mypy-boto3-iotsitewise (>=1.21.0,<1.22.0)", "mypy-boto3-iotthingsgraph (>=1.21.0,<1.22.0)", "mypy-boto3-iottwinmaker (>=1.21.0,<1.22.0)", "mypy-boto3-iotwireless (>=1.21.0,<1.22.0)", "mypy-boto3-ivs (>=1.21.0,<1.22.0)", "mypy-boto3-kafka (>=1.21.0,<1.22.0)", "mypy-boto3-kafkaconnect (>=1.21.0,<1.22.0)", "mypy-boto3-kendra (>=1.21.0,<1.22.0)", "mypy-boto3-keyspaces (>=1.21.0,<1.22.0)", "mypy-boto3-kinesis (>=1.21.0,<1.22.0)", "mypy-boto3-kinesis-video-archived-media (>=1.21.0,<1.22.0)", "mypy-boto3-kinesis-video-media (>=1.21.0,<1.22.0)", "mypy-boto3-kinesis-video-signaling (>=1.21.0,<1.22.0)", "mypy-boto3-kinesisanalytics (>=1.21.0,<1.22.0)", "mypy-boto3-kinesisanalyticsv2 (>=1.21.0,<1.22.0)", "mypy-boto3-kinesisvideo (>=1.21.0,<1.22.0)", "mypy-boto3-kms (>=1.21.0,<1.22.0)", "mypy-boto3-lakeformation (>=1.21.0,<1.22.0)", "mypy-boto3-lambda (>=1.21.0,<1.22.0)", "mypy-boto3-lex-models (>=1.21.0,<1.22.0)", "mypy-boto3-lex-runtime (>=1.21.0,<1.22.0)", "mypy-boto3-lexv2-models (>=1.21.0,<1.22.0)", "mypy-boto3-lexv2-runtime (>=1.21.0,<1.22.0)", "mypy-boto3-license-manager (>=1.21.0,<1.22.0)", "mypy-boto3-lightsail (>=1.21.0,<1.22.0)", "mypy-boto3-location (>=1.21.0,<1.22.0)", "mypy-boto3-logs (>=1.21.0,<1.22.0)", "mypy-boto3-lookoutequipment (>=1.21.0,<1.22.0)", "mypy-boto3-lookoutmetrics (>=1.21.0,<1.22.0)", "mypy-boto3-lookoutvision (>=1.21.0,<1.22.0)", "mypy-boto3-machinelearning (>=1.21.0,<1.22.0)", "mypy-boto3-macie (>=1.21.0,<1.22.0)", "mypy-boto3-macie2 (>=1.21.0,<1.22.0)", "mypy-boto3-managedblockchain (>=1.21.0,<1.22.0)", "mypy-boto3-marketplace-catalog (>=1.21.0,<1.22.0)", "mypy-boto3-marketplace-entitlement (>=1.21.0,<1.22.0)", "mypy-boto3-marketplacecommerceanalytics (>=1.21.0,<1.22.0)", "mypy-boto3-mediaconnect (>=1.21.0,<1.22.0)", "mypy-boto3-mediaconvert (>=1.21.0,<1.22.0)", "mypy-boto3-medialive (>=1.21.0,<1.22.0)", "mypy-boto3-mediapackage (>=1.21.0,<1.22.0)", "mypy-boto3-mediapackage-vod (>=1.21.0,<1.22.0)", "mypy-boto3-mediastore (>=1.21.0,<1.22.0)", "mypy-boto3-mediastore-data (>=1.21.0,<1.22.0)", "mypy-boto3-mediatailor (>=1.21.0,<1.22.0)", "mypy-boto3-memorydb (>=1.21.0,<1.22.0)", "mypy-boto3-meteringmarketplace (>=1.21.0,<1.22.0)", "mypy-boto3-mgh (>=1.21.0,<1.22.0)", "mypy-boto3-mgn (>=1.21.0,<1.22.0)", "mypy-boto3-migration-hub-refactor-spaces (>=1.21.0,<1.22.0)", "mypy-boto3-migrationhub-config (>=1.21.0,<1.22.0)", "mypy-boto3-migrationhubstrategy (>=1.21.0,<1.22.0)", "mypy-boto3-mobile (>=1.21.0,<1.22.0)", "mypy-boto3-mq (>=1.21.0,<1.22.0)", "mypy-boto3-mturk (>=1.21.0,<1.22.0)", "mypy-boto3-mwaa (>=1.21.0,<1.22.0)", "mypy-boto3-neptune (>=1.21.0,<1.22.0)", "mypy-boto3-network-firewall (>=1.21.0,<1.22.0)", "mypy-boto3-networkmanager (>=1.21.0,<1.22.0)", "mypy-boto3-nimble (>=1.21.0,<1.22.0)", "mypy-boto3-opensearch (>=1.21.0,<1.22.0)", "mypy-boto3-opsworks (>=1.21.0,<1.22.0)", "mypy-boto3-opsworkscm (>=1.21.0,<1.22.0)", "mypy-boto3-organizations (>=1.21.0,<1.22.0)", "mypy-boto3-outposts (>=1.21.0,<1.22.0)", "mypy-boto3-panorama (>=1.21.0,<1.22.0)", "mypy-boto3-personalize (>=1.21.0,<1.22.0)", "mypy-boto3-personalize-events (>=1.21.0,<1.22.0)", "mypy-boto3-personalize-runtime (>=1.21.0,<1.22.0)", "mypy-boto3-pi (>=1.21.0,<1.22.0)", "mypy-boto3-pinpoint (>=1.21.0,<1.22.0)", "mypy-boto3-pinpoint-email (>=1.21.0,<1.22.0)", "mypy-boto3-pinpoint-sms-voice (>=1.21.0,<1.22.0)", "mypy-boto3-pinpoint-sms-voice-v2 (>=1.21.0,<1.22.0)", "mypy-boto3-polly (>=1.21.0,<1.22.0)", "mypy-boto3-pricing (>=1.21.0,<1.22.0)", "mypy-boto3-proton (>=1.21.0,<1.22.0)", "mypy-boto3-qldb (>=1.21.0,<1.22.0)", "mypy-boto3-qldb-session (>=1.21.0,<1.22.0)", "mypy-boto3-quicksight (>=1.21.0,<1.22.0)", "mypy-boto3-ram (>=1.21.0,<1.22.0)", "mypy-boto3-rbin (>=1.21.0,<1.22.0)", "mypy-boto3-rds (>=1.21.0,<1.22.0)", "mypy-boto3-rds-data (>=1.21.0,<1.22.0)", "mypy-boto3-redshift (>=1.21.0,<1.22.0)", "mypy-boto3-redshift-data (>=1.21.0,<1.22.0)", "mypy-boto3-rekognition (>=1.21.0,<1.22.0)", "mypy-boto3-resiliencehub (>=1.21.0,<1.22.0)", "mypy-boto3-resource-groups (>=1.21.0,<1.22.0)", "mypy-boto3-resourcegroupstaggingapi (>=1.21.0,<1.22.0)", "mypy-boto3-robomaker (>=1.21.0,<1.22.0)", "mypy-boto3-route53 (>=1.21.0,<1.22.0)", "mypy-boto3-route53-recovery-cluster (>=1.21.0,<1.22.0)", "mypy-boto3-route53-recovery-control-config (>=1.21.0,<1.22.0)", "mypy-boto3-route53-recovery-readiness (>=1.21.0,<1.22.0)", "mypy-boto3-route53domains (>=1.21.0,<1.22.0)", "mypy-boto3-route53resolver (>=1.21.0,<1.22.0)", "mypy-boto3-rum (>=1.21.0,<1.22.0)", "mypy-boto3-s3 (>=1.21.0,<1.22.0)", "mypy-boto3-s3control (>=1.21.0,<1.22.0)", "mypy-boto3-s3outposts (>=1.21.0,<1.22.0)", "mypy-boto3-sagemaker (>=1.21.0,<1.22.0)", "mypy-boto3-sagemaker-a2i-runtime (>=1.21.0,<1.22.0)", "mypy-boto3-sagemaker-edge (>=1.21.0,<1.22.0)", "mypy-boto3-sagemaker-featurestore-runtime (>=1.21.0,<1.22.0)", "mypy-boto3-sagemaker-runtime (>=1.21.0,<1.22.0)", "mypy-boto3-savingsplans (>=1.21.0,<1.22.0)", "mypy-boto3-schemas (>=1.21.0,<1.22.0)", "mypy-boto3-sdb (>=1.21.0,<1.22.0)", "mypy-boto3-secretsmanager (>=1.21.0,<1.22.0)", "mypy-boto3-securityhub (>=1.21.0,<1.22.0)", "mypy-boto3-serverlessrepo (>=1.21.0,<1.22.0)", "mypy-boto3-service-quotas (>=1.21.0,<1.22.0)", "mypy-boto3-servicecatalog (>=1.21.0,<1.22.0)", "mypy-boto3-servicecatalog-appregistry (>=1.21.0,<1.22.0)", "mypy-boto3-servicediscovery (>=1.21.0,<1.22.0)", "mypy-boto3-ses (>=1.21.0,<1.22.0)", "mypy-boto3-sesv2 (>=1.21.0,<1.22.0)", "mypy-boto3-shield (>=1.21.0,<1.22.0)", "mypy-boto3-signer (>=1.21.0,<1.22.0)", "mypy-boto3-sms (>=1.21.0,<1.22.0)", "mypy-boto3-sms-voice (>=1.21.0,<1.22.0)", "mypy-boto3-snow-device-management (>=1.21.0,<1.22.0)", "mypy-boto3-snowball (>=1.21.0,<1.22.0)", "mypy-boto3-sns (>=1.21.0,<1.22.0)", "mypy-boto3-sqs (>=1.21.0,<1.22.0)", "mypy-boto3-ssm (>=1.21.0,<1.22.0)", "mypy-boto3-ssm-contacts (>=1.21.0,<1.22.0)", "mypy-boto3-ssm-incidents (>=1.21.0,<1.22.0)", "mypy-boto3-sso (>=1.21.0,<1.22.0)", "mypy-boto3-sso-admin (>=1.21.0,<1.22.0)", "mypy-boto3-sso-oidc (>=1.21.0,<1.22.0)", "mypy-boto3-stepfunctions (>=1.21.0,<1.22.0)", "mypy-boto3-storagegateway (>=1.21.0,<1.22.0)", "mypy-boto3-sts (>=1.21.0,<1.22.0)", "mypy-boto3-support (>=1.21.0,<1.22.0)", "mypy-boto3-swf (>=1.21.0,<1.22.0)", "mypy-boto3-synthetics (>=1.21.0,<1.22.0)", "mypy-boto3-textract (>=1.21.0,<1.22.0)", "mypy-boto3-timestream-query (>=1.21.0,<1.22.0)", "mypy-boto3-timestream-write (>=1.21.0,<1.22.0)", "mypy-boto3-transcribe (>=1.21.0,<1.22.0)", "mypy-boto3-transfer (>=1.21.0,<1.22.0)", "mypy-boto3-translate (>=1.21.0,<1.22.0)", "mypy-boto3-voice-id (>=1.21.0,<1.22.0)", "mypy-boto3-waf (>=1.21.0,<1.22.0)", "mypy-boto3-waf-regional (>=1.21.0,<1.22.0)", "mypy-boto3-wafv2 (>=1.21.0,<1.22.0)", "mypy-boto3-wellarchitected (>=1.21.0,<1.22.0)", "mypy-boto3-wisdom (>=1.21.0,<1.22.0)", "mypy-boto3-workdocs (>=1.21.0,<1.22.0)", "mypy-boto3-worklink (>=1.21.0,<1.22.0)", "mypy-boto3-workmail (>=1.21.0,<1.22.0)", "mypy-boto3-workmailmessageflow (>=1.21.0,<1.22.0)", "mypy-boto3-workspaces (>=1.21.0,<1.22.0)", "mypy-boto3-workspaces-web (>=1.21.0,<1.22.0)", "mypy-boto3-xray (>=1.21.0,<1.22.0)"]
+amp = ["mypy-boto3-amp (>=1.21.0,<1.22.0)"]
+amplify = ["mypy-boto3-amplify (>=1.21.0,<1.22.0)"]
+amplifybackend = ["mypy-boto3-amplifybackend (>=1.21.0,<1.22.0)"]
+amplifyuibuilder = ["mypy-boto3-amplifyuibuilder (>=1.21.0,<1.22.0)"]
+apigateway = ["mypy-boto3-apigateway (>=1.21.0,<1.22.0)"]
+apigatewaymanagementapi = ["mypy-boto3-apigatewaymanagementapi (>=1.21.0,<1.22.0)"]
+apigatewayv2 = ["mypy-boto3-apigatewayv2 (>=1.21.0,<1.22.0)"]
+appconfig = ["mypy-boto3-appconfig (>=1.21.0,<1.22.0)"]
+appconfigdata = ["mypy-boto3-appconfigdata (>=1.21.0,<1.22.0)"]
+appflow = ["mypy-boto3-appflow (>=1.21.0,<1.22.0)"]
+appintegrations = ["mypy-boto3-appintegrations (>=1.21.0,<1.22.0)"]
+application-autoscaling = ["mypy-boto3-application-autoscaling (>=1.21.0,<1.22.0)"]
+application-insights = ["mypy-boto3-application-insights (>=1.21.0,<1.22.0)"]
+applicationcostprofiler = ["mypy-boto3-applicationcostprofiler (>=1.21.0,<1.22.0)"]
+appmesh = ["mypy-boto3-appmesh (>=1.21.0,<1.22.0)"]
+apprunner = ["mypy-boto3-apprunner (>=1.21.0,<1.22.0)"]
+appstream = ["mypy-boto3-appstream (>=1.21.0,<1.22.0)"]
+appsync = ["mypy-boto3-appsync (>=1.21.0,<1.22.0)"]
+athena = ["mypy-boto3-athena (>=1.21.0,<1.22.0)"]
+auditmanager = ["mypy-boto3-auditmanager (>=1.21.0,<1.22.0)"]
+autoscaling = ["mypy-boto3-autoscaling (>=1.21.0,<1.22.0)"]
+autoscaling-plans = ["mypy-boto3-autoscaling-plans (>=1.21.0,<1.22.0)"]
+backup = ["mypy-boto3-backup (>=1.21.0,<1.22.0)"]
+backup-gateway = ["mypy-boto3-backup-gateway (>=1.21.0,<1.22.0)"]
+batch = ["mypy-boto3-batch (>=1.21.0,<1.22.0)"]
+billingconductor = ["mypy-boto3-billingconductor (>=1.21.0,<1.22.0)"]
+braket = ["mypy-boto3-braket (>=1.21.0,<1.22.0)"]
+budgets = ["mypy-boto3-budgets (>=1.21.0,<1.22.0)"]
+ce = ["mypy-boto3-ce (>=1.21.0,<1.22.0)"]
+chime = ["mypy-boto3-chime (>=1.21.0,<1.22.0)"]
+chime-sdk-identity = ["mypy-boto3-chime-sdk-identity (>=1.21.0,<1.22.0)"]
+chime-sdk-meetings = ["mypy-boto3-chime-sdk-meetings (>=1.21.0,<1.22.0)"]
+chime-sdk-messaging = ["mypy-boto3-chime-sdk-messaging (>=1.21.0,<1.22.0)"]
+cloud9 = ["mypy-boto3-cloud9 (>=1.21.0,<1.22.0)"]
+cloudcontrol = ["mypy-boto3-cloudcontrol (>=1.21.0,<1.22.0)"]
+clouddirectory = ["mypy-boto3-clouddirectory (>=1.21.0,<1.22.0)"]
+cloudformation = ["mypy-boto3-cloudformation (>=1.21.0,<1.22.0)"]
+cloudfront = ["mypy-boto3-cloudfront (>=1.21.0,<1.22.0)"]
+cloudhsm = ["mypy-boto3-cloudhsm (>=1.21.0,<1.22.0)"]
+cloudhsmv2 = ["mypy-boto3-cloudhsmv2 (>=1.21.0,<1.22.0)"]
+cloudsearch = ["mypy-boto3-cloudsearch (>=1.21.0,<1.22.0)"]
+cloudsearchdomain = ["mypy-boto3-cloudsearchdomain (>=1.21.0,<1.22.0)"]
+cloudtrail = ["mypy-boto3-cloudtrail (>=1.21.0,<1.22.0)"]
+cloudwatch = ["mypy-boto3-cloudwatch (>=1.21.0,<1.22.0)"]
+codeartifact = ["mypy-boto3-codeartifact (>=1.21.0,<1.22.0)"]
+codebuild = ["mypy-boto3-codebuild (>=1.21.0,<1.22.0)"]
+codecommit = ["mypy-boto3-codecommit (>=1.21.0,<1.22.0)"]
+codedeploy = ["mypy-boto3-codedeploy (>=1.21.0,<1.22.0)"]
+codeguru-reviewer = ["mypy-boto3-codeguru-reviewer (>=1.21.0,<1.22.0)"]
+codeguruprofiler = ["mypy-boto3-codeguruprofiler (>=1.21.0,<1.22.0)"]
+codepipeline = ["mypy-boto3-codepipeline (>=1.21.0,<1.22.0)"]
+codestar = ["mypy-boto3-codestar (>=1.21.0,<1.22.0)"]
+codestar-connections = ["mypy-boto3-codestar-connections (>=1.21.0,<1.22.0)"]
+codestar-notifications = ["mypy-boto3-codestar-notifications (>=1.21.0,<1.22.0)"]
+cognito-identity = ["mypy-boto3-cognito-identity (>=1.21.0,<1.22.0)"]
+cognito-idp = ["mypy-boto3-cognito-idp (>=1.21.0,<1.22.0)"]
+cognito-sync = ["mypy-boto3-cognito-sync (>=1.21.0,<1.22.0)"]
+comprehend = ["mypy-boto3-comprehend (>=1.21.0,<1.22.0)"]
+comprehendmedical = ["mypy-boto3-comprehendmedical (>=1.21.0,<1.22.0)"]
+compute-optimizer = ["mypy-boto3-compute-optimizer (>=1.21.0,<1.22.0)"]
+config = ["mypy-boto3-config (>=1.21.0,<1.22.0)"]
+connect = ["mypy-boto3-connect (>=1.21.0,<1.22.0)"]
+connect-contact-lens = ["mypy-boto3-connect-contact-lens (>=1.21.0,<1.22.0)"]
+connectparticipant = ["mypy-boto3-connectparticipant (>=1.21.0,<1.22.0)"]
+cur = ["mypy-boto3-cur (>=1.21.0,<1.22.0)"]
+customer-profiles = ["mypy-boto3-customer-profiles (>=1.21.0,<1.22.0)"]
+databrew = ["mypy-boto3-databrew (>=1.21.0,<1.22.0)"]
+dataexchange = ["mypy-boto3-dataexchange (>=1.21.0,<1.22.0)"]
+datapipeline = ["mypy-boto3-datapipeline (>=1.21.0,<1.22.0)"]
+datasync = ["mypy-boto3-datasync (>=1.21.0,<1.22.0)"]
+dax = ["mypy-boto3-dax (>=1.21.0,<1.22.0)"]
+detective = ["mypy-boto3-detective (>=1.21.0,<1.22.0)"]
+devicefarm = ["mypy-boto3-devicefarm (>=1.21.0,<1.22.0)"]
+devops-guru = ["mypy-boto3-devops-guru (>=1.21.0,<1.22.0)"]
+directconnect = ["mypy-boto3-directconnect (>=1.21.0,<1.22.0)"]
+discovery = ["mypy-boto3-discovery (>=1.21.0,<1.22.0)"]
+dlm = ["mypy-boto3-dlm (>=1.21.0,<1.22.0)"]
+dms = ["mypy-boto3-dms (>=1.21.0,<1.22.0)"]
+docdb = ["mypy-boto3-docdb (>=1.21.0,<1.22.0)"]
+drs = ["mypy-boto3-drs (>=1.21.0,<1.22.0)"]
+ds = ["mypy-boto3-ds (>=1.21.0,<1.22.0)"]
+dynamodb = ["mypy-boto3-dynamodb (>=1.21.0,<1.22.0)"]
+dynamodbstreams = ["mypy-boto3-dynamodbstreams (>=1.21.0,<1.22.0)"]
+ebs = ["mypy-boto3-ebs (>=1.21.0,<1.22.0)"]
+ec2 = ["mypy-boto3-ec2 (>=1.21.0,<1.22.0)"]
+ec2-instance-connect = ["mypy-boto3-ec2-instance-connect (>=1.21.0,<1.22.0)"]
+ecr = ["mypy-boto3-ecr (>=1.21.0,<1.22.0)"]
+ecr-public = ["mypy-boto3-ecr-public (>=1.21.0,<1.22.0)"]
+ecs = ["mypy-boto3-ecs (>=1.21.0,<1.22.0)"]
+efs = ["mypy-boto3-efs (>=1.21.0,<1.22.0)"]
+eks = ["mypy-boto3-eks (>=1.21.0,<1.22.0)"]
+elastic-inference = ["mypy-boto3-elastic-inference (>=1.21.0,<1.22.0)"]
+elasticache = ["mypy-boto3-elasticache (>=1.21.0,<1.22.0)"]
+elasticbeanstalk = ["mypy-boto3-elasticbeanstalk (>=1.21.0,<1.22.0)"]
+elastictranscoder = ["mypy-boto3-elastictranscoder (>=1.21.0,<1.22.0)"]
+elb = ["mypy-boto3-elb (>=1.21.0,<1.22.0)"]
+elbv2 = ["mypy-boto3-elbv2 (>=1.21.0,<1.22.0)"]
+emr = ["mypy-boto3-emr (>=1.21.0,<1.22.0)"]
+emr-containers = ["mypy-boto3-emr-containers (>=1.21.0,<1.22.0)"]
+es = ["mypy-boto3-es (>=1.21.0,<1.22.0)"]
+essential = ["mypy-boto3-cloudformation (>=1.21.0,<1.22.0)", "mypy-boto3-dynamodb (>=1.21.0,<1.22.0)", "mypy-boto3-ec2 (>=1.21.0,<1.22.0)", "mypy-boto3-lambda (>=1.21.0,<1.22.0)", "mypy-boto3-rds (>=1.21.0,<1.22.0)", "mypy-boto3-s3 (>=1.21.0,<1.22.0)", "mypy-boto3-sqs (>=1.21.0,<1.22.0)"]
+events = ["mypy-boto3-events (>=1.21.0,<1.22.0)"]
+evidently = ["mypy-boto3-evidently (>=1.21.0,<1.22.0)"]
+finspace = ["mypy-boto3-finspace (>=1.21.0,<1.22.0)"]
+finspace-data = ["mypy-boto3-finspace-data (>=1.21.0,<1.22.0)"]
+firehose = ["mypy-boto3-firehose (>=1.21.0,<1.22.0)"]
+fis = ["mypy-boto3-fis (>=1.21.0,<1.22.0)"]
+fms = ["mypy-boto3-fms (>=1.21.0,<1.22.0)"]
+forecast = ["mypy-boto3-forecast (>=1.21.0,<1.22.0)"]
+forecastquery = ["mypy-boto3-forecastquery (>=1.21.0,<1.22.0)"]
+frauddetector = ["mypy-boto3-frauddetector (>=1.21.0,<1.22.0)"]
+fsx = ["mypy-boto3-fsx (>=1.21.0,<1.22.0)"]
+gamelift = ["mypy-boto3-gamelift (>=1.21.0,<1.22.0)"]
+gamesparks = ["mypy-boto3-gamesparks (>=1.21.0,<1.22.0)"]
+glacier = ["mypy-boto3-glacier (>=1.21.0,<1.22.0)"]
+globalaccelerator = ["mypy-boto3-globalaccelerator (>=1.21.0,<1.22.0)"]
+glue = ["mypy-boto3-glue (>=1.21.0,<1.22.0)"]
+grafana = ["mypy-boto3-grafana (>=1.21.0,<1.22.0)"]
+greengrass = ["mypy-boto3-greengrass (>=1.21.0,<1.22.0)"]
+greengrassv2 = ["mypy-boto3-greengrassv2 (>=1.21.0,<1.22.0)"]
+groundstation = ["mypy-boto3-groundstation (>=1.21.0,<1.22.0)"]
+guardduty = ["mypy-boto3-guardduty (>=1.21.0,<1.22.0)"]
+health = ["mypy-boto3-health (>=1.21.0,<1.22.0)"]
+healthlake = ["mypy-boto3-healthlake (>=1.21.0,<1.22.0)"]
+honeycode = ["mypy-boto3-honeycode (>=1.21.0,<1.22.0)"]
+iam = ["mypy-boto3-iam (>=1.21.0,<1.22.0)"]
+identitystore = ["mypy-boto3-identitystore (>=1.21.0,<1.22.0)"]
+imagebuilder = ["mypy-boto3-imagebuilder (>=1.21.0,<1.22.0)"]
+importexport = ["mypy-boto3-importexport (>=1.21.0,<1.22.0)"]
+inspector = ["mypy-boto3-inspector (>=1.21.0,<1.22.0)"]
+inspector2 = ["mypy-boto3-inspector2 (>=1.21.0,<1.22.0)"]
+iot = ["mypy-boto3-iot (>=1.21.0,<1.22.0)"]
+iot-data = ["mypy-boto3-iot-data (>=1.21.0,<1.22.0)"]
+iot-jobs-data = ["mypy-boto3-iot-jobs-data (>=1.21.0,<1.22.0)"]
+iot1click-devices = ["mypy-boto3-iot1click-devices (>=1.21.0,<1.22.0)"]
+iot1click-projects = ["mypy-boto3-iot1click-projects (>=1.21.0,<1.22.0)"]
+iotanalytics = ["mypy-boto3-iotanalytics (>=1.21.0,<1.22.0)"]
+iotdeviceadvisor = ["mypy-boto3-iotdeviceadvisor (>=1.21.0,<1.22.0)"]
+iotevents = ["mypy-boto3-iotevents (>=1.21.0,<1.22.0)"]
+iotevents-data = ["mypy-boto3-iotevents-data (>=1.21.0,<1.22.0)"]
+iotfleethub = ["mypy-boto3-iotfleethub (>=1.21.0,<1.22.0)"]
+iotsecuretunneling = ["mypy-boto3-iotsecuretunneling (>=1.21.0,<1.22.0)"]
+iotsitewise = ["mypy-boto3-iotsitewise (>=1.21.0,<1.22.0)"]
+iotthingsgraph = ["mypy-boto3-iotthingsgraph (>=1.21.0,<1.22.0)"]
+iottwinmaker = ["mypy-boto3-iottwinmaker (>=1.21.0,<1.22.0)"]
+iotwireless = ["mypy-boto3-iotwireless (>=1.21.0,<1.22.0)"]
+ivs = ["mypy-boto3-ivs (>=1.21.0,<1.22.0)"]
+kafka = ["mypy-boto3-kafka (>=1.21.0,<1.22.0)"]
+kafkaconnect = ["mypy-boto3-kafkaconnect (>=1.21.0,<1.22.0)"]
+kendra = ["mypy-boto3-kendra (>=1.21.0,<1.22.0)"]
+keyspaces = ["mypy-boto3-keyspaces (>=1.21.0,<1.22.0)"]
+kinesis = ["mypy-boto3-kinesis (>=1.21.0,<1.22.0)"]
+kinesis-video-archived-media = ["mypy-boto3-kinesis-video-archived-media (>=1.21.0,<1.22.0)"]
+kinesis-video-media = ["mypy-boto3-kinesis-video-media (>=1.21.0,<1.22.0)"]
+kinesis-video-signaling = ["mypy-boto3-kinesis-video-signaling (>=1.21.0,<1.22.0)"]
+kinesisanalytics = ["mypy-boto3-kinesisanalytics (>=1.21.0,<1.22.0)"]
+kinesisanalyticsv2 = ["mypy-boto3-kinesisanalyticsv2 (>=1.21.0,<1.22.0)"]
+kinesisvideo = ["mypy-boto3-kinesisvideo (>=1.21.0,<1.22.0)"]
+kms = ["mypy-boto3-kms (>=1.21.0,<1.22.0)"]
+lakeformation = ["mypy-boto3-lakeformation (>=1.21.0,<1.22.0)"]
+lambda = ["mypy-boto3-lambda (>=1.21.0,<1.22.0)"]
+lex-models = ["mypy-boto3-lex-models (>=1.21.0,<1.22.0)"]
+lex-runtime = ["mypy-boto3-lex-runtime (>=1.21.0,<1.22.0)"]
+lexv2-models = ["mypy-boto3-lexv2-models (>=1.21.0,<1.22.0)"]
+lexv2-runtime = ["mypy-boto3-lexv2-runtime (>=1.21.0,<1.22.0)"]
+license-manager = ["mypy-boto3-license-manager (>=1.21.0,<1.22.0)"]
+lightsail = ["mypy-boto3-lightsail (>=1.21.0,<1.22.0)"]
+location = ["mypy-boto3-location (>=1.21.0,<1.22.0)"]
+logs = ["mypy-boto3-logs (>=1.21.0,<1.22.0)"]
+lookoutequipment = ["mypy-boto3-lookoutequipment (>=1.21.0,<1.22.0)"]
+lookoutmetrics = ["mypy-boto3-lookoutmetrics (>=1.21.0,<1.22.0)"]
+lookoutvision = ["mypy-boto3-lookoutvision (>=1.21.0,<1.22.0)"]
+machinelearning = ["mypy-boto3-machinelearning (>=1.21.0,<1.22.0)"]
+macie = ["mypy-boto3-macie (>=1.21.0,<1.22.0)"]
+macie2 = ["mypy-boto3-macie2 (>=1.21.0,<1.22.0)"]
+managedblockchain = ["mypy-boto3-managedblockchain (>=1.21.0,<1.22.0)"]
+marketplace-catalog = ["mypy-boto3-marketplace-catalog (>=1.21.0,<1.22.0)"]
+marketplace-entitlement = ["mypy-boto3-marketplace-entitlement (>=1.21.0,<1.22.0)"]
+marketplacecommerceanalytics = ["mypy-boto3-marketplacecommerceanalytics (>=1.21.0,<1.22.0)"]
+mediaconnect = ["mypy-boto3-mediaconnect (>=1.21.0,<1.22.0)"]
+mediaconvert = ["mypy-boto3-mediaconvert (>=1.21.0,<1.22.0)"]
+medialive = ["mypy-boto3-medialive (>=1.21.0,<1.22.0)"]
+mediapackage = ["mypy-boto3-mediapackage (>=1.21.0,<1.22.0)"]
+mediapackage-vod = ["mypy-boto3-mediapackage-vod (>=1.21.0,<1.22.0)"]
+mediastore = ["mypy-boto3-mediastore (>=1.21.0,<1.22.0)"]
+mediastore-data = ["mypy-boto3-mediastore-data (>=1.21.0,<1.22.0)"]
+mediatailor = ["mypy-boto3-mediatailor (>=1.21.0,<1.22.0)"]
+memorydb = ["mypy-boto3-memorydb (>=1.21.0,<1.22.0)"]
+meteringmarketplace = ["mypy-boto3-meteringmarketplace (>=1.21.0,<1.22.0)"]
+mgh = ["mypy-boto3-mgh (>=1.21.0,<1.22.0)"]
+mgn = ["mypy-boto3-mgn (>=1.21.0,<1.22.0)"]
+migration-hub-refactor-spaces = ["mypy-boto3-migration-hub-refactor-spaces (>=1.21.0,<1.22.0)"]
+migrationhub-config = ["mypy-boto3-migrationhub-config (>=1.21.0,<1.22.0)"]
+migrationhubstrategy = ["mypy-boto3-migrationhubstrategy (>=1.21.0,<1.22.0)"]
+mobile = ["mypy-boto3-mobile (>=1.21.0,<1.22.0)"]
+mq = ["mypy-boto3-mq (>=1.21.0,<1.22.0)"]
+mturk = ["mypy-boto3-mturk (>=1.21.0,<1.22.0)"]
+mwaa = ["mypy-boto3-mwaa (>=1.21.0,<1.22.0)"]
+neptune = ["mypy-boto3-neptune (>=1.21.0,<1.22.0)"]
+network-firewall = ["mypy-boto3-network-firewall (>=1.21.0,<1.22.0)"]
+networkmanager = ["mypy-boto3-networkmanager (>=1.21.0,<1.22.0)"]
+nimble = ["mypy-boto3-nimble (>=1.21.0,<1.22.0)"]
+opensearch = ["mypy-boto3-opensearch (>=1.21.0,<1.22.0)"]
+opsworks = ["mypy-boto3-opsworks (>=1.21.0,<1.22.0)"]
+opsworkscm = ["mypy-boto3-opsworkscm (>=1.21.0,<1.22.0)"]
+organizations = ["mypy-boto3-organizations (>=1.21.0,<1.22.0)"]
+outposts = ["mypy-boto3-outposts (>=1.21.0,<1.22.0)"]
+panorama = ["mypy-boto3-panorama (>=1.21.0,<1.22.0)"]
+personalize = ["mypy-boto3-personalize (>=1.21.0,<1.22.0)"]
+personalize-events = ["mypy-boto3-personalize-events (>=1.21.0,<1.22.0)"]
+personalize-runtime = ["mypy-boto3-personalize-runtime (>=1.21.0,<1.22.0)"]
+pi = ["mypy-boto3-pi (>=1.21.0,<1.22.0)"]
+pinpoint = ["mypy-boto3-pinpoint (>=1.21.0,<1.22.0)"]
+pinpoint-email = ["mypy-boto3-pinpoint-email (>=1.21.0,<1.22.0)"]
+pinpoint-sms-voice = ["mypy-boto3-pinpoint-sms-voice (>=1.21.0,<1.22.0)"]
+pinpoint-sms-voice-v2 = ["mypy-boto3-pinpoint-sms-voice-v2 (>=1.21.0,<1.22.0)"]
+polly = ["mypy-boto3-polly (>=1.21.0,<1.22.0)"]
+pricing = ["mypy-boto3-pricing (>=1.21.0,<1.22.0)"]
+proton = ["mypy-boto3-proton (>=1.21.0,<1.22.0)"]
+qldb = ["mypy-boto3-qldb (>=1.21.0,<1.22.0)"]
+qldb-session = ["mypy-boto3-qldb-session (>=1.21.0,<1.22.0)"]
+quicksight = ["mypy-boto3-quicksight (>=1.21.0,<1.22.0)"]
+ram = ["mypy-boto3-ram (>=1.21.0,<1.22.0)"]
+rbin = ["mypy-boto3-rbin (>=1.21.0,<1.22.0)"]
+rds = ["mypy-boto3-rds (>=1.21.0,<1.22.0)"]
+rds-data = ["mypy-boto3-rds-data (>=1.21.0,<1.22.0)"]
+redshift = ["mypy-boto3-redshift (>=1.21.0,<1.22.0)"]
+redshift-data = ["mypy-boto3-redshift-data (>=1.21.0,<1.22.0)"]
+rekognition = ["mypy-boto3-rekognition (>=1.21.0,<1.22.0)"]
+resiliencehub = ["mypy-boto3-resiliencehub (>=1.21.0,<1.22.0)"]
+resource-groups = ["mypy-boto3-resource-groups (>=1.21.0,<1.22.0)"]
+resourcegroupstaggingapi = ["mypy-boto3-resourcegroupstaggingapi (>=1.21.0,<1.22.0)"]
+robomaker = ["mypy-boto3-robomaker (>=1.21.0,<1.22.0)"]
+route53 = ["mypy-boto3-route53 (>=1.21.0,<1.22.0)"]
+route53-recovery-cluster = ["mypy-boto3-route53-recovery-cluster (>=1.21.0,<1.22.0)"]
+route53-recovery-control-config = ["mypy-boto3-route53-recovery-control-config (>=1.21.0,<1.22.0)"]
+route53-recovery-readiness = ["mypy-boto3-route53-recovery-readiness (>=1.21.0,<1.22.0)"]
+route53domains = ["mypy-boto3-route53domains (>=1.21.0,<1.22.0)"]
+route53resolver = ["mypy-boto3-route53resolver (>=1.21.0,<1.22.0)"]
+rum = ["mypy-boto3-rum (>=1.21.0,<1.22.0)"]
+s3 = ["mypy-boto3-s3 (>=1.21.0,<1.22.0)"]
+s3control = ["mypy-boto3-s3control (>=1.21.0,<1.22.0)"]
+s3outposts = ["mypy-boto3-s3outposts (>=1.21.0,<1.22.0)"]
+sagemaker = ["mypy-boto3-sagemaker (>=1.21.0,<1.22.0)"]
+sagemaker-a2i-runtime = ["mypy-boto3-sagemaker-a2i-runtime (>=1.21.0,<1.22.0)"]
+sagemaker-edge = ["mypy-boto3-sagemaker-edge (>=1.21.0,<1.22.0)"]
+sagemaker-featurestore-runtime = ["mypy-boto3-sagemaker-featurestore-runtime (>=1.21.0,<1.22.0)"]
+sagemaker-runtime = ["mypy-boto3-sagemaker-runtime (>=1.21.0,<1.22.0)"]
+savingsplans = ["mypy-boto3-savingsplans (>=1.21.0,<1.22.0)"]
+schemas = ["mypy-boto3-schemas (>=1.21.0,<1.22.0)"]
+sdb = ["mypy-boto3-sdb (>=1.21.0,<1.22.0)"]
+secretsmanager = ["mypy-boto3-secretsmanager (>=1.21.0,<1.22.0)"]
+securityhub = ["mypy-boto3-securityhub (>=1.21.0,<1.22.0)"]
+serverlessrepo = ["mypy-boto3-serverlessrepo (>=1.21.0,<1.22.0)"]
+service-quotas = ["mypy-boto3-service-quotas (>=1.21.0,<1.22.0)"]
+servicecatalog = ["mypy-boto3-servicecatalog (>=1.21.0,<1.22.0)"]
+servicecatalog-appregistry = ["mypy-boto3-servicecatalog-appregistry (>=1.21.0,<1.22.0)"]
+servicediscovery = ["mypy-boto3-servicediscovery (>=1.21.0,<1.22.0)"]
+ses = ["mypy-boto3-ses (>=1.21.0,<1.22.0)"]
+sesv2 = ["mypy-boto3-sesv2 (>=1.21.0,<1.22.0)"]
+shield = ["mypy-boto3-shield (>=1.21.0,<1.22.0)"]
+signer = ["mypy-boto3-signer (>=1.21.0,<1.22.0)"]
+sms = ["mypy-boto3-sms (>=1.21.0,<1.22.0)"]
+sms-voice = ["mypy-boto3-sms-voice (>=1.21.0,<1.22.0)"]
+snow-device-management = ["mypy-boto3-snow-device-management (>=1.21.0,<1.22.0)"]
+snowball = ["mypy-boto3-snowball (>=1.21.0,<1.22.0)"]
+sns = ["mypy-boto3-sns (>=1.21.0,<1.22.0)"]
+sqs = ["mypy-boto3-sqs (>=1.21.0,<1.22.0)"]
+ssm = ["mypy-boto3-ssm (>=1.21.0,<1.22.0)"]
+ssm-contacts = ["mypy-boto3-ssm-contacts (>=1.21.0,<1.22.0)"]
+ssm-incidents = ["mypy-boto3-ssm-incidents (>=1.21.0,<1.22.0)"]
+sso = ["mypy-boto3-sso (>=1.21.0,<1.22.0)"]
+sso-admin = ["mypy-boto3-sso-admin (>=1.21.0,<1.22.0)"]
+sso-oidc = ["mypy-boto3-sso-oidc (>=1.21.0,<1.22.0)"]
+stepfunctions = ["mypy-boto3-stepfunctions (>=1.21.0,<1.22.0)"]
+storagegateway = ["mypy-boto3-storagegateway (>=1.21.0,<1.22.0)"]
+sts = ["mypy-boto3-sts (>=1.21.0,<1.22.0)"]
+support = ["mypy-boto3-support (>=1.21.0,<1.22.0)"]
+swf = ["mypy-boto3-swf (>=1.21.0,<1.22.0)"]
+synthetics = ["mypy-boto3-synthetics (>=1.21.0,<1.22.0)"]
+textract = ["mypy-boto3-textract (>=1.21.0,<1.22.0)"]
+timestream-query = ["mypy-boto3-timestream-query (>=1.21.0,<1.22.0)"]
+timestream-write = ["mypy-boto3-timestream-write (>=1.21.0,<1.22.0)"]
+transcribe = ["mypy-boto3-transcribe (>=1.21.0,<1.22.0)"]
+transfer = ["mypy-boto3-transfer (>=1.21.0,<1.22.0)"]
+translate = ["mypy-boto3-translate (>=1.21.0,<1.22.0)"]
+voice-id = ["mypy-boto3-voice-id (>=1.21.0,<1.22.0)"]
+waf = ["mypy-boto3-waf (>=1.21.0,<1.22.0)"]
+waf-regional = ["mypy-boto3-waf-regional (>=1.21.0,<1.22.0)"]
+wafv2 = ["mypy-boto3-wafv2 (>=1.21.0,<1.22.0)"]
+wellarchitected = ["mypy-boto3-wellarchitected (>=1.21.0,<1.22.0)"]
+wisdom = ["mypy-boto3-wisdom (>=1.21.0,<1.22.0)"]
+workdocs = ["mypy-boto3-workdocs (>=1.21.0,<1.22.0)"]
+worklink = ["mypy-boto3-worklink (>=1.21.0,<1.22.0)"]
+workmail = ["mypy-boto3-workmail (>=1.21.0,<1.22.0)"]
+workmailmessageflow = ["mypy-boto3-workmailmessageflow (>=1.21.0,<1.22.0)"]
+workspaces = ["mypy-boto3-workspaces (>=1.21.0,<1.22.0)"]
+workspaces-web = ["mypy-boto3-workspaces-web (>=1.21.0,<1.22.0)"]
+xray = ["mypy-boto3-xray (>=1.21.0,<1.22.0)"]
 
 [[package]]
 name = "botocore"
@@ -1483,6 +1491,17 @@ python-versions = ">=3.6"
 [package.dependencies]
 typing-extensions = {version = "*", markers = "python_version < \"3.9\""}
 
+[[package]]
+name = "mypy-boto3-billingconductor"
+version = "1.21.34"
+description = "Type annotations for boto3.BillingConductor 1.21.34 service generated with mypy-boto3-builder 7.5.8"
+category = "dev"
+optional = false
+python-versions = ">=3.6"
+
+[package.dependencies]
+typing-extensions = ">=4.1.0"
+
 [[package]]
 name = "mypy-boto3-braket"
 version = "1.21.0"
@@ -2429,6 +2448,17 @@ python-versions = ">=3.6"
 [package.dependencies]
 typing-extensions = {version = "*", markers = "python_version < \"3.9\""}
 
+[[package]]
+name = "mypy-boto3-gamesparks"
+version = "1.21.34"
+description = "Type annotations for boto3.GameSparks 1.21.34 service generated with mypy-boto3-builder 7.5.8"
+category = "dev"
+optional = false
+python-versions = ">=3.6"
+
+[package.dependencies]
+typing-extensions = ">=4.1.0"
+
 [[package]]
 name = "mypy-boto3-glacier"
 version = "1.21.0"
@@ -2825,6 +2855,17 @@ python-versions = ">=3.6"
 [package.dependencies]
 typing-extensions = {version = "*", markers = "python_version < \"3.9\""}
 
+[[package]]
+name = "mypy-boto3-keyspaces"
+version = "1.21.34"
+description = "Type annotations for boto3.Keyspaces 1.21.34 service generated with mypy-boto3-builder 7.5.8"
+category = "dev"
+optional = false
+python-versions = ">=3.6"
+
+[package.dependencies]
+typing-extensions = ">=4.1.0"
+
 [[package]]
 name = "mypy-boto3-kinesis"
 version = "1.21.0"
@@ -3529,6 +3570,17 @@ python-versions = ">=3.6"
 [package.dependencies]
 typing-extensions = {version = "*", markers = "python_version < \"3.9\""}
 
+[[package]]
+name = "mypy-boto3-pinpoint-sms-voice-v2"
+version = "1.21.34"
+description = "Type annotations for boto3.PinpointSMSVoiceV2 1.21.34 service generated with mypy-boto3-builder 7.5.8"
+category = "dev"
+optional = false
+python-versions = ">=3.6"
+
+[package.dependencies]
+typing-extensions = ">=4.1.0"
+
 [[package]]
 name = "mypy-boto3-polly"
 version = "1.21.0"
@@ -4902,7 +4954,7 @@ sqs = ["mypy-boto3-sqs"]
 [metadata]
 lock-version = "1.1"
 python-versions = "^3.7"
-content-hash = "2cb7a37dd1fbc68e78617d88503ba1086306eb7b0324293d12d100754908f455"
+content-hash = "3561fe7895cb3fb82604da67a08312b462d2a9037a8a4ae4a56563a8410132aa"
 
 [metadata.files]
 astroid = [
@@ -4939,8 +4991,8 @@ boto3 = [
     {file = "boto3-1.21.4.tar.gz", hash = "sha256:bbe4f4ddfc13469d306f0ca5fa77441ec37ad50dc270755e93260aeafb06d3d1"},
 ]
 boto3-stubs = [
-    {file = "boto3-stubs-1.21.4.tar.gz", hash = "sha256:08ccd117fad49b67f15259bb66699d5efcccda3dc68b7ff505b4555ee63dda3d"},
-    {file = "boto3_stubs-1.21.4-py3-none-any.whl", hash = "sha256:cbec6cbe067859f73bcc98bdf46378797d41f671e0eb6c33a8c2654af12bf4fb"},
+    {file = "boto3-stubs-1.21.37.tar.gz", hash = "sha256:1fa208a4a2d91550b031e82037397eb9a5fcfd0295f4795bc412219e86be1e8b"},
+    {file = "boto3_stubs-1.21.37-py3-none-any.whl", hash = "sha256:df790210ef992dfcee47d4d83a848f017380b58266cba6a50cfd8fbe6e6839ef"},
 ]
 botocore = [
     {file = "botocore-1.24.4-py3-none-any.whl", hash = "sha256:692fcad31733674c8faffc65da8ddc8ab4839f407ad8470c103e0e7aed9c7556"},
@@ -5365,6 +5417,10 @@ mypy-boto3-batch = [
     {file = "mypy-boto3-batch-1.21.0.tar.gz", hash = "sha256:2cc76e73c85b9cc2900bd90a9d897ae2d4eb1c84edce04cd7258160836027778"},
     {file = "mypy_boto3_batch-1.21.0-py3-none-any.whl", hash = "sha256:cc4e8e5bddb2060fc0951bedbc7a88c28893c808349c062bbd3ed142084ff29d"},
 ]
+mypy-boto3-billingconductor = [
+    {file = "mypy-boto3-billingconductor-1.21.34.tar.gz", hash = "sha256:ce5b407e1ff75beccd0efcb857d3e51740cc41c505a52a5c413d6774b11f7214"},
+    {file = "mypy_boto3_billingconductor-1.21.34-py3-none-any.whl", hash = "sha256:ff8a8d5f6e75af07d7632f6049f48f8537164875831a8784d966c0c6a4dcdea9"},
+]
 mypy-boto3-braket = [
     {file = "mypy-boto3-braket-1.21.0.tar.gz", hash = "sha256:d3bee34f3eb105a6cf6759daca3936c3dfca00da5fbfd6c23350882cbd93d76b"},
     {file = "mypy_boto3_braket-1.21.0-py3-none-any.whl", hash = "sha256:5579f894b5253a9f24fd69c7abb8aaadf310af0d3b3abe458ca7da7ff60c4e1f"},
@@ -5709,6 +5765,10 @@ mypy-boto3-gamelift = [
     {file = "mypy-boto3-gamelift-1.21.3.tar.gz", hash = "sha256:33365ffae627cdb403fe51d94fffc228caaa918339ea93b8d5a6b79518db9313"},
     {file = "mypy_boto3_gamelift-1.21.3-py3-none-any.whl", hash = "sha256:cb519428dc8351294c703e3acf100db9321720fd7b88653d7c0542b735842b55"},
 ]
+mypy-boto3-gamesparks = [
+    {file = "mypy-boto3-gamesparks-1.21.34.tar.gz", hash = "sha256:efd872196bd286dfe51204992d014f0d7bc83e0d0d2e57045cae79bf6ea08ceb"},
+    {file = "mypy_boto3_gamesparks-1.21.34-py3-none-any.whl", hash = "sha256:67bcea880f0bdeeb804d56189419125fda06f3f846ada16a7ab7c672842dc9a9"},
+]
 mypy-boto3-glacier = [
     {file = "mypy-boto3-glacier-1.21.0.tar.gz", hash = "sha256:14e5798330ff4d490d88fd10bd483380a69b8c1a3eb8cccfa7de2d9044673b97"},
     {file = "mypy_boto3_glacier-1.21.0-py3-none-any.whl", hash = "sha256:3fdbdbb6413e2e0744ca6fdced27867f76382487047504f0c316c56eff3c4a24"},
@@ -5853,6 +5913,10 @@ mypy-boto3-kendra = [
     {file = "mypy-boto3-kendra-1.21.0.tar.gz", hash = "sha256:f63e1b79070d2189611f09982ba6db6722490d1158c16310b13b5320e497c8c6"},
     {file = "mypy_boto3_kendra-1.21.0-py3-none-any.whl", hash = "sha256:8eab7a195fa2a9c4a283cd375d86170d3fbc95265b4b57123ae245d03390dad9"},
 ]
+mypy-boto3-keyspaces = [
+    {file = "mypy-boto3-keyspaces-1.21.34.tar.gz", hash = "sha256:bfe8368104f3b7024b5492401718705fbf04ef93da7aed54b45749ce693463b9"},
+    {file = "mypy_boto3_keyspaces-1.21.34-py3-none-any.whl", hash = "sha256:cbd2a0005e59f0f8722a4b6ed0eab1ca835d7a44a9caf7e4cafdd821a12aea2d"},
+]
 mypy-boto3-kinesis = [
     {file = "mypy-boto3-kinesis-1.21.0.tar.gz", hash = "sha256:39690cd89fdba10560f55bc38c6a4e1ee68f39f97feb08374ac26b1dffe3ec64"},
     {file = "mypy_boto3_kinesis-1.21.0-py3-none-any.whl", hash = "sha256:d3c09304c66dd840da3f443155cdc091d4c50dcb4d9dedbb7ab5c3fa0e5502d2"},
@@ -6109,6 +6173,10 @@ mypy-boto3-pinpoint-sms-voice = [
     {file = "mypy-boto3-pinpoint-sms-voice-1.21.0.tar.gz", hash = "sha256:e41c1ab06511575928a8c4d1d0773b1196b08a149a53efa2884001a65a6282a8"},
     {file = "mypy_boto3_pinpoint_sms_voice-1.21.0-py3-none-any.whl", hash = "sha256:6da1fa88bcecabd3d9c78f531f351644e309a6b56a2765f40f8ccaa763dc0219"},
 ]
+mypy-boto3-pinpoint-sms-voice-v2 = [
+    {file = "mypy-boto3-pinpoint-sms-voice-v2-1.21.34.tar.gz", hash = "sha256:aa942a9f45eb1fecafcbc65de214f11999c49fc53b22ebe8530c339b05c5ce22"},
+    {file = "mypy_boto3_pinpoint_sms_voice_v2-1.21.34-py3-none-any.whl", hash = "sha256:ea3597417ca83cf5eb9ebf32cf39f8029767cb1c7f09f50be2975787d3bae11d"},
+]
 mypy-boto3-polly = [
     {file = "mypy-boto3-polly-1.21.0.tar.gz", hash = "sha256:6c1eec0e1625ad83f1187984365bc22ed95a81872e7f0c7822fc68be429f5aee"},
     {file = "mypy_boto3_polly-1.21.0-py3-none-any.whl", hash = "sha256:095bc26c4c93c8ee4ffaf32a6560dc52de1618bae2e3354ea4d09db3b58cca92"},


Test patch:
diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
deleted file mode 100644
index 3fc5dc7..0000000
--- a/.github/workflows/test.yml
+++ /dev/null
@@ -1,28 +0,0 @@
-name: Test
-on:
-  pull_request:
-    branches:
-      - main
-  workflow_dispatch:
-
-jobs:
-  lint_and_test:
-    strategy:
-      fail-fast: false
-      matrix:
-        python-version:
-          - '3.7'
-          - '3.8'
-          - '3.9'
-          - '3.10'
-    runs-on: ubuntu-latest
-    container: ghcr.io/beartype/bearboto3:${{ matrix.python-version }}
-    steps:
-      - name: Clone repo
-        uses: actions/checkout@v2
-
-      - name: Lint code
-        run: pylint bearboto3
-      
-      - name: Run unit tests
-        run: pytest
diff --git a/tests/integration/bearboto3.whl b/tests/integration/bearboto3.whl
deleted file mode 120000
index b66ebc2..0000000
--- a/tests/integration/bearboto3.whl
+++ /dev/null
@@ -1,1 +0,0 @@
-../../dist/bearboto3-0.1.2-py3-none-any.whl
\ No newline at end of file
diff --git a/tests/integration/poetry.lock b/tests/integration/poetry.lock
deleted file mode 100644
index 3706636..0000000
--- a/tests/integration/poetry.lock
+++ /dev/null
@@ -1,166 +0,0 @@
-[[package]]
-name = "bearboto3"
-version = "0.1.2"
-description = "Facilitates using beartype runtime type-checking with the AWS SDK"
-category = "main"
-optional = false
-python-versions = ">=3.7,<4.0"
-
-[package.dependencies]
-beartype = ">=0.9.0"
-
-[package.extras]
-dynamodb = ["mypy-boto3-dynamodb (>=1.21.4,<2.0.0)"]
-ec2 = ["mypy-boto3-ec2 (>=1.21.1,<2.0.0)"]
-iam = ["mypy-boto3-iam (>=1.21.2,<2.0.0)"]
-lambda = ["mypy-boto3-lambda (>=1.21.0,<2.0.0)"]
-s3 = ["mypy-boto3-s3 (>=1.21.0,<2.0.0)"]
-sns = ["mypy-boto3-sns (>=1.21.0,<2.0.0)"]
-sqs = ["mypy-boto3-sqs (>=1.21.0,<2.0.0)"]
-
-[package.source]
-type = "file"
-url = "../../dist/bearboto3-0.1.2-py3-none-any.whl"
-
-[[package]]
-name = "beartype"
-version = "0.10.2"
-description = "Unbearably fast runtime type checking in pure Python."
-category = "main"
-optional = false
-python-versions = ">=3.6.0"
-
-[package.extras]
-all = ["typing-extensions (>=3.10.0.0)"]
-dev = ["coverage (>=5.5)", "sphinx", "typing-extensions", "mypy (>=0.800)", "numpy", "pytest (>=4.0.0)", "tox (>=3.20.1)", "sphinx (>=4.1.0)"]
-doc-rtd = ["sphinx (==4.1.0)", "sphinx-rtd-theme (==0.5.1)"]
-test-tox = ["sphinx", "typing-extensions", "mypy (>=0.800)", "numpy", "pytest (>=4.0.0)"]
-test-tox-coverage = ["coverage (>=5.5)"]
-
-[[package]]
-name = "boto3"
-version = "1.21.13"
-description = "The AWS SDK for Python"
-category = "main"
-optional = false
-python-versions = ">= 3.6"
-
-[package.dependencies]
-botocore = ">=1.24.13,<1.25.0"
-jmespath = ">=0.7.1,<1.0.0"
-s3transfer = ">=0.5.0,<0.6.0"
-
-[package.extras]
-crt = ["botocore[crt] (>=1.21.0,<2.0a0)"]
-
-[[package]]
-name = "botocore"
-version = "1.24.13"
-description = "Low-level, data-driven core of boto 3."
-category = "main"
-optional = false
-python-versions = ">= 3.6"
-
-[package.dependencies]
-jmespath = ">=0.7.1,<1.0.0"
-python-dateutil = ">=2.1,<3.0.0"
-urllib3 = ">=1.25.4,<1.27"
-
-[package.extras]
-crt = ["awscrt (==0.12.5)"]
-
-[[package]]
-name = "jmespath"
-version = "0.10.0"
-description = "JSON Matching Expressions"
-category = "main"
-optional = false
-python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*"
-
-[[package]]
-name = "python-dateutil"
-version = "2.8.2"
-description = "Extensions to the standard Python datetime module"
-category = "main"
-optional = false
-python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7"
-
-[package.dependencies]
-six = ">=1.5"
-
-[[package]]
-name = "s3transfer"
-version = "0.5.2"
-description = "An Amazon S3 Transfer Manager"
-category = "main"
-optional = false
-python-versions = ">= 3.6"
-
-[package.dependencies]
-botocore = ">=1.12.36,<2.0a.0"
-
-[package.extras]
-crt = ["botocore[crt] (>=1.20.29,<2.0a.0)"]
-
-[[package]]
-name = "six"
-version = "1.16.0"
-description = "Python 2 and 3 compatibility utilities"
-category = "main"
-optional = false
-python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*"
-
-[[package]]
-name = "urllib3"
-version = "1.26.8"
-description = "HTTP library with thread-safe connection pooling, file post, and more."
-category = "main"
-optional = false
-python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, <4"
-
-[package.extras]
-brotli = ["brotlipy (>=0.6.0)"]
-secure = ["pyOpenSSL (>=0.14)", "cryptography (>=1.3.4)", "idna (>=2.0.0)", "certifi", "ipaddress"]
-socks = ["PySocks (>=1.5.6,!=1.5.7,<2.0)"]
-
-[metadata]
-lock-version = "1.1"
-python-versions = "^3.7"
-content-hash = "aee44204e6c82821d1bc49e3c7a74ee52306660c31174aedd68ca82af836a852"
-
-[metadata.files]
-bearboto3 = [
-    {file = "bearboto3.whl", hash = "sha256:af8dfaea8b372e3c6173d446245454748eefeec158a3f33140d095e540436398"},
-]
-beartype = [
-    {file = "beartype-0.10.2-py3-none-any.whl", hash = "sha256:6e05f9825917219d9380f76a4ba31d8ff29de36556abed70ddc8da7ac59f6d13"},
-    {file = "beartype-0.10.2.tar.gz", hash = "sha256:2e8d405318fe411ecdd937627f9f33181312a793ebd239b3da769c4439cb4b98"},
-]
-boto3 = [
-    {file = "boto3-1.21.13-py3-none-any.whl", hash = "sha256:e17d994d222162dac02ec32fde6ae910d819ebf239a94dddcee47def2c82b9c9"},
-    {file = "boto3-1.21.13.tar.gz", hash = "sha256:16fae86d0c4993fd5112128bb4622a879f02363bccd045153cc0bbd7722cc9a5"},
-]
-botocore = [
-    {file = "botocore-1.24.13-py3-none-any.whl", hash = "sha256:7b166096f9413b41caf7cc6f4edfd5b3c3ab9d7c61eb120a649e69485c98131a"},
-    {file = "botocore-1.24.13.tar.gz", hash = "sha256:46e51f56f1c5784e4245e036503635fa71b722775657b6e1acf21ec5b906974c"},
-]
-jmespath = [
-    {file = "jmespath-0.10.0-py2.py3-none-any.whl", hash = "sha256:cdf6525904cc597730141d61b36f2e4b8ecc257c420fa2f4549bac2c2d0cb72f"},
-    {file = "jmespath-0.10.0.tar.gz", hash = "sha256:b85d0567b8666149a93172712e68920734333c0ce7e89b78b3e987f71e5ed4f9"},
-]
-python-dateutil = [
-    {file = "python-dateutil-2.8.2.tar.gz", hash = "sha256:0123cacc1627ae19ddf3c27a5de5bd67ee4586fbdd6440d9748f8abb483d3e86"},
-    {file = "python_dateutil-2.8.2-py2.py3-none-any.whl", hash = "sha256:961d03dc3453ebbc59dbdea9e4e11c5651520a876d0f4db161e8674aae935da9"},
-]
-s3transfer = [
-    {file = "s3transfer-0.5.2-py3-none-any.whl", hash = "sha256:7a6f4c4d1fdb9a2b640244008e142cbc2cd3ae34b386584ef044dd0f27101971"},
-    {file = "s3transfer-0.5.2.tar.gz", hash = "sha256:95c58c194ce657a5f4fb0b9e60a84968c808888aed628cd98ab8771fe1db98ed"},
-]
-six = [
-    {file = "six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"},
-    {file = "six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926"},
-]
-urllib3 = [
-    {file = "urllib3-1.26.8-py2.py3-none-any.whl", hash = "sha256:000ca7f471a233c2251c6c7023ee85305721bfdf18621ebff4fd17a8653427ed"},
-    {file = "urllib3-1.26.8.tar.gz", hash = "sha256:0e7c33d9a63e7ddfcb86780aac87befc2fbddf46c58dbb487e0855f7ceec283c"},
-]