localstack-sdk-python 0.0.4__tar.gz → 4.4.0__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-4.4.0/.github/workflows/release.yml +133 -0
- localstack_sdk_python-4.4.0/.github/workflows/test.yml +63 -0
- localstack_sdk_python-4.4.0/.gitignore +72 -0
- localstack_sdk_python-4.4.0/Makefile +44 -0
- localstack_sdk_python-4.4.0/PKG-INFO +70 -0
- localstack_sdk_python-4.4.0/README.md +56 -0
- localstack_sdk_python-4.4.0/bin/generate.sh +25 -0
- {localstack_sdk_python-0.0.4 → localstack_sdk_python-4.4.0}/localstack-sdk-python/localstack/sdk/clients.py +3 -0
- localstack_sdk_python-4.4.0/localstack-sdk-python/localstack/sdk/version.py +21 -0
- localstack_sdk_python-4.4.0/localstack-sdk-python/localstack_sdk_python.egg-info/PKG-INFO +70 -0
- localstack_sdk_python-4.4.0/localstack-sdk-python/localstack_sdk_python.egg-info/SOURCES.txt +136 -0
- localstack_sdk_python-4.4.0/packages/localstack-sdk-generated/.gitignore +66 -0
- localstack_sdk_python-4.4.0/packages/localstack-sdk-generated/.openapi-generator/FILES +88 -0
- localstack_sdk_python-4.4.0/packages/localstack-sdk-generated/.openapi-generator/VERSION +1 -0
- localstack_sdk_python-4.4.0/packages/localstack-sdk-generated/.openapi-generator-ignore +14 -0
- localstack_sdk_python-4.4.0/packages/localstack-sdk-generated/localstack/sdk/api/__init__.py +12 -0
- localstack_sdk_python-4.4.0/packages/localstack-sdk-generated/localstack/sdk/api/aws_api.py +8427 -0
- localstack_sdk_python-4.4.0/packages/localstack-sdk-generated/localstack/sdk/api/chaos_api.py +1624 -0
- localstack_sdk_python-4.4.0/packages/localstack-sdk-generated/localstack/sdk/api/default_api.py +690 -0
- localstack_sdk_python-4.4.0/packages/localstack-sdk-generated/localstack/sdk/api/localstack_api.py +3107 -0
- localstack_sdk_python-4.4.0/packages/localstack-sdk-generated/localstack/sdk/api/pods_api.py +3722 -0
- localstack_sdk_python-4.4.0/packages/localstack-sdk-generated/localstack/sdk/api/pro_api.py +12741 -0
- localstack_sdk_python-4.4.0/packages/localstack-sdk-generated/localstack/sdk/api/replicator_api.py +1069 -0
- localstack_sdk_python-4.4.0/packages/localstack-sdk-generated/localstack/sdk/api/state_api.py +1604 -0
- localstack_sdk_python-4.4.0/packages/localstack-sdk-generated/localstack/sdk/api_client.py +798 -0
- localstack_sdk_python-4.4.0/packages/localstack-sdk-generated/localstack/sdk/api_response.py +21 -0
- localstack_sdk_python-4.4.0/packages/localstack-sdk-generated/localstack/sdk/configuration.py +576 -0
- localstack_sdk_python-4.4.0/packages/localstack-sdk-generated/localstack/sdk/exceptions.py +200 -0
- localstack_sdk_python-4.4.0/packages/localstack-sdk-generated/localstack/sdk/models/__init__.py +86 -0
- localstack_sdk_python-4.4.0/packages/localstack-sdk-generated/localstack/sdk/models/action_and_resource.py +98 -0
- localstack_sdk_python-4.4.0/packages/localstack-sdk-generated/localstack/sdk/models/aws_pinpoint_application_id_reference_id_get200_response.py +129 -0
- localstack_sdk_python-4.4.0/packages/localstack-sdk-generated/localstack/sdk/models/check_actions_request.py +100 -0
- localstack_sdk_python-4.4.0/packages/localstack-sdk-generated/localstack/sdk/models/check_actions_request_required_permission_inner.py +90 -0
- localstack_sdk_python-4.4.0/packages/localstack-sdk-generated/localstack/sdk/models/check_actions_response.py +126 -0
- localstack_sdk_python-4.4.0/packages/localstack-sdk-generated/localstack/sdk/models/check_actions_response_source_principal.py +90 -0
- localstack_sdk_python-4.4.0/packages/localstack-sdk-generated/localstack/sdk/models/cloud_watch_metrics.py +109 -0
- localstack_sdk_python-4.4.0/packages/localstack-sdk-generated/localstack/sdk/models/cloud_watch_metrics_metrics_inner.py +116 -0
- localstack_sdk_python-4.4.0/packages/localstack-sdk-generated/localstack/sdk/models/cloud_watch_metrics_metrics_inner_d_inner.py +94 -0
- localstack_sdk_python-4.4.0/packages/localstack-sdk-generated/localstack/sdk/models/cloud_watch_metrics_metrics_inner_d_inner_v.py +144 -0
- localstack_sdk_python-4.4.0/packages/localstack-sdk-generated/localstack/sdk/models/cloud_watch_metrics_metrics_inner_t.py +145 -0
- localstack_sdk_python-4.4.0/packages/localstack-sdk-generated/localstack/sdk/models/cloud_watch_metrics_metrics_inner_v.py +144 -0
- localstack_sdk_python-4.4.0/packages/localstack-sdk-generated/localstack/sdk/models/create_remote_request.py +90 -0
- localstack_sdk_python-4.4.0/packages/localstack-sdk-generated/localstack/sdk/models/delete_ddb_expired_items200_response.py +101 -0
- localstack_sdk_python-4.4.0/packages/localstack-sdk-generated/localstack/sdk/models/fault_rule.py +146 -0
- localstack_sdk_python-4.4.0/packages/localstack-sdk-generated/localstack/sdk/models/fault_rule_error.py +101 -0
- localstack_sdk_python-4.4.0/packages/localstack-sdk-generated/localstack/sdk/models/get_diagnostics200_response.py +131 -0
- localstack_sdk_python-4.4.0/packages/localstack-sdk-generated/localstack/sdk/models/get_diagnostics200_response_logs.py +101 -0
- localstack_sdk_python-4.4.0/packages/localstack-sdk-generated/localstack/sdk/models/get_diagnostics200_response_version.py +117 -0
- localstack_sdk_python-4.4.0/packages/localstack-sdk-generated/localstack/sdk/models/get_diagnostics200_response_version_host.py +101 -0
- localstack_sdk_python-4.4.0/packages/localstack-sdk-generated/localstack/sdk/models/get_diagnostics200_response_version_image_version.py +107 -0
- localstack_sdk_python-4.4.0/packages/localstack-sdk-generated/localstack/sdk/models/get_diagnostics200_response_version_localstack_version.py +105 -0
- localstack_sdk_python-4.4.0/packages/localstack-sdk-generated/localstack/sdk/models/get_features_and_services200_response.py +114 -0
- localstack_sdk_python-4.4.0/packages/localstack-sdk-generated/localstack/sdk/models/get_lambda_runtimes200_response.py +101 -0
- localstack_sdk_python-4.4.0/packages/localstack-sdk-generated/localstack/sdk/models/get_ses_messages200_response.py +109 -0
- localstack_sdk_python-4.4.0/packages/localstack-sdk-generated/localstack/sdk/models/get_sns_subscription_token200_response.py +103 -0
- localstack_sdk_python-4.4.0/packages/localstack-sdk-generated/localstack/sdk/models/iam_config.py +106 -0
- localstack_sdk_python-4.4.0/packages/localstack-sdk-generated/localstack/sdk/models/init_scripts.py +115 -0
- localstack_sdk_python-4.4.0/packages/localstack-sdk-generated/localstack/sdk/models/init_scripts_completed.py +94 -0
- localstack_sdk_python-4.4.0/packages/localstack-sdk-generated/localstack/sdk/models/init_scripts_scripts_inner.py +92 -0
- localstack_sdk_python-4.4.0/packages/localstack-sdk-generated/localstack/sdk/models/init_scripts_stage.py +111 -0
- localstack_sdk_python-4.4.0/packages/localstack-sdk-generated/localstack/sdk/models/init_scripts_stage_scripts_inner.py +92 -0
- localstack_sdk_python-4.4.0/packages/localstack-sdk-generated/localstack/sdk/models/list_remotes200_response.py +96 -0
- localstack_sdk_python-4.4.0/packages/localstack-sdk-generated/localstack/sdk/models/load_service.py +88 -0
- localstack_sdk_python-4.4.0/packages/localstack-sdk-generated/localstack/sdk/models/localstack_pods_environment_get200_response.py +94 -0
- localstack_sdk_python-4.4.0/packages/localstack-sdk-generated/localstack/sdk/models/localstack_stackinfo_get200_response.py +123 -0
- localstack_sdk_python-4.4.0/packages/localstack-sdk-generated/localstack/sdk/models/manage_session_request.py +108 -0
- localstack_sdk_python-4.4.0/packages/localstack-sdk-generated/localstack/sdk/models/message.py +118 -0
- localstack_sdk_python-4.4.0/packages/localstack-sdk-generated/localstack/sdk/models/network_effects_config.py +89 -0
- localstack_sdk_python-4.4.0/packages/localstack-sdk-generated/localstack/sdk/models/pod_list.py +109 -0
- localstack_sdk_python-4.4.0/packages/localstack-sdk-generated/localstack/sdk/models/pod_list_cloudpods_inner.py +92 -0
- localstack_sdk_python-4.4.0/packages/localstack-sdk-generated/localstack/sdk/models/pod_remote.py +94 -0
- localstack_sdk_python-4.4.0/packages/localstack-sdk-generated/localstack/sdk/models/pod_save_request.py +90 -0
- localstack_sdk_python-4.4.0/packages/localstack-sdk-generated/localstack/sdk/models/pod_versions.py +98 -0
- localstack_sdk_python-4.4.0/packages/localstack-sdk-generated/localstack/sdk/models/pod_versions_versions_inner.py +119 -0
- localstack_sdk_python-4.4.0/packages/localstack-sdk-generated/localstack/sdk/models/receive_message_request.py +102 -0
- localstack_sdk_python-4.4.0/packages/localstack-sdk-generated/localstack/sdk/models/receive_message_result.py +96 -0
- localstack_sdk_python-4.4.0/packages/localstack-sdk-generated/localstack/sdk/models/remote_config.py +141 -0
- localstack_sdk_python-4.4.0/packages/localstack-sdk-generated/localstack/sdk/models/remote_config_one_of.py +88 -0
- localstack_sdk_python-4.4.0/packages/localstack-sdk-generated/localstack/sdk/models/replication_config_mock.py +88 -0
- localstack_sdk_python-4.4.0/packages/localstack-sdk-generated/localstack/sdk/models/replication_config_single.py +92 -0
- localstack_sdk_python-4.4.0/packages/localstack-sdk-generated/localstack/sdk/models/replication_job.py +96 -0
- localstack_sdk_python-4.4.0/packages/localstack-sdk-generated/localstack/sdk/models/replication_request.py +107 -0
- localstack_sdk_python-4.4.0/packages/localstack-sdk-generated/localstack/sdk/models/replication_request_source_aws_config.py +96 -0
- localstack_sdk_python-4.4.0/packages/localstack-sdk-generated/localstack/sdk/models/replication_request_target_aws_config.py +96 -0
- localstack_sdk_python-4.4.0/packages/localstack-sdk-generated/localstack/sdk/models/replication_supported_resource.py +94 -0
- localstack_sdk_python-4.4.0/packages/localstack-sdk-generated/localstack/sdk/models/ses_destination.py +92 -0
- localstack_sdk_python-4.4.0/packages/localstack-sdk-generated/localstack/sdk/models/ses_sent_email.py +127 -0
- localstack_sdk_python-4.4.0/packages/localstack-sdk-generated/localstack/sdk/models/ses_sent_email_body.py +90 -0
- localstack_sdk_python-4.4.0/packages/localstack-sdk-generated/localstack/sdk/models/session_info.py +104 -0
- localstack_sdk_python-4.4.0/packages/localstack-sdk-generated/localstack/sdk/models/sns_message.py +122 -0
- localstack_sdk_python-4.4.0/packages/localstack-sdk-generated/localstack/sdk/models/sns_platform_endpoint_message.py +105 -0
- localstack_sdk_python-4.4.0/packages/localstack-sdk-generated/localstack/sdk/models/sns_platform_endpoint_response.py +107 -0
- localstack_sdk_python-4.4.0/packages/localstack-sdk-generated/localstack/sdk/models/sns_subscription_token_error.py +90 -0
- localstack_sdk_python-4.4.0/packages/localstack-sdk-generated/localstack/sdk/models/snssms_messages_response.py +107 -0
- localstack_sdk_python-4.4.0/packages/localstack-sdk-generated/localstack/sdk/models/state_result.py +92 -0
- localstack_sdk_python-4.4.0/packages/localstack-sdk-generated/localstack/sdk/models/store_data200_response.py +101 -0
- localstack_sdk_python-4.4.0/packages/localstack-sdk-generated/localstack/sdk/models/update_config_option200_response.py +103 -0
- localstack_sdk_python-4.4.0/packages/localstack-sdk-generated/localstack/sdk/models/update_config_option_request.py +111 -0
- localstack_sdk_python-4.4.0/packages/localstack-sdk-generated/localstack/sdk/py.typed +0 -0
- localstack_sdk_python-4.4.0/packages/localstack-sdk-generated/localstack/sdk/rest.py +263 -0
- localstack_sdk_python-4.4.0/packages/localstack-sdk-generated/pyproject.toml +34 -0
- localstack_sdk_python-4.4.0/packages/localstack-sdk-generated/requirements.txt +4 -0
- localstack_sdk_python-4.4.0/packages/localstack-sdk-generated/templates/pyproject.mustache +34 -0
- localstack_sdk_python-4.4.0/packages/localstack-sdk-generated/templates/rest.mustache +252 -0
- {localstack_sdk_python-0.0.4 → localstack_sdk_python-4.4.0}/pyproject.toml +8 -3
- localstack_sdk_python-4.4.0/tests/__init__.py +0 -0
- localstack_sdk_python-4.4.0/tests/conftest.py +1 -0
- localstack_sdk_python-4.4.0/tests/integration/__init__.py +0 -0
- localstack_sdk_python-4.4.0/tests/integration/test_aws.py +225 -0
- localstack_sdk_python-4.4.0/tests/integration/test_chaos.py +36 -0
- localstack_sdk_python-4.4.0/tests/integration/test_pods.py +22 -0
- localstack_sdk_python-4.4.0/tests/integration/test_state.py +20 -0
- localstack_sdk_python-4.4.0/tests/test_client.py +7 -0
- localstack_sdk_python-4.4.0/tests/testing/__init__.py +0 -0
- localstack_sdk_python-4.4.0/tests/testing/test_decorators.py +29 -0
- localstack_sdk_python-4.4.0/tests/testing/test_fixtures.py +12 -0
- localstack_sdk_python-4.4.0/tests/utils.py +36 -0
- localstack_sdk_python-4.4.0/uv.lock +296 -0
- localstack_sdk_python-0.0.4/PKG-INFO +0 -41
- localstack_sdk_python-0.0.4/README.md +0 -28
- localstack_sdk_python-0.0.4/localstack-sdk-python/localstack_sdk_python.egg-info/PKG-INFO +0 -41
- localstack_sdk_python-0.0.4/localstack-sdk-python/localstack_sdk_python.egg-info/SOURCES.txt +0 -24
- {localstack_sdk_python-0.0.4 → localstack_sdk_python-4.4.0}/LICENSE.txt +0 -0
- {localstack_sdk_python-0.0.4 → localstack_sdk_python-4.4.0}/localstack-sdk-python/localstack/sdk/aws/__init__.py +0 -0
- {localstack_sdk_python-0.0.4 → localstack_sdk_python-4.4.0}/localstack-sdk-python/localstack/sdk/aws/client.py +0 -0
- {localstack_sdk_python-0.0.4 → localstack_sdk_python-4.4.0}/localstack-sdk-python/localstack/sdk/chaos/__init__.py +0 -0
- {localstack_sdk_python-0.0.4 → localstack_sdk_python-4.4.0}/localstack-sdk-python/localstack/sdk/chaos/client.py +0 -0
- {localstack_sdk_python-0.0.4 → localstack_sdk_python-4.4.0}/localstack-sdk-python/localstack/sdk/chaos/managers.py +0 -0
- {localstack_sdk_python-0.0.4 → localstack_sdk_python-4.4.0}/localstack-sdk-python/localstack/sdk/pods/__init__.py +0 -0
- {localstack_sdk_python-0.0.4 → localstack_sdk_python-4.4.0}/localstack-sdk-python/localstack/sdk/pods/client.py +0 -0
- {localstack_sdk_python-0.0.4 → localstack_sdk_python-4.4.0}/localstack-sdk-python/localstack/sdk/pods/exceptions.py +0 -0
- {localstack_sdk_python-0.0.4 → localstack_sdk_python-4.4.0}/localstack-sdk-python/localstack/sdk/state/__init__.py +0 -0
- {localstack_sdk_python-0.0.4 → localstack_sdk_python-4.4.0}/localstack-sdk-python/localstack/sdk/state/client.py +0 -0
- {localstack_sdk_python-0.0.4 → localstack_sdk_python-4.4.0}/localstack-sdk-python/localstack/sdk/testing/__init__.py +0 -0
- {localstack_sdk_python-0.0.4 → localstack_sdk_python-4.4.0}/localstack-sdk-python/localstack/sdk/testing/decorators.py +0 -0
- {localstack_sdk_python-0.0.4 → localstack_sdk_python-4.4.0}/localstack-sdk-python/localstack/sdk/testing/pytest/__init__.py +0 -0
- {localstack_sdk_python-0.0.4 → localstack_sdk_python-4.4.0}/localstack-sdk-python/localstack/sdk/testing/pytest/plugins.py +0 -0
- {localstack_sdk_python-0.0.4 → localstack_sdk_python-4.4.0}/localstack-sdk-python/localstack_sdk_python.egg-info/dependency_links.txt +0 -0
- {localstack_sdk_python-0.0.4 → localstack_sdk_python-4.4.0}/localstack-sdk-python/localstack_sdk_python.egg-info/entry_points.txt +0 -0
- {localstack_sdk_python-0.0.4 → localstack_sdk_python-4.4.0}/localstack-sdk-python/localstack_sdk_python.egg-info/requires.txt +0 -0
- {localstack_sdk_python-0.0.4 → localstack_sdk_python-4.4.0}/localstack-sdk-python/localstack_sdk_python.egg-info/top_level.txt +0 -0
- {localstack_sdk_python-0.0.4 → localstack_sdk_python-4.4.0}/setup.cfg +0 -0
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
name: Release LocalStack Python Client
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
repository_dispatch:
|
|
5
|
+
types: [release-sdk]
|
|
6
|
+
workflow_dispatch:
|
|
7
|
+
inputs:
|
|
8
|
+
version:
|
|
9
|
+
description: The version of the OpenAPI spec to release the client for
|
|
10
|
+
required: true
|
|
11
|
+
|
|
12
|
+
env:
|
|
13
|
+
git_user_name: localstack[bot]
|
|
14
|
+
git_user_email: localstack-bot@users.noreply.github.com
|
|
15
|
+
|
|
16
|
+
jobs:
|
|
17
|
+
|
|
18
|
+
test_python:
|
|
19
|
+
runs-on: ubuntu-latest
|
|
20
|
+
env:
|
|
21
|
+
release: ${{ github.event_name == 'workflow_dispatch' && inputs.version || github.event.client_payload.version}}
|
|
22
|
+
|
|
23
|
+
steps:
|
|
24
|
+
- name: "Pull image"
|
|
25
|
+
run: |
|
|
26
|
+
docker pull localstack/localstack-pro:${{ env.release }}
|
|
27
|
+
|
|
28
|
+
- name: "Checkout"
|
|
29
|
+
uses: actions/checkout@v4
|
|
30
|
+
with:
|
|
31
|
+
# setuptools_scm requires git history to determine the version
|
|
32
|
+
fetch-depth: 0
|
|
33
|
+
|
|
34
|
+
- name: "Set up Python 3.11"
|
|
35
|
+
uses: actions/setup-python@v5
|
|
36
|
+
with:
|
|
37
|
+
python-version: "3.11"
|
|
38
|
+
|
|
39
|
+
- name: "Install uv"
|
|
40
|
+
uses: astral-sh/setup-uv@v3
|
|
41
|
+
|
|
42
|
+
- name: "Generate code from spec"
|
|
43
|
+
run: |
|
|
44
|
+
make clean-generated
|
|
45
|
+
./bin/generate.sh ${{ env.release }}
|
|
46
|
+
|
|
47
|
+
- name: "Prepare git config"
|
|
48
|
+
run: |
|
|
49
|
+
git config user.name ${{ env.git_user_name }}
|
|
50
|
+
git config user.email ${{ env.git_user_email }}
|
|
51
|
+
|
|
52
|
+
- name: "Commit changed code"
|
|
53
|
+
run: |
|
|
54
|
+
# Code automatically generated goes into the packages directory.
|
|
55
|
+
# As we generate code for the version to be released, we commit those changes.
|
|
56
|
+
if git status --porcelain packages/ | grep -q '^'; then
|
|
57
|
+
git add packages/
|
|
58
|
+
git commit -m "Generate code for ${{ env.release }}"
|
|
59
|
+
|
|
60
|
+
echo "Changes committed successfully"
|
|
61
|
+
else
|
|
62
|
+
echo "No changes detected after generating the code"
|
|
63
|
+
fi
|
|
64
|
+
|
|
65
|
+
- name: "Install project"
|
|
66
|
+
run: |
|
|
67
|
+
make install-dev
|
|
68
|
+
|
|
69
|
+
- name: "Install LocalStack"
|
|
70
|
+
run: |
|
|
71
|
+
pip install localstack==${{ env.release }}
|
|
72
|
+
|
|
73
|
+
- name: "Start Localstack"
|
|
74
|
+
env:
|
|
75
|
+
LOCALSTACK_AUTH_TOKEN: ${{ secrets.LOCALSTACK_AUTH_TOKEN }}
|
|
76
|
+
run: |
|
|
77
|
+
source .venv/bin/activate
|
|
78
|
+
DEBUG=1 DISABLE_EVENTS="1" IMAGE_NAME="localstack/localstack-pro:${{ env.release }}" localstack start -d
|
|
79
|
+
localstack wait -t 120 || (python -m localstack.cli.main logs && false)
|
|
80
|
+
|
|
81
|
+
- name: "Run Python Tests"
|
|
82
|
+
env:
|
|
83
|
+
LOCALSTACK_AUTH_TOKEN: ${{ secrets.LOCALSTACK_AUTH_TOKEN }}
|
|
84
|
+
run: |
|
|
85
|
+
make test
|
|
86
|
+
|
|
87
|
+
- name: "Stop Localstack"
|
|
88
|
+
if: success() || failure()
|
|
89
|
+
run: |
|
|
90
|
+
source .venv/bin/activate
|
|
91
|
+
localstack logs
|
|
92
|
+
localstack stop
|
|
93
|
+
|
|
94
|
+
- name: "Install release helper"
|
|
95
|
+
run: |
|
|
96
|
+
curl -o bin/release-helper.sh -L https://api.github.com/repos/localstack/localstack/contents/bin/release-helper.sh -H 'Accept: application/vnd.github.v3.raw'
|
|
97
|
+
chmod +x bin/release-helper.sh
|
|
98
|
+
|
|
99
|
+
- name: "Create the release commit and tag"
|
|
100
|
+
run: |
|
|
101
|
+
bin/release-helper.sh git-commit-release ${{ env.release }}
|
|
102
|
+
|
|
103
|
+
- name: "Publish release to pypi"
|
|
104
|
+
env:
|
|
105
|
+
UV_PUBLISH_TOKEN: ${{ secrets.UV_PUBLISH_TOKEN }}
|
|
106
|
+
run: |
|
|
107
|
+
make install publish
|
|
108
|
+
|
|
109
|
+
- name: "Push the release commit and tag"
|
|
110
|
+
run: |
|
|
111
|
+
git push --follow-tags
|
|
112
|
+
|
|
113
|
+
- name: "Create GitHub release"
|
|
114
|
+
env:
|
|
115
|
+
GITHUB_TOKEN: ${{ secrets.LOCALSTACK_GITHUB_TOKEN }}
|
|
116
|
+
run: gh release create "${{ env.release }}" --generate-notes --draft
|
|
117
|
+
|
|
118
|
+
- name: "Commit and push next development version"
|
|
119
|
+
run: |
|
|
120
|
+
bin/release-helper.sh git-commit-increment
|
|
121
|
+
git push
|
|
122
|
+
|
|
123
|
+
- name: "Publish development version to pypi"
|
|
124
|
+
env:
|
|
125
|
+
UV_PUBLISH_TOKEN: ${{ secrets.UV_PUBLISH_TOKEN }}
|
|
126
|
+
run: |
|
|
127
|
+
make install publish
|
|
128
|
+
|
|
129
|
+
- name: "Show git modifications"
|
|
130
|
+
run: |
|
|
131
|
+
git log --oneline -n 4
|
|
132
|
+
git show HEAD~1
|
|
133
|
+
git show HEAD
|
|
@@ -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,72 @@
|
|
|
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/
|
|
67
|
+
|
|
68
|
+
# setuptools_scm version.py
|
|
69
|
+
**/version.py
|
|
70
|
+
|
|
71
|
+
# release helper
|
|
72
|
+
bin/release-helper.sh
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
VENV_DIR ?= .venv
|
|
2
|
+
VENV_RUN = . $(VENV_DIR)/bin/activate
|
|
3
|
+
VENV_ACTIVATE = $(VENV_DIR)/bin/activate
|
|
4
|
+
TEST_PATH ?= .
|
|
5
|
+
TEST_EXEC ?= python -m
|
|
6
|
+
PYTEST_LOGLEVEL ?= warning
|
|
7
|
+
|
|
8
|
+
install: ## omit dev dependencies
|
|
9
|
+
uv venv
|
|
10
|
+
uv sync --no-dev
|
|
11
|
+
|
|
12
|
+
install-dev: ## create the venv and install
|
|
13
|
+
uv venv
|
|
14
|
+
uv sync
|
|
15
|
+
|
|
16
|
+
clean: ## Clean up the virtual environment
|
|
17
|
+
rm -rf $(VENV_DIR)
|
|
18
|
+
rm -rf dist/
|
|
19
|
+
|
|
20
|
+
clean-dist:
|
|
21
|
+
rm -rf dist/
|
|
22
|
+
|
|
23
|
+
clean-generated: ## Cleanup generated code
|
|
24
|
+
rm -rf packages/localstack-sdk-generated/localstack/
|
|
25
|
+
|
|
26
|
+
generate: ## Generate the code from the OpenAPI specs
|
|
27
|
+
./bin/generate.sh
|
|
28
|
+
|
|
29
|
+
build:
|
|
30
|
+
uv build --all-packages
|
|
31
|
+
|
|
32
|
+
publish: clean-dist build
|
|
33
|
+
uv publish
|
|
34
|
+
|
|
35
|
+
format:
|
|
36
|
+
($(VENV_RUN); python -m ruff format --exclude packages .; python -m ruff check --output-format=full --exclude packages --fix .)
|
|
37
|
+
|
|
38
|
+
lint:
|
|
39
|
+
($(VENV_RUN); python -m ruff check --exclude packages --output-format=full . && python -m ruff format --exclude packages --check .)
|
|
40
|
+
|
|
41
|
+
test: ## Run automated tests
|
|
42
|
+
($(VENV_RUN); $(TEST_EXEC) pytest --durations=10 --log-cli-level=$(PYTEST_LOGLEVEL) $(PYTEST_ARGS) $(TEST_PATH))
|
|
43
|
+
|
|
44
|
+
.PHONY: clean install install-dev clean clean-dist clean-generated generate build publish format lint test
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: localstack-sdk-python
|
|
3
|
+
Version: 4.4.0
|
|
4
|
+
Summary: Python SDK for LocalStack
|
|
5
|
+
Author-email: LocalStack Team <info@localstack.cloud>
|
|
6
|
+
Project-URL: Homepage, https://localstack.cloud
|
|
7
|
+
Project-URL: Documentation, https://docs.localstack.cloud
|
|
8
|
+
Project-URL: Repository, https://github.com/localstack/localstack-sdk-python.git
|
|
9
|
+
Project-URL: Issues, https://github.com/localstack/localstack-sdk-python/issues
|
|
10
|
+
Description-Content-Type: text/markdown
|
|
11
|
+
License-File: LICENSE.txt
|
|
12
|
+
Requires-Dist: localstack-sdk-generated
|
|
13
|
+
Dynamic: license-file
|
|
14
|
+
|
|
15
|
+
# LocalStack Python SDK
|
|
16
|
+
[](https://pypi.org/project/localstack-sdk-python/)
|
|
17
|
+
[](https://github.com/localstack/localstack-sdk-python/actions/workflows/test.yml)
|
|
18
|
+
|
|
19
|
+
This is the Python SDK for LocalStack.
|
|
20
|
+
LocalStack offers a number of developer endpoints (see [docs](https://docs.localstack.cloud/references/internal-endpoints/)).
|
|
21
|
+
This SDK provides a programmatic and easy way to interact with them.
|
|
22
|
+
|
|
23
|
+
> [!WARNING]
|
|
24
|
+
> This project is still in a preview phase and will be subject to fast and breaking changes.
|
|
25
|
+
|
|
26
|
+
### Project Structure
|
|
27
|
+
|
|
28
|
+
This project is composed by two Python packages:
|
|
29
|
+
|
|
30
|
+
- `packages/localstack-sdk-generated`: generated from the LocalStack's OpenAPI specs with [openapi-generator](https://github.com/OpenAPITools/openapi-generator).
|
|
31
|
+
The LocalStack's OpenAPI specs are available in [localstack/openapi](https://github.com/localstack/openapi).
|
|
32
|
+
This package is not meant to be manually modified, as it needs to be generated every time from the specs.
|
|
33
|
+
- `localstack-sdk-python`: the user-facing SDK that consumed `localstack-sdk-generated` as its main dependency.
|
|
34
|
+
|
|
35
|
+
### Installation
|
|
36
|
+
|
|
37
|
+
You can install the LocalStack Python SDK with `pip`:
|
|
38
|
+
|
|
39
|
+
```shell
|
|
40
|
+
pip install localstack-sdk-python
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
#### From Source
|
|
44
|
+
|
|
45
|
+
This project uses [uv](https://github.com/astral-sh/uv) as a package manager.
|
|
46
|
+
On a Unix system, you can install `uv` with the standalone installer:
|
|
47
|
+
|
|
48
|
+
```shell
|
|
49
|
+
curl -LsSf https://astral.sh/uv/install.sh | sh
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
Once `uv` is installed, you can install the project from source with:
|
|
53
|
+
|
|
54
|
+
```shell
|
|
55
|
+
make install
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
To run the integration test suite:
|
|
59
|
+
|
|
60
|
+
```shell
|
|
61
|
+
make test
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
Note that LocalStack Pro (with the same version as the SDK) should be running in the background to execute the test.
|
|
65
|
+
|
|
66
|
+
### Quickstart
|
|
67
|
+
|
|
68
|
+
To get started with our SDK, check out the [official documentation on https://docs.localstack.cloud](https://docs.localstack.cloud/user-guide/tools/localstack-sdk/python/).
|
|
69
|
+
You'll find comprehensive guides and detailed code samples that demonstrate how to use the various features provided
|
|
70
|
+
by the SDK.
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
# LocalStack Python SDK
|
|
2
|
+
[](https://pypi.org/project/localstack-sdk-python/)
|
|
3
|
+
[](https://github.com/localstack/localstack-sdk-python/actions/workflows/test.yml)
|
|
4
|
+
|
|
5
|
+
This is the Python SDK for LocalStack.
|
|
6
|
+
LocalStack offers a number of developer endpoints (see [docs](https://docs.localstack.cloud/references/internal-endpoints/)).
|
|
7
|
+
This SDK provides a programmatic and easy way to interact with them.
|
|
8
|
+
|
|
9
|
+
> [!WARNING]
|
|
10
|
+
> This project is still in a preview phase and will be subject to fast and breaking changes.
|
|
11
|
+
|
|
12
|
+
### Project Structure
|
|
13
|
+
|
|
14
|
+
This project is composed by two Python packages:
|
|
15
|
+
|
|
16
|
+
- `packages/localstack-sdk-generated`: generated from the LocalStack's OpenAPI specs with [openapi-generator](https://github.com/OpenAPITools/openapi-generator).
|
|
17
|
+
The LocalStack's OpenAPI specs are available in [localstack/openapi](https://github.com/localstack/openapi).
|
|
18
|
+
This package is not meant to be manually modified, as it needs to be generated every time from the specs.
|
|
19
|
+
- `localstack-sdk-python`: the user-facing SDK that consumed `localstack-sdk-generated` as its main dependency.
|
|
20
|
+
|
|
21
|
+
### Installation
|
|
22
|
+
|
|
23
|
+
You can install the LocalStack Python SDK with `pip`:
|
|
24
|
+
|
|
25
|
+
```shell
|
|
26
|
+
pip install localstack-sdk-python
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
#### From Source
|
|
30
|
+
|
|
31
|
+
This project uses [uv](https://github.com/astral-sh/uv) as a package manager.
|
|
32
|
+
On a Unix system, you can install `uv` with the standalone installer:
|
|
33
|
+
|
|
34
|
+
```shell
|
|
35
|
+
curl -LsSf https://astral.sh/uv/install.sh | sh
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
Once `uv` is installed, you can install the project from source with:
|
|
39
|
+
|
|
40
|
+
```shell
|
|
41
|
+
make install
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
To run the integration test suite:
|
|
45
|
+
|
|
46
|
+
```shell
|
|
47
|
+
make test
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
Note that LocalStack Pro (with the same version as the SDK) should be running in the background to execute the test.
|
|
51
|
+
|
|
52
|
+
### Quickstart
|
|
53
|
+
|
|
54
|
+
To get started with our SDK, check out the [official documentation on https://docs.localstack.cloud](https://docs.localstack.cloud/user-guide/tools/localstack-sdk/python/).
|
|
55
|
+
You'll find comprehensive guides and detailed code samples that demonstrate how to use the various features provided
|
|
56
|
+
by the SDK.
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
|
|
3
|
+
# Use the latest spec by default
|
|
4
|
+
SPEC_URL="https://raw.githubusercontent.com/localstack/openapi/refs/heads/main/openapi/emulators/localstack-spec-latest.yml"
|
|
5
|
+
|
|
6
|
+
if [ -n "$1" ]; then
|
|
7
|
+
SPEC_URL="https://github.com/localstack/openapi/releases/download/v$1/localstack-spec.yml"
|
|
8
|
+
fi
|
|
9
|
+
|
|
10
|
+
# Check if the URL is valid
|
|
11
|
+
if ! wget --spider -q "$SPEC_URL"; then
|
|
12
|
+
echo "Spec URL seems not accessible: $SPEC_URL"
|
|
13
|
+
exit 1
|
|
14
|
+
fi
|
|
15
|
+
|
|
16
|
+
docker run --rm -v "${PWD}:/local" openapitools/openapi-generator-cli:v7.10.0 generate \
|
|
17
|
+
-i "$SPEC_URL" \
|
|
18
|
+
--skip-validate-spec \
|
|
19
|
+
-g python \
|
|
20
|
+
-o /local//packages/localstack-sdk-generated \
|
|
21
|
+
--global-property models,apis,supportingFiles \
|
|
22
|
+
-p packageName=localstack.sdk \
|
|
23
|
+
--template-dir /local/packages/localstack-sdk-generated/templates \
|
|
24
|
+
--global-property apiTests=false,modelTests=false \
|
|
25
|
+
--global-property apiDocs=false,modelDocs=False
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
from localstack.sdk import version
|
|
1
2
|
from localstack.sdk.api_client import ApiClient
|
|
2
3
|
from localstack.sdk.configuration import Configuration
|
|
3
4
|
|
|
@@ -30,3 +31,5 @@ class BaseClient:
|
|
|
30
31
|
self.auth_token = auth_token
|
|
31
32
|
self.configuration = Configuration(host=self.host)
|
|
32
33
|
self._api_client = ApiClient(configuration=self.configuration)
|
|
34
|
+
# The generated code comes with 1.0.0 hard-coded. We set here the correct version
|
|
35
|
+
self._api_client.user_agent = f"LocalStack SDK/{version.version}/python"
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# file generated by setuptools-scm
|
|
2
|
+
# don't change, don't track in version control
|
|
3
|
+
|
|
4
|
+
__all__ = ["__version__", "__version_tuple__", "version", "version_tuple"]
|
|
5
|
+
|
|
6
|
+
TYPE_CHECKING = False
|
|
7
|
+
if TYPE_CHECKING:
|
|
8
|
+
from typing import Tuple
|
|
9
|
+
from typing import Union
|
|
10
|
+
|
|
11
|
+
VERSION_TUPLE = Tuple[Union[int, str], ...]
|
|
12
|
+
else:
|
|
13
|
+
VERSION_TUPLE = object
|
|
14
|
+
|
|
15
|
+
version: str
|
|
16
|
+
__version__: str
|
|
17
|
+
__version_tuple__: VERSION_TUPLE
|
|
18
|
+
version_tuple: VERSION_TUPLE
|
|
19
|
+
|
|
20
|
+
__version__ = version = '4.4.0'
|
|
21
|
+
__version_tuple__ = version_tuple = (4, 4, 0)
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: localstack-sdk-python
|
|
3
|
+
Version: 4.4.0
|
|
4
|
+
Summary: Python SDK for LocalStack
|
|
5
|
+
Author-email: LocalStack Team <info@localstack.cloud>
|
|
6
|
+
Project-URL: Homepage, https://localstack.cloud
|
|
7
|
+
Project-URL: Documentation, https://docs.localstack.cloud
|
|
8
|
+
Project-URL: Repository, https://github.com/localstack/localstack-sdk-python.git
|
|
9
|
+
Project-URL: Issues, https://github.com/localstack/localstack-sdk-python/issues
|
|
10
|
+
Description-Content-Type: text/markdown
|
|
11
|
+
License-File: LICENSE.txt
|
|
12
|
+
Requires-Dist: localstack-sdk-generated
|
|
13
|
+
Dynamic: license-file
|
|
14
|
+
|
|
15
|
+
# LocalStack Python SDK
|
|
16
|
+
[](https://pypi.org/project/localstack-sdk-python/)
|
|
17
|
+
[](https://github.com/localstack/localstack-sdk-python/actions/workflows/test.yml)
|
|
18
|
+
|
|
19
|
+
This is the Python SDK for LocalStack.
|
|
20
|
+
LocalStack offers a number of developer endpoints (see [docs](https://docs.localstack.cloud/references/internal-endpoints/)).
|
|
21
|
+
This SDK provides a programmatic and easy way to interact with them.
|
|
22
|
+
|
|
23
|
+
> [!WARNING]
|
|
24
|
+
> This project is still in a preview phase and will be subject to fast and breaking changes.
|
|
25
|
+
|
|
26
|
+
### Project Structure
|
|
27
|
+
|
|
28
|
+
This project is composed by two Python packages:
|
|
29
|
+
|
|
30
|
+
- `packages/localstack-sdk-generated`: generated from the LocalStack's OpenAPI specs with [openapi-generator](https://github.com/OpenAPITools/openapi-generator).
|
|
31
|
+
The LocalStack's OpenAPI specs are available in [localstack/openapi](https://github.com/localstack/openapi).
|
|
32
|
+
This package is not meant to be manually modified, as it needs to be generated every time from the specs.
|
|
33
|
+
- `localstack-sdk-python`: the user-facing SDK that consumed `localstack-sdk-generated` as its main dependency.
|
|
34
|
+
|
|
35
|
+
### Installation
|
|
36
|
+
|
|
37
|
+
You can install the LocalStack Python SDK with `pip`:
|
|
38
|
+
|
|
39
|
+
```shell
|
|
40
|
+
pip install localstack-sdk-python
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
#### From Source
|
|
44
|
+
|
|
45
|
+
This project uses [uv](https://github.com/astral-sh/uv) as a package manager.
|
|
46
|
+
On a Unix system, you can install `uv` with the standalone installer:
|
|
47
|
+
|
|
48
|
+
```shell
|
|
49
|
+
curl -LsSf https://astral.sh/uv/install.sh | sh
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
Once `uv` is installed, you can install the project from source with:
|
|
53
|
+
|
|
54
|
+
```shell
|
|
55
|
+
make install
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
To run the integration test suite:
|
|
59
|
+
|
|
60
|
+
```shell
|
|
61
|
+
make test
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
Note that LocalStack Pro (with the same version as the SDK) should be running in the background to execute the test.
|
|
65
|
+
|
|
66
|
+
### Quickstart
|
|
67
|
+
|
|
68
|
+
To get started with our SDK, check out the [official documentation on https://docs.localstack.cloud](https://docs.localstack.cloud/user-guide/tools/localstack-sdk/python/).
|
|
69
|
+
You'll find comprehensive guides and detailed code samples that demonstrate how to use the various features provided
|
|
70
|
+
by the SDK.
|