osc_sdk_python 0.39.2__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.
Files changed (55) hide show
  1. osc_sdk_python-0.39.2/.github/ISSUE_TEMPLATE/bug_report.yml +61 -0
  2. osc_sdk_python-0.39.2/.github/ISSUE_TEMPLATE/config.yml +5 -0
  3. osc_sdk_python-0.39.2/.github/ISSUE_TEMPLATE/feature_request.yml +43 -0
  4. osc_sdk_python-0.39.2/.github/PULL_REQUEST_TEMPLATE.md +48 -0
  5. osc_sdk_python-0.39.2/.github/actions/setup-test/action.yml +14 -0
  6. osc_sdk_python-0.39.2/.github/release.yml +56 -0
  7. osc_sdk_python-0.39.2/.github/renovate.json5 +6 -0
  8. osc_sdk_python-0.39.2/.github/scripts/release-build.sh +30 -0
  9. osc_sdk_python-0.39.2/.github/workflows/build.yml +45 -0
  10. osc_sdk_python-0.39.2/.github/workflows/code-check-identified.yml +33 -0
  11. osc_sdk_python-0.39.2/.github/workflows/code-check.yml +20 -0
  12. osc_sdk_python-0.39.2/.github/workflows/codeql.yml +43 -0
  13. osc_sdk_python-0.39.2/.github/workflows/cred-scan.yml +18 -0
  14. osc_sdk_python-0.39.2/.github/workflows/github-sanity-scan.yml +18 -0
  15. osc_sdk_python-0.39.2/.github/workflows/publish.yml +20 -0
  16. osc_sdk_python-0.39.2/.github/workflows/sync-labels.yml +16 -0
  17. osc_sdk_python-0.39.2/.gitignore +23 -0
  18. osc_sdk_python-0.39.2/CODE_OF_CONDUCT.md +44 -0
  19. osc_sdk_python-0.39.2/CONTRIBUTING.md +56 -0
  20. osc_sdk_python-0.39.2/LICENSE +29 -0
  21. osc_sdk_python-0.39.2/MANIFEST.in +3 -0
  22. osc_sdk_python-0.39.2/Makefile +36 -0
  23. osc_sdk_python-0.39.2/PKG-INFO +259 -0
  24. osc_sdk_python-0.39.2/README.md +237 -0
  25. osc_sdk_python-0.39.2/docs/examples.md +85 -0
  26. osc_sdk_python-0.39.2/docs/troubleshooting.md +21 -0
  27. osc_sdk_python-0.39.2/local-tests.sh +28 -0
  28. osc_sdk_python-0.39.2/osc_sdk_python/VERSION +1 -0
  29. osc_sdk_python-0.39.2/osc_sdk_python/__init__.py +31 -0
  30. osc_sdk_python-0.39.2/osc_sdk_python/authentication.py +176 -0
  31. osc_sdk_python-0.39.2/osc_sdk_python/call.py +96 -0
  32. osc_sdk_python-0.39.2/osc_sdk_python/credentials.py +186 -0
  33. osc_sdk_python-0.39.2/osc_sdk_python/limiter.py +29 -0
  34. osc_sdk_python-0.39.2/osc_sdk_python/outscale_gateway.py +322 -0
  35. osc_sdk_python-0.39.2/osc_sdk_python/problem.py +100 -0
  36. osc_sdk_python-0.39.2/osc_sdk_python/requester.py +29 -0
  37. osc_sdk_python-0.39.2/osc_sdk_python/resources/gateway_errors.yaml +1220 -0
  38. osc_sdk_python-0.39.2/osc_sdk_python/resources/outscale.yaml +25166 -0
  39. osc_sdk_python-0.39.2/osc_sdk_python/retry.py +138 -0
  40. osc_sdk_python-0.39.2/osc_sdk_python/version.py +7 -0
  41. osc_sdk_python-0.39.2/pyproject.toml +40 -0
  42. osc_sdk_python-0.39.2/shell.nix +13 -0
  43. osc_sdk_python-0.39.2/tests/test_exceptions.py +18 -0
  44. osc_sdk_python-0.39.2/tests/test_exceptions_500.py +76 -0
  45. osc_sdk_python-0.39.2/tests/test_limiter.py +65 -0
  46. osc_sdk_python-0.39.2/tests/test_log.py +36 -0
  47. osc_sdk_python-0.39.2/tests/test_manual_aksk.py +32 -0
  48. osc_sdk_python-0.39.2/tests/test_net.py +21 -0
  49. osc_sdk_python-0.39.2/tests/test_password.py +38 -0
  50. osc_sdk_python-0.39.2/tests/test_problems.py +48 -0
  51. osc_sdk_python-0.39.2/tests/test_retry.py +235 -0
  52. osc_sdk_python-0.39.2/tests/test_vm.py +23 -0
  53. osc_sdk_python-0.39.2/tests/test_volume.py +17 -0
  54. osc_sdk_python-0.39.2/tox.ini +18 -0
  55. osc_sdk_python-0.39.2/uv.lock +446 -0
@@ -0,0 +1,61 @@
1
+ name: Bug Report
2
+ description: Report a reproducible bug or regression
3
+ labels: [bug]
4
+ assignees: []
5
+
6
+ body:
7
+ - type: markdown
8
+ attributes:
9
+ value: |
10
+ Thanks for taking the time to report this bug! Please fill in as much detail as possible.
11
+
12
+ - type: input
13
+ id: title
14
+ attributes:
15
+ label: Bug Summary
16
+ description: A short summary of the bug
17
+ placeholder: e.g., Crash on startup
18
+ validations:
19
+ required: true
20
+
21
+ - type: textarea
22
+ id: steps
23
+ attributes:
24
+ label: Steps to Reproduce
25
+ description: Describe the steps needed to reproduce the issue
26
+ placeholder: |
27
+ 1. Open a terminal
28
+ 2. Run: `my-cli-tool init --config config.yaml`
29
+ 3. Run: `my-cli-tool deploy`
30
+ 4. Observe the error in the output
31
+ validations:
32
+ required: true
33
+
34
+ - type: textarea
35
+ id: expected
36
+ attributes:
37
+ label: Expected Behavior
38
+ description: What did you expect to happen?
39
+ validations:
40
+ required: true
41
+
42
+ - type: textarea
43
+ id: actual
44
+ attributes:
45
+ label: Actual Behavior
46
+ description: What actually happened?
47
+ validations:
48
+ required: true
49
+
50
+ - type: input
51
+ id: version
52
+ attributes:
53
+ label: Project Version
54
+ description: What version are you using?
55
+ placeholder: e.g., v1.2.3
56
+
57
+ - type: textarea
58
+ id: environment
59
+ attributes:
60
+ label: Environment Info
61
+ description: Include OS, language/runtime, configuration, etc.
@@ -0,0 +1,5 @@
1
+ blank_issues_enabled: false
2
+ contact_links:
3
+ - name: πŸ’¬ Ask a Question or Get Help
4
+ url: https://discord.gg/HUVtY5gT6s
5
+ about: Join our Discord server to ask questions and connect with the maintainers.
@@ -0,0 +1,43 @@
1
+ name: Feature Request
2
+ description: Suggest a new feature or enhancement
3
+ labels: [enhancement]
4
+ assignees: []
5
+
6
+ body:
7
+ - type: markdown
8
+ attributes:
9
+ value: |
10
+ Have a feature in mind? Let us know how it would help!
11
+
12
+ - type: input
13
+ id: title
14
+ attributes:
15
+ label: Feature Summary
16
+ description: A short and clear title for your feature
17
+ placeholder: e.g., Add support for `--dry-run` flag in deploy command
18
+ validations:
19
+ required: true
20
+
21
+ - type: textarea
22
+ id: problem
23
+ attributes:
24
+ label: Problem to Solve
25
+ description: What problem does this feature solve?
26
+
27
+ - type: textarea
28
+ id: solution
29
+ attributes:
30
+ label: Proposed Solution
31
+ description: How do you imagine this feature would work?
32
+
33
+ - type: textarea
34
+ id: alternatives
35
+ attributes:
36
+ label: Alternatives Considered
37
+ description: Have you tried another approach or workaround?
38
+
39
+ - type: textarea
40
+ id: context
41
+ attributes:
42
+ label: Additional Context
43
+ description: Add any other context or related links.
@@ -0,0 +1,48 @@
1
+ # πŸ“¦ Pull Request Template
2
+
3
+ ## Description
4
+
5
+ Please include a summary of the changes and the related context. If this is a feature, explain the motivation. If it's a bug fix, describe what was broken.
6
+
7
+ Fixes: #<issue-number> _(if applicable)_
8
+
9
+ ## Type of Change
10
+
11
+ Please check the relevant option(s):
12
+
13
+ - [ ] πŸ› Bug fix
14
+ - [ ] ✨ New feature
15
+ - [ ] 🧹 Code cleanup or refactor
16
+ - [ ] πŸ“ Documentation update
17
+ - [ ] πŸ”§ Build or CI-related change
18
+ - [ ] πŸ”’ Security fix
19
+ - [ ] Other (specify):
20
+
21
+ ## How Has This Been Tested?
22
+
23
+ Please describe the test strategy:
24
+
25
+ - [ ] Manual testing
26
+ - [ ] Unit tests
27
+ - [ ] Integration tests
28
+ - [ ] Not tested yet
29
+
30
+ Commands used (if applicable):
31
+
32
+ ```bash
33
+ # Example
34
+ my-cli-tool build --verbose
35
+ my-cli-tool test
36
+ ````
37
+
38
+ ## Checklist
39
+
40
+ * [ ] I have followed the [Contributing Guidelines](../blob/main/CONTRIBUTING.md)
41
+ * [ ] I have added tests or explained why they are not needed
42
+ * [ ] I have updated relevant documentation (README, examples, etc.)
43
+ * [ ] My changes follow the [Conventional Commits](https://www.conventionalcommits.org/) specification
44
+ * [ ] My commits include appropriate [Gitmoji](https://gitmoji.dev/)
45
+
46
+ ## Additional Context
47
+
48
+ Add any additional context or screenshots if necessary.
@@ -0,0 +1,14 @@
1
+ name: Setup code checks
2
+ description: "Setup toolchain and run smoke test"
3
+ runs:
4
+ using: composite
5
+ steps:
6
+ - name: ⬇️ Install uv
7
+ uses: astral-sh/setup-uv@61cb8a9741eeb8a550a1b8544337180c0fc8476b # v7
8
+ - name: ⬇️ Setup Python
9
+ run: uv python install
10
+ shell: bash
11
+ - name: ⬇️ Build python package
12
+ run: make package
13
+ shell: bash
14
+
@@ -0,0 +1,56 @@
1
+ changelog:
2
+ exclude:
3
+ labels:
4
+ - skip-changelog
5
+ authors:
6
+ - github-actions[bot]
7
+
8
+ categories:
9
+ - title: πŸ’₯ Breaking
10
+ labels:
11
+ - breaking-change
12
+ - title: ✨ Added
13
+ labels:
14
+ - kind/feature
15
+ - title: πŸ› οΈ Changed / Refactoring
16
+ labels:
17
+ - kind/refactoring
18
+ - kind/other
19
+ - title: πŸ“ Documentation
20
+ labels:
21
+ - kind/documentation
22
+ - title: ⚰️ Deprecated
23
+ labels:
24
+ - kind/deprecation
25
+ - title: πŸ—‘οΈ Removed
26
+ labels:
27
+ - kind/cleanup
28
+ - title: πŸ› Fixed
29
+ labels:
30
+ - kind/bug
31
+ - title: πŸ”’ Security
32
+ labels:
33
+ - security
34
+ - title: πŸ“¦ Dependency updates
35
+ labels:
36
+ - dependencies
37
+ - title: 🌱 Others
38
+ labels:
39
+ - "*"
40
+
41
+ templates:
42
+ title: "Release v$RESOLVED_VERSION"
43
+ body: |
44
+ ## πŸ“¦ Overview
45
+ This release brings new features, bug fixes, and improvements.
46
+
47
+ ## πŸ“ Changelog
48
+ $CHANGES
49
+
50
+ ## πŸ”§ Upgrade notes
51
+ - Review **Breaking Changes** carefully.
52
+ - Follow migration steps if applicable.
53
+
54
+ ## πŸ‘₯ Contributors
55
+ Thanks to everyone who contributed:
56
+ $CONTRIBUTORS
@@ -0,0 +1,6 @@
1
+ {
2
+ "$schema": "https://docs.renovatebot.com/renovate-schema.json",
3
+ "extends": [
4
+ "github>outscale/oks-tools-team//renovate/default.json5#initial"
5
+ ]
6
+ }
@@ -0,0 +1,30 @@
1
+ #!/bin/env bash
2
+ set -e
3
+ osc_api_version=$1
4
+
5
+ if [ -z "$osc_api_version" ]; then
6
+ echo "run $0 with version tag as argument, abort."
7
+ exit 1
8
+ fi
9
+
10
+ root=$(cd "$(dirname $0)/../.." && pwd)
11
+
12
+ # build new version number
13
+ local_sdk_version=$(cat $root/osc_sdk_python/VERSION)
14
+ local_sdk_version_major=$(echo $local_sdk_version | cut -d '.' -f 1)
15
+ local_sdk_version_minor=$(echo $local_sdk_version | cut -d '.' -f 2)
16
+ local_sdk_version_patch=$(echo $local_sdk_version | cut -d '.' -f 3)
17
+ new_sdk_version_minor=$(( local_sdk_version_minor + 1 ))
18
+ new_sdk_version="$local_sdk_version_major.$new_sdk_version_minor.0"
19
+
20
+ # Update osc-api version
21
+ curl --retry 10 -o "${root}/osc_sdk_python/resources/outscale.yaml" "https://raw.githubusercontent.com/outscale/osc-api/refs/tags/${osc_api_version}/outscale.yaml"
22
+ git add "${root}/osc_sdk_python/resources/outscale.yaml"
23
+
24
+ # Setup new SDK version
25
+ for f in "$root/README.md" "$root/osc_sdk_python/VERSION"; do
26
+ sed -i "s/$local_sdk_version_major\.$local_sdk_version_minor\.$local_sdk_version_patch/$local_sdk_version_major\.$new_sdk_version_minor\.0/g" "$f"
27
+ git add "$f"
28
+ done
29
+
30
+ uv version $(cat osc_sdk_python/VERSION)
@@ -0,0 +1,45 @@
1
+ name: osc-sdk-python release build
2
+
3
+ on:
4
+ workflow_dispatch:
5
+ inputs:
6
+ api_version:
7
+ description: 'Outscale API version'
8
+ required: true
9
+
10
+ permissions:
11
+ contents: write
12
+ pull-requests: write
13
+ id-token: write
14
+
15
+ jobs:
16
+ auto-build:
17
+ environment: auto-build
18
+ runs-on: ubuntu-24.04
19
+ steps:
20
+ - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6
21
+ - uses: chainguard-dev/actions/setup-gitsign@main
22
+ - name: Install uv
23
+ uses: astral-sh/setup-uv@61cb8a9741eeb8a550a1b8544337180c0fc8476b # v7
24
+ - name: Set up Python
25
+ run: uv python install
26
+ - name: Build release
27
+ run: .github/scripts/release-build.sh ${{ github.event.inputs.api_version }}
28
+ - name: Get SDK version
29
+ id: get-sdk-version
30
+ run: |
31
+ echo "sdk_version=$(cat osc_sdk_python/VERSION)" >> "$GITHUB_OUTPUT"
32
+ - name: Create Pull Request
33
+ uses: peter-evans/create-pull-request@v8.1.0
34
+ with:
35
+ committer: "Outscale Bot <opensource+bot@outscale.com>"
36
+ author: "Outscale Bot <opensource+bot@outscale.com>"
37
+ commit-message: "πŸ”– release: osc-sdk-python v${{ env.sdk_version }}"
38
+ body: |
39
+ Automatic build of SDK v${{ env.sdk_version }} version based on Outscale API ${{ env.api_version }}.
40
+ title: "SDK v${{ env.sdk_version }}"
41
+ token: "${{ env.token }}"
42
+ env:
43
+ sdk_version: ${{ steps.get-sdk-version.outputs.sdk_version }}
44
+ api_version: ${{ github.event.inputs.api_version }}
45
+ token: ${{ secrets.GH_TOKEN || secrets.GITHUB_TOKEN }}
@@ -0,0 +1,33 @@
1
+ name: Code check On outscale
2
+
3
+ on:
4
+ pull_request:
5
+ branches:
6
+ - main
7
+
8
+ permissions:
9
+ contents: read
10
+
11
+ jobs:
12
+ code-check:
13
+ runs-on: ubuntu-24.04
14
+ environment: eu-west-2
15
+ if: "! contains(github.event.pull_request.labels.*.name, 'dependencies')"
16
+ steps:
17
+ - name: 🧹 Frieza
18
+ uses: outscale/frieza-github-actions/frieza-clean@master
19
+ with:
20
+ access_key: ${{ secrets.OSC_ACCESS_KEY }}
21
+ secret_key: ${{ secrets.OSC_SECRET_KEY }}
22
+ region: ${{ secrets.OSC_REGION }}
23
+ - name: ⬇️ Checkout repository
24
+ uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6
25
+ - name: Setup toolchain
26
+ uses: ./.github/actions/setup-test
27
+ - name: πŸ§ͺ Run integration tests
28
+ env:
29
+ OSC_ACCESS_KEY: ${{ secrets.OSC_ACCESS_KEY }}
30
+ OSC_SECRET_KEY: ${{ secrets.OSC_SECRET_KEY }}
31
+ OSC_TEST_LOGIN: ${{ secrets.OSC_TEST_LOGIN }}
32
+ OSC_TEST_PASSWORD: ${{ secrets.OSC_TEST_PASSWORD }}
33
+ run: make test-int
@@ -0,0 +1,20 @@
1
+ name: Code check Local
2
+
3
+ on:
4
+ pull_request:
5
+ branches:
6
+ - main
7
+
8
+ permissions:
9
+ contents: read
10
+
11
+ jobs:
12
+ code-check:
13
+ runs-on: ubuntu-24.04
14
+ steps:
15
+ - name: ⬇️ Checkout repository
16
+ uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6
17
+ - name: Setup toolchain
18
+ uses: ./.github/actions/setup-test
19
+ - name: Run integration tests
20
+ run: ./local-tests.sh
@@ -0,0 +1,43 @@
1
+ name: "CodeQL"
2
+
3
+ on:
4
+ push:
5
+ branches: [ "main" ]
6
+ pull_request:
7
+ branches: [ "main" ]
8
+ schedule:
9
+ - cron: "37 13 * * 5"
10
+
11
+ jobs:
12
+ analyze:
13
+ name: Analyze
14
+ runs-on: ubuntu-latest
15
+ permissions:
16
+ actions: read
17
+ contents: read
18
+ security-events: write
19
+
20
+ strategy:
21
+ fail-fast: false
22
+ matrix:
23
+ include:
24
+ - language: python
25
+ - language: actions
26
+
27
+ steps:
28
+ - name: Checkout
29
+ uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6
30
+
31
+ - name: Initialize CodeQL
32
+ uses: github/codeql-action/init@cdefb33c0f6224e58673d9004f47f7cb3e328b89 # v4
33
+ with:
34
+ languages: ${{ matrix.language }}
35
+ queries: +security-and-quality
36
+
37
+ - name: Autobuild
38
+ uses: github/codeql-action/autobuild@cdefb33c0f6224e58673d9004f47f7cb3e328b89 # v4
39
+
40
+ - name: Perform CodeQL Analysis
41
+ uses: github/codeql-action/analyze@cdefb33c0f6224e58673d9004f47f7cb3e328b89 # v4
42
+ with:
43
+ category: "/language:${{ matrix.language }}"
@@ -0,0 +1,18 @@
1
+ name: Credential Scanner
2
+
3
+ on:
4
+ pull_request:
5
+ branches: [ main ]
6
+
7
+ permissions:
8
+ contents: read
9
+
10
+ jobs:
11
+ cred-scan:
12
+ runs-on: ubuntu-latest
13
+ steps:
14
+ - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6
15
+ - name: Scan credentials
16
+ uses: outscale/cred-scan@main
17
+ with:
18
+ scan_path: "./"
@@ -0,0 +1,18 @@
1
+ name: Github sanity scanner
2
+
3
+ on:
4
+ pull_request:
5
+ branches: [ main ]
6
+
7
+ permissions:
8
+ contents: read
9
+
10
+ jobs:
11
+ github-sanity-scan:
12
+ runs-on: ubuntu-latest
13
+ steps:
14
+ - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6
15
+ - name: Github sanity scanner
16
+ uses: outscale/github-sanity-scan@main
17
+ with:
18
+ no-pull-request-target: true
@@ -0,0 +1,20 @@
1
+ name: osc-sdk-python pip publishing
2
+
3
+ on:
4
+ release:
5
+ types: [released]
6
+
7
+ permissions:
8
+ contents: read
9
+ id-token: write
10
+
11
+ jobs:
12
+ build:
13
+ runs-on: ubuntu-24.04
14
+ environment: publish
15
+ steps:
16
+ - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6
17
+ - name: Setup toolchain
18
+ uses: ./.github/actions/setup-test
19
+ - name: Build & Push packages
20
+ run: make upload-package
@@ -0,0 +1,16 @@
1
+ name: Sync labels
2
+ on:
3
+ workflow_dispatch:
4
+
5
+ permissions:
6
+ issues: write # needed to edit labels
7
+
8
+ jobs:
9
+ sync:
10
+ runs-on: ubuntu-latest
11
+ steps:
12
+ - uses: EndBug/label-sync@v2
13
+ with:
14
+ config-file: 'https://raw.githubusercontent.com/outscale/.github/main/labels.yml'
15
+ # delete-other-labels: false # set to true for strict sync
16
+ # dry-run: false # set to true to preview changes
@@ -0,0 +1,23 @@
1
+ # Byte-compiled
2
+ __pycache__/
3
+ *.py[cod]
4
+
5
+ # Distribution / packaging
6
+ build/
7
+ dist/
8
+ *.egg-info/
9
+
10
+ # Environments
11
+ .env
12
+ .venv
13
+ env/
14
+ venv/
15
+ ENV/
16
+ env.bak/
17
+ venv.bak/
18
+
19
+ # MacOS
20
+ .DS_Store
21
+
22
+ # Visual Code
23
+ .vscode/*
@@ -0,0 +1,44 @@
1
+ # Code of Conduct
2
+
3
+ This project follows the [Contributor Covenant](https://www.contributor-covenant.org) Code of Conduct.
4
+
5
+ ## Our Pledge
6
+
7
+ We as members, contributors, and leaders pledge to make participation in our project and community a harassment-free experience for everyone, regardless of age, body size, visible or invisible disability, ethnicity, sex characteristics, gender identity and expression, level of experience, education, socio-economic status, nationality, personal appearance, race, religion, or sexual identity and orientation.
8
+
9
+ We pledge to act and interact in ways that contribute to an open, welcoming, diverse, inclusive, and healthy community.
10
+
11
+ ## Our Standards
12
+
13
+ Examples of behavior that contributes to a positive environment include:
14
+
15
+ - Demonstrating empathy and kindness
16
+ - Being respectful of differing viewpoints and experiences
17
+ - Giving and gracefully accepting constructive feedback
18
+ - Taking responsibility and apologizing to those affected by mistakes
19
+ - Focusing on what is best for the community
20
+
21
+ Examples of unacceptable behavior include:
22
+
23
+ - The use of sexualized language or imagery
24
+ - Trolling, insulting, or derogatory comments
25
+ - Public or private harassment
26
+ - Publishing others’ private information without explicit permission
27
+ - Other conduct which could reasonably be considered inappropriate
28
+
29
+ ## Enforcement Responsibilities
30
+
31
+ Project maintainers are responsible for clarifying and enforcing this code of conduct and will take appropriate and fair corrective action in response to any behavior they deem inappropriate.
32
+
33
+ ## Reporting
34
+
35
+ If you experience or witness unacceptable behavior, please report it via one of the following channels:
36
+
37
+ - πŸ’¬ [Discord](https://discord.gg/HUVtY5gT6s)
38
+ - πŸ“§ [opensource@outscale.com](mailto:opensource@outscale.com)
39
+
40
+ Reports will be handled confidentially and reviewed promptly.
41
+
42
+ ## Attribution
43
+
44
+ This Code of Conduct is adapted from the [Contributor Covenant, version 2.1](https://www.contributor-covenant.org/version/2/1/code_of_conduct.html).
@@ -0,0 +1,56 @@
1
+ # Contributing Guidelines
2
+
3
+ First off, thank you for taking the time to contribute! πŸ™Œ
4
+ Your help is appreciated and helps make this project better for everyone.
5
+
6
+ ---
7
+
8
+ ## How to Contribute
9
+
10
+ ### πŸ› Reporting Bugs
11
+ If you find a bug, please open an issue and include:
12
+ - A clear and descriptive title
13
+ - Steps to reproduce the issue
14
+ - Expected and actual behavior
15
+ - Any relevant logs, screenshots, or environment information
16
+
17
+ ### ✨ Suggesting Enhancements
18
+ Have an idea for a new feature or improvement?
19
+ - Open an issue and describe your suggestion
20
+ - Explain the use case and potential benefits
21
+ - Optional: propose an implementation strategy
22
+
23
+ ### πŸ› οΈ Submitting Code Changes
24
+ To submit a patch or enhancement:
25
+ 1. Fork the repository
26
+ 2. Create a new branch (`git checkout -b feature/your-feature-name`)
27
+ 3. Make your changes
28
+ 4. Test your changes (if applicable)
29
+ 5. Open a pull request with a clear description of your changes
30
+
31
+ ### βœ… Code of Conduct
32
+ By participating, you agree to uphold our [Code of Conduct](CODE_OF_CONDUCT.md).
33
+
34
+ ---
35
+
36
+ ## Guidelines
37
+
38
+ - Keep pull requests focused and atomic (one feature or fix per PR).
39
+ - Follow any existing code style or formatting conventions.
40
+ - Document your code where necessary.
41
+ - Include tests when adding new logic (if applicable).
42
+ - Use clear, meaningful commit messages (optionally following [Conventional Commits](https://www.conventionalcommits.org/) and using [Gitmoji](https://gitmoji.dev/) for added clarity and consistency).
43
+
44
+ ## πŸ“ Commit Template
45
+
46
+ To help you follow the Gitmoji and Conventional Commit format, you can enable the local commit template:
47
+
48
+ ```bash
49
+ git config commit.template .github/commit-template.txt
50
+ ```
51
+
52
+ ---
53
+
54
+ ## Questions?
55
+
56
+ If you have any questions or need help, feel free to [open an issue](../../issues) or reach out to the maintainers on [Discord](https://discord.gg/HUVtY5gT6s).
@@ -0,0 +1,29 @@
1
+ BSD 3-Clause License
2
+
3
+ Copyright (c) 2019, Outscale SAS
4
+ All rights reserved.
5
+
6
+ Redistribution and use in source and binary forms, with or without
7
+ modification, are permitted provided that the following conditions are met:
8
+
9
+ * Redistributions of source code must retain the above copyright notice, this
10
+ list of conditions and the following disclaimer.
11
+
12
+ * Redistributions in binary form must reproduce the above copyright notice,
13
+ this list of conditions and the following disclaimer in the documentation
14
+ and/or other materials provided with the distribution.
15
+
16
+ * Neither the name of the copyright holder nor the names of its
17
+ contributors may be used to endorse or promote products derived from
18
+ this software without specific prior written permission.
19
+
20
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
21
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
22
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
23
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
24
+ FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
25
+ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
26
+ SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
27
+ CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
28
+ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
@@ -0,0 +1,3 @@
1
+ include osc_sdk_python/osc-api/outscale.yaml
2
+ include osc_sdk_python/resources/gateway_errors.yaml
3
+ include osc_sdk_python/VERSION