localstack-sdk-python 0.0.2__tar.gz → 0.0.3__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- localstack_sdk_python-0.0.3/.github/workflows/test.yml +63 -0
- localstack_sdk_python-0.0.3/.gitignore +66 -0
- localstack_sdk_python-0.0.3/Makefile +36 -0
- {localstack_sdk_python-0.0.2 → localstack_sdk_python-0.0.3}/PKG-INFO +1 -1
- localstack_sdk_python-0.0.3/bin/generate.sh +15 -0
- localstack_sdk_python-0.0.3/localstack-sdk-python/localstack/sdk/aws/__init__.py +3 -0
- localstack_sdk_python-0.0.3/localstack-sdk-python/localstack/sdk/aws/client.py +68 -0
- localstack_sdk_python-0.0.3/localstack-sdk-python/localstack/sdk/state/__init__.py +3 -0
- localstack_sdk_python-0.0.3/localstack-sdk-python/localstack/sdk/state/client.py +11 -0
- {localstack_sdk_python-0.0.2 → localstack_sdk_python-0.0.3}/localstack-sdk-python/localstack_sdk_python.egg-info/PKG-INFO +1 -1
- localstack_sdk_python-0.0.3/localstack-sdk-python/localstack_sdk_python.egg-info/SOURCES.txt +109 -0
- localstack_sdk_python-0.0.3/packages/localstack-sdk-generated/.gitignore +66 -0
- localstack_sdk_python-0.0.3/packages/localstack-sdk-generated/.openapi-generator/FILES +71 -0
- localstack_sdk_python-0.0.3/packages/localstack-sdk-generated/.openapi-generator/VERSION +1 -0
- localstack_sdk_python-0.0.3/packages/localstack-sdk-generated/.openapi-generator-ignore +14 -0
- localstack_sdk_python-0.0.3/packages/localstack-sdk-generated/localstack/sdk/api/__init__.py +11 -0
- localstack_sdk_python-0.0.3/packages/localstack-sdk-generated/localstack/sdk/api/aws_api.py +7644 -0
- localstack_sdk_python-0.0.3/packages/localstack-sdk-generated/localstack/sdk/api/chaos_api.py +1624 -0
- localstack_sdk_python-0.0.3/packages/localstack-sdk-generated/localstack/sdk/api/default_api.py +690 -0
- localstack_sdk_python-0.0.3/packages/localstack-sdk-generated/localstack/sdk/api/localstack_api.py +3107 -0
- localstack_sdk_python-0.0.3/packages/localstack-sdk-generated/localstack/sdk/api/pods_api.py +3722 -0
- localstack_sdk_python-0.0.3/packages/localstack-sdk-generated/localstack/sdk/api/pro_api.py +10864 -0
- localstack_sdk_python-0.0.3/packages/localstack-sdk-generated/localstack/sdk/api/state_api.py +1546 -0
- localstack_sdk_python-0.0.3/packages/localstack-sdk-generated/localstack/sdk/api_client.py +798 -0
- localstack_sdk_python-0.0.3/packages/localstack-sdk-generated/localstack/sdk/api_response.py +21 -0
- localstack_sdk_python-0.0.3/packages/localstack-sdk-generated/localstack/sdk/configuration.py +461 -0
- localstack_sdk_python-0.0.3/packages/localstack-sdk-generated/localstack/sdk/exceptions.py +200 -0
- localstack_sdk_python-0.0.3/packages/localstack-sdk-generated/localstack/sdk/models/__init__.py +70 -0
- localstack_sdk_python-0.0.3/packages/localstack-sdk-generated/localstack/sdk/models/aws_pinpoint_application_id_reference_id_get200_response.py +129 -0
- localstack_sdk_python-0.0.3/packages/localstack-sdk-generated/localstack/sdk/models/cloud_watch_metrics.py +109 -0
- localstack_sdk_python-0.0.3/packages/localstack-sdk-generated/localstack/sdk/models/cloud_watch_metrics_metrics_inner.py +116 -0
- localstack_sdk_python-0.0.3/packages/localstack-sdk-generated/localstack/sdk/models/cloud_watch_metrics_metrics_inner_d_inner.py +94 -0
- localstack_sdk_python-0.0.3/packages/localstack-sdk-generated/localstack/sdk/models/cloud_watch_metrics_metrics_inner_d_inner_v.py +144 -0
- localstack_sdk_python-0.0.3/packages/localstack-sdk-generated/localstack/sdk/models/cloud_watch_metrics_metrics_inner_t.py +145 -0
- localstack_sdk_python-0.0.3/packages/localstack-sdk-generated/localstack/sdk/models/cloud_watch_metrics_metrics_inner_v.py +144 -0
- localstack_sdk_python-0.0.3/packages/localstack-sdk-generated/localstack/sdk/models/create_remote_request.py +90 -0
- localstack_sdk_python-0.0.3/packages/localstack-sdk-generated/localstack/sdk/models/delete_ddb_expired_items200_response.py +101 -0
- localstack_sdk_python-0.0.3/packages/localstack-sdk-generated/localstack/sdk/models/fault_rule.py +146 -0
- localstack_sdk_python-0.0.3/packages/localstack-sdk-generated/localstack/sdk/models/fault_rule_error.py +101 -0
- localstack_sdk_python-0.0.3/packages/localstack-sdk-generated/localstack/sdk/models/get_diagnostics200_response.py +131 -0
- localstack_sdk_python-0.0.3/packages/localstack-sdk-generated/localstack/sdk/models/get_diagnostics200_response_logs.py +101 -0
- localstack_sdk_python-0.0.3/packages/localstack-sdk-generated/localstack/sdk/models/get_diagnostics200_response_version.py +117 -0
- localstack_sdk_python-0.0.3/packages/localstack-sdk-generated/localstack/sdk/models/get_diagnostics200_response_version_host.py +101 -0
- localstack_sdk_python-0.0.3/packages/localstack-sdk-generated/localstack/sdk/models/get_diagnostics200_response_version_image_version.py +107 -0
- localstack_sdk_python-0.0.3/packages/localstack-sdk-generated/localstack/sdk/models/get_diagnostics200_response_version_localstack_version.py +105 -0
- localstack_sdk_python-0.0.3/packages/localstack-sdk-generated/localstack/sdk/models/get_features_and_services200_response.py +114 -0
- localstack_sdk_python-0.0.3/packages/localstack-sdk-generated/localstack/sdk/models/get_lambda_runtimes200_response.py +101 -0
- localstack_sdk_python-0.0.3/packages/localstack-sdk-generated/localstack/sdk/models/get_remote200_response.py +92 -0
- localstack_sdk_python-0.0.3/packages/localstack-sdk-generated/localstack/sdk/models/get_ses_messages200_response.py +109 -0
- localstack_sdk_python-0.0.3/packages/localstack-sdk-generated/localstack/sdk/models/get_sns_messages200_response.py +103 -0
- localstack_sdk_python-0.0.3/packages/localstack-sdk-generated/localstack/sdk/models/get_sns_sms_messages200_response.py +103 -0
- localstack_sdk_python-0.0.3/packages/localstack-sdk-generated/localstack/sdk/models/get_sns_subscription_token200_response.py +103 -0
- localstack_sdk_python-0.0.3/packages/localstack-sdk-generated/localstack/sdk/models/init_scripts.py +115 -0
- localstack_sdk_python-0.0.3/packages/localstack-sdk-generated/localstack/sdk/models/init_scripts_completed.py +94 -0
- localstack_sdk_python-0.0.3/packages/localstack-sdk-generated/localstack/sdk/models/init_scripts_scripts_inner.py +92 -0
- localstack_sdk_python-0.0.3/packages/localstack-sdk-generated/localstack/sdk/models/init_scripts_stage.py +111 -0
- localstack_sdk_python-0.0.3/packages/localstack-sdk-generated/localstack/sdk/models/init_scripts_stage_scripts_inner.py +92 -0
- localstack_sdk_python-0.0.3/packages/localstack-sdk-generated/localstack/sdk/models/list_remotes200_response.py +96 -0
- localstack_sdk_python-0.0.3/packages/localstack-sdk-generated/localstack/sdk/models/list_remotes200_response_remotes_inner.py +94 -0
- localstack_sdk_python-0.0.3/packages/localstack-sdk-generated/localstack/sdk/models/localstack_pods_environment_get200_response.py +94 -0
- localstack_sdk_python-0.0.3/packages/localstack-sdk-generated/localstack/sdk/models/localstack_stackinfo_get200_response.py +123 -0
- localstack_sdk_python-0.0.3/packages/localstack-sdk-generated/localstack/sdk/models/manage_session_request.py +108 -0
- localstack_sdk_python-0.0.3/packages/localstack-sdk-generated/localstack/sdk/models/message.py +118 -0
- localstack_sdk_python-0.0.3/packages/localstack-sdk-generated/localstack/sdk/models/network_effects_config.py +89 -0
- localstack_sdk_python-0.0.3/packages/localstack-sdk-generated/localstack/sdk/models/pod_list.py +109 -0
- localstack_sdk_python-0.0.3/packages/localstack-sdk-generated/localstack/sdk/models/pod_list_cloudpods_inner.py +92 -0
- localstack_sdk_python-0.0.3/packages/localstack-sdk-generated/localstack/sdk/models/pod_remote.py +101 -0
- localstack_sdk_python-0.0.3/packages/localstack-sdk-generated/localstack/sdk/models/pod_save_request.py +90 -0
- localstack_sdk_python-0.0.3/packages/localstack-sdk-generated/localstack/sdk/models/pod_versions.py +98 -0
- localstack_sdk_python-0.0.3/packages/localstack-sdk-generated/localstack/sdk/models/pod_versions_versions_inner.py +119 -0
- localstack_sdk_python-0.0.3/packages/localstack-sdk-generated/localstack/sdk/models/receive_message_request.py +102 -0
- localstack_sdk_python-0.0.3/packages/localstack-sdk-generated/localstack/sdk/models/receive_message_result.py +96 -0
- localstack_sdk_python-0.0.3/packages/localstack-sdk-generated/localstack/sdk/models/remote_config.py +141 -0
- localstack_sdk_python-0.0.3/packages/localstack-sdk-generated/localstack/sdk/models/remote_config_one_of.py +88 -0
- localstack_sdk_python-0.0.3/packages/localstack-sdk-generated/localstack/sdk/models/ses_sent_email.py +127 -0
- localstack_sdk_python-0.0.3/packages/localstack-sdk-generated/localstack/sdk/models/ses_sent_email_body.py +90 -0
- localstack_sdk_python-0.0.3/packages/localstack-sdk-generated/localstack/sdk/models/session_info.py +104 -0
- localstack_sdk_python-0.0.3/packages/localstack-sdk-generated/localstack/sdk/models/sns_subscription_token_error.py +90 -0
- localstack_sdk_python-0.0.3/packages/localstack-sdk-generated/localstack/sdk/models/state_result.py +92 -0
- localstack_sdk_python-0.0.3/packages/localstack-sdk-generated/localstack/sdk/models/store_data200_response.py +101 -0
- localstack_sdk_python-0.0.3/packages/localstack-sdk-generated/localstack/sdk/models/update_config_option200_response.py +103 -0
- localstack_sdk_python-0.0.3/packages/localstack-sdk-generated/localstack/sdk/models/update_config_option_request.py +111 -0
- localstack_sdk_python-0.0.3/packages/localstack-sdk-generated/localstack/sdk/py.typed +0 -0
- localstack_sdk_python-0.0.3/packages/localstack-sdk-generated/localstack/sdk/rest.py +263 -0
- localstack_sdk_python-0.0.3/packages/localstack-sdk-generated/pyproject.toml +30 -0
- localstack_sdk_python-0.0.3/packages/localstack-sdk-generated/requirements.txt +4 -0
- localstack_sdk_python-0.0.3/packages/localstack-sdk-generated/templates/pyproject.mustache +30 -0
- localstack_sdk_python-0.0.3/packages/localstack-sdk-generated/templates/rest.mustache +252 -0
- {localstack_sdk_python-0.0.2 → localstack_sdk_python-0.0.3}/pyproject.toml +3 -2
- localstack_sdk_python-0.0.3/requirements-spec.txt +2 -0
- localstack_sdk_python-0.0.3/scripts/create_spec.py +20 -0
- localstack_sdk_python-0.0.3/tests/__init__.py +0 -0
- localstack_sdk_python-0.0.3/tests/integration/__init__.py +0 -0
- localstack_sdk_python-0.0.3/tests/integration/test_aws.py +142 -0
- localstack_sdk_python-0.0.3/tests/integration/test_chaos.py +36 -0
- localstack_sdk_python-0.0.3/tests/integration/test_pods.py +16 -0
- localstack_sdk_python-0.0.3/tests/integration/test_state.py +26 -0
- localstack_sdk_python-0.0.3/tests/utils.py +5 -0
- localstack_sdk_python-0.0.3/uv.lock +298 -0
- localstack_sdk_python-0.0.2/localstack-sdk-python/localstack_sdk_python.egg-info/SOURCES.txt +0 -14
- {localstack_sdk_python-0.0.2 → localstack_sdk_python-0.0.3}/LICENSE.txt +0 -0
- {localstack_sdk_python-0.0.2 → localstack_sdk_python-0.0.3}/README.md +0 -0
- {localstack_sdk_python-0.0.2 → localstack_sdk_python-0.0.3}/localstack-sdk-python/localstack/clients.py +0 -0
- {localstack_sdk_python-0.0.2 → localstack_sdk_python-0.0.3}/localstack-sdk-python/localstack/sdk/chaos/__init__.py +0 -0
- {localstack_sdk_python-0.0.2 → localstack_sdk_python-0.0.3}/localstack-sdk-python/localstack/sdk/chaos/client.py +0 -0
- {localstack_sdk_python-0.0.2 → localstack_sdk_python-0.0.3}/localstack-sdk-python/localstack/sdk/chaos/managers.py +0 -0
- {localstack_sdk_python-0.0.2 → localstack_sdk_python-0.0.3}/localstack-sdk-python/localstack/sdk/pods/__init__.py +0 -0
- {localstack_sdk_python-0.0.2 → localstack_sdk_python-0.0.3}/localstack-sdk-python/localstack/sdk/pods/client.py +0 -0
- {localstack_sdk_python-0.0.2 → localstack_sdk_python-0.0.3}/localstack-sdk-python/localstack_sdk_python.egg-info/dependency_links.txt +0 -0
- {localstack_sdk_python-0.0.2 → localstack_sdk_python-0.0.3}/localstack-sdk-python/localstack_sdk_python.egg-info/requires.txt +0 -0
- {localstack_sdk_python-0.0.2 → localstack_sdk_python-0.0.3}/localstack-sdk-python/localstack_sdk_python.egg-info/top_level.txt +0 -0
- {localstack_sdk_python-0.0.2 → localstack_sdk_python-0.0.3}/setup.cfg +0 -0
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
name: Python LocalStack Client / Run Test
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
pull_request:
|
|
5
|
+
paths:
|
|
6
|
+
- .github/workflows/test.yml
|
|
7
|
+
- localstack-sdk-python/**
|
|
8
|
+
- tests/**
|
|
9
|
+
- packages/**
|
|
10
|
+
push:
|
|
11
|
+
branches:
|
|
12
|
+
- main
|
|
13
|
+
workflow_dispatch:
|
|
14
|
+
|
|
15
|
+
jobs:
|
|
16
|
+
|
|
17
|
+
test_python:
|
|
18
|
+
runs-on: ubuntu-latest
|
|
19
|
+
|
|
20
|
+
steps:
|
|
21
|
+
- name: Checkout
|
|
22
|
+
uses: actions/checkout@v4
|
|
23
|
+
|
|
24
|
+
- name: Set up Python 3.11
|
|
25
|
+
uses: actions/setup-python@v5
|
|
26
|
+
with:
|
|
27
|
+
python-version: "3.11"
|
|
28
|
+
|
|
29
|
+
- name: Install uv
|
|
30
|
+
uses: astral-sh/setup-uv@v3
|
|
31
|
+
|
|
32
|
+
- name: Install project
|
|
33
|
+
run: |
|
|
34
|
+
make install-dev
|
|
35
|
+
|
|
36
|
+
- name: Install LocalStack
|
|
37
|
+
run: |
|
|
38
|
+
pip install --pre --upgrade localstack
|
|
39
|
+
|
|
40
|
+
- name: Pull image
|
|
41
|
+
run: |
|
|
42
|
+
docker pull localstack/localstack-pro
|
|
43
|
+
|
|
44
|
+
- name: Start Localstack
|
|
45
|
+
env:
|
|
46
|
+
LOCALSTACK_AUTH_TOKEN: ${{ secrets.LOCALSTACK_AUTH_TOKEN }}
|
|
47
|
+
run: |
|
|
48
|
+
source .venv/bin/activate
|
|
49
|
+
DEBUG=1 DISABLE_EVENTS="1" IMAGE_NAME="localstack/localstack-pro:latest" localstack start -d
|
|
50
|
+
localstack wait -t 120 || (python -m localstack.cli.main logs && false)
|
|
51
|
+
|
|
52
|
+
- name: Run Python Tests
|
|
53
|
+
env:
|
|
54
|
+
LOCALSTACK_AUTH_TOKEN: ${{ secrets.LOCALSTACK_AUTH_TOKEN }}
|
|
55
|
+
run: |
|
|
56
|
+
make test
|
|
57
|
+
|
|
58
|
+
- name: Stop Localstack
|
|
59
|
+
if: always()
|
|
60
|
+
run: |
|
|
61
|
+
source .venv/bin/activate
|
|
62
|
+
localstack logs
|
|
63
|
+
localstack stop
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
*.pyc
|
|
2
|
+
*.pyo
|
|
3
|
+
*.log
|
|
4
|
+
*.keys.json
|
|
5
|
+
/nosetests.xml
|
|
6
|
+
/.venv*
|
|
7
|
+
*/.venv*
|
|
8
|
+
*/.mypy_cache
|
|
9
|
+
.settings/
|
|
10
|
+
.project
|
|
11
|
+
.classpath
|
|
12
|
+
.coverage*
|
|
13
|
+
.DS_Store
|
|
14
|
+
/build/
|
|
15
|
+
dist/
|
|
16
|
+
*.egg-info/
|
|
17
|
+
.eggs/
|
|
18
|
+
*.sw*
|
|
19
|
+
~*
|
|
20
|
+
*~
|
|
21
|
+
.idea/
|
|
22
|
+
*.iml
|
|
23
|
+
.vscode/
|
|
24
|
+
|
|
25
|
+
node_modules/
|
|
26
|
+
app/build
|
|
27
|
+
package-lock.json
|
|
28
|
+
|
|
29
|
+
.serverless
|
|
30
|
+
|
|
31
|
+
target/
|
|
32
|
+
|
|
33
|
+
testdata/
|
|
34
|
+
|
|
35
|
+
etc/docker/lambda/*.tmp
|
|
36
|
+
etc/docker/lambda/Dockerfile
|
|
37
|
+
etc/docker/lambda/entrypoint.sh
|
|
38
|
+
|
|
39
|
+
*.crt
|
|
40
|
+
!localstack-pro-azure/localstack/pro/azure/server/proxy/ca.crt
|
|
41
|
+
|
|
42
|
+
backend_states/
|
|
43
|
+
api_states/
|
|
44
|
+
.python_packages/
|
|
45
|
+
|
|
46
|
+
terraform.tfstate*
|
|
47
|
+
.terraform*
|
|
48
|
+
**/terraform/tfplan
|
|
49
|
+
.env
|
|
50
|
+
|
|
51
|
+
# test resources
|
|
52
|
+
metastore_db/
|
|
53
|
+
parity-metrics/
|
|
54
|
+
.pytest-report.xml
|
|
55
|
+
*.raw.snapshot.json
|
|
56
|
+
localstack-pro-azure/visited_urls.csv
|
|
57
|
+
localstack-pro-azure/implemented_features.csv
|
|
58
|
+
localstack-pro-azure/tests/otherlangs/scripts/website/.azure/config
|
|
59
|
+
|
|
60
|
+
# dotnet files
|
|
61
|
+
localstack-pro-azure/tests/otherlangs/dotnet/*/bin
|
|
62
|
+
localstack-pro-azure/tests/otherlangs/dotnet/*/obj
|
|
63
|
+
|
|
64
|
+
# setuptools_scm version.py
|
|
65
|
+
*/*/*/*/version.py
|
|
66
|
+
localstack-sdk-python-2/.openapi-generator/
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
VENV_CMD ?= python3 -m venv
|
|
2
|
+
VENV_DIR ?= .venv
|
|
3
|
+
VENV_BIN = python3 -m venv
|
|
4
|
+
VENV_RUN = . $(VENV_DIR)/bin/activate
|
|
5
|
+
VENV_ACTIVATE = $(VENV_DIR)/bin/activate
|
|
6
|
+
TEST_PATH ?= .
|
|
7
|
+
TEST_EXEC ?= python -m
|
|
8
|
+
PYTEST_LOGLEVEL ?= warning
|
|
9
|
+
PIP_CMD ?= pip
|
|
10
|
+
|
|
11
|
+
install: ## omit dev dependencies
|
|
12
|
+
uv sync --no-dev
|
|
13
|
+
|
|
14
|
+
install-dev: ## create the venv and install
|
|
15
|
+
uv sync
|
|
16
|
+
|
|
17
|
+
build-spec: ## build the entire localstack api spec (openapi.yaml in the root folder)
|
|
18
|
+
$(VENV_RUN); python scripts/create_spec.py
|
|
19
|
+
|
|
20
|
+
clean: ## Clean up the virtual environment
|
|
21
|
+
rm -rf $(VENV_DIR)
|
|
22
|
+
rm -rf dist/
|
|
23
|
+
|
|
24
|
+
clean-generated: ## Cleanup generated code
|
|
25
|
+
rm -rf packages/localstack-sdk-generated/localstack/
|
|
26
|
+
|
|
27
|
+
format:
|
|
28
|
+
($(VENV_RUN); python -m ruff format --exclude packages .; python -m ruff check --output-format=full --exclude packages --fix .)
|
|
29
|
+
|
|
30
|
+
lint:
|
|
31
|
+
($(VENV_RUN); python -m ruff check --exclude packages --output-format=full . && python -m ruff format --exclude packages --check .)
|
|
32
|
+
|
|
33
|
+
test: ## Run automated tests
|
|
34
|
+
($(VENV_RUN); $(TEST_EXEC) pytest --durations=10 --log-cli-level=$(PYTEST_LOGLEVEL) $(PYTEST_ARGS) $(TEST_PATH))
|
|
35
|
+
|
|
36
|
+
.PHONY: clean install install-dev
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
|
|
3
|
+
version=$(cat VERSION)
|
|
4
|
+
|
|
5
|
+
docker run --rm -v "${PWD}:/local" openapitools/openapi-generator-cli:v7.9.0 generate \
|
|
6
|
+
-i https://raw.githubusercontent.com/localstack/openapi/refs/heads/main/openapi/emulators/localstack-spec-latest.yml \
|
|
7
|
+
--skip-validate-spec \
|
|
8
|
+
-g python \
|
|
9
|
+
-o /local//packages/localstack-sdk-generated \
|
|
10
|
+
--global-property models,apis,supportingFiles \
|
|
11
|
+
-p packageName=localstack.sdk \
|
|
12
|
+
-p packageVersion=$version \
|
|
13
|
+
--template-dir /local/packages/localstack-sdk-generated/templates \
|
|
14
|
+
--global-property apiTests=false,modelTests=false \
|
|
15
|
+
--global-property apiDocs=false,modelDocs=False
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import json
|
|
2
|
+
|
|
3
|
+
from localstack.clients import BaseClient
|
|
4
|
+
from localstack.sdk.api.aws_api import AwsApi
|
|
5
|
+
from localstack.sdk.models import Message, SesSentEmail
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
def _from_sqs_query_to_json(xml_dict: dict) -> list[Message]:
|
|
9
|
+
"""
|
|
10
|
+
todo: developer endpoint implements sqs-query protocol. Remove this workaround one we move them to json.
|
|
11
|
+
"""
|
|
12
|
+
raw_messages = (
|
|
13
|
+
xml_dict.get("ReceiveMessageResponse", {}).get("ReceiveMessageResult", {}) or {}
|
|
14
|
+
).get("Message", [])
|
|
15
|
+
if isinstance(raw_messages, dict):
|
|
16
|
+
raw_messages = [raw_messages]
|
|
17
|
+
messages = []
|
|
18
|
+
for msg in raw_messages:
|
|
19
|
+
_attributes = msg.get("Attribute", [])
|
|
20
|
+
attributes = {i["Name"]: i["Value"] for i in _attributes}
|
|
21
|
+
_m = {
|
|
22
|
+
"MessageId": msg.get("MessageId"),
|
|
23
|
+
"ReceiptHandle": msg.get("ReceiptHandle"),
|
|
24
|
+
"MD5OfBody": msg.get("MD5OfBody"),
|
|
25
|
+
"Body": msg.get("Body"),
|
|
26
|
+
"Attributes": attributes,
|
|
27
|
+
}
|
|
28
|
+
m = Message.from_dict(_m)
|
|
29
|
+
messages.append(m)
|
|
30
|
+
return messages
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
class AWSClient(BaseClient):
|
|
34
|
+
def __init__(self, **kwargs) -> None:
|
|
35
|
+
super().__init__(**kwargs)
|
|
36
|
+
self._client = AwsApi(self._api_client)
|
|
37
|
+
|
|
38
|
+
########
|
|
39
|
+
# SQS
|
|
40
|
+
########
|
|
41
|
+
|
|
42
|
+
def list_sqs_messages(self, account_id: str, region: str, queue_name: str) -> list[Message]:
|
|
43
|
+
response = self._client.list_sqs_messages_with_http_info(
|
|
44
|
+
account_id=account_id, region=region, queue_name=queue_name
|
|
45
|
+
)
|
|
46
|
+
return _from_sqs_query_to_json(json.loads(response.raw_data))
|
|
47
|
+
|
|
48
|
+
def list_sqs_messages_from_queue_url(self, queue_url) -> list[Message]:
|
|
49
|
+
response = self._client.list_all_sqs_messages_with_http_info(queue_url=queue_url)
|
|
50
|
+
return _from_sqs_query_to_json(json.loads(response.raw_data))
|
|
51
|
+
|
|
52
|
+
########
|
|
53
|
+
# SES
|
|
54
|
+
########
|
|
55
|
+
|
|
56
|
+
def get_ses_messages(
|
|
57
|
+
self, id_filter: str | None = None, email_filter: str | None = None
|
|
58
|
+
) -> list[SesSentEmail]:
|
|
59
|
+
response = self._client.get_ses_messages(id=id_filter, email=email_filter)
|
|
60
|
+
return response.messages
|
|
61
|
+
|
|
62
|
+
def discard_ses_messages(self, id_filter: str | None = None) -> None:
|
|
63
|
+
return self._client.discard_ses_messages(id=id_filter)
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
def get_default(**args) -> AwsApi:
|
|
67
|
+
"""Return a client with a default configuration"""
|
|
68
|
+
return AwsApi(args)
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
from localstack.clients import BaseClient
|
|
2
|
+
from localstack.sdk.api import StateApi
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
class StateClient(BaseClient):
|
|
6
|
+
def __init__(self, **args) -> None:
|
|
7
|
+
super().__init__(**args)
|
|
8
|
+
self._client = StateApi(self._api_client)
|
|
9
|
+
|
|
10
|
+
def reset_state(self) -> None:
|
|
11
|
+
self._client.localstack_state_reset_post_0()
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
.gitignore
|
|
2
|
+
LICENSE.txt
|
|
3
|
+
Makefile
|
|
4
|
+
README.md
|
|
5
|
+
pyproject.toml
|
|
6
|
+
requirements-spec.txt
|
|
7
|
+
uv.lock
|
|
8
|
+
.github/workflows/test.yml
|
|
9
|
+
bin/generate.sh
|
|
10
|
+
localstack-sdk-python/localstack/clients.py
|
|
11
|
+
localstack-sdk-python/localstack/sdk/aws/__init__.py
|
|
12
|
+
localstack-sdk-python/localstack/sdk/aws/client.py
|
|
13
|
+
localstack-sdk-python/localstack/sdk/chaos/__init__.py
|
|
14
|
+
localstack-sdk-python/localstack/sdk/chaos/client.py
|
|
15
|
+
localstack-sdk-python/localstack/sdk/chaos/managers.py
|
|
16
|
+
localstack-sdk-python/localstack/sdk/pods/__init__.py
|
|
17
|
+
localstack-sdk-python/localstack/sdk/pods/client.py
|
|
18
|
+
localstack-sdk-python/localstack/sdk/state/__init__.py
|
|
19
|
+
localstack-sdk-python/localstack/sdk/state/client.py
|
|
20
|
+
localstack-sdk-python/localstack_sdk_python.egg-info/PKG-INFO
|
|
21
|
+
localstack-sdk-python/localstack_sdk_python.egg-info/SOURCES.txt
|
|
22
|
+
localstack-sdk-python/localstack_sdk_python.egg-info/dependency_links.txt
|
|
23
|
+
localstack-sdk-python/localstack_sdk_python.egg-info/requires.txt
|
|
24
|
+
localstack-sdk-python/localstack_sdk_python.egg-info/top_level.txt
|
|
25
|
+
packages/localstack-sdk-generated/.gitignore
|
|
26
|
+
packages/localstack-sdk-generated/.openapi-generator-ignore
|
|
27
|
+
packages/localstack-sdk-generated/pyproject.toml
|
|
28
|
+
packages/localstack-sdk-generated/requirements.txt
|
|
29
|
+
packages/localstack-sdk-generated/.openapi-generator/FILES
|
|
30
|
+
packages/localstack-sdk-generated/.openapi-generator/VERSION
|
|
31
|
+
packages/localstack-sdk-generated/localstack/sdk/api_client.py
|
|
32
|
+
packages/localstack-sdk-generated/localstack/sdk/api_response.py
|
|
33
|
+
packages/localstack-sdk-generated/localstack/sdk/configuration.py
|
|
34
|
+
packages/localstack-sdk-generated/localstack/sdk/exceptions.py
|
|
35
|
+
packages/localstack-sdk-generated/localstack/sdk/py.typed
|
|
36
|
+
packages/localstack-sdk-generated/localstack/sdk/rest.py
|
|
37
|
+
packages/localstack-sdk-generated/localstack/sdk/api/__init__.py
|
|
38
|
+
packages/localstack-sdk-generated/localstack/sdk/api/aws_api.py
|
|
39
|
+
packages/localstack-sdk-generated/localstack/sdk/api/chaos_api.py
|
|
40
|
+
packages/localstack-sdk-generated/localstack/sdk/api/default_api.py
|
|
41
|
+
packages/localstack-sdk-generated/localstack/sdk/api/localstack_api.py
|
|
42
|
+
packages/localstack-sdk-generated/localstack/sdk/api/pods_api.py
|
|
43
|
+
packages/localstack-sdk-generated/localstack/sdk/api/pro_api.py
|
|
44
|
+
packages/localstack-sdk-generated/localstack/sdk/api/state_api.py
|
|
45
|
+
packages/localstack-sdk-generated/localstack/sdk/models/__init__.py
|
|
46
|
+
packages/localstack-sdk-generated/localstack/sdk/models/aws_pinpoint_application_id_reference_id_get200_response.py
|
|
47
|
+
packages/localstack-sdk-generated/localstack/sdk/models/cloud_watch_metrics.py
|
|
48
|
+
packages/localstack-sdk-generated/localstack/sdk/models/cloud_watch_metrics_metrics_inner.py
|
|
49
|
+
packages/localstack-sdk-generated/localstack/sdk/models/cloud_watch_metrics_metrics_inner_d_inner.py
|
|
50
|
+
packages/localstack-sdk-generated/localstack/sdk/models/cloud_watch_metrics_metrics_inner_d_inner_v.py
|
|
51
|
+
packages/localstack-sdk-generated/localstack/sdk/models/cloud_watch_metrics_metrics_inner_t.py
|
|
52
|
+
packages/localstack-sdk-generated/localstack/sdk/models/cloud_watch_metrics_metrics_inner_v.py
|
|
53
|
+
packages/localstack-sdk-generated/localstack/sdk/models/create_remote_request.py
|
|
54
|
+
packages/localstack-sdk-generated/localstack/sdk/models/delete_ddb_expired_items200_response.py
|
|
55
|
+
packages/localstack-sdk-generated/localstack/sdk/models/fault_rule.py
|
|
56
|
+
packages/localstack-sdk-generated/localstack/sdk/models/fault_rule_error.py
|
|
57
|
+
packages/localstack-sdk-generated/localstack/sdk/models/get_diagnostics200_response.py
|
|
58
|
+
packages/localstack-sdk-generated/localstack/sdk/models/get_diagnostics200_response_logs.py
|
|
59
|
+
packages/localstack-sdk-generated/localstack/sdk/models/get_diagnostics200_response_version.py
|
|
60
|
+
packages/localstack-sdk-generated/localstack/sdk/models/get_diagnostics200_response_version_host.py
|
|
61
|
+
packages/localstack-sdk-generated/localstack/sdk/models/get_diagnostics200_response_version_image_version.py
|
|
62
|
+
packages/localstack-sdk-generated/localstack/sdk/models/get_diagnostics200_response_version_localstack_version.py
|
|
63
|
+
packages/localstack-sdk-generated/localstack/sdk/models/get_features_and_services200_response.py
|
|
64
|
+
packages/localstack-sdk-generated/localstack/sdk/models/get_lambda_runtimes200_response.py
|
|
65
|
+
packages/localstack-sdk-generated/localstack/sdk/models/get_remote200_response.py
|
|
66
|
+
packages/localstack-sdk-generated/localstack/sdk/models/get_ses_messages200_response.py
|
|
67
|
+
packages/localstack-sdk-generated/localstack/sdk/models/get_sns_messages200_response.py
|
|
68
|
+
packages/localstack-sdk-generated/localstack/sdk/models/get_sns_sms_messages200_response.py
|
|
69
|
+
packages/localstack-sdk-generated/localstack/sdk/models/get_sns_subscription_token200_response.py
|
|
70
|
+
packages/localstack-sdk-generated/localstack/sdk/models/init_scripts.py
|
|
71
|
+
packages/localstack-sdk-generated/localstack/sdk/models/init_scripts_completed.py
|
|
72
|
+
packages/localstack-sdk-generated/localstack/sdk/models/init_scripts_scripts_inner.py
|
|
73
|
+
packages/localstack-sdk-generated/localstack/sdk/models/init_scripts_stage.py
|
|
74
|
+
packages/localstack-sdk-generated/localstack/sdk/models/init_scripts_stage_scripts_inner.py
|
|
75
|
+
packages/localstack-sdk-generated/localstack/sdk/models/list_remotes200_response.py
|
|
76
|
+
packages/localstack-sdk-generated/localstack/sdk/models/list_remotes200_response_remotes_inner.py
|
|
77
|
+
packages/localstack-sdk-generated/localstack/sdk/models/localstack_pods_environment_get200_response.py
|
|
78
|
+
packages/localstack-sdk-generated/localstack/sdk/models/localstack_stackinfo_get200_response.py
|
|
79
|
+
packages/localstack-sdk-generated/localstack/sdk/models/manage_session_request.py
|
|
80
|
+
packages/localstack-sdk-generated/localstack/sdk/models/message.py
|
|
81
|
+
packages/localstack-sdk-generated/localstack/sdk/models/network_effects_config.py
|
|
82
|
+
packages/localstack-sdk-generated/localstack/sdk/models/pod_list.py
|
|
83
|
+
packages/localstack-sdk-generated/localstack/sdk/models/pod_list_cloudpods_inner.py
|
|
84
|
+
packages/localstack-sdk-generated/localstack/sdk/models/pod_remote.py
|
|
85
|
+
packages/localstack-sdk-generated/localstack/sdk/models/pod_save_request.py
|
|
86
|
+
packages/localstack-sdk-generated/localstack/sdk/models/pod_versions.py
|
|
87
|
+
packages/localstack-sdk-generated/localstack/sdk/models/pod_versions_versions_inner.py
|
|
88
|
+
packages/localstack-sdk-generated/localstack/sdk/models/receive_message_request.py
|
|
89
|
+
packages/localstack-sdk-generated/localstack/sdk/models/receive_message_result.py
|
|
90
|
+
packages/localstack-sdk-generated/localstack/sdk/models/remote_config.py
|
|
91
|
+
packages/localstack-sdk-generated/localstack/sdk/models/remote_config_one_of.py
|
|
92
|
+
packages/localstack-sdk-generated/localstack/sdk/models/ses_sent_email.py
|
|
93
|
+
packages/localstack-sdk-generated/localstack/sdk/models/ses_sent_email_body.py
|
|
94
|
+
packages/localstack-sdk-generated/localstack/sdk/models/session_info.py
|
|
95
|
+
packages/localstack-sdk-generated/localstack/sdk/models/sns_subscription_token_error.py
|
|
96
|
+
packages/localstack-sdk-generated/localstack/sdk/models/state_result.py
|
|
97
|
+
packages/localstack-sdk-generated/localstack/sdk/models/store_data200_response.py
|
|
98
|
+
packages/localstack-sdk-generated/localstack/sdk/models/update_config_option200_response.py
|
|
99
|
+
packages/localstack-sdk-generated/localstack/sdk/models/update_config_option_request.py
|
|
100
|
+
packages/localstack-sdk-generated/templates/pyproject.mustache
|
|
101
|
+
packages/localstack-sdk-generated/templates/rest.mustache
|
|
102
|
+
scripts/create_spec.py
|
|
103
|
+
tests/__init__.py
|
|
104
|
+
tests/utils.py
|
|
105
|
+
tests/integration/__init__.py
|
|
106
|
+
tests/integration/test_aws.py
|
|
107
|
+
tests/integration/test_chaos.py
|
|
108
|
+
tests/integration/test_pods.py
|
|
109
|
+
tests/integration/test_state.py
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
# Byte-compiled / optimized / DLL files
|
|
2
|
+
__pycache__/
|
|
3
|
+
*.py[cod]
|
|
4
|
+
*$py.class
|
|
5
|
+
|
|
6
|
+
# C extensions
|
|
7
|
+
*.so
|
|
8
|
+
|
|
9
|
+
# Distribution / packaging
|
|
10
|
+
.Python
|
|
11
|
+
env/
|
|
12
|
+
build/
|
|
13
|
+
develop-eggs/
|
|
14
|
+
dist/
|
|
15
|
+
downloads/
|
|
16
|
+
eggs/
|
|
17
|
+
.eggs/
|
|
18
|
+
lib/
|
|
19
|
+
lib64/
|
|
20
|
+
parts/
|
|
21
|
+
sdist/
|
|
22
|
+
var/
|
|
23
|
+
*.egg-info/
|
|
24
|
+
.installed.cfg
|
|
25
|
+
*.egg
|
|
26
|
+
|
|
27
|
+
# PyInstaller
|
|
28
|
+
# Usually these files are written by a python script from a template
|
|
29
|
+
# before PyInstaller builds the exe, so as to inject date/other infos into it.
|
|
30
|
+
*.manifest
|
|
31
|
+
*.spec
|
|
32
|
+
|
|
33
|
+
# Installer logs
|
|
34
|
+
pip-log.txt
|
|
35
|
+
pip-delete-this-directory.txt
|
|
36
|
+
|
|
37
|
+
# Unit test / coverage reports
|
|
38
|
+
htmlcov/
|
|
39
|
+
.tox/
|
|
40
|
+
.coverage
|
|
41
|
+
.coverage.*
|
|
42
|
+
.cache
|
|
43
|
+
nosetests.xml
|
|
44
|
+
coverage.xml
|
|
45
|
+
*,cover
|
|
46
|
+
.hypothesis/
|
|
47
|
+
venv/
|
|
48
|
+
.venv/
|
|
49
|
+
.python-version
|
|
50
|
+
.pytest_cache
|
|
51
|
+
|
|
52
|
+
# Translations
|
|
53
|
+
*.mo
|
|
54
|
+
*.pot
|
|
55
|
+
|
|
56
|
+
# Django stuff:
|
|
57
|
+
*.log
|
|
58
|
+
|
|
59
|
+
# Sphinx documentation
|
|
60
|
+
docs/_build/
|
|
61
|
+
|
|
62
|
+
# PyBuilder
|
|
63
|
+
target/
|
|
64
|
+
|
|
65
|
+
#Ipython Notebook
|
|
66
|
+
.ipynb_checkpoints
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
.gitignore
|
|
2
|
+
localstack/sdk/api/__init__.py
|
|
3
|
+
localstack/sdk/api/aws_api.py
|
|
4
|
+
localstack/sdk/api/chaos_api.py
|
|
5
|
+
localstack/sdk/api/default_api.py
|
|
6
|
+
localstack/sdk/api/localstack_api.py
|
|
7
|
+
localstack/sdk/api/pods_api.py
|
|
8
|
+
localstack/sdk/api/pro_api.py
|
|
9
|
+
localstack/sdk/api/state_api.py
|
|
10
|
+
localstack/sdk/api_client.py
|
|
11
|
+
localstack/sdk/api_response.py
|
|
12
|
+
localstack/sdk/configuration.py
|
|
13
|
+
localstack/sdk/exceptions.py
|
|
14
|
+
localstack/sdk/models/__init__.py
|
|
15
|
+
localstack/sdk/models/aws_pinpoint_application_id_reference_id_get200_response.py
|
|
16
|
+
localstack/sdk/models/cloud_watch_metrics.py
|
|
17
|
+
localstack/sdk/models/cloud_watch_metrics_metrics_inner.py
|
|
18
|
+
localstack/sdk/models/cloud_watch_metrics_metrics_inner_d_inner.py
|
|
19
|
+
localstack/sdk/models/cloud_watch_metrics_metrics_inner_d_inner_v.py
|
|
20
|
+
localstack/sdk/models/cloud_watch_metrics_metrics_inner_t.py
|
|
21
|
+
localstack/sdk/models/cloud_watch_metrics_metrics_inner_v.py
|
|
22
|
+
localstack/sdk/models/create_remote_request.py
|
|
23
|
+
localstack/sdk/models/delete_ddb_expired_items200_response.py
|
|
24
|
+
localstack/sdk/models/fault_rule.py
|
|
25
|
+
localstack/sdk/models/fault_rule_error.py
|
|
26
|
+
localstack/sdk/models/get_diagnostics200_response.py
|
|
27
|
+
localstack/sdk/models/get_diagnostics200_response_logs.py
|
|
28
|
+
localstack/sdk/models/get_diagnostics200_response_version.py
|
|
29
|
+
localstack/sdk/models/get_diagnostics200_response_version_host.py
|
|
30
|
+
localstack/sdk/models/get_diagnostics200_response_version_image_version.py
|
|
31
|
+
localstack/sdk/models/get_diagnostics200_response_version_localstack_version.py
|
|
32
|
+
localstack/sdk/models/get_features_and_services200_response.py
|
|
33
|
+
localstack/sdk/models/get_lambda_runtimes200_response.py
|
|
34
|
+
localstack/sdk/models/get_ses_messages200_response.py
|
|
35
|
+
localstack/sdk/models/get_sns_messages200_response.py
|
|
36
|
+
localstack/sdk/models/get_sns_sms_messages200_response.py
|
|
37
|
+
localstack/sdk/models/get_sns_subscription_token200_response.py
|
|
38
|
+
localstack/sdk/models/init_scripts.py
|
|
39
|
+
localstack/sdk/models/init_scripts_completed.py
|
|
40
|
+
localstack/sdk/models/init_scripts_scripts_inner.py
|
|
41
|
+
localstack/sdk/models/init_scripts_stage.py
|
|
42
|
+
localstack/sdk/models/init_scripts_stage_scripts_inner.py
|
|
43
|
+
localstack/sdk/models/list_remotes200_response.py
|
|
44
|
+
localstack/sdk/models/localstack_pods_environment_get200_response.py
|
|
45
|
+
localstack/sdk/models/localstack_stackinfo_get200_response.py
|
|
46
|
+
localstack/sdk/models/manage_session_request.py
|
|
47
|
+
localstack/sdk/models/message.py
|
|
48
|
+
localstack/sdk/models/network_effects_config.py
|
|
49
|
+
localstack/sdk/models/pod_list.py
|
|
50
|
+
localstack/sdk/models/pod_list_cloudpods_inner.py
|
|
51
|
+
localstack/sdk/models/pod_remote.py
|
|
52
|
+
localstack/sdk/models/pod_save_request.py
|
|
53
|
+
localstack/sdk/models/pod_versions.py
|
|
54
|
+
localstack/sdk/models/pod_versions_versions_inner.py
|
|
55
|
+
localstack/sdk/models/receive_message_request.py
|
|
56
|
+
localstack/sdk/models/receive_message_result.py
|
|
57
|
+
localstack/sdk/models/remote_config.py
|
|
58
|
+
localstack/sdk/models/remote_config_one_of.py
|
|
59
|
+
localstack/sdk/models/ses_destination.py
|
|
60
|
+
localstack/sdk/models/ses_sent_email.py
|
|
61
|
+
localstack/sdk/models/ses_sent_email_body.py
|
|
62
|
+
localstack/sdk/models/session_info.py
|
|
63
|
+
localstack/sdk/models/sns_subscription_token_error.py
|
|
64
|
+
localstack/sdk/models/state_result.py
|
|
65
|
+
localstack/sdk/models/store_data200_response.py
|
|
66
|
+
localstack/sdk/models/update_config_option200_response.py
|
|
67
|
+
localstack/sdk/models/update_config_option_request.py
|
|
68
|
+
localstack/sdk/py.typed
|
|
69
|
+
localstack/sdk/rest.py
|
|
70
|
+
pyproject.toml
|
|
71
|
+
requirements.txt
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
7.9.0
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
# OpenAPI Generator Ignore
|
|
2
|
+
# Generated by openapi-generator https://github.com/openapitools/openapi-generator
|
|
3
|
+
|
|
4
|
+
.github/workflows/python.yml
|
|
5
|
+
.gitlab-ci.yml
|
|
6
|
+
.travis.yml
|
|
7
|
+
git_push.sh
|
|
8
|
+
README.md
|
|
9
|
+
tox.ini
|
|
10
|
+
localstack/sdk/__init__.py
|
|
11
|
+
localstack/__init__.py
|
|
12
|
+
setup.py
|
|
13
|
+
setup.cfg
|
|
14
|
+
test-requirements.txt
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
# flake8: noqa
|
|
2
|
+
|
|
3
|
+
# import apis into api package
|
|
4
|
+
from localstack.sdk.api.aws_api import AwsApi
|
|
5
|
+
from localstack.sdk.api.chaos_api import ChaosApi
|
|
6
|
+
from localstack.sdk.api.default_api import DefaultApi
|
|
7
|
+
from localstack.sdk.api.localstack_api import LocalstackApi
|
|
8
|
+
from localstack.sdk.api.pods_api import PodsApi
|
|
9
|
+
from localstack.sdk.api.pro_api import ProApi
|
|
10
|
+
from localstack.sdk.api.state_api import StateApi
|
|
11
|
+
|