├── core ├── tests │ ├── __init__.py │ └── core │ │ ├── __init__.py │ │ └── test_config.py ├── src │ └── stackit │ │ └── core │ │ ├── __init__.py │ │ └── auth_methods │ │ └── token_auth.py ├── NOTICE.txt ├── CHANGELOG.md └── README.md ├── services ├── alb │ ├── src │ │ └── stackit │ │ │ └── alb │ │ │ ├── py.typed │ │ │ ├── api │ │ │ └── __init__.py │ │ │ └── api_response.py │ ├── NOTICE.txt │ ├── README.md │ └── CHANGELOG.md ├── cdn │ ├── src │ │ └── stackit │ │ │ └── cdn │ │ │ ├── py.typed │ │ │ ├── api │ │ │ └── __init__.py │ │ │ ├── api_response.py │ │ │ └── models │ │ │ ├── waf_rule_action.py │ │ │ ├── region.py │ │ │ ├── waf_mode.py │ │ │ ├── waf_type.py │ │ │ ├── waf_paranoia_level.py │ │ │ └── domain_status.py │ ├── NOTICE.txt │ └── README.md ├── dns │ ├── src │ │ └── stackit │ │ │ └── dns │ │ │ ├── py.typed │ │ │ ├── api │ │ │ └── __init__.py │ │ │ └── api_response.py │ ├── NOTICE.txt │ ├── README.md │ └── CHANGELOG.md ├── git │ ├── src │ │ └── stackit │ │ │ └── git │ │ │ ├── py.typed │ │ │ ├── api │ │ │ └── __init__.py │ │ │ ├── api_response.py │ │ │ └── models │ │ │ ├── instance_flavor.py │ │ │ └── __init__.py │ ├── NOTICE.txt │ ├── README.md │ └── CHANGELOG.md ├── kms │ ├── src │ │ └── stackit │ │ │ └── kms │ │ │ ├── py.typed │ │ │ ├── api │ │ │ └── __init__.py │ │ │ ├── api_response.py │ │ │ └── models │ │ │ ├── access_scope.py │ │ │ ├── protection.py │ │ │ ├── wrapping_purpose.py │ │ │ ├── purpose.py │ │ │ ├── algorithm.py │ │ │ └── wrapping_algorithm.py │ ├── NOTICE.txt │ └── README.md ├── scf │ ├── src │ │ └── stackit │ │ │ └── scf │ │ │ ├── py.typed │ │ │ ├── api │ │ │ └── __init__.py │ │ │ ├── api_response.py │ │ │ └── models │ │ │ ├── space_role_type.py │ │ │ └── org_role_type.py │ ├── NOTICE.txt │ ├── CHANGELOG.md │ └── README.md ├── ske │ ├── src │ │ └── stackit │ │ │ └── ske │ │ │ ├── py.typed │ │ │ ├── api │ │ │ └── __init__.py │ │ │ ├── api_response.py │ │ │ └── models │ │ │ ├── get_provider_options_request_version_state.py │ │ │ └── cluster_status_state.py │ ├── NOTICE.txt │ └── README.md ├── iaas │ ├── src │ │ └── stackit │ │ │ └── iaas │ │ │ ├── py.typed │ │ │ ├── api │ │ │ └── __init__.py │ │ │ ├── api_response.py │ │ │ └── models │ │ │ └── static_area_id.py │ ├── NOTICE.txt │ └── README.md ├── intake │ ├── src │ │ └── stackit │ │ │ └── intake │ │ │ ├── py.typed │ │ │ ├── api │ │ │ └── __init__.py │ │ │ ├── api_response.py │ │ │ └── models │ │ │ ├── catalog_auth_type.py │ │ │ ├── user_type.py │ │ │ ├── partitioning_type.py │ │ │ └── partitioning_update_type.py │ ├── NOTICE.txt │ ├── README.md │ └── CHANGELOG.md ├── logme │ ├── src │ │ └── stackit │ │ │ └── logme │ │ │ ├── py.typed │ │ │ ├── api │ │ │ └── __init__.py │ │ │ └── api_response.py │ ├── NOTICE.txt │ ├── README.md │ └── CHANGELOG.md ├── redis │ ├── src │ │ └── stackit │ │ │ └── redis │ │ │ ├── py.typed │ │ │ ├── api │ │ │ └── __init__.py │ │ │ └── api_response.py │ ├── NOTICE.txt │ ├── CHANGELOG.md │ └── README.md ├── auditlog │ ├── src │ │ └── stackit │ │ │ └── auditlog │ │ │ ├── py.typed │ │ │ ├── api │ │ │ └── __init__.py │ │ │ └── api_response.py │ ├── NOTICE.txt │ ├── CHANGELOG.md │ └── README.md ├── mariadb │ ├── src │ │ └── stackit │ │ │ └── mariadb │ │ │ ├── py.typed │ │ │ ├── api │ │ │ └── __init__.py │ │ │ └── api_response.py │ ├── NOTICE.txt │ ├── CHANGELOG.md │ └── README.md ├── rabbitmq │ ├── src │ │ └── stackit │ │ │ └── rabbitmq │ │ │ ├── py.typed │ │ │ ├── api │ │ │ └── __init__.py │ │ │ └── api_response.py │ ├── NOTICE.txt │ ├── CHANGELOG.md │ └── README.md ├── iaasalpha │ ├── src │ │ └── stackit │ │ │ └── iaasalpha │ │ │ ├── py.typed │ │ │ ├── api │ │ │ └── __init__.py │ │ │ └── api_response.py │ └── README.md ├── mongodbflex │ ├── src │ │ └── stackit │ │ │ └── mongodbflex │ │ │ ├── py.typed │ │ │ ├── api │ │ │ └── __init__.py │ │ │ └── api_response.py │ ├── NOTICE.txt │ ├── README.md │ └── CHANGELOG.md ├── opensearch │ ├── src │ │ └── stackit │ │ │ └── opensearch │ │ │ ├── py.typed │ │ │ ├── api │ │ │ └── __init__.py │ │ │ └── api_response.py │ ├── NOTICE.txt │ ├── CHANGELOG.md │ └── README.md ├── runcommand │ ├── src │ │ └── stackit │ │ │ └── runcommand │ │ │ ├── py.typed │ │ │ ├── api │ │ │ └── __init__.py │ │ │ ├── api_response.py │ │ │ └── models │ │ │ └── __init__.py │ ├── NOTICE.txt │ ├── README.md │ └── CHANGELOG.md ├── authorization │ ├── src │ │ └── stackit │ │ │ └── authorization │ │ │ ├── py.typed │ │ │ ├── api │ │ │ └── __init__.py │ │ │ └── api_response.py │ ├── NOTICE.txt │ ├── README.md │ └── CHANGELOG.md ├── certificates │ ├── src │ │ └── stackit │ │ │ └── certificates │ │ │ ├── py.typed │ │ │ ├── api │ │ │ └── __init__.py │ │ │ ├── api_response.py │ │ │ └── models │ │ │ └── __init__.py │ ├── NOTICE.txt │ ├── README.md │ └── CHANGELOG.md ├── lbapplication │ ├── src │ │ └── stackit │ │ │ └── lbapplication │ │ │ ├── py.typed │ │ │ ├── api │ │ │ └── __init__.py │ │ │ └── api_response.py │ ├── NOTICE.txt │ ├── README.md │ └── CHANGELOG.md ├── loadbalancer │ ├── src │ │ └── stackit │ │ │ └── loadbalancer │ │ │ ├── py.typed │ │ │ ├── api │ │ │ └── __init__.py │ │ │ └── api_response.py │ ├── NOTICE.txt │ ├── README.md │ └── CHANGELOG.md ├── modelserving │ ├── src │ │ └── stackit │ │ │ └── modelserving │ │ │ ├── py.typed │ │ │ ├── api │ │ │ └── __init__.py │ │ │ └── api_response.py │ ├── NOTICE.txt │ ├── CHANGELOG.md │ └── README.md ├── objectstorage │ ├── src │ │ └── stackit │ │ │ └── objectstorage │ │ │ ├── py.typed │ │ │ ├── api │ │ │ └── __init__.py │ │ │ ├── api_response.py │ │ │ └── models │ │ │ └── project_scope.py │ ├── NOTICE.txt │ ├── README.md │ └── CHANGELOG.md ├── observability │ ├── src │ │ └── stackit │ │ │ └── observability │ │ │ ├── py.typed │ │ │ ├── api │ │ │ └── __init__.py │ │ │ └── api_response.py │ ├── NOTICE.txt │ └── README.md ├── postgresflex │ ├── src │ │ └── stackit │ │ │ └── postgresflex │ │ │ ├── py.typed │ │ │ ├── api │ │ │ └── __init__.py │ │ │ └── api_response.py │ ├── NOTICE.txt │ ├── README.md │ └── CHANGELOG.md ├── serverbackup │ ├── src │ │ └── stackit │ │ │ └── serverbackup │ │ │ ├── py.typed │ │ │ ├── api │ │ │ └── __init__.py │ │ │ └── api_response.py │ ├── NOTICE.txt │ ├── README.md │ └── CHANGELOG.md ├── serverupdate │ ├── src │ │ └── stackit │ │ │ └── serverupdate │ │ │ ├── py.typed │ │ │ ├── api │ │ │ └── __init__.py │ │ │ └── api_response.py │ ├── NOTICE.txt │ ├── README.md │ └── CHANGELOG.md ├── sqlserverflex │ ├── src │ │ └── stackit │ │ │ └── sqlserverflex │ │ │ ├── py.typed │ │ │ ├── api │ │ │ └── __init__.py │ │ │ ├── api_response.py │ │ │ └── models │ │ │ └── type.py │ ├── NOTICE.txt │ ├── README.md │ └── CHANGELOG.md ├── resourcemanager │ ├── src │ │ └── stackit │ │ │ └── resourcemanager │ │ │ ├── py.typed │ │ │ ├── api │ │ │ └── __init__.py │ │ │ └── api_response.py │ └── NOTICE.txt ├── secretsmanager │ ├── src │ │ └── stackit │ │ │ └── secretsmanager │ │ │ ├── py.typed │ │ │ ├── api │ │ │ └── __init__.py │ │ │ ├── api_response.py │ │ │ └── models │ │ │ └── __init__.py │ ├── NOTICE.txt │ ├── README.md │ └── CHANGELOG.md ├── serviceaccount │ ├── src │ │ └── stackit │ │ │ └── serviceaccount │ │ │ ├── py.typed │ │ │ ├── api │ │ │ └── __init__.py │ │ │ └── api_response.py │ ├── NOTICE.txt │ └── CHANGELOG.md ├── serviceenablement │ ├── src │ │ └── stackit │ │ │ └── serviceenablement │ │ │ ├── py.typed │ │ │ ├── api │ │ │ └── __init__.py │ │ │ ├── api_response.py │ │ │ └── models │ │ │ └── __init__.py │ ├── NOTICE.txt │ ├── README.md │ └── CHANGELOG.md └── stackitmarketplace │ ├── src │ └── stackit │ │ └── stackitmarketplace │ │ ├── py.typed │ │ ├── api │ │ └── __init__.py │ │ ├── api_response.py │ │ └── models │ │ ├── pricing_option_unit.py │ │ ├── scope.py │ │ ├── offer_type.py │ │ ├── product_lifecycle_state.py │ │ ├── price_type.py │ │ ├── delivery_method.py │ │ ├── inquiry_form_type.py │ │ └── subscription_lifecycle_state.py │ ├── NOTICE.txt │ └── README.md ├── .github ├── CODEOWNERS ├── workflows │ ├── ci.yaml │ ├── cd.yaml │ └── stale.yaml ├── ISSUE_TEMPLATE │ ├── feature_request.md │ └── bug_report.md └── pull_request_template.md ├── NOTICE.txt ├── examples ├── core │ ├── custom_endpoint.py │ ├── minimal_example.py │ ├── custom_access_token.py │ ├── custom_proxy.py │ └── custom_auth.py ├── redis │ ├── list_instances.py │ ├── delete_instance.py │ └── create_instance.py ├── iaasalpha │ ├── delete_volume.py │ ├── list_volumes.py │ └── create_volume.py ├── dns │ ├── list_zones.py │ ├── delete_zone.py │ ├── create_zone.py │ └── create_recordset.py ├── ske │ ├── list_clusters.py │ ├── delete_cluster.py │ ├── credential_rotation.py │ └── create_cluster.py ├── logme │ ├── list_instances.py │ ├── delete_instance.py │ └── create_instance.py ├── mariadb │ ├── list_instances.py │ ├── delete_instance.py │ └── create_instance.py ├── rabbitmq │ ├── list_instances.py │ ├── delete_instance.py │ └── create_instance.py ├── resourcemanager │ └── list_projects.py ├── opensearch │ ├── delete_instance.py │ ├── list_instances.py │ └── create_instances.py ├── loadbalancer │ ├── list_loadbalancers.py │ └── delete_loadbalancer.py ├── objectstorage │ ├── delete_bucket.py │ ├── list_buckets.py │ └── create_bucket.py ├── postgresflex │ ├── list_instances.py │ ├── delete_instance.py │ └── create_instance.py ├── sqlserverflex │ ├── list_instances.py │ ├── delete_instances.py │ └── create_instances.py ├── observability │ ├── delete_instance.py │ ├── list_instances.py │ └── create_instances.py ├── secretsmanager │ ├── list_instances.py │ ├── delete_instances.py │ └── create_instances.py ├── serviceaccount │ ├── list_serviceaccounts.py │ ├── delete_service_accounts.py │ └── create_serviceaccount.py ├── mongodbflex │ ├── delete_instance.py │ ├── list_instances.py │ ├── create_user.py │ └── create_instance.py ├── iaas │ ├── list_networks.py │ ├── delete_network_area.py │ └── create_network_area.py ├── kms │ └── list_keyrings.py ├── serviceenablement │ └── list_service_status.py └── errorhandling │ └── errorhandling.py └── scripts ├── cd.sh ├── lint-versions.sh └── helper.sh /core/tests/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /core/tests/core/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /core/src/stackit/core/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /services/alb/src/stackit/alb/py.typed: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /services/cdn/src/stackit/cdn/py.typed: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /services/dns/src/stackit/dns/py.typed: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /services/git/src/stackit/git/py.typed: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /services/kms/src/stackit/kms/py.typed: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /services/scf/src/stackit/scf/py.typed: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /services/ske/src/stackit/ske/py.typed: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /services/iaas/src/stackit/iaas/py.typed: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /services/intake/src/stackit/intake/py.typed: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /services/logme/src/stackit/logme/py.typed: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /services/redis/src/stackit/redis/py.typed: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /services/auditlog/src/stackit/auditlog/py.typed: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /services/mariadb/src/stackit/mariadb/py.typed: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /services/rabbitmq/src/stackit/rabbitmq/py.typed: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.github/CODEOWNERS: -------------------------------------------------------------------------------- 1 | * @stackitcloud/developer-tools -------------------------------------------------------------------------------- /services/iaasalpha/src/stackit/iaasalpha/py.typed: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /services/mongodbflex/src/stackit/mongodbflex/py.typed: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /services/opensearch/src/stackit/opensearch/py.typed: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /services/runcommand/src/stackit/runcommand/py.typed: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /services/authorization/src/stackit/authorization/py.typed: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /services/certificates/src/stackit/certificates/py.typed: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /services/lbapplication/src/stackit/lbapplication/py.typed: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /services/loadbalancer/src/stackit/loadbalancer/py.typed: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /services/modelserving/src/stackit/modelserving/py.typed: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /services/objectstorage/src/stackit/objectstorage/py.typed: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /services/observability/src/stackit/observability/py.typed: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /services/postgresflex/src/stackit/postgresflex/py.typed: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /services/serverbackup/src/stackit/serverbackup/py.typed: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /services/serverupdate/src/stackit/serverupdate/py.typed: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /services/sqlserverflex/src/stackit/sqlserverflex/py.typed: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /services/resourcemanager/src/stackit/resourcemanager/py.typed: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /services/secretsmanager/src/stackit/secretsmanager/py.typed: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /services/serviceaccount/src/stackit/serviceaccount/py.typed: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /NOTICE.txt: -------------------------------------------------------------------------------- 1 | STACKIT SDK for Python 2 | Copyright 2025 Schwarz IT KG -------------------------------------------------------------------------------- /services/serviceenablement/src/stackit/serviceenablement/py.typed: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /services/stackitmarketplace/src/stackit/stackitmarketplace/py.typed: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /core/NOTICE.txt: -------------------------------------------------------------------------------- 1 | STACKIT Core SDK for Python 2 | Copyright 2025 Schwarz IT KG -------------------------------------------------------------------------------- /services/git/NOTICE.txt: -------------------------------------------------------------------------------- 1 | STACKIT SDK for Go 2 | Copyright 2025 Schwarz IT KG -------------------------------------------------------------------------------- /services/cdn/NOTICE.txt: -------------------------------------------------------------------------------- 1 | STACKIT CDN SDK for Python 2 | Copyright 2025 Schwarz IT KG -------------------------------------------------------------------------------- /services/dns/NOTICE.txt: -------------------------------------------------------------------------------- 1 | STACKIT DNS SDK for Python 2 | Copyright 2025 Schwarz IT KG -------------------------------------------------------------------------------- /services/intake/NOTICE.txt: -------------------------------------------------------------------------------- 1 | STACKIT Intake SDK for Python 2 | Copyright 2025 Schwarz IT KG -------------------------------------------------------------------------------- /services/logme/NOTICE.txt: -------------------------------------------------------------------------------- 1 | STACKIT Logme SDK for Python 2 | Copyright 2025 Schwarz IT KG -------------------------------------------------------------------------------- /services/redis/NOTICE.txt: -------------------------------------------------------------------------------- 1 | STACKIT Redis SDK for Python 2 | Copyright 2025 Schwarz IT KG -------------------------------------------------------------------------------- /services/mariadb/NOTICE.txt: -------------------------------------------------------------------------------- 1 | STACKIT MariaDB SDK for Python 2 | Copyright 2025 Schwarz IT KG -------------------------------------------------------------------------------- /services/rabbitmq/NOTICE.txt: -------------------------------------------------------------------------------- 1 | STACKIT RabbitMQ SDK for Python 2 | Copyright 2025 Schwarz IT KG -------------------------------------------------------------------------------- /services/scf/NOTICE.txt: -------------------------------------------------------------------------------- 1 | STACKIT Cloud Foundry SDK for Python 2 | Copyright 2025 Schwarz IT KG -------------------------------------------------------------------------------- /services/auditlog/NOTICE.txt: -------------------------------------------------------------------------------- 1 | STACKIT Audit Log SDK for Python 2 | Copyright 2025 Schwarz IT KG -------------------------------------------------------------------------------- /services/opensearch/NOTICE.txt: -------------------------------------------------------------------------------- 1 | STACKIT OpenSearch SDK for Python 2 | Copyright 2025 Schwarz IT KG -------------------------------------------------------------------------------- /services/runcommand/NOTICE.txt: -------------------------------------------------------------------------------- 1 | STACKIT Run Command SDK for Python 2 | Copyright 2025 Schwarz IT KG -------------------------------------------------------------------------------- /services/ske/NOTICE.txt: -------------------------------------------------------------------------------- 1 | STACKIT Kubernetes Engine SDK for Python 2 | Copyright 2025 Schwarz IT KG -------------------------------------------------------------------------------- /services/authorization/NOTICE.txt: -------------------------------------------------------------------------------- 1 | STACKIT Authorization SDK for Python 2 | Copyright 2025 Schwarz IT KG -------------------------------------------------------------------------------- /services/loadbalancer/NOTICE.txt: -------------------------------------------------------------------------------- 1 | STACKIT Load Balancer SDK for Python 2 | Copyright 2025 Schwarz IT KG -------------------------------------------------------------------------------- /services/modelserving/NOTICE.txt: -------------------------------------------------------------------------------- 1 | STACKIT ModelServing SDK for Python 2 | Copyright 2025 Schwarz IT KG -------------------------------------------------------------------------------- /services/mongodbflex/NOTICE.txt: -------------------------------------------------------------------------------- 1 | STACKIT MongoDB Flex SDK for Python 2 | Copyright 2025 Schwarz IT KG -------------------------------------------------------------------------------- /services/objectstorage/NOTICE.txt: -------------------------------------------------------------------------------- 1 | STACKIT Object Storage SDK for Python 2 | Copyright 2025 Schwarz IT KG -------------------------------------------------------------------------------- /services/observability/NOTICE.txt: -------------------------------------------------------------------------------- 1 | STACKIT Observability SDK for Python 2 | Copyright 2025 Schwarz IT KG -------------------------------------------------------------------------------- /services/postgresflex/NOTICE.txt: -------------------------------------------------------------------------------- 1 | STACKIT PostgreSQL Flex SDK for Python 2 | Copyright 2025 Schwarz IT KG -------------------------------------------------------------------------------- /services/serverbackup/NOTICE.txt: -------------------------------------------------------------------------------- 1 | STACKIT Server Backup SDK for Python 2 | Copyright 2025 Schwarz IT KG -------------------------------------------------------------------------------- /services/serverupdate/NOTICE.txt: -------------------------------------------------------------------------------- 1 | STACKIT Server Update SDK for Python 2 | Copyright 2025 Schwarz IT KG -------------------------------------------------------------------------------- /services/sqlserverflex/NOTICE.txt: -------------------------------------------------------------------------------- 1 | STACKIT SQLServer Flex SDK for Python 2 | Copyright 2025 Schwarz IT KG -------------------------------------------------------------------------------- /services/kms/NOTICE.txt: -------------------------------------------------------------------------------- 1 | STACKIT Key Management Service (KMS) SDK for Python 2 | Copyright 2025 Schwarz IT KG -------------------------------------------------------------------------------- /services/resourcemanager/NOTICE.txt: -------------------------------------------------------------------------------- 1 | STACKIT Resource Manager SDK for Python 2 | Copyright 2025 Schwarz IT KG -------------------------------------------------------------------------------- /services/secretsmanager/NOTICE.txt: -------------------------------------------------------------------------------- 1 | STACKIT Secrets Manager SDK for Python 2 | Copyright 2025 Schwarz IT KG -------------------------------------------------------------------------------- /services/serviceaccount/NOTICE.txt: -------------------------------------------------------------------------------- 1 | STACKIT Service Account SDK for Python 2 | Copyright 2025 Schwarz IT KG -------------------------------------------------------------------------------- /services/stackitmarketplace/NOTICE.txt: -------------------------------------------------------------------------------- 1 | STACKIT Marketplace SDK for Python 2 | Copyright 2025 Schwarz IT KG -------------------------------------------------------------------------------- /services/alb/NOTICE.txt: -------------------------------------------------------------------------------- 1 | STACKIT Application Load Balancer (ALB) SDK for Python 2 | Copyright 2025 Schwarz IT KG -------------------------------------------------------------------------------- /services/serviceenablement/NOTICE.txt: -------------------------------------------------------------------------------- 1 | STACKIT Service Enablement SDK for Python 2 | Copyright 2025 Schwarz IT KG -------------------------------------------------------------------------------- /services/certificates/NOTICE.txt: -------------------------------------------------------------------------------- 1 | STACKIT Load Balancer Certificates SDK for Python 2 | Copyright 2025 Schwarz IT KG -------------------------------------------------------------------------------- /services/iaas/NOTICE.txt: -------------------------------------------------------------------------------- 1 | STACKIT Infrastructure as a Service (IaaS) SDK for Python 2 | Copyright 2025 Schwarz IT KG -------------------------------------------------------------------------------- /services/lbapplication/NOTICE.txt: -------------------------------------------------------------------------------- 1 | STACKIT Load Balancer Application SDK for Python 2 | Copyright 2025 Schwarz IT KG -------------------------------------------------------------------------------- /services/alb/src/stackit/alb/api/__init__.py: -------------------------------------------------------------------------------- 1 | # flake8: noqa 2 | 3 | # import apis into api package 4 | from stackit.alb.api.default_api import DefaultApi 5 | -------------------------------------------------------------------------------- /services/cdn/src/stackit/cdn/api/__init__.py: -------------------------------------------------------------------------------- 1 | # flake8: noqa 2 | 3 | # import apis into api package 4 | from stackit.cdn.api.default_api import DefaultApi 5 | -------------------------------------------------------------------------------- /services/dns/src/stackit/dns/api/__init__.py: -------------------------------------------------------------------------------- 1 | # flake8: noqa 2 | 3 | # import apis into api package 4 | from stackit.dns.api.default_api import DefaultApi 5 | -------------------------------------------------------------------------------- /services/git/src/stackit/git/api/__init__.py: -------------------------------------------------------------------------------- 1 | # flake8: noqa 2 | 3 | # import apis into api package 4 | from stackit.git.api.default_api import DefaultApi 5 | -------------------------------------------------------------------------------- /services/kms/src/stackit/kms/api/__init__.py: -------------------------------------------------------------------------------- 1 | # flake8: noqa 2 | 3 | # import apis into api package 4 | from stackit.kms.api.default_api import DefaultApi 5 | -------------------------------------------------------------------------------- /services/scf/src/stackit/scf/api/__init__.py: -------------------------------------------------------------------------------- 1 | # flake8: noqa 2 | 3 | # import apis into api package 4 | from stackit.scf.api.default_api import DefaultApi 5 | -------------------------------------------------------------------------------- /services/ske/src/stackit/ske/api/__init__.py: -------------------------------------------------------------------------------- 1 | # flake8: noqa 2 | 3 | # import apis into api package 4 | from stackit.ske.api.default_api import DefaultApi 5 | -------------------------------------------------------------------------------- /services/iaas/src/stackit/iaas/api/__init__.py: -------------------------------------------------------------------------------- 1 | # flake8: noqa 2 | 3 | # import apis into api package 4 | from stackit.iaas.api.default_api import DefaultApi 5 | -------------------------------------------------------------------------------- /services/intake/src/stackit/intake/api/__init__.py: -------------------------------------------------------------------------------- 1 | # flake8: noqa 2 | 3 | # import apis into api package 4 | from stackit.intake.api.default_api import DefaultApi 5 | -------------------------------------------------------------------------------- /services/logme/src/stackit/logme/api/__init__.py: -------------------------------------------------------------------------------- 1 | # flake8: noqa 2 | 3 | # import apis into api package 4 | from stackit.logme.api.default_api import DefaultApi 5 | -------------------------------------------------------------------------------- /services/redis/src/stackit/redis/api/__init__.py: -------------------------------------------------------------------------------- 1 | # flake8: noqa 2 | 3 | # import apis into api package 4 | from stackit.redis.api.default_api import DefaultApi 5 | -------------------------------------------------------------------------------- /services/auditlog/src/stackit/auditlog/api/__init__.py: -------------------------------------------------------------------------------- 1 | # flake8: noqa 2 | 3 | # import apis into api package 4 | from stackit.auditlog.api.default_api import DefaultApi 5 | -------------------------------------------------------------------------------- /services/mariadb/src/stackit/mariadb/api/__init__.py: -------------------------------------------------------------------------------- 1 | # flake8: noqa 2 | 3 | # import apis into api package 4 | from stackit.mariadb.api.default_api import DefaultApi 5 | -------------------------------------------------------------------------------- /services/rabbitmq/src/stackit/rabbitmq/api/__init__.py: -------------------------------------------------------------------------------- 1 | # flake8: noqa 2 | 3 | # import apis into api package 4 | from stackit.rabbitmq.api.default_api import DefaultApi 5 | -------------------------------------------------------------------------------- /services/iaasalpha/src/stackit/iaasalpha/api/__init__.py: -------------------------------------------------------------------------------- 1 | # flake8: noqa 2 | 3 | # import apis into api package 4 | from stackit.iaasalpha.api.default_api import DefaultApi 5 | -------------------------------------------------------------------------------- /services/mongodbflex/src/stackit/mongodbflex/api/__init__.py: -------------------------------------------------------------------------------- 1 | # flake8: noqa 2 | 3 | # import apis into api package 4 | from stackit.mongodbflex.api.default_api import DefaultApi 5 | -------------------------------------------------------------------------------- /services/opensearch/src/stackit/opensearch/api/__init__.py: -------------------------------------------------------------------------------- 1 | # flake8: noqa 2 | 3 | # import apis into api package 4 | from stackit.opensearch.api.default_api import DefaultApi 5 | -------------------------------------------------------------------------------- /services/runcommand/src/stackit/runcommand/api/__init__.py: -------------------------------------------------------------------------------- 1 | # flake8: noqa 2 | 3 | # import apis into api package 4 | from stackit.runcommand.api.default_api import DefaultApi 5 | -------------------------------------------------------------------------------- /services/authorization/src/stackit/authorization/api/__init__.py: -------------------------------------------------------------------------------- 1 | # flake8: noqa 2 | 3 | # import apis into api package 4 | from stackit.authorization.api.default_api import DefaultApi 5 | -------------------------------------------------------------------------------- /services/certificates/src/stackit/certificates/api/__init__.py: -------------------------------------------------------------------------------- 1 | # flake8: noqa 2 | 3 | # import apis into api package 4 | from stackit.certificates.api.default_api import DefaultApi 5 | -------------------------------------------------------------------------------- /services/lbapplication/src/stackit/lbapplication/api/__init__.py: -------------------------------------------------------------------------------- 1 | # flake8: noqa 2 | 3 | # import apis into api package 4 | from stackit.lbapplication.api.default_api import DefaultApi 5 | -------------------------------------------------------------------------------- /services/loadbalancer/src/stackit/loadbalancer/api/__init__.py: -------------------------------------------------------------------------------- 1 | # flake8: noqa 2 | 3 | # import apis into api package 4 | from stackit.loadbalancer.api.default_api import DefaultApi 5 | -------------------------------------------------------------------------------- /services/modelserving/src/stackit/modelserving/api/__init__.py: -------------------------------------------------------------------------------- 1 | # flake8: noqa 2 | 3 | # import apis into api package 4 | from stackit.modelserving.api.default_api import DefaultApi 5 | -------------------------------------------------------------------------------- /services/objectstorage/src/stackit/objectstorage/api/__init__.py: -------------------------------------------------------------------------------- 1 | # flake8: noqa 2 | 3 | # import apis into api package 4 | from stackit.objectstorage.api.default_api import DefaultApi 5 | -------------------------------------------------------------------------------- /services/observability/src/stackit/observability/api/__init__.py: -------------------------------------------------------------------------------- 1 | # flake8: noqa 2 | 3 | # import apis into api package 4 | from stackit.observability.api.default_api import DefaultApi 5 | -------------------------------------------------------------------------------- /services/postgresflex/src/stackit/postgresflex/api/__init__.py: -------------------------------------------------------------------------------- 1 | # flake8: noqa 2 | 3 | # import apis into api package 4 | from stackit.postgresflex.api.default_api import DefaultApi 5 | -------------------------------------------------------------------------------- /services/serverbackup/src/stackit/serverbackup/api/__init__.py: -------------------------------------------------------------------------------- 1 | # flake8: noqa 2 | 3 | # import apis into api package 4 | from stackit.serverbackup.api.default_api import DefaultApi 5 | -------------------------------------------------------------------------------- /services/serverupdate/src/stackit/serverupdate/api/__init__.py: -------------------------------------------------------------------------------- 1 | # flake8: noqa 2 | 3 | # import apis into api package 4 | from stackit.serverupdate.api.default_api import DefaultApi 5 | -------------------------------------------------------------------------------- /services/sqlserverflex/src/stackit/sqlserverflex/api/__init__.py: -------------------------------------------------------------------------------- 1 | # flake8: noqa 2 | 3 | # import apis into api package 4 | from stackit.sqlserverflex.api.default_api import DefaultApi 5 | -------------------------------------------------------------------------------- /services/secretsmanager/src/stackit/secretsmanager/api/__init__.py: -------------------------------------------------------------------------------- 1 | # flake8: noqa 2 | 3 | # import apis into api package 4 | from stackit.secretsmanager.api.default_api import DefaultApi 5 | -------------------------------------------------------------------------------- /services/serviceaccount/src/stackit/serviceaccount/api/__init__.py: -------------------------------------------------------------------------------- 1 | # flake8: noqa 2 | 3 | # import apis into api package 4 | from stackit.serviceaccount.api.default_api import DefaultApi 5 | -------------------------------------------------------------------------------- /services/resourcemanager/src/stackit/resourcemanager/api/__init__.py: -------------------------------------------------------------------------------- 1 | # flake8: noqa 2 | 3 | # import apis into api package 4 | from stackit.resourcemanager.api.default_api import DefaultApi 5 | -------------------------------------------------------------------------------- /services/serviceenablement/src/stackit/serviceenablement/api/__init__.py: -------------------------------------------------------------------------------- 1 | # flake8: noqa 2 | 3 | # import apis into api package 4 | from stackit.serviceenablement.api.default_api import DefaultApi 5 | -------------------------------------------------------------------------------- /services/stackitmarketplace/src/stackit/stackitmarketplace/api/__init__.py: -------------------------------------------------------------------------------- 1 | # flake8: noqa 2 | 3 | # import apis into api package 4 | from stackit.stackitmarketplace.api.default_api import DefaultApi 5 | -------------------------------------------------------------------------------- /services/auditlog/CHANGELOG.md: -------------------------------------------------------------------------------- 1 | ## v0.1.1 2 | - **Bugfix:** Prevent year 0 timestamp issue 3 | 4 | ## v0.1.0 5 | 6 | - **New**: STACKIT Audit Log module for retrieving recorded actions and system changes. Download audit log entries for folders, organizations, and projects with time range filtering, pagination, and configurable result limits. -------------------------------------------------------------------------------- /examples/core/custom_endpoint.py: -------------------------------------------------------------------------------- 1 | from stackit.core.configuration import Configuration 2 | 3 | """ 4 | You can set your own custom endpoint here. 5 | Be aware that this will override the default endpoint and the definition of a region does 6 | not work. 7 | """ 8 | config = Configuration(custom_endpoint="https://postgresql.my-awesome-company.cloud/") 9 | -------------------------------------------------------------------------------- /examples/redis/list_instances.py: -------------------------------------------------------------------------------- 1 | import os 2 | 3 | from stackit.core.configuration import Configuration 4 | from stackit.redis.api.default_api import DefaultApi 5 | 6 | project_id = os.getenv("PROJECT_ID") 7 | 8 | config = Configuration() 9 | client = DefaultApi(config) 10 | 11 | # Get all instances 12 | print(client.list_instances(project_id)) 13 | -------------------------------------------------------------------------------- /examples/core/minimal_example.py: -------------------------------------------------------------------------------- 1 | from stackit.core.configuration import Configuration 2 | 3 | """ 4 | The configuration class will fetch all environment variables during initialization. 5 | If no region is defined, it will use the default region of a service. 6 | """ 7 | config = Configuration() 8 | print(vars(config)) # Will print out the values of all environment variables 9 | -------------------------------------------------------------------------------- /examples/core/custom_access_token.py: -------------------------------------------------------------------------------- 1 | from stackit.core.configuration import Configuration 2 | 3 | """ 4 | You can configure you own access token (which is also called service account token). 5 | Do note that if you configure a token, a service acccount key will still be used, if possible. 6 | """ 7 | config = Configuration(service_account_token="my_access_token") # noqa: S106 8 | -------------------------------------------------------------------------------- /core/CHANGELOG.md: -------------------------------------------------------------------------------- 1 | ## v0.2.0 (2025-06-12) 2 | - **Feature:** Allow setting custom token endpoint url in configuration 3 | 4 | ## v0.1.0 (2024-12-04) 5 | 6 | - The core module offers functionality, such as authorization and configuration, to be used together with the Python SDK service modules 7 | - [Usage example](https://github.com/stackitcloud/stackit-sdk-python/tree/main/examples/core) 8 | -------------------------------------------------------------------------------- /examples/iaasalpha/delete_volume.py: -------------------------------------------------------------------------------- 1 | import os 2 | 3 | from stackit.iaasalpha.api.default_api import DefaultApi 4 | from stackit.core.configuration import Configuration 5 | 6 | 7 | project_id = os.getenv("PROJECT_ID") 8 | volume_id = "VOLUME_ID" 9 | 10 | config = Configuration() 11 | client = DefaultApi(config) 12 | 13 | client.delete_volume(project_id=project_id, volume_id=volume_id) 14 | -------------------------------------------------------------------------------- /examples/redis/delete_instance.py: -------------------------------------------------------------------------------- 1 | import os 2 | 3 | from stackit.core.configuration import Configuration 4 | from stackit.redis.api.default_api import DefaultApi 5 | 6 | project_id = os.getenv("PROJECT_ID") 7 | instance_id = "INSTANCE_ID" 8 | 9 | config = Configuration() 10 | client = DefaultApi(config) 11 | 12 | # Delete an instance 13 | client.delete_instance(project_id=project_id, instance_id=instance_id) 14 | -------------------------------------------------------------------------------- /services/scf/CHANGELOG.md: -------------------------------------------------------------------------------- 1 | ## v0.3.0 2 | - **Feature:** Add new model `IsolationSegment` and `IsolationSegmentsList` 3 | 4 | ## v0.2.1 5 | - **Bugfix:** Prevent year 0 timestamp issue 6 | 7 | ## v0.2.0 8 | - **Feature:** Add field `OrgId` in model `OrgManager` 9 | - **Feature:** Add new model `OrganizationCreateBffResponse` and `SpaceCreatedBffResponse` 10 | 11 | ## v0.1.0 12 | - **New:** STACKIT Cloud Foundry module -------------------------------------------------------------------------------- /examples/dns/list_zones.py: -------------------------------------------------------------------------------- 1 | import os 2 | 3 | from stackit.dns.api.default_api import DefaultApi 4 | from stackit.core.configuration import Configuration 5 | 6 | project_id = os.getenv("PROJECT_ID") 7 | 8 | # Create a new API client, that uses default authentication and configuration 9 | config = Configuration() 10 | client = DefaultApi(config) 11 | 12 | # List all DNS zones 13 | print(client.list_zones(project_id)) 14 | -------------------------------------------------------------------------------- /examples/ske/list_clusters.py: -------------------------------------------------------------------------------- 1 | import os 2 | 3 | from stackit.core.configuration import Configuration 4 | from stackit.ske.api.default_api import DefaultApi 5 | 6 | project_id = os.getenv("PROJECT_ID") 7 | 8 | # Create a new API client, that uses default authentication and configuration 9 | config = Configuration() 10 | client = DefaultApi(config) 11 | 12 | # List all ske instances 13 | print(client.list_clusters(project_id)) 14 | -------------------------------------------------------------------------------- /examples/iaasalpha/list_volumes.py: -------------------------------------------------------------------------------- 1 | import os 2 | 3 | from stackit.iaasalpha.api.default_api import DefaultApi 4 | from stackit.core.configuration import Configuration 5 | 6 | project_id = os.getenv("PROJECT_ID") 7 | 8 | # Create a new API client, that uses default authentication and configuration 9 | config = Configuration() 10 | client = DefaultApi(config) 11 | 12 | # Get all volumes 13 | print(client.list_volumes(project_id)) 14 | -------------------------------------------------------------------------------- /core/src/stackit/core/auth_methods/token_auth.py: -------------------------------------------------------------------------------- 1 | from requests import Request 2 | from requests.auth import AuthBase 3 | 4 | 5 | class TokenAuth(AuthBase): 6 | __access_token: str 7 | 8 | def __init__(self, token: str): 9 | self.__access_token = token 10 | 11 | def __call__(self, request: Request) -> Request: 12 | request.headers["Authorization"] = f"Bearer {self.__access_token}" 13 | return request 14 | -------------------------------------------------------------------------------- /examples/dns/delete_zone.py: -------------------------------------------------------------------------------- 1 | import os 2 | 3 | from stackit.dns.api.default_api import DefaultApi 4 | from stackit.core.configuration import Configuration 5 | 6 | project_id = os.getenv("PROJECT_ID") 7 | zone_id = "ZONE_ID" 8 | 9 | # Create a new API client, that uses default authentication and configuration 10 | config = Configuration() 11 | client = DefaultApi(config) 12 | 13 | client.delete_zone(project_id=project_id, zone_id=zone_id) 14 | -------------------------------------------------------------------------------- /examples/logme/list_instances.py: -------------------------------------------------------------------------------- 1 | import os 2 | 3 | from stackit.logme.api.default_api import DefaultApi 4 | from stackit.core.configuration import Configuration 5 | 6 | project_id = os.getenv("PROJECT_ID") 7 | 8 | # Create a new API client, that uses default authentication and configuration 9 | config = Configuration() 10 | client = DefaultApi(config) 11 | 12 | # List all logme instances 13 | print(client.list_instances(project_id)) 14 | -------------------------------------------------------------------------------- /examples/mariadb/list_instances.py: -------------------------------------------------------------------------------- 1 | import os 2 | 3 | from stackit.mariadb.api.default_api import DefaultApi 4 | from stackit.core.configuration import Configuration 5 | 6 | project_id = os.getenv("PROJECT_ID") 7 | 8 | # Create a new API client, that uses default authentication and configuration 9 | config = Configuration() 10 | client = DefaultApi(config) 11 | 12 | # List all MariaDB instances 13 | print(client.list_instances(project_id)) 14 | -------------------------------------------------------------------------------- /examples/rabbitmq/list_instances.py: -------------------------------------------------------------------------------- 1 | import os 2 | 3 | from stackit.rabbitmq.api.default_api import DefaultApi 4 | from stackit.core.configuration import Configuration 5 | 6 | project_id = os.getenv("PROJECT_ID") 7 | 8 | # Create a new API client, that uses default authentication and configuration 9 | config = Configuration() 10 | client = DefaultApi(config) 11 | 12 | # List all rabbitmq instances 13 | print(client.list_instances(project_id)) 14 | -------------------------------------------------------------------------------- /examples/mariadb/delete_instance.py: -------------------------------------------------------------------------------- 1 | import os 2 | 3 | from stackit.mariadb.api.default_api import DefaultApi 4 | from stackit.core.configuration import Configuration 5 | 6 | project_id = os.getenv("PROJECT_ID") 7 | instance_id = "INSTANCE_ID" 8 | 9 | # Create a new API client, that uses default authentication and configuration 10 | config = Configuration() 11 | client = DefaultApi(config) 12 | 13 | client.delete_instance(project_id, instance_id) 14 | -------------------------------------------------------------------------------- /examples/resourcemanager/list_projects.py: -------------------------------------------------------------------------------- 1 | import os 2 | 3 | from stackit.core.configuration import Configuration 4 | from stackit.resourcemanager.api.default_api import DefaultApi 5 | 6 | project_id = os.getenv("PROJECT_ID") 7 | 8 | # Create a new API client, that uses default authentication and configuration 9 | config = Configuration() 10 | client = DefaultApi(config) 11 | 12 | # List all projects 13 | print(client.list_projects(project_id)) 14 | -------------------------------------------------------------------------------- /examples/opensearch/delete_instance.py: -------------------------------------------------------------------------------- 1 | import os 2 | 3 | from stackit.opensearch.api.default_api import DefaultApi 4 | from stackit.core.configuration import Configuration 5 | 6 | project_id = os.getenv("PROJECT_ID") 7 | instance_id = "INSTANCE_ID" 8 | 9 | # Create a new API client, that uses default authentication and configuration 10 | config = Configuration() 11 | client = DefaultApi(config) 12 | 13 | client.delete_instance(project_id, instance_id) 14 | -------------------------------------------------------------------------------- /examples/opensearch/list_instances.py: -------------------------------------------------------------------------------- 1 | import os 2 | 3 | from stackit.opensearch.api.default_api import DefaultApi 4 | from stackit.core.configuration import Configuration 5 | 6 | project_id = os.getenv("PROJECT_ID") 7 | 8 | # Create a new API client, that uses default authentication and configuration 9 | config = Configuration() 10 | client = DefaultApi(config) 11 | 12 | # List all opensearch instances 13 | print(client.list_instances(project_id)) 14 | -------------------------------------------------------------------------------- /examples/loadbalancer/list_loadbalancers.py: -------------------------------------------------------------------------------- 1 | import os 2 | 3 | from stackit.loadbalancer.api.default_api import DefaultApi 4 | from stackit.core.configuration import Configuration 5 | 6 | project_id = os.getenv("PROJECT_ID") 7 | 8 | # Create a new API client, that uses default authentication and configuration 9 | config = Configuration() 10 | client = DefaultApi(config) 11 | 12 | # List all LoadBalancers 13 | print(client.list_load_balancers(project_id)) 14 | -------------------------------------------------------------------------------- /examples/objectstorage/delete_bucket.py: -------------------------------------------------------------------------------- 1 | import os 2 | 3 | from stackit.objectstorage.api.default_api import DefaultApi 4 | from stackit.core.configuration import Configuration 5 | 6 | project_id = os.getenv("PROJECT_ID") 7 | bucket_name = "BUCKET_NAME" 8 | 9 | # Create a new API client, that uses default authentication and configuration 10 | config = Configuration() 11 | client = DefaultApi(config) 12 | 13 | client.delete_bucket(project_id, bucket_name) 14 | -------------------------------------------------------------------------------- /examples/postgresflex/list_instances.py: -------------------------------------------------------------------------------- 1 | import os 2 | 3 | from stackit.postgresflex.api.default_api import DefaultApi 4 | from stackit.core.configuration import Configuration 5 | 6 | project_id = os.getenv("PROJECT_ID") 7 | 8 | # Create a new API client, that uses default authentication and configuration 9 | config = Configuration() 10 | client = DefaultApi(config) 11 | 12 | # List all postgresflex instances 13 | print(client.list_instances(project_id)) 14 | -------------------------------------------------------------------------------- /examples/sqlserverflex/list_instances.py: -------------------------------------------------------------------------------- 1 | import os 2 | 3 | from stackit.sqlserverflex.api.default_api import DefaultApi 4 | from stackit.core.configuration import Configuration 5 | 6 | project_id = os.getenv("PROJECT_ID") 7 | 8 | # Create a new API client, that uses default authentication and configuration 9 | config = Configuration() 10 | client = DefaultApi(config) 11 | 12 | # List all sqlserverflex instances 13 | print(client.list_instances(project_id)) 14 | -------------------------------------------------------------------------------- /examples/objectstorage/list_buckets.py: -------------------------------------------------------------------------------- 1 | import os 2 | 3 | from stackit.objectstorage.api.default_api import DefaultApi 4 | from stackit.core.configuration import Configuration 5 | 6 | project_id = os.getenv("PROJECT_ID") 7 | 8 | # Create a new API client, that uses default authentication and configuration 9 | config = Configuration() 10 | client = DefaultApi(config) 11 | 12 | # List all ObjectStorage buckets instances 13 | print(client.list_buckets(project_id)) 14 | -------------------------------------------------------------------------------- /examples/observability/delete_instance.py: -------------------------------------------------------------------------------- 1 | import os 2 | 3 | from stackit.observability.api.default_api import DefaultApi 4 | from stackit.core.configuration import Configuration 5 | 6 | project_id = os.getenv("PROJECT_ID") 7 | instance_id = "INSTANCE_ID" 8 | 9 | # Create a new API client, that uses default authentication and configuration 10 | config = Configuration() 11 | client = DefaultApi(config) 12 | 13 | client.delete_instance(instance_id, project_id) 14 | -------------------------------------------------------------------------------- /examples/observability/list_instances.py: -------------------------------------------------------------------------------- 1 | import os 2 | 3 | from stackit.observability.api.default_api import DefaultApi 4 | from stackit.core.configuration import Configuration 5 | 6 | project_id = os.getenv("PROJECT_ID") 7 | 8 | # Create a new API client, that uses default authentication and configuration 9 | config = Configuration() 10 | client = DefaultApi(config) 11 | 12 | # List all observabilityy instances 13 | print(client.list_instances(project_id)) 14 | -------------------------------------------------------------------------------- /examples/secretsmanager/list_instances.py: -------------------------------------------------------------------------------- 1 | import os 2 | 3 | from stackit.secretsmanager.api.default_api import DefaultApi 4 | from stackit.core.configuration import Configuration 5 | 6 | project_id = os.getenv("PROJECT_ID") 7 | 8 | # Create a new API client, that uses default authentication and configuration 9 | config = Configuration() 10 | client = DefaultApi(config) 11 | 12 | # List all secretsmanager instances 13 | print(client.list_instances(project_id)) 14 | -------------------------------------------------------------------------------- /examples/serviceaccount/list_serviceaccounts.py: -------------------------------------------------------------------------------- 1 | import os 2 | 3 | from stackit.serviceaccount.api.default_api import DefaultApi 4 | from stackit.core.configuration import Configuration 5 | 6 | project_id = os.getenv("PROJECT_ID") 7 | 8 | # Create a new API client, that uses default authentication and configuration 9 | config = Configuration() 10 | client = DefaultApi(config) 11 | 12 | # List all serviceaccounts 13 | print(client.list_service_accounts(project_id)) 14 | -------------------------------------------------------------------------------- /examples/ske/delete_cluster.py: -------------------------------------------------------------------------------- 1 | import os 2 | 3 | from stackit.core.configuration import Configuration 4 | from stackit.ske.api.default_api import DefaultApi 5 | 6 | project_id = os.getenv("PROJECT_ID") 7 | cluster_name = "CLUSTER_NAME" 8 | 9 | # Create a new API client, that uses default authentication and configuration 10 | config = Configuration() 11 | client = DefaultApi(config) 12 | 13 | # Delete a cluster 14 | client.delete_cluster(project_id, cluster_name) 15 | -------------------------------------------------------------------------------- /examples/logme/delete_instance.py: -------------------------------------------------------------------------------- 1 | import os 2 | 3 | from stackit.logme.api.default_api import DefaultApi 4 | from stackit.core.configuration import Configuration 5 | 6 | project_id = os.getenv("PROJECT_ID") 7 | instance_id = "INSTANCE_ID" 8 | 9 | # Create a new API client, that uses default authentication and configuration 10 | config = Configuration() 11 | client = DefaultApi(config) 12 | 13 | # Delete an instance 14 | client.delete_instance(project_id, instance_id) 15 | -------------------------------------------------------------------------------- /examples/mongodbflex/delete_instance.py: -------------------------------------------------------------------------------- 1 | import os 2 | 3 | from stackit.mongodbflex.api.default_api import DefaultApi 4 | from stackit.core.configuration import Configuration 5 | 6 | tag = "tag" 7 | project_id = os.getenv("PROJECT_ID") 8 | instance_id = "INSTANCE_ID" 9 | 10 | # Create a new API client, that uses default authentication and configuration 11 | config = Configuration() 12 | client = DefaultApi(config) 13 | 14 | client.delete_instance(project_id, instance_id) 15 | -------------------------------------------------------------------------------- /examples/mongodbflex/list_instances.py: -------------------------------------------------------------------------------- 1 | import os 2 | 3 | from stackit.mongodbflex.api.default_api import DefaultApi 4 | from stackit.core.configuration import Configuration 5 | 6 | project_id = os.getenv("PROJECT_ID") 7 | tag = "tag" 8 | 9 | # Create a new API client, that uses default authentication and configuration 10 | config = Configuration() 11 | client = DefaultApi(config) 12 | 13 | # List all MongoDBFlex instances 14 | print(client.list_instances(project_id, tag)) 15 | -------------------------------------------------------------------------------- /examples/rabbitmq/delete_instance.py: -------------------------------------------------------------------------------- 1 | import os 2 | 3 | from stackit.core.configuration import Configuration 4 | from stackit.rabbitmq.api.default_api import DefaultApi 5 | 6 | project_id = os.getenv("PROJECT_ID") 7 | instance_id = "INSTANCE_ID" 8 | 9 | # Create a new API client, that uses default authentication and configuration 10 | config = Configuration() 11 | client = DefaultApi(config) 12 | 13 | # Delete an instance 14 | client.delete_instance(project_id, instance_id) 15 | -------------------------------------------------------------------------------- /examples/postgresflex/delete_instance.py: -------------------------------------------------------------------------------- 1 | import os 2 | 3 | from stackit.core.configuration import Configuration 4 | from stackit.postgresflex.api.default_api import DefaultApi 5 | 6 | project_id = os.getenv("PROJECT_ID") 7 | instance_id = "INSTANCE_ID" 8 | 9 | # Create a new API client, that uses default authentication and configuration 10 | config = Configuration() 11 | client = DefaultApi(config) 12 | 13 | # Delete an instances 14 | client.delete_instance(project_id, instance_id) 15 | -------------------------------------------------------------------------------- /examples/sqlserverflex/delete_instances.py: -------------------------------------------------------------------------------- 1 | import os 2 | 3 | from stackit.sqlserverflex.api.default_api import DefaultApi 4 | from stackit.core.configuration import Configuration 5 | 6 | project_id = os.getenv("PROJECT_ID") 7 | instance_id = "INSTANCE_ID" 8 | 9 | # Create a new API client, that uses default authentication and configuration 10 | config = Configuration() 11 | client = DefaultApi(config) 12 | 13 | # Delete the instance 14 | client.delete_instance(project_id, instance_id) 15 | -------------------------------------------------------------------------------- /examples/loadbalancer/delete_loadbalancer.py: -------------------------------------------------------------------------------- 1 | import os 2 | 3 | from stackit.core.configuration import Configuration 4 | from stackit.loadbalancer.api.default_api import DefaultApi 5 | 6 | project_id = os.getenv("PROJECT_ID") 7 | instance_name = "INSTANCE_NAME" 8 | 9 | # Create a new API client, that uses default authentication and configuration 10 | config = Configuration() 11 | client = DefaultApi(config) 12 | 13 | # Delete an instance 14 | client.delete_load_balancer(project_id, instance_name) 15 | -------------------------------------------------------------------------------- /services/modelserving/CHANGELOG.md: -------------------------------------------------------------------------------- 1 | ## v0.2.2 2 | - **Bugfix:** Prevent year 0 timestamp issue 3 | 4 | ## v0.2.1 5 | - **Feature:** Extend enums in field `type` in model `Model`: `audio`, `image` 6 | 7 | ## v0.2.0 8 | - **Version**: Minimal version is now python 3.9 9 | 10 | ## v0.1.2 11 | - **Internal:** Improve deserializing and error types 12 | 13 | ## v0.1.1 (2025-05-09) 14 | - **Feature:** Update user-agent header 15 | 16 | ## v0.1.0 (2025-03-18) 17 | - **New**: Client for managing the modelserving API 18 | -------------------------------------------------------------------------------- /examples/iaas/list_networks.py: -------------------------------------------------------------------------------- 1 | import os 2 | 3 | from stackit.iaas.api.default_api import DefaultApi 4 | from stackit.core.configuration import Configuration 5 | 6 | project_id = os.getenv("PROJECT_ID") 7 | organization_id = os.getenv("ORGANIZATION_ID") 8 | 9 | # Create a new API client, that uses default authentication and configuration 10 | config = Configuration() 11 | client = DefaultApi(config) 12 | 13 | 14 | # List all network areas of the organization 15 | print(client.list_network_areas(organization_id)) 16 | -------------------------------------------------------------------------------- /examples/objectstorage/create_bucket.py: -------------------------------------------------------------------------------- 1 | import os 2 | 3 | from stackit.objectstorage.api.default_api import DefaultApi 4 | from stackit.core.configuration import Configuration 5 | 6 | project_id = os.getenv("PROJECT_ID") 7 | bucket_name = "example-bucket43432432" 8 | 9 | # Create a new API client, that uses default authentication and configuration 10 | config = Configuration() 11 | client = DefaultApi(config) 12 | 13 | # Create new ObjectStorage bucket instances 14 | client.create_bucket(project_id, bucket_name) 15 | -------------------------------------------------------------------------------- /examples/serviceaccount/delete_service_accounts.py: -------------------------------------------------------------------------------- 1 | import os 2 | 3 | from stackit.serviceaccount.api.default_api import DefaultApi 4 | from stackit.core.configuration import Configuration 5 | 6 | project_id = os.getenv("PROJECT_ID") 7 | account_mail = "SERVICE_ACCOUNT_MAIL" 8 | 9 | # Create a new API client, that uses default authentication and configuration 10 | config = Configuration() 11 | client = DefaultApi(config) 12 | 13 | 14 | # Delete service account 15 | client.delete_service_account(project_id, account_mail) 16 | -------------------------------------------------------------------------------- /core/README.md: -------------------------------------------------------------------------------- 1 | > ⓘ INFO: The STACKIT Python SDK is in beta and in active development. 2 | 3 | 4 | # STACKIT Python SDK Core 5 | 6 | ## Introduction 7 | 8 | The STACKIT Python core package consists of core functionality which is needed 9 | to use the [STACKIT Python SDK](https://github.com/stackitcloud/stackit-sdk-python). 10 | 11 | ## Usage 12 | 13 | The core package does nothing on its own and must be used in conjunction with the services of the [STACKIT Python SDK](https://github.com/stackitcloud/stackit-sdk-python). 14 | -------------------------------------------------------------------------------- /examples/kms/list_keyrings.py: -------------------------------------------------------------------------------- 1 | import os 2 | 3 | from stackit.kms.api.default_api import DefaultApi 4 | from stackit.core.configuration import Configuration 5 | 6 | project_id = os.getenv("PROJECT_ID") 7 | region = os.getenv("REGION") 8 | 9 | # Create a new API client, that uses default authentication and configuration 10 | config = Configuration() 11 | client = DefaultApi(config) 12 | 13 | # List all logme instances 14 | for keyring in client.list_key_rings(project_id, region).key_rings: 15 | print(keyring.id, keyring.description) 16 | -------------------------------------------------------------------------------- /examples/ske/credential_rotation.py: -------------------------------------------------------------------------------- 1 | import os 2 | 3 | from stackit.ske.api.default_api import DefaultApi 4 | from stackit.core.configuration import Configuration 5 | 6 | project_id = os.getenv("PROJECT_ID") 7 | 8 | # Create a new API client, that uses default authentication and configuration 9 | config = Configuration() 10 | client = DefaultApi(config) 11 | 12 | # Get all ske instances 13 | response = client.list_clusters(project_id) 14 | 15 | # Rotate credentials on all instances 16 | for cluster in response.items: 17 | client.start_credentials_rotation(project_id, cluster.name) 18 | -------------------------------------------------------------------------------- /examples/secretsmanager/delete_instances.py: -------------------------------------------------------------------------------- 1 | import os 2 | 3 | from stackit.secretsmanager.api.default_api import DefaultApi 4 | from stackit.core.configuration import Configuration 5 | 6 | project_id = os.getenv("PROJECT_ID") 7 | 8 | # Create a new API client, that uses default authentication and configuration 9 | config = Configuration() 10 | client = DefaultApi(config) 11 | 12 | # List all secretsmanager instances 13 | response = client.list_instances(project_id) 14 | 15 | # Delete all instances 16 | for instance in response.instances: 17 | client.delete_instance(project_id, instance.id) 18 | -------------------------------------------------------------------------------- /examples/serviceenablement/list_service_status.py: -------------------------------------------------------------------------------- 1 | import os 2 | 3 | from stackit.serviceenablement.api.default_api import DefaultApi 4 | from stackit.core.configuration import Configuration 5 | 6 | project_id = os.getenv("PROJECT_ID") 7 | 8 | # Create a new API client, that uses default authentication and configuration 9 | config = Configuration() 10 | client = DefaultApi(config) 11 | 12 | # List service status 13 | response = client.list_service_status(project_id) 14 | print(response) 15 | 16 | # Get status of one service 17 | service_id = response.items[0].service_id 18 | print(client.get_service_status(project_id, service_id)) 19 | -------------------------------------------------------------------------------- /examples/iaasalpha/create_volume.py: -------------------------------------------------------------------------------- 1 | import os 2 | 3 | from stackit.iaasalpha.api.default_api import DefaultApi 4 | from stackit.iaasalpha.models.create_volume_payload import CreateVolumePayload 5 | from stackit.core.configuration import Configuration 6 | 7 | project_id = os.getenv("PROJECT_ID") 8 | 9 | # Create a new API client, that uses default authentication and configuration 10 | config = Configuration() 11 | client = DefaultApi(config) 12 | 13 | # Create a volume 14 | payload = CreateVolumePayload( 15 | name="example-volume", 16 | availability_zone="eu01-1", 17 | size=10, 18 | ) 19 | client.create_volume(project_id, payload) 20 | -------------------------------------------------------------------------------- /examples/errorhandling/errorhandling.py: -------------------------------------------------------------------------------- 1 | from stackit.dns.api.default_api import DefaultApi 2 | from stackit.core.configuration import Configuration 3 | from stackit.dns.exceptions import ForbiddenException 4 | 5 | project_id = "thisisaninvalidid" 6 | 7 | # Create a new API client, that uses default authentication and configuration 8 | config = Configuration() 9 | client = DefaultApi(config) 10 | 11 | # Try to list DNS zones of a non-existing project. 12 | # This will result in a ForbiddenExcpetion, as you don't have access to a 13 | # non-existing project. 14 | try: 15 | response = client.list_zones(project_id) 16 | except ForbiddenException as e: 17 | print(e) 18 | -------------------------------------------------------------------------------- /examples/dns/create_zone.py: -------------------------------------------------------------------------------- 1 | import os 2 | 3 | from stackit.dns.api.default_api import DefaultApi 4 | from stackit.dns.models.create_zone_payload import CreateZonePayload 5 | from stackit.core.configuration import Configuration 6 | 7 | project_id = os.getenv("PROJECT_ID") 8 | 9 | # Create a new API client, that uses default authentication and configuration 10 | config = Configuration() 11 | client = DefaultApi(config) 12 | 13 | # Create a new DNS zone 14 | create_zone_payload = CreateZonePayload(name="myZone", dnsName="testZone.com") 15 | create_zone_response = client.create_zone(create_zone_payload=create_zone_payload, project_id=project_id) 16 | 17 | print(create_zone_payload) 18 | -------------------------------------------------------------------------------- /examples/secretsmanager/create_instances.py: -------------------------------------------------------------------------------- 1 | import os 2 | 3 | from stackit.secretsmanager.api.default_api import DefaultApi 4 | from stackit.secretsmanager.models.create_instance_payload import CreateInstancePayload 5 | 6 | from stackit.core.configuration import Configuration 7 | 8 | 9 | project_id = os.getenv("PROJECT_ID") 10 | 11 | # Create a new API client, that uses default authentication and configuration 12 | config = Configuration() 13 | client = DefaultApi(config) 14 | 15 | # Create a new instance using the first flvaor 16 | create_instance_payload = CreateInstancePayload( 17 | name="my-secrets-manager", 18 | ) 19 | client.create_instance(project_id, create_instance_payload) 20 | -------------------------------------------------------------------------------- /services/dns/README.md: -------------------------------------------------------------------------------- 1 | # stackit.dns 2 | This api provides dns 3 | 4 | 5 | This package is part of the STACKIT Python SDK. For additional information, please visit the [GitHub repository](https://github.com/stackitcloud/stackit-sdk-python) of the SDK. 6 | 7 | 8 | ## Installation & Usage 9 | ### pip install 10 | 11 | ```sh 12 | pip install stackit-dns 13 | ``` 14 | 15 | Then import the package: 16 | ```python 17 | import stackit.dns 18 | ``` 19 | 20 | ## Getting Started 21 | 22 | [Examples](https://github.com/stackitcloud/stackit-sdk-python/tree/main/examples) for the usage of the package can be found in the [GitHub repository](https://github.com/stackitcloud/stackit-sdk-python) of the SDK. -------------------------------------------------------------------------------- /services/cdn/README.md: -------------------------------------------------------------------------------- 1 | # stackit.cdn 2 | API used to create and manage your CDN distributions. 3 | 4 | 5 | This package is part of the STACKIT Python SDK. For additional information, please visit the [GitHub repository](https://github.com/stackitcloud/stackit-sdk-python) of the SDK. 6 | 7 | 8 | ## Installation & Usage 9 | ### pip install 10 | 11 | ```sh 12 | pip install stackit-cdn 13 | ``` 14 | 15 | Then import the package: 16 | ```python 17 | import stackit.cdn 18 | ``` 19 | 20 | ## Getting Started 21 | 22 | [Examples](https://github.com/stackitcloud/stackit-sdk-python/tree/main/examples) for the usage of the package can be found in the [GitHub repository](https://github.com/stackitcloud/stackit-sdk-python) of the SDK. -------------------------------------------------------------------------------- /services/intake/README.md: -------------------------------------------------------------------------------- 1 | # stackit.intake 2 | This API provides endpoints for managing Intakes. 3 | 4 | 5 | 6 | This package is part of the STACKIT Python SDK. For additional information, please visit the [GitHub repository](https://github.com/stackitcloud/stackit-sdk-python) of the SDK. 7 | 8 | 9 | ## Installation & Usage 10 | ### pip install 11 | 12 | ```sh 13 | pip install stackit-intake 14 | ``` 15 | 16 | Then import the package: 17 | ```python 18 | import stackit.intake 19 | ``` 20 | 21 | ## Getting Started 22 | 23 | [Examples](https://github.com/stackitcloud/stackit-sdk-python/tree/main/examples) for the usage of the package can be found in the [GitHub repository](https://github.com/stackitcloud/stackit-sdk-python) of the SDK. -------------------------------------------------------------------------------- /services/kms/README.md: -------------------------------------------------------------------------------- 1 | # stackit.kms 2 | This API provides endpoints for managing keys and key rings. 3 | 4 | 5 | 6 | This package is part of the STACKIT Python SDK. For additional information, please visit the [GitHub repository](https://github.com/stackitcloud/stackit-sdk-python) of the SDK. 7 | 8 | 9 | ## Installation & Usage 10 | ### pip install 11 | 12 | ```sh 13 | pip install stackit-kms 14 | ``` 15 | 16 | Then import the package: 17 | ```python 18 | import stackit.kms 19 | ``` 20 | 21 | ## Getting Started 22 | 23 | [Examples](https://github.com/stackitcloud/stackit-sdk-python/tree/main/examples) for the usage of the package can be found in the [GitHub repository](https://github.com/stackitcloud/stackit-sdk-python) of the SDK. -------------------------------------------------------------------------------- /services/observability/README.md: -------------------------------------------------------------------------------- 1 | # stackit.observability 2 | API endpoints for Observability on STACKIT 3 | 4 | 5 | This package is part of the STACKIT Python SDK. For additional information, please visit the [GitHub repository](https://github.com/stackitcloud/stackit-sdk-python) of the SDK. 6 | 7 | 8 | ## Installation & Usage 9 | ### pip install 10 | 11 | ```sh 12 | pip install stackit-observability 13 | ``` 14 | 15 | Then import the package: 16 | ```python 17 | import stackit.observability 18 | ``` 19 | 20 | ## Getting Started 21 | 22 | [Examples](https://github.com/stackitcloud/stackit-sdk-python/tree/main/examples) for the usage of the package can be found in the [GitHub repository](https://github.com/stackitcloud/stackit-sdk-python) of the SDK. -------------------------------------------------------------------------------- /services/runcommand/README.md: -------------------------------------------------------------------------------- 1 | # stackit.runcommand 2 | API endpoints for the STACKIT Run Commands Service API 3 | 4 | 5 | This package is part of the STACKIT Python SDK. For additional information, please visit the [GitHub repository](https://github.com/stackitcloud/stackit-sdk-python) of the SDK. 6 | 7 | 8 | ## Installation & Usage 9 | ### pip install 10 | 11 | ```sh 12 | pip install stackit-runcommand 13 | ``` 14 | 15 | Then import the package: 16 | ```python 17 | import stackit.runcommand 18 | ``` 19 | 20 | ## Getting Started 21 | 22 | [Examples](https://github.com/stackitcloud/stackit-sdk-python/tree/main/examples) for the usage of the package can be found in the [GitHub repository](https://github.com/stackitcloud/stackit-sdk-python) of the SDK. -------------------------------------------------------------------------------- /services/objectstorage/README.md: -------------------------------------------------------------------------------- 1 | # stackit.objectstorage 2 | STACKIT API to manage the Object Storage 3 | 4 | 5 | 6 | This package is part of the STACKIT Python SDK. For additional information, please visit the [GitHub repository](https://github.com/stackitcloud/stackit-sdk-python) of the SDK. 7 | 8 | 9 | ## Installation & Usage 10 | ### pip install 11 | 12 | ```sh 13 | pip install stackit-objectstorage 14 | ``` 15 | 16 | Then import the package: 17 | ```python 18 | import stackit.objectstorage 19 | ``` 20 | 21 | ## Getting Started 22 | 23 | [Examples](https://github.com/stackitcloud/stackit-sdk-python/tree/main/examples) for the usage of the package can be found in the [GitHub repository](https://github.com/stackitcloud/stackit-sdk-python) of the SDK. -------------------------------------------------------------------------------- /services/serviceenablement/README.md: -------------------------------------------------------------------------------- 1 | # stackit.serviceenablement 2 | STACKIT Service Enablement API 3 | 4 | 5 | This package is part of the STACKIT Python SDK. For additional information, please visit the [GitHub repository](https://github.com/stackitcloud/stackit-sdk-python) of the SDK. 6 | 7 | 8 | ## Installation & Usage 9 | ### pip install 10 | 11 | ```sh 12 | pip install stackit-serviceenablement 13 | ``` 14 | 15 | Then import the package: 16 | ```python 17 | import stackit.serviceenablement 18 | ``` 19 | 20 | ## Getting Started 21 | 22 | [Examples](https://github.com/stackitcloud/stackit-sdk-python/tree/main/examples) for the usage of the package can be found in the [GitHub repository](https://github.com/stackitcloud/stackit-sdk-python) of the SDK. -------------------------------------------------------------------------------- /services/stackitmarketplace/README.md: -------------------------------------------------------------------------------- 1 | # stackit.stackitmarketplace 2 | API to manage STACKIT Marketplace. 3 | 4 | 5 | This package is part of the STACKIT Python SDK. For additional information, please visit the [GitHub repository](https://github.com/stackitcloud/stackit-sdk-python) of the SDK. 6 | 7 | 8 | ## Installation & Usage 9 | ### pip install 10 | 11 | ```sh 12 | pip install stackit-stackitmarketplace 13 | ``` 14 | 15 | Then import the package: 16 | ```python 17 | import stackit.stackitmarketplace 18 | ``` 19 | 20 | ## Getting Started 21 | 22 | [Examples](https://github.com/stackitcloud/stackit-sdk-python/tree/main/examples) for the usage of the package can be found in the [GitHub repository](https://github.com/stackitcloud/stackit-sdk-python) of the SDK. -------------------------------------------------------------------------------- /services/serverbackup/README.md: -------------------------------------------------------------------------------- 1 | # stackit.serverbackup 2 | API endpoints for Server Backup Operations on STACKIT Servers. 3 | 4 | 5 | This package is part of the STACKIT Python SDK. For additional information, please visit the [GitHub repository](https://github.com/stackitcloud/stackit-sdk-python) of the SDK. 6 | 7 | 8 | ## Installation & Usage 9 | ### pip install 10 | 11 | ```sh 12 | pip install stackit-serverbackup 13 | ``` 14 | 15 | Then import the package: 16 | ```python 17 | import stackit.serverbackup 18 | ``` 19 | 20 | ## Getting Started 21 | 22 | [Examples](https://github.com/stackitcloud/stackit-sdk-python/tree/main/examples) for the usage of the package can be found in the [GitHub repository](https://github.com/stackitcloud/stackit-sdk-python) of the SDK. -------------------------------------------------------------------------------- /services/serverupdate/README.md: -------------------------------------------------------------------------------- 1 | # stackit.serverupdate 2 | API endpoints for Server Update Operations on STACKIT Servers. 3 | 4 | 5 | This package is part of the STACKIT Python SDK. For additional information, please visit the [GitHub repository](https://github.com/stackitcloud/stackit-sdk-python) of the SDK. 6 | 7 | 8 | ## Installation & Usage 9 | ### pip install 10 | 11 | ```sh 12 | pip install stackit-serverupdate 13 | ``` 14 | 15 | Then import the package: 16 | ```python 17 | import stackit.serverupdate 18 | ``` 19 | 20 | ## Getting Started 21 | 22 | [Examples](https://github.com/stackitcloud/stackit-sdk-python/tree/main/examples) for the usage of the package can be found in the [GitHub repository](https://github.com/stackitcloud/stackit-sdk-python) of the SDK. -------------------------------------------------------------------------------- /services/alb/src/stackit/alb/api_response.py: -------------------------------------------------------------------------------- 1 | """API response object.""" 2 | 3 | from __future__ import annotations 4 | 5 | from typing import Generic, Mapping, Optional, TypeVar 6 | 7 | from pydantic import BaseModel, Field, StrictBytes, StrictInt 8 | 9 | 10 | T = TypeVar("T") 11 | 12 | 13 | class ApiResponse(BaseModel, Generic[T]): 14 | """ 15 | API response object 16 | """ 17 | 18 | status_code: StrictInt = Field(description="HTTP status code") 19 | headers: Optional[Mapping[str, str]] = Field(None, description="HTTP headers") 20 | data: T = Field(description="Deserialized data given the data type") 21 | raw_data: StrictBytes = Field(description="Raw data (HTTP response body)") 22 | 23 | model_config = {"arbitrary_types_allowed": True} 24 | -------------------------------------------------------------------------------- /services/cdn/src/stackit/cdn/api_response.py: -------------------------------------------------------------------------------- 1 | """API response object.""" 2 | 3 | from __future__ import annotations 4 | 5 | from typing import Generic, Mapping, Optional, TypeVar 6 | 7 | from pydantic import BaseModel, Field, StrictBytes, StrictInt 8 | 9 | 10 | T = TypeVar("T") 11 | 12 | 13 | class ApiResponse(BaseModel, Generic[T]): 14 | """ 15 | API response object 16 | """ 17 | 18 | status_code: StrictInt = Field(description="HTTP status code") 19 | headers: Optional[Mapping[str, str]] = Field(None, description="HTTP headers") 20 | data: T = Field(description="Deserialized data given the data type") 21 | raw_data: StrictBytes = Field(description="Raw data (HTTP response body)") 22 | 23 | model_config = {"arbitrary_types_allowed": True} 24 | -------------------------------------------------------------------------------- /services/dns/src/stackit/dns/api_response.py: -------------------------------------------------------------------------------- 1 | """API response object.""" 2 | 3 | from __future__ import annotations 4 | 5 | from typing import Generic, Mapping, Optional, TypeVar 6 | 7 | from pydantic import BaseModel, Field, StrictBytes, StrictInt 8 | 9 | 10 | T = TypeVar("T") 11 | 12 | 13 | class ApiResponse(BaseModel, Generic[T]): 14 | """ 15 | API response object 16 | """ 17 | 18 | status_code: StrictInt = Field(description="HTTP status code") 19 | headers: Optional[Mapping[str, str]] = Field(None, description="HTTP headers") 20 | data: T = Field(description="Deserialized data given the data type") 21 | raw_data: StrictBytes = Field(description="Raw data (HTTP response body)") 22 | 23 | model_config = {"arbitrary_types_allowed": True} 24 | -------------------------------------------------------------------------------- /services/git/src/stackit/git/api_response.py: -------------------------------------------------------------------------------- 1 | """API response object.""" 2 | 3 | from __future__ import annotations 4 | 5 | from typing import Generic, Mapping, Optional, TypeVar 6 | 7 | from pydantic import BaseModel, Field, StrictBytes, StrictInt 8 | 9 | 10 | T = TypeVar("T") 11 | 12 | 13 | class ApiResponse(BaseModel, Generic[T]): 14 | """ 15 | API response object 16 | """ 17 | 18 | status_code: StrictInt = Field(description="HTTP status code") 19 | headers: Optional[Mapping[str, str]] = Field(None, description="HTTP headers") 20 | data: T = Field(description="Deserialized data given the data type") 21 | raw_data: StrictBytes = Field(description="Raw data (HTTP response body)") 22 | 23 | model_config = {"arbitrary_types_allowed": True} 24 | -------------------------------------------------------------------------------- /services/kms/src/stackit/kms/api_response.py: -------------------------------------------------------------------------------- 1 | """API response object.""" 2 | 3 | from __future__ import annotations 4 | 5 | from typing import Generic, Mapping, Optional, TypeVar 6 | 7 | from pydantic import BaseModel, Field, StrictBytes, StrictInt 8 | 9 | 10 | T = TypeVar("T") 11 | 12 | 13 | class ApiResponse(BaseModel, Generic[T]): 14 | """ 15 | API response object 16 | """ 17 | 18 | status_code: StrictInt = Field(description="HTTP status code") 19 | headers: Optional[Mapping[str, str]] = Field(None, description="HTTP headers") 20 | data: T = Field(description="Deserialized data given the data type") 21 | raw_data: StrictBytes = Field(description="Raw data (HTTP response body)") 22 | 23 | model_config = {"arbitrary_types_allowed": True} 24 | -------------------------------------------------------------------------------- /services/scf/src/stackit/scf/api_response.py: -------------------------------------------------------------------------------- 1 | """API response object.""" 2 | 3 | from __future__ import annotations 4 | 5 | from typing import Generic, Mapping, Optional, TypeVar 6 | 7 | from pydantic import BaseModel, Field, StrictBytes, StrictInt 8 | 9 | 10 | T = TypeVar("T") 11 | 12 | 13 | class ApiResponse(BaseModel, Generic[T]): 14 | """ 15 | API response object 16 | """ 17 | 18 | status_code: StrictInt = Field(description="HTTP status code") 19 | headers: Optional[Mapping[str, str]] = Field(None, description="HTTP headers") 20 | data: T = Field(description="Deserialized data given the data type") 21 | raw_data: StrictBytes = Field(description="Raw data (HTTP response body)") 22 | 23 | model_config = {"arbitrary_types_allowed": True} 24 | -------------------------------------------------------------------------------- /services/ske/src/stackit/ske/api_response.py: -------------------------------------------------------------------------------- 1 | """API response object.""" 2 | 3 | from __future__ import annotations 4 | 5 | from typing import Generic, Mapping, Optional, TypeVar 6 | 7 | from pydantic import BaseModel, Field, StrictBytes, StrictInt 8 | 9 | 10 | T = TypeVar("T") 11 | 12 | 13 | class ApiResponse(BaseModel, Generic[T]): 14 | """ 15 | API response object 16 | """ 17 | 18 | status_code: StrictInt = Field(description="HTTP status code") 19 | headers: Optional[Mapping[str, str]] = Field(None, description="HTTP headers") 20 | data: T = Field(description="Deserialized data given the data type") 21 | raw_data: StrictBytes = Field(description="Raw data (HTTP response body)") 22 | 23 | model_config = {"arbitrary_types_allowed": True} 24 | -------------------------------------------------------------------------------- /examples/observability/create_instances.py: -------------------------------------------------------------------------------- 1 | import os 2 | 3 | from stackit.observability.api.default_api import DefaultApi 4 | from stackit.observability.models.create_instance_payload import CreateInstancePayload 5 | from stackit.core.configuration import Configuration 6 | 7 | project_id = os.getenv("PROJECT_ID") 8 | 9 | # Create a new API client, that uses default authentication and configuration 10 | config = Configuration() 11 | client = DefaultApi(config) 12 | 13 | # Get all offerings 14 | response = client.list_plans(project_id) 15 | 16 | # Create instance using the first found offer 17 | create_instance_payload = CreateInstancePayload( 18 | name="myInstance", 19 | planId=response.plans[0].id, 20 | ) 21 | client.create_instance(project_id, create_instance_payload) 22 | -------------------------------------------------------------------------------- /services/iaas/src/stackit/iaas/api_response.py: -------------------------------------------------------------------------------- 1 | """API response object.""" 2 | 3 | from __future__ import annotations 4 | 5 | from typing import Generic, Mapping, Optional, TypeVar 6 | 7 | from pydantic import BaseModel, Field, StrictBytes, StrictInt 8 | 9 | 10 | T = TypeVar("T") 11 | 12 | 13 | class ApiResponse(BaseModel, Generic[T]): 14 | """ 15 | API response object 16 | """ 17 | 18 | status_code: StrictInt = Field(description="HTTP status code") 19 | headers: Optional[Mapping[str, str]] = Field(None, description="HTTP headers") 20 | data: T = Field(description="Deserialized data given the data type") 21 | raw_data: StrictBytes = Field(description="Raw data (HTTP response body)") 22 | 23 | model_config = {"arbitrary_types_allowed": True} 24 | -------------------------------------------------------------------------------- /services/intake/src/stackit/intake/api_response.py: -------------------------------------------------------------------------------- 1 | """API response object.""" 2 | 3 | from __future__ import annotations 4 | 5 | from typing import Generic, Mapping, Optional, TypeVar 6 | 7 | from pydantic import BaseModel, Field, StrictBytes, StrictInt 8 | 9 | 10 | T = TypeVar("T") 11 | 12 | 13 | class ApiResponse(BaseModel, Generic[T]): 14 | """ 15 | API response object 16 | """ 17 | 18 | status_code: StrictInt = Field(description="HTTP status code") 19 | headers: Optional[Mapping[str, str]] = Field(None, description="HTTP headers") 20 | data: T = Field(description="Deserialized data given the data type") 21 | raw_data: StrictBytes = Field(description="Raw data (HTTP response body)") 22 | 23 | model_config = {"arbitrary_types_allowed": True} 24 | -------------------------------------------------------------------------------- /services/logme/src/stackit/logme/api_response.py: -------------------------------------------------------------------------------- 1 | """API response object.""" 2 | 3 | from __future__ import annotations 4 | 5 | from typing import Generic, Mapping, Optional, TypeVar 6 | 7 | from pydantic import BaseModel, Field, StrictBytes, StrictInt 8 | 9 | 10 | T = TypeVar("T") 11 | 12 | 13 | class ApiResponse(BaseModel, Generic[T]): 14 | """ 15 | API response object 16 | """ 17 | 18 | status_code: StrictInt = Field(description="HTTP status code") 19 | headers: Optional[Mapping[str, str]] = Field(None, description="HTTP headers") 20 | data: T = Field(description="Deserialized data given the data type") 21 | raw_data: StrictBytes = Field(description="Raw data (HTTP response body)") 22 | 23 | model_config = {"arbitrary_types_allowed": True} 24 | -------------------------------------------------------------------------------- /services/redis/src/stackit/redis/api_response.py: -------------------------------------------------------------------------------- 1 | """API response object.""" 2 | 3 | from __future__ import annotations 4 | 5 | from typing import Generic, Mapping, Optional, TypeVar 6 | 7 | from pydantic import BaseModel, Field, StrictBytes, StrictInt 8 | 9 | 10 | T = TypeVar("T") 11 | 12 | 13 | class ApiResponse(BaseModel, Generic[T]): 14 | """ 15 | API response object 16 | """ 17 | 18 | status_code: StrictInt = Field(description="HTTP status code") 19 | headers: Optional[Mapping[str, str]] = Field(None, description="HTTP headers") 20 | data: T = Field(description="Deserialized data given the data type") 21 | raw_data: StrictBytes = Field(description="Raw data (HTTP response body)") 22 | 23 | model_config = {"arbitrary_types_allowed": True} 24 | -------------------------------------------------------------------------------- /services/secretsmanager/README.md: -------------------------------------------------------------------------------- 1 | # stackit.secretsmanager 2 | This API provides endpoints for managing the Secrets-Manager. 3 | 4 | 5 | 6 | This package is part of the STACKIT Python SDK. For additional information, please visit the [GitHub repository](https://github.com/stackitcloud/stackit-sdk-python) of the SDK. 7 | 8 | 9 | ## Installation & Usage 10 | ### pip install 11 | 12 | ```sh 13 | pip install stackit-secretsmanager 14 | ``` 15 | 16 | Then import the package: 17 | ```python 18 | import stackit.secretsmanager 19 | ``` 20 | 21 | ## Getting Started 22 | 23 | [Examples](https://github.com/stackitcloud/stackit-sdk-python/tree/main/examples) for the usage of the package can be found in the [GitHub repository](https://github.com/stackitcloud/stackit-sdk-python) of the SDK. -------------------------------------------------------------------------------- /services/auditlog/src/stackit/auditlog/api_response.py: -------------------------------------------------------------------------------- 1 | """API response object.""" 2 | 3 | from __future__ import annotations 4 | 5 | from typing import Generic, Mapping, Optional, TypeVar 6 | 7 | from pydantic import BaseModel, Field, StrictBytes, StrictInt 8 | 9 | 10 | T = TypeVar("T") 11 | 12 | 13 | class ApiResponse(BaseModel, Generic[T]): 14 | """ 15 | API response object 16 | """ 17 | 18 | status_code: StrictInt = Field(description="HTTP status code") 19 | headers: Optional[Mapping[str, str]] = Field(None, description="HTTP headers") 20 | data: T = Field(description="Deserialized data given the data type") 21 | raw_data: StrictBytes = Field(description="Raw data (HTTP response body)") 22 | 23 | model_config = {"arbitrary_types_allowed": True} 24 | -------------------------------------------------------------------------------- /services/mariadb/src/stackit/mariadb/api_response.py: -------------------------------------------------------------------------------- 1 | """API response object.""" 2 | 3 | from __future__ import annotations 4 | 5 | from typing import Generic, Mapping, Optional, TypeVar 6 | 7 | from pydantic import BaseModel, Field, StrictBytes, StrictInt 8 | 9 | 10 | T = TypeVar("T") 11 | 12 | 13 | class ApiResponse(BaseModel, Generic[T]): 14 | """ 15 | API response object 16 | """ 17 | 18 | status_code: StrictInt = Field(description="HTTP status code") 19 | headers: Optional[Mapping[str, str]] = Field(None, description="HTTP headers") 20 | data: T = Field(description="Deserialized data given the data type") 21 | raw_data: StrictBytes = Field(description="Raw data (HTTP response body)") 22 | 23 | model_config = {"arbitrary_types_allowed": True} 24 | -------------------------------------------------------------------------------- /services/rabbitmq/src/stackit/rabbitmq/api_response.py: -------------------------------------------------------------------------------- 1 | """API response object.""" 2 | 3 | from __future__ import annotations 4 | 5 | from typing import Generic, Mapping, Optional, TypeVar 6 | 7 | from pydantic import BaseModel, Field, StrictBytes, StrictInt 8 | 9 | 10 | T = TypeVar("T") 11 | 12 | 13 | class ApiResponse(BaseModel, Generic[T]): 14 | """ 15 | API response object 16 | """ 17 | 18 | status_code: StrictInt = Field(description="HTTP status code") 19 | headers: Optional[Mapping[str, str]] = Field(None, description="HTTP headers") 20 | data: T = Field(description="Deserialized data given the data type") 21 | raw_data: StrictBytes = Field(description="Raw data (HTTP response body)") 22 | 23 | model_config = {"arbitrary_types_allowed": True} 24 | -------------------------------------------------------------------------------- /services/iaasalpha/src/stackit/iaasalpha/api_response.py: -------------------------------------------------------------------------------- 1 | """API response object.""" 2 | 3 | from __future__ import annotations 4 | 5 | from typing import Generic, Mapping, Optional, TypeVar 6 | 7 | from pydantic import BaseModel, Field, StrictBytes, StrictInt 8 | 9 | 10 | T = TypeVar("T") 11 | 12 | 13 | class ApiResponse(BaseModel, Generic[T]): 14 | """ 15 | API response object 16 | """ 17 | 18 | status_code: StrictInt = Field(description="HTTP status code") 19 | headers: Optional[Mapping[str, str]] = Field(None, description="HTTP headers") 20 | data: T = Field(description="Deserialized data given the data type") 21 | raw_data: StrictBytes = Field(description="Raw data (HTTP response body)") 22 | 23 | model_config = {"arbitrary_types_allowed": True} 24 | -------------------------------------------------------------------------------- /services/mongodbflex/src/stackit/mongodbflex/api_response.py: -------------------------------------------------------------------------------- 1 | """API response object.""" 2 | 3 | from __future__ import annotations 4 | 5 | from typing import Generic, Mapping, Optional, TypeVar 6 | 7 | from pydantic import BaseModel, Field, StrictBytes, StrictInt 8 | 9 | 10 | T = TypeVar("T") 11 | 12 | 13 | class ApiResponse(BaseModel, Generic[T]): 14 | """ 15 | API response object 16 | """ 17 | 18 | status_code: StrictInt = Field(description="HTTP status code") 19 | headers: Optional[Mapping[str, str]] = Field(None, description="HTTP headers") 20 | data: T = Field(description="Deserialized data given the data type") 21 | raw_data: StrictBytes = Field(description="Raw data (HTTP response body)") 22 | 23 | model_config = {"arbitrary_types_allowed": True} 24 | -------------------------------------------------------------------------------- /services/opensearch/src/stackit/opensearch/api_response.py: -------------------------------------------------------------------------------- 1 | """API response object.""" 2 | 3 | from __future__ import annotations 4 | 5 | from typing import Generic, Mapping, Optional, TypeVar 6 | 7 | from pydantic import BaseModel, Field, StrictBytes, StrictInt 8 | 9 | 10 | T = TypeVar("T") 11 | 12 | 13 | class ApiResponse(BaseModel, Generic[T]): 14 | """ 15 | API response object 16 | """ 17 | 18 | status_code: StrictInt = Field(description="HTTP status code") 19 | headers: Optional[Mapping[str, str]] = Field(None, description="HTTP headers") 20 | data: T = Field(description="Deserialized data given the data type") 21 | raw_data: StrictBytes = Field(description="Raw data (HTTP response body)") 22 | 23 | model_config = {"arbitrary_types_allowed": True} 24 | -------------------------------------------------------------------------------- /services/runcommand/src/stackit/runcommand/api_response.py: -------------------------------------------------------------------------------- 1 | """API response object.""" 2 | 3 | from __future__ import annotations 4 | 5 | from typing import Generic, Mapping, Optional, TypeVar 6 | 7 | from pydantic import BaseModel, Field, StrictBytes, StrictInt 8 | 9 | 10 | T = TypeVar("T") 11 | 12 | 13 | class ApiResponse(BaseModel, Generic[T]): 14 | """ 15 | API response object 16 | """ 17 | 18 | status_code: StrictInt = Field(description="HTTP status code") 19 | headers: Optional[Mapping[str, str]] = Field(None, description="HTTP headers") 20 | data: T = Field(description="Deserialized data given the data type") 21 | raw_data: StrictBytes = Field(description="Raw data (HTTP response body)") 22 | 23 | model_config = {"arbitrary_types_allowed": True} 24 | -------------------------------------------------------------------------------- /examples/opensearch/create_instances.py: -------------------------------------------------------------------------------- 1 | import os 2 | 3 | from stackit.opensearch.api.default_api import DefaultApi 4 | from stackit.opensearch.models.create_instance_payload import CreateInstancePayload 5 | from stackit.core.configuration import Configuration 6 | 7 | project_id = os.getenv("PROJECT_ID") 8 | 9 | # Create a new API client, that uses default authentication and configuration 10 | config = Configuration() 11 | client = DefaultApi(config) 12 | 13 | # Get all offerings 14 | response = client.list_offerings(project_id) 15 | 16 | # Create instance using the first found offer 17 | create_instance_payload = CreateInstancePayload( 18 | instanceName="myInstance", 19 | planId=response.offerings[0].plans[0].id, 20 | ) 21 | client.create_instance(project_id, create_instance_payload) 22 | -------------------------------------------------------------------------------- /services/authorization/src/stackit/authorization/api_response.py: -------------------------------------------------------------------------------- 1 | """API response object.""" 2 | 3 | from __future__ import annotations 4 | 5 | from typing import Generic, Mapping, Optional, TypeVar 6 | 7 | from pydantic import BaseModel, Field, StrictBytes, StrictInt 8 | 9 | 10 | T = TypeVar("T") 11 | 12 | 13 | class ApiResponse(BaseModel, Generic[T]): 14 | """ 15 | API response object 16 | """ 17 | 18 | status_code: StrictInt = Field(description="HTTP status code") 19 | headers: Optional[Mapping[str, str]] = Field(None, description="HTTP headers") 20 | data: T = Field(description="Deserialized data given the data type") 21 | raw_data: StrictBytes = Field(description="Raw data (HTTP response body)") 22 | 23 | model_config = {"arbitrary_types_allowed": True} 24 | -------------------------------------------------------------------------------- /services/certificates/src/stackit/certificates/api_response.py: -------------------------------------------------------------------------------- 1 | """API response object.""" 2 | 3 | from __future__ import annotations 4 | 5 | from typing import Generic, Mapping, Optional, TypeVar 6 | 7 | from pydantic import BaseModel, Field, StrictBytes, StrictInt 8 | 9 | 10 | T = TypeVar("T") 11 | 12 | 13 | class ApiResponse(BaseModel, Generic[T]): 14 | """ 15 | API response object 16 | """ 17 | 18 | status_code: StrictInt = Field(description="HTTP status code") 19 | headers: Optional[Mapping[str, str]] = Field(None, description="HTTP headers") 20 | data: T = Field(description="Deserialized data given the data type") 21 | raw_data: StrictBytes = Field(description="Raw data (HTTP response body)") 22 | 23 | model_config = {"arbitrary_types_allowed": True} 24 | -------------------------------------------------------------------------------- /services/lbapplication/src/stackit/lbapplication/api_response.py: -------------------------------------------------------------------------------- 1 | """API response object.""" 2 | 3 | from __future__ import annotations 4 | 5 | from typing import Generic, Mapping, Optional, TypeVar 6 | 7 | from pydantic import BaseModel, Field, StrictBytes, StrictInt 8 | 9 | 10 | T = TypeVar("T") 11 | 12 | 13 | class ApiResponse(BaseModel, Generic[T]): 14 | """ 15 | API response object 16 | """ 17 | 18 | status_code: StrictInt = Field(description="HTTP status code") 19 | headers: Optional[Mapping[str, str]] = Field(None, description="HTTP headers") 20 | data: T = Field(description="Deserialized data given the data type") 21 | raw_data: StrictBytes = Field(description="Raw data (HTTP response body)") 22 | 23 | model_config = {"arbitrary_types_allowed": True} 24 | -------------------------------------------------------------------------------- /services/loadbalancer/src/stackit/loadbalancer/api_response.py: -------------------------------------------------------------------------------- 1 | """API response object.""" 2 | 3 | from __future__ import annotations 4 | 5 | from typing import Generic, Mapping, Optional, TypeVar 6 | 7 | from pydantic import BaseModel, Field, StrictBytes, StrictInt 8 | 9 | 10 | T = TypeVar("T") 11 | 12 | 13 | class ApiResponse(BaseModel, Generic[T]): 14 | """ 15 | API response object 16 | """ 17 | 18 | status_code: StrictInt = Field(description="HTTP status code") 19 | headers: Optional[Mapping[str, str]] = Field(None, description="HTTP headers") 20 | data: T = Field(description="Deserialized data given the data type") 21 | raw_data: StrictBytes = Field(description="Raw data (HTTP response body)") 22 | 23 | model_config = {"arbitrary_types_allowed": True} 24 | -------------------------------------------------------------------------------- /services/modelserving/src/stackit/modelserving/api_response.py: -------------------------------------------------------------------------------- 1 | """API response object.""" 2 | 3 | from __future__ import annotations 4 | 5 | from typing import Generic, Mapping, Optional, TypeVar 6 | 7 | from pydantic import BaseModel, Field, StrictBytes, StrictInt 8 | 9 | 10 | T = TypeVar("T") 11 | 12 | 13 | class ApiResponse(BaseModel, Generic[T]): 14 | """ 15 | API response object 16 | """ 17 | 18 | status_code: StrictInt = Field(description="HTTP status code") 19 | headers: Optional[Mapping[str, str]] = Field(None, description="HTTP headers") 20 | data: T = Field(description="Deserialized data given the data type") 21 | raw_data: StrictBytes = Field(description="Raw data (HTTP response body)") 22 | 23 | model_config = {"arbitrary_types_allowed": True} 24 | -------------------------------------------------------------------------------- /services/objectstorage/src/stackit/objectstorage/api_response.py: -------------------------------------------------------------------------------- 1 | """API response object.""" 2 | 3 | from __future__ import annotations 4 | 5 | from typing import Generic, Mapping, Optional, TypeVar 6 | 7 | from pydantic import BaseModel, Field, StrictBytes, StrictInt 8 | 9 | 10 | T = TypeVar("T") 11 | 12 | 13 | class ApiResponse(BaseModel, Generic[T]): 14 | """ 15 | API response object 16 | """ 17 | 18 | status_code: StrictInt = Field(description="HTTP status code") 19 | headers: Optional[Mapping[str, str]] = Field(None, description="HTTP headers") 20 | data: T = Field(description="Deserialized data given the data type") 21 | raw_data: StrictBytes = Field(description="Raw data (HTTP response body)") 22 | 23 | model_config = {"arbitrary_types_allowed": True} 24 | -------------------------------------------------------------------------------- /services/observability/src/stackit/observability/api_response.py: -------------------------------------------------------------------------------- 1 | """API response object.""" 2 | 3 | from __future__ import annotations 4 | 5 | from typing import Generic, Mapping, Optional, TypeVar 6 | 7 | from pydantic import BaseModel, Field, StrictBytes, StrictInt 8 | 9 | 10 | T = TypeVar("T") 11 | 12 | 13 | class ApiResponse(BaseModel, Generic[T]): 14 | """ 15 | API response object 16 | """ 17 | 18 | status_code: StrictInt = Field(description="HTTP status code") 19 | headers: Optional[Mapping[str, str]] = Field(None, description="HTTP headers") 20 | data: T = Field(description="Deserialized data given the data type") 21 | raw_data: StrictBytes = Field(description="Raw data (HTTP response body)") 22 | 23 | model_config = {"arbitrary_types_allowed": True} 24 | -------------------------------------------------------------------------------- /services/postgresflex/src/stackit/postgresflex/api_response.py: -------------------------------------------------------------------------------- 1 | """API response object.""" 2 | 3 | from __future__ import annotations 4 | 5 | from typing import Generic, Mapping, Optional, TypeVar 6 | 7 | from pydantic import BaseModel, Field, StrictBytes, StrictInt 8 | 9 | 10 | T = TypeVar("T") 11 | 12 | 13 | class ApiResponse(BaseModel, Generic[T]): 14 | """ 15 | API response object 16 | """ 17 | 18 | status_code: StrictInt = Field(description="HTTP status code") 19 | headers: Optional[Mapping[str, str]] = Field(None, description="HTTP headers") 20 | data: T = Field(description="Deserialized data given the data type") 21 | raw_data: StrictBytes = Field(description="Raw data (HTTP response body)") 22 | 23 | model_config = {"arbitrary_types_allowed": True} 24 | -------------------------------------------------------------------------------- /services/serverbackup/src/stackit/serverbackup/api_response.py: -------------------------------------------------------------------------------- 1 | """API response object.""" 2 | 3 | from __future__ import annotations 4 | 5 | from typing import Generic, Mapping, Optional, TypeVar 6 | 7 | from pydantic import BaseModel, Field, StrictBytes, StrictInt 8 | 9 | 10 | T = TypeVar("T") 11 | 12 | 13 | class ApiResponse(BaseModel, Generic[T]): 14 | """ 15 | API response object 16 | """ 17 | 18 | status_code: StrictInt = Field(description="HTTP status code") 19 | headers: Optional[Mapping[str, str]] = Field(None, description="HTTP headers") 20 | data: T = Field(description="Deserialized data given the data type") 21 | raw_data: StrictBytes = Field(description="Raw data (HTTP response body)") 22 | 23 | model_config = {"arbitrary_types_allowed": True} 24 | -------------------------------------------------------------------------------- /services/serverupdate/src/stackit/serverupdate/api_response.py: -------------------------------------------------------------------------------- 1 | """API response object.""" 2 | 3 | from __future__ import annotations 4 | 5 | from typing import Generic, Mapping, Optional, TypeVar 6 | 7 | from pydantic import BaseModel, Field, StrictBytes, StrictInt 8 | 9 | 10 | T = TypeVar("T") 11 | 12 | 13 | class ApiResponse(BaseModel, Generic[T]): 14 | """ 15 | API response object 16 | """ 17 | 18 | status_code: StrictInt = Field(description="HTTP status code") 19 | headers: Optional[Mapping[str, str]] = Field(None, description="HTTP headers") 20 | data: T = Field(description="Deserialized data given the data type") 21 | raw_data: StrictBytes = Field(description="Raw data (HTTP response body)") 22 | 23 | model_config = {"arbitrary_types_allowed": True} 24 | -------------------------------------------------------------------------------- /services/sqlserverflex/src/stackit/sqlserverflex/api_response.py: -------------------------------------------------------------------------------- 1 | """API response object.""" 2 | 3 | from __future__ import annotations 4 | 5 | from typing import Generic, Mapping, Optional, TypeVar 6 | 7 | from pydantic import BaseModel, Field, StrictBytes, StrictInt 8 | 9 | 10 | T = TypeVar("T") 11 | 12 | 13 | class ApiResponse(BaseModel, Generic[T]): 14 | """ 15 | API response object 16 | """ 17 | 18 | status_code: StrictInt = Field(description="HTTP status code") 19 | headers: Optional[Mapping[str, str]] = Field(None, description="HTTP headers") 20 | data: T = Field(description="Deserialized data given the data type") 21 | raw_data: StrictBytes = Field(description="Raw data (HTTP response body)") 22 | 23 | model_config = {"arbitrary_types_allowed": True} 24 | -------------------------------------------------------------------------------- /examples/serviceaccount/create_serviceaccount.py: -------------------------------------------------------------------------------- 1 | import os 2 | 3 | from stackit.serviceaccount.api.default_api import DefaultApi 4 | from stackit.serviceaccount.models.create_service_account_payload import ( 5 | CreateServiceAccountPayload, 6 | ) 7 | 8 | from stackit.core.configuration import Configuration 9 | 10 | 11 | project_id = os.getenv("PROJECT_ID") 12 | 13 | # Create a new API client, that uses default authentication and configuration 14 | config = Configuration() 15 | client = DefaultApi(config) 16 | 17 | # Create a new serviceaccount 18 | create_serviceaccount_payload = CreateServiceAccountPayload( 19 | name="my-service-account", 20 | ) 21 | sa = client.create_service_account(project_id, create_serviceaccount_payload) 22 | print(f"Created service-account with email {sa.email}") 23 | -------------------------------------------------------------------------------- /services/resourcemanager/src/stackit/resourcemanager/api_response.py: -------------------------------------------------------------------------------- 1 | """API response object.""" 2 | 3 | from __future__ import annotations 4 | 5 | from typing import Generic, Mapping, Optional, TypeVar 6 | 7 | from pydantic import BaseModel, Field, StrictBytes, StrictInt 8 | 9 | 10 | T = TypeVar("T") 11 | 12 | 13 | class ApiResponse(BaseModel, Generic[T]): 14 | """ 15 | API response object 16 | """ 17 | 18 | status_code: StrictInt = Field(description="HTTP status code") 19 | headers: Optional[Mapping[str, str]] = Field(None, description="HTTP headers") 20 | data: T = Field(description="Deserialized data given the data type") 21 | raw_data: StrictBytes = Field(description="Raw data (HTTP response body)") 22 | 23 | model_config = {"arbitrary_types_allowed": True} 24 | -------------------------------------------------------------------------------- /services/secretsmanager/src/stackit/secretsmanager/api_response.py: -------------------------------------------------------------------------------- 1 | """API response object.""" 2 | 3 | from __future__ import annotations 4 | 5 | from typing import Generic, Mapping, Optional, TypeVar 6 | 7 | from pydantic import BaseModel, Field, StrictBytes, StrictInt 8 | 9 | 10 | T = TypeVar("T") 11 | 12 | 13 | class ApiResponse(BaseModel, Generic[T]): 14 | """ 15 | API response object 16 | """ 17 | 18 | status_code: StrictInt = Field(description="HTTP status code") 19 | headers: Optional[Mapping[str, str]] = Field(None, description="HTTP headers") 20 | data: T = Field(description="Deserialized data given the data type") 21 | raw_data: StrictBytes = Field(description="Raw data (HTTP response body)") 22 | 23 | model_config = {"arbitrary_types_allowed": True} 24 | -------------------------------------------------------------------------------- /services/serviceaccount/src/stackit/serviceaccount/api_response.py: -------------------------------------------------------------------------------- 1 | """API response object.""" 2 | 3 | from __future__ import annotations 4 | 5 | from typing import Generic, Mapping, Optional, TypeVar 6 | 7 | from pydantic import BaseModel, Field, StrictBytes, StrictInt 8 | 9 | 10 | T = TypeVar("T") 11 | 12 | 13 | class ApiResponse(BaseModel, Generic[T]): 14 | """ 15 | API response object 16 | """ 17 | 18 | status_code: StrictInt = Field(description="HTTP status code") 19 | headers: Optional[Mapping[str, str]] = Field(None, description="HTTP headers") 20 | data: T = Field(description="Deserialized data given the data type") 21 | raw_data: StrictBytes = Field(description="Raw data (HTTP response body)") 22 | 23 | model_config = {"arbitrary_types_allowed": True} 24 | -------------------------------------------------------------------------------- /services/serviceenablement/src/stackit/serviceenablement/api_response.py: -------------------------------------------------------------------------------- 1 | """API response object.""" 2 | 3 | from __future__ import annotations 4 | 5 | from typing import Generic, Mapping, Optional, TypeVar 6 | 7 | from pydantic import BaseModel, Field, StrictBytes, StrictInt 8 | 9 | 10 | T = TypeVar("T") 11 | 12 | 13 | class ApiResponse(BaseModel, Generic[T]): 14 | """ 15 | API response object 16 | """ 17 | 18 | status_code: StrictInt = Field(description="HTTP status code") 19 | headers: Optional[Mapping[str, str]] = Field(None, description="HTTP headers") 20 | data: T = Field(description="Deserialized data given the data type") 21 | raw_data: StrictBytes = Field(description="Raw data (HTTP response body)") 22 | 23 | model_config = {"arbitrary_types_allowed": True} 24 | -------------------------------------------------------------------------------- /services/stackitmarketplace/src/stackit/stackitmarketplace/api_response.py: -------------------------------------------------------------------------------- 1 | """API response object.""" 2 | 3 | from __future__ import annotations 4 | 5 | from typing import Generic, Mapping, Optional, TypeVar 6 | 7 | from pydantic import BaseModel, Field, StrictBytes, StrictInt 8 | 9 | 10 | T = TypeVar("T") 11 | 12 | 13 | class ApiResponse(BaseModel, Generic[T]): 14 | """ 15 | API response object 16 | """ 17 | 18 | status_code: StrictInt = Field(description="HTTP status code") 19 | headers: Optional[Mapping[str, str]] = Field(None, description="HTTP headers") 20 | data: T = Field(description="Deserialized data given the data type") 21 | raw_data: StrictBytes = Field(description="Raw data (HTTP response body)") 22 | 23 | model_config = {"arbitrary_types_allowed": True} 24 | -------------------------------------------------------------------------------- /examples/core/custom_proxy.py: -------------------------------------------------------------------------------- 1 | from typing import Dict 2 | import requests 3 | from stackit.core.configuration import Configuration 4 | 5 | # Set the proxy servers here. You can set 'http', 'https' and 'ftp'. 6 | proxies = { 7 | "http": "http://10.10.1.10:3128", 8 | "https": "https://10.10.1.11:1080", 9 | } 10 | 11 | 12 | class CustomSession(requests.Session): 13 | def __init__(self, proxies: Dict[str, str]): 14 | self.proxies = proxies 15 | super().__init__() 16 | 17 | def request(self, method, url, **kwargs): 18 | if "proxies" not in kwargs: 19 | kwargs["proxies"] = self.proxies 20 | return super().request(method, url, **kwargs) 21 | 22 | 23 | custom_session = CustomSession(proxies=proxies) 24 | config = Configuration(custom_http_session=custom_session) 25 | -------------------------------------------------------------------------------- /examples/mariadb/create_instance.py: -------------------------------------------------------------------------------- 1 | import os 2 | 3 | from stackit.mariadb.api.default_api import DefaultApi 4 | from stackit.mariadb.models.create_instance_payload import CreateInstancePayload 5 | from stackit.core.configuration import Configuration 6 | 7 | project_id = os.getenv("PROJECT_ID") 8 | 9 | # Create a new API client, that uses default authentication and configuration 10 | config = Configuration() 11 | client = DefaultApi(config) 12 | 13 | # Get all MariaDB offerings 14 | offerings_response = client.list_offerings(project_id) 15 | 16 | # Create an instance using the first offering 17 | create_instance_payload = CreateInstancePayload( 18 | instanceName="exampleInstance", 19 | planId=offerings_response.offerings[0].plans[0].id, 20 | ) 21 | client.create_instance(project_id, create_instance_payload) 22 | -------------------------------------------------------------------------------- /examples/redis/create_instance.py: -------------------------------------------------------------------------------- 1 | import os 2 | 3 | from stackit.core.configuration import Configuration 4 | from stackit.redis.api.default_api import DefaultApi 5 | from stackit.redis.models.create_instance_payload import CreateInstancePayload 6 | 7 | project_id = os.getenv("PROJECT_ID") 8 | 9 | config = Configuration() 10 | client = DefaultApi(config) 11 | 12 | # Check out all available offerings 13 | available_offerings = client.list_offerings(project_id) 14 | 15 | # Take the first available plan id 16 | offering_id = available_offerings.offerings[0].plans[0].id 17 | payload = CreateInstancePayload( 18 | instance_name="test-instance", 19 | plan_id=offering_id, 20 | ) 21 | 22 | # Create the instance 23 | instance = client.create_instance(project_id, payload) 24 | print("Created instance with ID: " + instance.instance_id) 25 | -------------------------------------------------------------------------------- /services/redis/CHANGELOG.md: -------------------------------------------------------------------------------- 1 | ## v0.3.0 2 | - **Version**: Minimal version is now python 3.9 3 | 4 | ## v0.2.2 5 | - **Internal:** Improve deserializing and error types 6 | 7 | ## v0.2.1 (2025-05-09) 8 | - **Feature:** Update user-agent header 9 | 10 | ## v0.2.0 (2025-01-13) 11 | - **Breaking Change:**: `get_host_from_settings` returns an error if a region is specified for a global URL. 12 | 13 | STACKIT will move to a new way of specifying regions, where the region is provided as a function argument instead of being set in the client configuration. Once all services have migrated, the methods to specify the region in the client configuration will be removed. 14 | 15 | ## v0.1.0 (2024-12-04) 16 | - Manage your STACKIT Redis resources 17 | - [Usage example](https://github.com/stackitcloud/stackit-sdk-python/tree/main/examples/redis) 18 | -------------------------------------------------------------------------------- /services/rabbitmq/CHANGELOG.md: -------------------------------------------------------------------------------- 1 | ## v0.3.0 2 | - **Version**: Minimal version is now python 3.9 3 | 4 | ## v0.2.2 5 | - **Internal:** Improve deserializing and error types 6 | 7 | ## v0.2.1 (2025-05-09) 8 | - **Feature:** Update user-agent header 9 | 10 | ## v0.2.0 (2025-01-13) 11 | - **Breaking Change:**: `get_host_from_settings` returns an error if a region is specified for a global URL. 12 | 13 | STACKIT will move to a new way of specifying regions, where the region is provided as a function argument instead of being set in the client configuration. Once all services have migrated, the methods to specify the region in the client configuration will be removed. 14 | 15 | ## v0.1.0 (2024-12-04) 16 | - Manage your STACKIT RabbitMQ resources 17 | - [Usage example](https://github.com/stackitcloud/stackit-sdk-python/tree/main/examples/rabbitmq) 18 | -------------------------------------------------------------------------------- /services/git/README.md: -------------------------------------------------------------------------------- 1 | # stackit.git 2 | Manage STACKIT Git instances. 3 | 4 | For more information, please visit [https://docs.stackit.cloud/stackit/en/git-261161358.html](https://docs.stackit.cloud/stackit/en/git-261161358.html) 5 | 6 | This package is part of the STACKIT Python SDK. For additional information, please visit the [GitHub repository](https://github.com/stackitcloud/stackit-sdk-python) of the SDK. 7 | 8 | 9 | ## Installation & Usage 10 | ### pip install 11 | 12 | ```sh 13 | pip install stackit-git 14 | ``` 15 | 16 | Then import the package: 17 | ```python 18 | import stackit.git 19 | ``` 20 | 21 | ## Getting Started 22 | 23 | [Examples](https://github.com/stackitcloud/stackit-sdk-python/tree/main/examples) for the usage of the package can be found in the [GitHub repository](https://github.com/stackitcloud/stackit-sdk-python) of the SDK. -------------------------------------------------------------------------------- /services/iaas/README.md: -------------------------------------------------------------------------------- 1 | # stackit.iaas 2 | This API allows you to create and modify IaaS resources. 3 | 4 | For more information, please visit [https://support.stackit.cloud/servicedesk](https://support.stackit.cloud/servicedesk) 5 | 6 | This package is part of the STACKIT Python SDK. For additional information, please visit the [GitHub repository](https://github.com/stackitcloud/stackit-sdk-python) of the SDK. 7 | 8 | 9 | ## Installation & Usage 10 | ### pip install 11 | 12 | ```sh 13 | pip install stackit-iaas 14 | ``` 15 | 16 | Then import the package: 17 | ```python 18 | import stackit.iaas 19 | ``` 20 | 21 | ## Getting Started 22 | 23 | [Examples](https://github.com/stackitcloud/stackit-sdk-python/tree/main/examples) for the usage of the package can be found in the [GitHub repository](https://github.com/stackitcloud/stackit-sdk-python) of the SDK. -------------------------------------------------------------------------------- /services/scf/README.md: -------------------------------------------------------------------------------- 1 | # stackit.scf 2 | API endpoints for managing STACKIT Cloud Foundry 3 | 4 | For more information, please visit [https://www.stackit.de/en/product/cloud-foundry/](https://www.stackit.de/en/product/cloud-foundry/) 5 | 6 | This package is part of the STACKIT Python SDK. For additional information, please visit the [GitHub repository](https://github.com/stackitcloud/stackit-sdk-python) of the SDK. 7 | 8 | 9 | ## Installation & Usage 10 | ### pip install 11 | 12 | ```sh 13 | pip install stackit-scf 14 | ``` 15 | 16 | Then import the package: 17 | ```python 18 | import stackit.scf 19 | ``` 20 | 21 | ## Getting Started 22 | 23 | [Examples](https://github.com/stackitcloud/stackit-sdk-python/tree/main/examples) for the usage of the package can be found in the [GitHub repository](https://github.com/stackitcloud/stackit-sdk-python) of the SDK. -------------------------------------------------------------------------------- /services/authorization/README.md: -------------------------------------------------------------------------------- 1 | # stackit.authorization 2 | The Membership API is used to manage memberships, roles and permissions of STACKIT resources, like projects, folders, organizations and other resources. 3 | 4 | 5 | This package is part of the STACKIT Python SDK. For additional information, please visit the [GitHub repository](https://github.com/stackitcloud/stackit-sdk-python) of the SDK. 6 | 7 | 8 | ## Installation & Usage 9 | ### pip install 10 | 11 | ```sh 12 | pip install stackit-authorization 13 | ``` 14 | 15 | Then import the package: 16 | ```python 17 | import stackit.authorization 18 | ``` 19 | 20 | ## Getting Started 21 | 22 | [Examples](https://github.com/stackitcloud/stackit-sdk-python/tree/main/examples) for the usage of the package can be found in the [GitHub repository](https://github.com/stackitcloud/stackit-sdk-python) of the SDK. -------------------------------------------------------------------------------- /examples/rabbitmq/create_instance.py: -------------------------------------------------------------------------------- 1 | import os 2 | 3 | from stackit.core.configuration import Configuration 4 | from stackit.rabbitmq.api.default_api import DefaultApi 5 | from stackit.rabbitmq.models.create_instance_payload import CreateInstancePayload 6 | 7 | project_id = os.getenv("PROJECT_ID") 8 | 9 | # Create a new API client, that uses default authentication and configuration 10 | config = Configuration() 11 | client = DefaultApi(config) 12 | 13 | # Get all offerings 14 | response = client.list_offerings(project_id) 15 | 16 | # Create instance using the first flvaor 17 | create_instance_payload = CreateInstancePayload( 18 | instance_name="example-instance", 19 | plan_id=response.offerings[0].plans[0].id, 20 | ) 21 | instance = client.create_instance(project_id, create_instance_payload) 22 | print("Created instance with ID: " + instance.instance_id) 23 | -------------------------------------------------------------------------------- /services/modelserving/README.md: -------------------------------------------------------------------------------- 1 | # stackit.modelserving 2 | This API provides endpoints for the model serving api 3 | 4 | For more information, please visit [https://developers.stackit.schwarz](https://developers.stackit.schwarz) 5 | 6 | This package is part of the STACKIT Python SDK. For additional information, please visit the [GitHub repository](https://github.com/stackitcloud/stackit-sdk-python) of the SDK. 7 | 8 | 9 | ## Installation & Usage 10 | ### pip install 11 | 12 | ```sh 13 | pip install stackit-modelserving 14 | ``` 15 | 16 | Then import the package: 17 | ```python 18 | import stackit.modelserving 19 | ``` 20 | 21 | ## Getting Started 22 | 23 | [Examples](https://github.com/stackitcloud/stackit-sdk-python/tree/main/examples) for the usage of the package can be found in the [GitHub repository](https://github.com/stackitcloud/stackit-sdk-python) of the SDK. -------------------------------------------------------------------------------- /services/postgresflex/README.md: -------------------------------------------------------------------------------- 1 | # stackit.postgresflex 2 | This is the documentation for the STACKIT postgres service 3 | 4 | For more information, please visit [https://www.stackit.de/en/contact](https://www.stackit.de/en/contact) 5 | 6 | This package is part of the STACKIT Python SDK. For additional information, please visit the [GitHub repository](https://github.com/stackitcloud/stackit-sdk-python) of the SDK. 7 | 8 | 9 | ## Installation & Usage 10 | ### pip install 11 | 12 | ```sh 13 | pip install stackit-postgresflex 14 | ``` 15 | 16 | Then import the package: 17 | ```python 18 | import stackit.postgresflex 19 | ``` 20 | 21 | ## Getting Started 22 | 23 | [Examples](https://github.com/stackitcloud/stackit-sdk-python/tree/main/examples) for the usage of the package can be found in the [GitHub repository](https://github.com/stackitcloud/stackit-sdk-python) of the SDK. -------------------------------------------------------------------------------- /services/iaasalpha/README.md: -------------------------------------------------------------------------------- 1 | # stackit.iaasalpha 2 | This API allows you to create and modify IaaS resources. 3 | 4 | For more information, please visit [https://support.stackit.cloud/servicedesk](https://support.stackit.cloud/servicedesk) 5 | 6 | This package is part of the STACKIT Python SDK. For additional information, please visit the [GitHub repository](https://github.com/stackitcloud/stackit-sdk-python) of the SDK. 7 | 8 | 9 | ## Installation & Usage 10 | ### pip install 11 | 12 | ```sh 13 | pip install stackit-iaasalpha 14 | ``` 15 | 16 | Then import the package: 17 | ```python 18 | import stackit.iaasalpha 19 | ``` 20 | 21 | ## Getting Started 22 | 23 | [Examples](https://github.com/stackitcloud/stackit-sdk-python/tree/main/examples) for the usage of the package can be found in the [GitHub repository](https://github.com/stackitcloud/stackit-sdk-python) of the SDK. -------------------------------------------------------------------------------- /services/mongodbflex/README.md: -------------------------------------------------------------------------------- 1 | # stackit.mongodbflex 2 | This is the documentation for the STACKIT MongoDB Flex Service API 3 | 4 | For more information, please visit [https://www.stackit.de/en/contact](https://www.stackit.de/en/contact) 5 | 6 | This package is part of the STACKIT Python SDK. For additional information, please visit the [GitHub repository](https://github.com/stackitcloud/stackit-sdk-python) of the SDK. 7 | 8 | 9 | ## Installation & Usage 10 | ### pip install 11 | 12 | ```sh 13 | pip install stackit-mongodbflex 14 | ``` 15 | 16 | Then import the package: 17 | ```python 18 | import stackit.mongodbflex 19 | ``` 20 | 21 | ## Getting Started 22 | 23 | [Examples](https://github.com/stackitcloud/stackit-sdk-python/tree/main/examples) for the usage of the package can be found in the [GitHub repository](https://github.com/stackitcloud/stackit-sdk-python) of the SDK. -------------------------------------------------------------------------------- /services/sqlserverflex/README.md: -------------------------------------------------------------------------------- 1 | # stackit.sqlserverflex 2 | This is the documentation for the STACKIT MSSQL service 3 | 4 | For more information, please visit [https://www.stackit.de/en/contact](https://www.stackit.de/en/contact) 5 | 6 | This package is part of the STACKIT Python SDK. For additional information, please visit the [GitHub repository](https://github.com/stackitcloud/stackit-sdk-python) of the SDK. 7 | 8 | 9 | ## Installation & Usage 10 | ### pip install 11 | 12 | ```sh 13 | pip install stackit-sqlserverflex 14 | ``` 15 | 16 | Then import the package: 17 | ```python 18 | import stackit.sqlserverflex 19 | ``` 20 | 21 | ## Getting Started 22 | 23 | [Examples](https://github.com/stackitcloud/stackit-sdk-python/tree/main/examples) for the usage of the package can be found in the [GitHub repository](https://github.com/stackitcloud/stackit-sdk-python) of the SDK. -------------------------------------------------------------------------------- /examples/mongodbflex/create_user.py: -------------------------------------------------------------------------------- 1 | import os 2 | 3 | from stackit.mongodbflex.api.default_api import DefaultApi 4 | from stackit.mongodbflex.models.create_user_payload import CreateUserPayload 5 | from stackit.core.configuration import Configuration 6 | 7 | 8 | tag = "tag" 9 | storage_class = "premium-perf2-mongodb" 10 | project_id = os.getenv("PROJECT_ID") 11 | 12 | # Create a new API client, that uses default authentication and configuration 13 | config = Configuration() 14 | client = DefaultApi(config) 15 | 16 | # Get all MongoDBFlex instances 17 | response = client.list_instances(project_id, tag) 18 | 19 | # Create user on the first found instance 20 | create_user_payload = CreateUserPayload( 21 | username="example-user", 22 | database="default", 23 | roles=["read"], 24 | ) 25 | print(client.create_user(project_id, response.items[0].id, create_user_payload)) 26 | -------------------------------------------------------------------------------- /.github/workflows/ci.yaml: -------------------------------------------------------------------------------- 1 | name: CI Workflow 2 | 3 | on: [pull_request, workflow_dispatch] 4 | 5 | jobs: 6 | main: 7 | name: CI 8 | strategy: 9 | matrix: 10 | os: [ubuntu-latest, macos-latest] 11 | python-version: ["3.9", "3.10", "3.11", "3.12", "3.13"] 12 | runs-on: ${{ matrix.os }} 13 | steps: 14 | - name: Checkout 15 | uses: actions/checkout@v4 16 | - name: Install Python ${{ matrix.python-version }} 17 | uses: actions/setup-python@v5 18 | with: 19 | python-version: ${{ matrix.python-version }} 20 | - name: Install 21 | run: | 22 | pip install poetry 23 | poetry config virtualenvs.create false 24 | make install-dev 25 | - name: Lint 26 | run: make lint-services 27 | - name: Test 28 | run: make test-services 29 | -------------------------------------------------------------------------------- /.github/workflows/cd.yaml: -------------------------------------------------------------------------------- 1 | name: CD Workflow 2 | 3 | on: 4 | push: 5 | branches: 6 | - main 7 | 8 | jobs: 9 | check-version: 10 | runs-on: ubuntu-latest 11 | permissions: 12 | pull-requests: write 13 | contents: write 14 | steps: 15 | - uses: actions/checkout@v4 16 | with: 17 | fetch-depth: 0 18 | - name: Install Python 19 | uses: actions/setup-python@v5 20 | with: 21 | python-version: "3.9" 22 | - name: Push tag for each updated package 23 | env: 24 | GH_TOKEN: ${{ secrets.RENOVATE_TOKEN }} 25 | PYPI_TOKEN: ${{ secrets.PYPI_TOKEN }} 26 | run: | 27 | git config --global user.name "SDK Releaser Bot" 28 | git config --global user.email "noreply@stackit.de" 29 | 30 | pip install poetry 31 | scripts/cd.sh 32 | -------------------------------------------------------------------------------- /examples/sqlserverflex/create_instances.py: -------------------------------------------------------------------------------- 1 | import os 2 | 3 | from stackit.sqlserverflex.api.default_api import DefaultApi 4 | from stackit.sqlserverflex.models.create_instance_payload import CreateInstancePayload 5 | from stackit.core.configuration import Configuration 6 | 7 | project_id = os.getenv("PROJECT_ID") 8 | storage_class = "premium-perf2-stackit" 9 | 10 | # Create a new API client, that uses default authentication and configuration 11 | config = Configuration() 12 | client = DefaultApi(config) 13 | 14 | # Get possible flavors 15 | flavor_response = client.list_flavors(project_id) 16 | 17 | # Create instance using the first flvaor 18 | create_instance_payload = CreateInstancePayload( 19 | name="my-instance", 20 | flavorId=flavor_response.flavors[0].id, 21 | ) 22 | instance = client.create_instance(project_id, create_instance_payload) 23 | 24 | print(f"Created instance with ID: {instance.id}") 25 | -------------------------------------------------------------------------------- /examples/core/custom_auth.py: -------------------------------------------------------------------------------- 1 | import jwt 2 | from requests import Request 3 | from requests.auth import AuthBase 4 | from stackit.core.configuration import Configuration 5 | 6 | 7 | """ 8 | You can create your own authorization class to implement your own authorization logic. 9 | You need to derive from the class 'AuthBase' to implement your own class. 10 | """ 11 | 12 | 13 | class MyAuth(AuthBase): 14 | __access_token: str 15 | 16 | def __init__(self, key: str): 17 | self.__access_token = jwt.encode({"some": "payload"}, key, algorithm="HS256") 18 | 19 | def __call__(self, request: Request) -> Request: 20 | request.headers["Authorization"] = f"Bearer {self.__access_token}" 21 | return request 22 | 23 | 24 | # Initialize custom auth method 25 | auth_method = MyAuth(key="my_super_secret_key") 26 | # Set it in the configuration 27 | config = Configuration(custom_auth=auth_method) 28 | -------------------------------------------------------------------------------- /services/certificates/README.md: -------------------------------------------------------------------------------- 1 | # stackit.certificates 2 | This API offers the ability to store TLS certificates, which can be used by load balancing servers in STACKIT. They can be between consumer and load balancing server and/or between load balancing server and endpoint server. 3 | 4 | 5 | This package is part of the STACKIT Python SDK. For additional information, please visit the [GitHub repository](https://github.com/stackitcloud/stackit-sdk-python) of the SDK. 6 | 7 | 8 | ## Installation & Usage 9 | ### pip install 10 | 11 | ```sh 12 | pip install stackit-certificates 13 | ``` 14 | 15 | Then import the package: 16 | ```python 17 | import stackit.certificates 18 | ``` 19 | 20 | ## Getting Started 21 | 22 | [Examples](https://github.com/stackitcloud/stackit-sdk-python/tree/main/examples) for the usage of the package can be found in the [GitHub repository](https://github.com/stackitcloud/stackit-sdk-python) of the SDK. -------------------------------------------------------------------------------- /services/mariadb/CHANGELOG.md: -------------------------------------------------------------------------------- 1 | ## v0.3.0 2 | - **Version**: Minimal version is now python 3.9 3 | 4 | ## v0.2.3 5 | - **Internal:** Improve deserializing and error types 6 | 7 | ## v0.2.2 (2025-05-09) 8 | - **Feature:** Update user-agent header 9 | 10 | ## v0.2.1 (2025-01-14) 11 | - **Bugfix**: `configuration.py` region adjustment was missing 12 | 13 | ## v0.2.0 (2025-01-13) 14 | - **Breaking Change:**: `get_host_from_settings` returns an error if a region is specified for a global URL. 15 | 16 | STACKIT will move to a new way of specifying regions, where the region is provided as a function argument instead of being set in the client configuration. Once all services have migrated, the methods to specify the region in the client configuration will be removed. 17 | 18 | ## v0.1.0 (2024-12-04) 19 | - Manage your STACKIT MariaDB resources 20 | - [Usage example](https://github.com/stackitcloud/stackit-sdk-python/tree/main/examples/mariadb) 21 | -------------------------------------------------------------------------------- /services/ske/README.md: -------------------------------------------------------------------------------- 1 | # stackit.ske 2 | The SKE API provides endpoints to create, update, delete clusters within STACKIT portal projects and to trigger further cluster management tasks. 3 | 4 | For more information, please visit [https://support.stackit.cloud/servicedesk](https://support.stackit.cloud/servicedesk) 5 | 6 | This package is part of the STACKIT Python SDK. For additional information, please visit the [GitHub repository](https://github.com/stackitcloud/stackit-sdk-python) of the SDK. 7 | 8 | 9 | ## Installation & Usage 10 | ### pip install 11 | 12 | ```sh 13 | pip install stackit-ske 14 | ``` 15 | 16 | Then import the package: 17 | ```python 18 | import stackit.ske 19 | ``` 20 | 21 | ## Getting Started 22 | 23 | [Examples](https://github.com/stackitcloud/stackit-sdk-python/tree/main/examples) for the usage of the package can be found in the [GitHub repository](https://github.com/stackitcloud/stackit-sdk-python) of the SDK. -------------------------------------------------------------------------------- /services/kms/src/stackit/kms/models/access_scope.py: -------------------------------------------------------------------------------- 1 | # coding: utf-8 2 | 3 | """ 4 | STACKIT Key Management Service API 5 | 6 | This API provides endpoints for managing keys and key rings. 7 | 8 | The version of the OpenAPI document: 1.0.0 9 | Generated by OpenAPI Generator (https://openapi-generator.tech) 10 | 11 | Do not edit the class manually. 12 | """ # noqa: E501 13 | 14 | from __future__ import annotations 15 | 16 | import json 17 | from enum import Enum 18 | 19 | from typing_extensions import Self 20 | 21 | 22 | class AccessScope(str, Enum): 23 | """ 24 | The access scope of the key. 25 | """ 26 | 27 | """ 28 | allowed enum values 29 | """ 30 | PUBLIC = "PUBLIC" 31 | SNA = "SNA" 32 | 33 | @classmethod 34 | def from_json(cls, json_str: str) -> Self: 35 | """Create an instance of AccessScope from a JSON string""" 36 | return cls(json.loads(json_str)) 37 | -------------------------------------------------------------------------------- /examples/logme/create_instance.py: -------------------------------------------------------------------------------- 1 | import os 2 | 3 | from stackit.logme.api.default_api import DefaultApi 4 | from stackit.logme.models.create_instance_payload import CreateInstancePayload 5 | from stackit.logme.models.instance_parameters import InstanceParameters 6 | from stackit.core.configuration import Configuration 7 | 8 | project_id = os.getenv("PROJECT_ID") 9 | 10 | # Create a new API client, that uses default authentication and configuration 11 | config = Configuration() 12 | client = DefaultApi(config) 13 | 14 | # Get the logme offerings for your project 15 | offerings_response = client.list_offerings(project_id) 16 | 17 | # Take the first offering an create a new instance 18 | create_instance_payload = CreateInstancePayload( 19 | instanceName="exampleInstance", 20 | parameters=InstanceParameters(), 21 | planId=offerings_response.offerings[0].plans[0].id, 22 | ) 23 | print(client.create_instance(project_id, create_instance_payload)) 24 | -------------------------------------------------------------------------------- /services/intake/src/stackit/intake/models/catalog_auth_type.py: -------------------------------------------------------------------------------- 1 | # coding: utf-8 2 | 3 | """ 4 | STACKIT Intake API 5 | 6 | This API provides endpoints for managing Intakes. 7 | 8 | The version of the OpenAPI document: 1beta.3.5 9 | Generated by OpenAPI Generator (https://openapi-generator.tech) 10 | 11 | Do not edit the class manually. 12 | """ # noqa: E501 13 | 14 | from __future__ import annotations 15 | 16 | import json 17 | from enum import Enum 18 | 19 | from typing_extensions import Self 20 | 21 | 22 | class CatalogAuthType(str, Enum): 23 | """ 24 | Means of authentication for catalog requests 25 | """ 26 | 27 | """ 28 | allowed enum values 29 | """ 30 | NONE = "none" 31 | DREMIO = "dremio" 32 | 33 | @classmethod 34 | def from_json(cls, json_str: str) -> Self: 35 | """Create an instance of CatalogAuthType from a JSON string""" 36 | return cls(json.loads(json_str)) 37 | -------------------------------------------------------------------------------- /services/alb/README.md: -------------------------------------------------------------------------------- 1 | # stackit.alb 2 | This API offers an interface to provision and manage load balancing servers in your STACKIT project. It also has the possibility of pooling target servers for load balancing purposes. 3 | 4 | For each application load balancer provided, two VMs are deployed in your OpenStack project subject to a fee. 5 | 6 | 7 | This package is part of the STACKIT Python SDK. For additional information, please visit the [GitHub repository](https://github.com/stackitcloud/stackit-sdk-python) of the SDK. 8 | 9 | 10 | ## Installation & Usage 11 | ### pip install 12 | 13 | ```sh 14 | pip install stackit-alb 15 | ``` 16 | 17 | Then import the package: 18 | ```python 19 | import stackit.alb 20 | ``` 21 | 22 | ## Getting Started 23 | 24 | [Examples](https://github.com/stackitcloud/stackit-sdk-python/tree/main/examples) for the usage of the package can be found in the [GitHub repository](https://github.com/stackitcloud/stackit-sdk-python) of the SDK. -------------------------------------------------------------------------------- /services/kms/src/stackit/kms/models/protection.py: -------------------------------------------------------------------------------- 1 | # coding: utf-8 2 | 3 | """ 4 | STACKIT Key Management Service API 5 | 6 | This API provides endpoints for managing keys and key rings. 7 | 8 | The version of the OpenAPI document: 1.0.0 9 | Generated by OpenAPI Generator (https://openapi-generator.tech) 10 | 11 | Do not edit the class manually. 12 | """ # noqa: E501 13 | 14 | from __future__ import annotations 15 | 16 | import json 17 | from enum import Enum 18 | 19 | from typing_extensions import Self 20 | 21 | 22 | class Protection(str, Enum): 23 | """ 24 | The underlying system that is responsible for protecting the key material. 25 | """ 26 | 27 | """ 28 | allowed enum values 29 | """ 30 | SOFTWARE = "software" 31 | 32 | @classmethod 33 | def from_json(cls, json_str: str) -> Self: 34 | """Create an instance of Protection from a JSON string""" 35 | return cls(json.loads(json_str)) 36 | -------------------------------------------------------------------------------- /services/cdn/src/stackit/cdn/models/waf_rule_action.py: -------------------------------------------------------------------------------- 1 | # coding: utf-8 2 | 3 | """ 4 | CDN API 5 | 6 | API used to create and manage your CDN distributions. 7 | 8 | The version of the OpenAPI document: 1.0.0 9 | Generated by OpenAPI Generator (https://openapi-generator.tech) 10 | 11 | Do not edit the class manually. 12 | """ # noqa: E501 13 | 14 | from __future__ import annotations 15 | 16 | import json 17 | from enum import Enum 18 | 19 | from typing_extensions import Self 20 | 21 | 22 | class WAFRuleAction(str, Enum): 23 | """ 24 | The action a WAF rule can take based on a request 25 | """ 26 | 27 | """ 28 | allowed enum values 29 | """ 30 | BLOCKED = "BLOCKED" 31 | LOGGED = "LOGGED" 32 | ALLOWED = "ALLOWED" 33 | 34 | @classmethod 35 | def from_json(cls, json_str: str) -> Self: 36 | """Create an instance of WAFRuleAction from a JSON string""" 37 | return cls(json.loads(json_str)) 38 | -------------------------------------------------------------------------------- /services/iaas/src/stackit/iaas/models/static_area_id.py: -------------------------------------------------------------------------------- 1 | # coding: utf-8 2 | 3 | """ 4 | STACKIT IaaS API 5 | 6 | This API allows you to create and modify IaaS resources. 7 | 8 | The version of the OpenAPI document: 2 9 | Contact: stackit-iaas@mail.schwarz 10 | Generated by OpenAPI Generator (https://openapi-generator.tech) 11 | 12 | Do not edit the class manually. 13 | """ # noqa: E501 14 | 15 | from __future__ import annotations 16 | 17 | import json 18 | from enum import Enum 19 | 20 | from typing_extensions import Self 21 | 22 | 23 | class StaticAreaID(str, Enum): 24 | """ 25 | The identifier (ID) of a static area. 26 | """ 27 | 28 | """ 29 | allowed enum values 30 | """ 31 | PUBLIC = "PUBLIC" 32 | SCHWARZ = "SCHWARZ" 33 | 34 | @classmethod 35 | def from_json(cls, json_str: str) -> Self: 36 | """Create an instance of StaticAreaID from a JSON string""" 37 | return cls(json.loads(json_str)) 38 | -------------------------------------------------------------------------------- /services/stackitmarketplace/src/stackit/stackitmarketplace/models/pricing_option_unit.py: -------------------------------------------------------------------------------- 1 | # coding: utf-8 2 | 3 | """ 4 | STACKIT Marketplace API 5 | 6 | API to manage STACKIT Marketplace. 7 | 8 | The version of the OpenAPI document: 1 9 | Contact: marketplace@stackit.cloud 10 | Generated by OpenAPI Generator (https://openapi-generator.tech) 11 | 12 | Do not edit the class manually. 13 | """ # noqa: E501 14 | 15 | from __future__ import annotations 16 | 17 | import json 18 | from enum import Enum 19 | 20 | from typing_extensions import Self 21 | 22 | 23 | class PricingOptionUnit(str, Enum): 24 | """ 25 | The interval to which the rate applies. 26 | """ 27 | 28 | """ 29 | allowed enum values 30 | """ 31 | MONTH = "month" 32 | 33 | @classmethod 34 | def from_json(cls, json_str: str) -> Self: 35 | """Create an instance of PricingOptionUnit from a JSON string""" 36 | return cls(json.loads(json_str)) 37 | -------------------------------------------------------------------------------- /services/git/src/stackit/git/models/instance_flavor.py: -------------------------------------------------------------------------------- 1 | # coding: utf-8 2 | 3 | """ 4 | STACKIT Git API 5 | 6 | STACKIT Git management API. 7 | 8 | The version of the OpenAPI document: 1beta.0.4 9 | Contact: git@stackit.cloud 10 | Generated by OpenAPI Generator (https://openapi-generator.tech) 11 | 12 | Do not edit the class manually. 13 | """ # noqa: E501 14 | 15 | from __future__ import annotations 16 | 17 | import json 18 | from enum import Enum 19 | 20 | from typing_extensions import Self 21 | 22 | 23 | class InstanceFlavor(str, Enum): 24 | """ 25 | Desired instance flavor. Must be one of the defined enum values. 26 | """ 27 | 28 | """ 29 | allowed enum values 30 | """ 31 | GIT_MINUS_10 = "git-10" 32 | GIT_MINUS_100 = "git-100" 33 | 34 | @classmethod 35 | def from_json(cls, json_str: str) -> Self: 36 | """Create an instance of InstanceFlavor from a JSON string""" 37 | return cls(json.loads(json_str)) 38 | -------------------------------------------------------------------------------- /services/loadbalancer/README.md: -------------------------------------------------------------------------------- 1 | # stackit.loadbalancer 2 | This API offers an interface to provision and manage load balancing servers in your STACKIT project. It also has the possibility of pooling target servers for load balancing purposes. 3 | 4 | For each load balancer provided, two VMs are deployed in your OpenStack project subject to a fee. 5 | 6 | 7 | This package is part of the STACKIT Python SDK. For additional information, please visit the [GitHub repository](https://github.com/stackitcloud/stackit-sdk-python) of the SDK. 8 | 9 | 10 | ## Installation & Usage 11 | ### pip install 12 | 13 | ```sh 14 | pip install stackit-loadbalancer 15 | ``` 16 | 17 | Then import the package: 18 | ```python 19 | import stackit.loadbalancer 20 | ``` 21 | 22 | ## Getting Started 23 | 24 | [Examples](https://github.com/stackitcloud/stackit-sdk-python/tree/main/examples) for the usage of the package can be found in the [GitHub repository](https://github.com/stackitcloud/stackit-sdk-python) of the SDK. -------------------------------------------------------------------------------- /services/logme/README.md: -------------------------------------------------------------------------------- 1 | # stackit.logme 2 | The STACKIT LogMe API provides endpoints to list service offerings, manage service instances and service credentials within STACKIT portal projects. 3 | 4 | For more information, please visit [https://docs.stackit.cloud/stackit/en/support-area-72063304.html](https://docs.stackit.cloud/stackit/en/support-area-72063304.html) 5 | 6 | This package is part of the STACKIT Python SDK. For additional information, please visit the [GitHub repository](https://github.com/stackitcloud/stackit-sdk-python) of the SDK. 7 | 8 | 9 | ## Installation & Usage 10 | ### pip install 11 | 12 | ```sh 13 | pip install stackit-logme 14 | ``` 15 | 16 | Then import the package: 17 | ```python 18 | import stackit.logme 19 | ``` 20 | 21 | ## Getting Started 22 | 23 | [Examples](https://github.com/stackitcloud/stackit-sdk-python/tree/main/examples) for the usage of the package can be found in the [GitHub repository](https://github.com/stackitcloud/stackit-sdk-python) of the SDK. -------------------------------------------------------------------------------- /services/redis/README.md: -------------------------------------------------------------------------------- 1 | # stackit.redis 2 | The STACKIT Redis API provides endpoints to list service offerings, manage service instances and service credentials within STACKIT portal projects. 3 | 4 | For more information, please visit [https://docs.stackit.cloud/stackit/en/support-area-72063304.html](https://docs.stackit.cloud/stackit/en/support-area-72063304.html) 5 | 6 | This package is part of the STACKIT Python SDK. For additional information, please visit the [GitHub repository](https://github.com/stackitcloud/stackit-sdk-python) of the SDK. 7 | 8 | 9 | ## Installation & Usage 10 | ### pip install 11 | 12 | ```sh 13 | pip install stackit-redis 14 | ``` 15 | 16 | Then import the package: 17 | ```python 18 | import stackit.redis 19 | ``` 20 | 21 | ## Getting Started 22 | 23 | [Examples](https://github.com/stackitcloud/stackit-sdk-python/tree/main/examples) for the usage of the package can be found in the [GitHub repository](https://github.com/stackitcloud/stackit-sdk-python) of the SDK. -------------------------------------------------------------------------------- /services/runcommand/CHANGELOG.md: -------------------------------------------------------------------------------- 1 | ## v1.1.0 2 | - **Version**: Minimal version is now python 3.9 3 | 4 | ## v1.0.2 5 | - **Internal:** Improve deserializing and error types 6 | 7 | ## v1.0.1 (2025-05-09) 8 | - **Feature:** Update user-agent header 9 | 10 | ## v1.0.0 (2025-03-18) 11 | - **Breaking Change:** The region is no longer specified within the client configuration. Instead, the region must be passed as a parameter to any region-specific request. 12 | 13 | ## v0.2.0 (2025-01-13) 14 | - **Breaking Change:**: `get_host_from_settings` returns an error if a region is specified for a global URL. 15 | 16 | STACKIT will move to a new way of specifying regions, where the region is provided as a function argument instead of being set in the client configuration. Once all services have migrated, the methods to specify the region in the client configuration will be removed. 17 | 18 | ## v0.1.0 (2024-12-04) 19 | - STACKIT Run Command module can be used to run remote commands and custom scripts on VMs 20 | -------------------------------------------------------------------------------- /services/mariadb/README.md: -------------------------------------------------------------------------------- 1 | # stackit.mariadb 2 | The STACKIT MariaDB API provides endpoints to list service offerings, manage service instances and service credentials within STACKIT portal projects. 3 | 4 | For more information, please visit [https://docs.stackit.cloud/stackit/en/support-area-72063304.html](https://docs.stackit.cloud/stackit/en/support-area-72063304.html) 5 | 6 | This package is part of the STACKIT Python SDK. For additional information, please visit the [GitHub repository](https://github.com/stackitcloud/stackit-sdk-python) of the SDK. 7 | 8 | 9 | ## Installation & Usage 10 | ### pip install 11 | 12 | ```sh 13 | pip install stackit-mariadb 14 | ``` 15 | 16 | Then import the package: 17 | ```python 18 | import stackit.mariadb 19 | ``` 20 | 21 | ## Getting Started 22 | 23 | [Examples](https://github.com/stackitcloud/stackit-sdk-python/tree/main/examples) for the usage of the package can be found in the [GitHub repository](https://github.com/stackitcloud/stackit-sdk-python) of the SDK. -------------------------------------------------------------------------------- /services/secretsmanager/CHANGELOG.md: -------------------------------------------------------------------------------- 1 | ## v0.3.0 2 | - **Version**: Minimal version is now python 3.9 3 | 4 | ## v0.2.3 5 | - **Internal:** Improve deserializing and error types 6 | 7 | ## v0.2.2 (2025-05-09) 8 | - **Feature:** Update user-agent header 9 | 10 | ## v0.2.1 (2025-03-20) 11 | - **Improvement:** Error handling 12 | - **Feature:** Add description to `UpdateUserPayload` 13 | 14 | ## v0.2.0 (2025-01-13) 15 | 16 | - **Breaking Change:**: `get_host_from_settings` returns an error if a region is specified for a global URL. 17 | 18 | STACKIT will move to a new way of specifying regions, where the region is provided as a function argument instead of being set in the client configuration. Once all services have migrated, the methods to specify the region in the client configuration will be removed. 19 | 20 | ## v0.1.0 (2024-12-04) 21 | 22 | - Manage your STACKIT Secrets manager resources 23 | - [Usage example](https://github.com/stackitcloud/stackit-sdk-python/tree/main/examples/secretsmanager) 24 | -------------------------------------------------------------------------------- /services/lbapplication/README.md: -------------------------------------------------------------------------------- 1 | # stackit.lbapplication 2 | This API offers an interface to provision and manage load balancing servers in your STACKIT project. It also has the possibility of pooling target servers for load balancing purposes. 3 | 4 | For each application load balancer provided, two VMs are deployed in your OpenStack project subject to a fee. 5 | 6 | 7 | This package is part of the STACKIT Python SDK. For additional information, please visit the [GitHub repository](https://github.com/stackitcloud/stackit-sdk-python) of the SDK. 8 | 9 | 10 | ## Installation & Usage 11 | ### pip install 12 | 13 | ```sh 14 | pip install stackit-lbapplication 15 | ``` 16 | 17 | Then import the package: 18 | ```python 19 | import stackit.lbapplication 20 | ``` 21 | 22 | ## Getting Started 23 | 24 | [Examples](https://github.com/stackitcloud/stackit-sdk-python/tree/main/examples) for the usage of the package can be found in the [GitHub repository](https://github.com/stackitcloud/stackit-sdk-python) of the SDK. -------------------------------------------------------------------------------- /services/opensearch/CHANGELOG.md: -------------------------------------------------------------------------------- 1 | ## v0.4.0 2 | - **Version**: Minimal version is now python 3.9 3 | 4 | ## v0.3.1 5 | - **Internal:** Improve deserializing and error types 6 | 7 | ## v0.3.0 8 | - **Breaking change:** Attribute `tls_protocols` of `InstanceParameters` model is now of type `List[StrictStr]` (previously `StrictStr`) 9 | 10 | ## v0.2.1 (2025-05-09) 11 | - **Feature:** Update user-agent header 12 | 13 | ## v0.2.0 (2025-01-13) 14 | - **Breaking Change:**: `get_host_from_settings` returns an error if a region is specified for a global URL. 15 | 16 | STACKIT will move to a new way of specifying regions, where the region is provided as a function argument instead of being set in the client configuration. Once all services have migrated, the methods to specify the region in the client configuration will be removed. 17 | 18 | ## v0.1.0 (2024-12-04) 19 | - Manage your STACKIT OpenSearch resources 20 | - [Usage example](https://github.com/stackitcloud/stackit-sdk-python/tree/main/examples/opensearch) 21 | -------------------------------------------------------------------------------- /services/rabbitmq/README.md: -------------------------------------------------------------------------------- 1 | # stackit.rabbitmq 2 | The STACKIT RabbitMQ API provides endpoints to list service offerings, manage service instances and service credentials within STACKIT portal projects. 3 | 4 | For more information, please visit [https://docs.stackit.cloud/stackit/en/support-area-72063304.html](https://docs.stackit.cloud/stackit/en/support-area-72063304.html) 5 | 6 | This package is part of the STACKIT Python SDK. For additional information, please visit the [GitHub repository](https://github.com/stackitcloud/stackit-sdk-python) of the SDK. 7 | 8 | 9 | ## Installation & Usage 10 | ### pip install 11 | 12 | ```sh 13 | pip install stackit-rabbitmq 14 | ``` 15 | 16 | Then import the package: 17 | ```python 18 | import stackit.rabbitmq 19 | ``` 20 | 21 | ## Getting Started 22 | 23 | [Examples](https://github.com/stackitcloud/stackit-sdk-python/tree/main/examples) for the usage of the package can be found in the [GitHub repository](https://github.com/stackitcloud/stackit-sdk-python) of the SDK. -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Feature request 3 | about: Suggest an idea for the STACKIT Python SDK 4 | title: '' 5 | labels: enhancement 6 | assignees: '' 7 | 8 | --- 9 | 10 | ## Problem description 11 | 12 | *Is your feature request related to a problem? If so, please give us a clear and concise description of what the problem is. 13 | Example: I want to use the STACKIT Python SDK to implement [...] but I couldn't find a way to [...]* 14 | 15 | ## Proposed solution 16 | 17 | *A clear and concise description of what you want to happen.* 18 | 19 | 20 | 21 | ```python 22 | # put your Python example here 23 | # ... 24 | ``` 25 | 26 | ## Alternative solutions (optional) 27 | 28 | *A clear and concise description of any alternative solutions or features you've considered. (optional)* 29 | 30 | ## Additional information 31 | 32 | *Feel free to add any additional information here.* 33 | 34 | -------------------------------------------------------------------------------- /services/stackitmarketplace/src/stackit/stackitmarketplace/models/scope.py: -------------------------------------------------------------------------------- 1 | # coding: utf-8 2 | 3 | """ 4 | STACKIT Marketplace API 5 | 6 | API to manage STACKIT Marketplace. 7 | 8 | The version of the OpenAPI document: 1 9 | Contact: marketplace@stackit.cloud 10 | Generated by OpenAPI Generator (https://openapi-generator.tech) 11 | 12 | Do not edit the class manually. 13 | """ # noqa: E501 14 | 15 | from __future__ import annotations 16 | 17 | import json 18 | from enum import Enum 19 | 20 | from typing_extensions import Self 21 | 22 | 23 | class Scope(str, Enum): 24 | """ 25 | The (visibility) scope. 26 | """ 27 | 28 | """ 29 | allowed enum values 30 | """ 31 | PUBLIC = "PUBLIC" 32 | AUTHENTICATED = "AUTHENTICATED" 33 | PRIVATE_PROJECT = "PRIVATE_PROJECT" 34 | 35 | @classmethod 36 | def from_json(cls, json_str: str) -> Self: 37 | """Create an instance of Scope from a JSON string""" 38 | return cls(json.loads(json_str)) 39 | -------------------------------------------------------------------------------- /services/intake/src/stackit/intake/models/user_type.py: -------------------------------------------------------------------------------- 1 | # coding: utf-8 2 | 3 | """ 4 | STACKIT Intake API 5 | 6 | This API provides endpoints for managing Intakes. 7 | 8 | The version of the OpenAPI document: 1beta.3.5 9 | Generated by OpenAPI Generator (https://openapi-generator.tech) 10 | 11 | Do not edit the class manually. 12 | """ # noqa: E501 13 | 14 | from __future__ import annotations 15 | 16 | import json 17 | from enum import Enum 18 | 19 | from typing_extensions import Self 20 | 21 | 22 | class UserType(str, Enum): 23 | """ 24 | Type of user, 'intake' allows writing to the Intake, 'dead-letter' allows reading from the dead-letter queue 25 | """ 26 | 27 | """ 28 | allowed enum values 29 | """ 30 | INTAKE = "intake" 31 | DEAD_MINUS_LETTER = "dead-letter" 32 | 33 | @classmethod 34 | def from_json(cls, json_str: str) -> Self: 35 | """Create an instance of UserType from a JSON string""" 36 | return cls(json.loads(json_str)) 37 | -------------------------------------------------------------------------------- /services/opensearch/README.md: -------------------------------------------------------------------------------- 1 | # stackit.opensearch 2 | The STACKIT Opensearch API provides endpoints to list service offerings, manage service instances and service credentials within STACKIT portal projects. 3 | 4 | For more information, please visit [https://docs.stackit.cloud/stackit/en/support-area-72063304.html](https://docs.stackit.cloud/stackit/en/support-area-72063304.html) 5 | 6 | This package is part of the STACKIT Python SDK. For additional information, please visit the [GitHub repository](https://github.com/stackitcloud/stackit-sdk-python) of the SDK. 7 | 8 | 9 | ## Installation & Usage 10 | ### pip install 11 | 12 | ```sh 13 | pip install stackit-opensearch 14 | ``` 15 | 16 | Then import the package: 17 | ```python 18 | import stackit.opensearch 19 | ``` 20 | 21 | ## Getting Started 22 | 23 | [Examples](https://github.com/stackitcloud/stackit-sdk-python/tree/main/examples) for the usage of the package can be found in the [GitHub repository](https://github.com/stackitcloud/stackit-sdk-python) of the SDK. -------------------------------------------------------------------------------- /services/kms/src/stackit/kms/models/wrapping_purpose.py: -------------------------------------------------------------------------------- 1 | # coding: utf-8 2 | 3 | """ 4 | STACKIT Key Management Service API 5 | 6 | This API provides endpoints for managing keys and key rings. 7 | 8 | The version of the OpenAPI document: 1.0.0 9 | Generated by OpenAPI Generator (https://openapi-generator.tech) 10 | 11 | Do not edit the class manually. 12 | """ # noqa: E501 13 | 14 | from __future__ import annotations 15 | 16 | import json 17 | from enum import Enum 18 | 19 | from typing_extensions import Self 20 | 21 | 22 | class WrappingPurpose(str, Enum): 23 | """ 24 | The wrapping purpose for the wrapping key. 25 | """ 26 | 27 | """ 28 | allowed enum values 29 | """ 30 | WRAP_SYMMETRIC_KEY = "wrap_symmetric_key" 31 | WRAP_ASYMMETRIC_KEY = "wrap_asymmetric_key" 32 | 33 | @classmethod 34 | def from_json(cls, json_str: str) -> Self: 35 | """Create an instance of WrappingPurpose from a JSON string""" 36 | return cls(json.loads(json_str)) 37 | -------------------------------------------------------------------------------- /services/objectstorage/src/stackit/objectstorage/models/project_scope.py: -------------------------------------------------------------------------------- 1 | # coding: utf-8 2 | 3 | """ 4 | STACKIT Object Storage API 5 | 6 | STACKIT API to manage the Object Storage 7 | 8 | The version of the OpenAPI document: 2.0.1 9 | Generated by OpenAPI Generator (https://openapi-generator.tech) 10 | 11 | Do not edit the class manually. 12 | """ # noqa: E501 13 | 14 | from __future__ import annotations 15 | 16 | import json 17 | from enum import Enum 18 | 19 | from typing_extensions import Self 20 | 21 | 22 | class ProjectScope(str, Enum): 23 | """ 24 | The scope of a STACKIT project can be public (default) or can have client specific special requirements. 25 | """ 26 | 27 | """ 28 | allowed enum values 29 | """ 30 | PUBLIC = "PUBLIC" 31 | SCHWARZ = "SCHWARZ" 32 | 33 | @classmethod 34 | def from_json(cls, json_str: str) -> Self: 35 | """Create an instance of ProjectScope from a JSON string""" 36 | return cls(json.loads(json_str)) 37 | -------------------------------------------------------------------------------- /services/stackitmarketplace/src/stackit/stackitmarketplace/models/offer_type.py: -------------------------------------------------------------------------------- 1 | # coding: utf-8 2 | 3 | """ 4 | STACKIT Marketplace API 5 | 6 | API to manage STACKIT Marketplace. 7 | 8 | The version of the OpenAPI document: 1 9 | Contact: marketplace@stackit.cloud 10 | Generated by OpenAPI Generator (https://openapi-generator.tech) 11 | 12 | Do not edit the class manually. 13 | """ # noqa: E501 14 | 15 | from __future__ import annotations 16 | 17 | import json 18 | from enum import Enum 19 | 20 | from typing_extensions import Self 21 | 22 | 23 | class OfferType(str, Enum): 24 | """ 25 | The offer type of a product reflecting the business model. 26 | """ 27 | 28 | """ 29 | allowed enum values 30 | """ 31 | OFFER_LISTING = "OFFER_LISTING" 32 | OFFER_RESELLING = "OFFER_RESELLING" 33 | 34 | @classmethod 35 | def from_json(cls, json_str: str) -> Self: 36 | """Create an instance of OfferType from a JSON string""" 37 | return cls(json.loads(json_str)) 38 | -------------------------------------------------------------------------------- /services/serverbackup/CHANGELOG.md: -------------------------------------------------------------------------------- 1 | ## v1.1.0 2 | - **Version**: Minimal version is now python 3.9 3 | 4 | ## v1.0.2 5 | - **Feature:** Add `force` parameter to `delete_backup` and `delete_volume_backup` methods 6 | - **Internal:** Improve deserializing and error types 7 | 8 | ## v1.0.1 (2025-05-09) 9 | - **Feature:** Update user-agent header 10 | 11 | ## v1.0.0 (2025-03-18) 12 | - **Breaking Change:** The region is no longer specified within the client configuration. Instead, the region must be passed as a parameter to any region-specific request. 13 | 14 | ## v0.2.0 (2025-01-13) 15 | - **Breaking Change:**: `get_host_from_settings` returns an error if a region is specified for a global URL. 16 | 17 | STACKIT will move to a new way of specifying regions, where the region is provided as a function argument instead of being set in the client configuration. Once all services have migrated, the methods to specify the region in the client configuration will be removed. 18 | 19 | ## v0.1.0 (2024-12-04) 20 | - Manage your STACKIT Server Backups 21 | -------------------------------------------------------------------------------- /services/stackitmarketplace/src/stackit/stackitmarketplace/models/product_lifecycle_state.py: -------------------------------------------------------------------------------- 1 | # coding: utf-8 2 | 3 | """ 4 | STACKIT Marketplace API 5 | 6 | API to manage STACKIT Marketplace. 7 | 8 | The version of the OpenAPI document: 1 9 | Contact: marketplace@stackit.cloud 10 | Generated by OpenAPI Generator (https://openapi-generator.tech) 11 | 12 | Do not edit the class manually. 13 | """ # noqa: E501 14 | 15 | from __future__ import annotations 16 | 17 | import json 18 | from enum import Enum 19 | 20 | from typing_extensions import Self 21 | 22 | 23 | class ProductLifecycleState(str, Enum): 24 | """ 25 | The lifecycle state of the product. 26 | """ 27 | 28 | """ 29 | allowed enum values 30 | """ 31 | PRODUCT_LIVE = "PRODUCT_LIVE" 32 | PRODUCT_PREVIEW = "PRODUCT_PREVIEW" 33 | 34 | @classmethod 35 | def from_json(cls, json_str: str) -> Self: 36 | """Create an instance of ProductLifecycleState from a JSON string""" 37 | return cls(json.loads(json_str)) 38 | -------------------------------------------------------------------------------- /services/stackitmarketplace/src/stackit/stackitmarketplace/models/price_type.py: -------------------------------------------------------------------------------- 1 | # coding: utf-8 2 | 3 | """ 4 | STACKIT Marketplace API 5 | 6 | API to manage STACKIT Marketplace. 7 | 8 | The version of the OpenAPI document: 1 9 | Contact: marketplace@stackit.cloud 10 | Generated by OpenAPI Generator (https://openapi-generator.tech) 11 | 12 | Do not edit the class manually. 13 | """ # noqa: E501 14 | 15 | from __future__ import annotations 16 | 17 | import json 18 | from enum import Enum 19 | 20 | from typing_extensions import Self 21 | 22 | 23 | class PriceType(str, Enum): 24 | """ 25 | The product's price type. 26 | """ 27 | 28 | """ 29 | allowed enum values 30 | """ 31 | CONTRACT = "CONTRACT" 32 | FREE = "FREE" 33 | FREE_TRIAL = "FREE_TRIAL" 34 | BYOL = "BYOL" 35 | PAYG = "PAYG" 36 | 37 | @classmethod 38 | def from_json(cls, json_str: str) -> Self: 39 | """Create an instance of PriceType from a JSON string""" 40 | return cls(json.loads(json_str)) 41 | -------------------------------------------------------------------------------- /services/logme/CHANGELOG.md: -------------------------------------------------------------------------------- 1 | ## v0.4.0 2 | - **Version**: Minimal version is now python 3.9 3 | 4 | ## v0.3.2 5 | - **Internal:** Improve deserializing and error types 6 | 7 | ## v0.3.1 (2025-05-09) 8 | - **Feature:** Update user-agent header 9 | 10 | ## v0.3.0 (2025-02-05) 11 | - **Breaking Change:** Remove mistakenly implemented `syslog-use-udp`. Does not exist. 12 | 13 | ## v0.2.1 (2025-01-14) 14 | - **Bugfix**: `configuration.py` region adjustment was missing 15 | 16 | ## v0.2.0 (2025-01-13) 17 | - **Breaking Change:**: `get_host_from_settings` returns an error if a region is specified for a global URL. 18 | 19 | STACKIT will move to a new way of specifying regions, where the region is provided as a function argument instead of being set in the client configuration. Once all services have migrated, the methods to specify the region in the client configuration will be removed. 20 | 21 | ## v0.1.0 (2024-12-04) 22 | - Manage your STACKIT Logme resources 23 | - [Usage example](https://github.com/stackitcloud/stackit-sdk-python/tree/main/examples/logme) 24 | -------------------------------------------------------------------------------- /services/cdn/src/stackit/cdn/models/region.py: -------------------------------------------------------------------------------- 1 | # coding: utf-8 2 | 3 | """ 4 | CDN API 5 | 6 | API used to create and manage your CDN distributions. 7 | 8 | The version of the OpenAPI document: 1.0.0 9 | Generated by OpenAPI Generator (https://openapi-generator.tech) 10 | 11 | Do not edit the class manually. 12 | """ # noqa: E501 13 | 14 | from __future__ import annotations 15 | 16 | import json 17 | from enum import Enum 18 | 19 | from typing_extensions import Self 20 | 21 | 22 | class Region(str, Enum): 23 | """ 24 | The following regions exist: - `EU` - Europe - `US` - United States / North America - `AF` - Africa - `SA` - South America - `ASIA` - Asia and Oceania 25 | """ 26 | 27 | """ 28 | allowed enum values 29 | """ 30 | EU = "EU" 31 | US = "US" 32 | AF = "AF" 33 | SA = "SA" 34 | ASIA = "ASIA" 35 | 36 | @classmethod 37 | def from_json(cls, json_str: str) -> Self: 38 | """Create an instance of Region from a JSON string""" 39 | return cls(json.loads(json_str)) 40 | -------------------------------------------------------------------------------- /services/sqlserverflex/src/stackit/sqlserverflex/models/type.py: -------------------------------------------------------------------------------- 1 | # coding: utf-8 2 | 3 | """ 4 | STACKIT MSSQL Service API 5 | 6 | This is the documentation for the STACKIT MSSQL service 7 | 8 | The version of the OpenAPI document: 2.0.0 9 | Contact: support@stackit.cloud 10 | Generated by OpenAPI Generator (https://openapi-generator.tech) 11 | 12 | Do not edit the class manually. 13 | """ # noqa: E501 14 | 15 | from __future__ import annotations 16 | 17 | import json 18 | from enum import Enum 19 | 20 | from typing_extensions import Self 21 | 22 | 23 | class Type(str, Enum): 24 | """ 25 | Type 26 | """ 27 | 28 | """ 29 | allowed enum values 30 | """ 31 | NOTFOUND = "NotFound" 32 | CREATE = "Create" 33 | READ = "Read" 34 | DELETE = "Delete" 35 | UPDATE = "Update" 36 | VALIDATION = "Validation" 37 | 38 | @classmethod 39 | def from_json(cls, json_str: str) -> Self: 40 | """Create an instance of Type from a JSON string""" 41 | return cls(json.loads(json_str)) 42 | -------------------------------------------------------------------------------- /scripts/cd.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | # Immediate exit on failure 4 | set -e 5 | 6 | # Check all pyproject.toml files that have changed 7 | for file in $(git diff --name-only HEAD~1..HEAD | grep pyproject.toml); do 8 | # Extract the current version and build the expected tag 9 | dirpath=$(dirname $file) 10 | expected_tag=$(scripts/helper.sh $dirpath --path-version) 11 | version=$(scripts/helper.sh $dirpath) 12 | # Check if the tag already exists 13 | if git rev-parse --verify $expected_tag^{tag} &> /dev/null; then 14 | echo "Tag '$expected_tag' already exists." 15 | else 16 | # Tag doesn't exist. Create tag and build/publish to PyPi 17 | echo "Tag '$expected_tag' does not exist. Creating new tag to trigger release." 18 | git tag -a $expected_tag -m "Release $version" 19 | git push origin tag $expected_tag 20 | cd $dirpath 21 | poetry publish --build --username="__token__" --no-interaction --password="$PYPI_TOKEN" 22 | cd $GITHUB_WORKSPACE 23 | fi 24 | done 25 | -------------------------------------------------------------------------------- /services/certificates/CHANGELOG.md: -------------------------------------------------------------------------------- 1 | ## v1.1.0 2 | - **Version**: Minimal version is now python 3.9 3 | 4 | ## v1.0.2 5 | - **Internal:** Improve deserializing and error types 6 | 7 | ## v1.0.1 (2025-05-09) 8 | - **Feature:** Update user-agent header 9 | 10 | ## v1.0.0 (2025-03-18) 11 | - **Breaking Change:** The region is no longer specified within the client configuration. Instead, the region must be passed as a parameter to any region-specific request. 12 | 13 | ## v0.2.1 (2025-01-14) 14 | - **Bugfix**: `configuration.py` region adjustment was missing 15 | 16 | ## v0.2.0 (2025-01-13) 17 | 18 | - **Breaking Change:**: `get_host_from_settings` returns an error if a region is specified for a global URL. 19 | 20 | STACKIT will move to a new way of specifying regions, where the region is provided as a function argument instead of being set in the client configuration. Once all services have migrated, the methods to specify the region in the client configuration will be removed. 21 | 22 | ## v0.1.0 (2024-12-23) 23 | 24 | - Manage your STACKIT Load Balancer certificates 25 | -------------------------------------------------------------------------------- /services/scf/src/stackit/scf/models/space_role_type.py: -------------------------------------------------------------------------------- 1 | # coding: utf-8 2 | 3 | """ 4 | STACKIT Cloud Foundry API 5 | 6 | API endpoints for managing STACKIT Cloud Foundry 7 | 8 | The version of the OpenAPI document: 1.0.0 9 | Contact: support@stackit.cloud 10 | Generated by OpenAPI Generator (https://openapi-generator.tech) 11 | 12 | Do not edit the class manually. 13 | """ # noqa: E501 14 | 15 | from __future__ import annotations 16 | 17 | import json 18 | from enum import Enum 19 | 20 | from typing_extensions import Self 21 | 22 | 23 | class SpaceRoleType(str, Enum): 24 | """ 25 | SpaceRoleType 26 | """ 27 | 28 | """ 29 | allowed enum values 30 | """ 31 | SPACE_AUDITOR = "space_auditor" 32 | SPACE_DEVELOPER = "space_developer" 33 | SPACE_MANAGER = "space_manager" 34 | SPACE_SUPPORTER = "space_supporter" 35 | 36 | @classmethod 37 | def from_json(cls, json_str: str) -> Self: 38 | """Create an instance of SpaceRoleType from a JSON string""" 39 | return cls(json.loads(json_str)) 40 | -------------------------------------------------------------------------------- /examples/iaas/delete_network_area.py: -------------------------------------------------------------------------------- 1 | import os 2 | import time 3 | 4 | from stackit.iaas.api.default_api import DefaultApi 5 | from stackit.core.configuration import Configuration 6 | 7 | organization_id = os.getenv("ORGANIZATION_ID") 8 | network_area_id = os.getenv("NETWORK_AREA_ID") 9 | 10 | # Create a new API client, that uses default authentication and configuration 11 | config = Configuration() 12 | client = DefaultApi(config) 13 | 14 | # Delete all configured network area regions first 15 | list_regions_resp = client.list_network_area_regions(organization_id, network_area_id) 16 | for region_id in list_regions_resp.regions: 17 | client.delete_network_area_region(organization_id, network_area_id, region_id) 18 | 19 | # wait for all network area regions to be deleted 20 | while True: 21 | list_regions_resp = client.list_network_area_regions(organization_id, network_area_id) 22 | if len(list_regions_resp.regions) < 1: 23 | break 24 | time.sleep(3) 25 | 26 | # Delete the network area 27 | client.delete_network_area(organization_id, network_area_id) 28 | -------------------------------------------------------------------------------- /services/cdn/src/stackit/cdn/models/waf_mode.py: -------------------------------------------------------------------------------- 1 | # coding: utf-8 2 | 3 | """ 4 | CDN API 5 | 6 | API used to create and manage your CDN distributions. 7 | 8 | The version of the OpenAPI document: 1.0.0 9 | Generated by OpenAPI Generator (https://openapi-generator.tech) 10 | 11 | Do not edit the class manually. 12 | """ # noqa: E501 13 | 14 | from __future__ import annotations 15 | 16 | import json 17 | from enum import Enum 18 | 19 | from typing_extensions import Self 20 | 21 | 22 | class WafMode(str, Enum): 23 | """ 24 | - `ENABLED`: The WAF actively inspects and blocks malicious requests. - `DISABLED`: The WAF is completely off. No inspection occurs. - `LOG_ONLY`: The WAF inspects requests and logs matches but never blocks. 25 | """ 26 | 27 | """ 28 | allowed enum values 29 | """ 30 | DISABLED = "DISABLED" 31 | ENABLED = "ENABLED" 32 | LOG_ONLY = "LOG_ONLY" 33 | 34 | @classmethod 35 | def from_json(cls, json_str: str) -> Self: 36 | """Create an instance of WafMode from a JSON string""" 37 | return cls(json.loads(json_str)) 38 | -------------------------------------------------------------------------------- /services/cdn/src/stackit/cdn/models/waf_type.py: -------------------------------------------------------------------------------- 1 | # coding: utf-8 2 | 3 | """ 4 | CDN API 5 | 6 | API used to create and manage your CDN distributions. 7 | 8 | The version of the OpenAPI document: 1.0.0 9 | Generated by OpenAPI Generator (https://openapi-generator.tech) 10 | 11 | Do not edit the class manually. 12 | """ # noqa: E501 13 | 14 | from __future__ import annotations 15 | 16 | import json 17 | from enum import Enum 18 | 19 | from typing_extensions import Self 20 | 21 | 22 | class WafType(str, Enum): 23 | """ 24 | Enable or disable the Premium WAF. Do note that enabling the Premium WAF will cause additional fees. Some features are gated behind the Premium WAF, like additional, **premium-only rules** and the ability to create **custom rules** (not yet implemented) 25 | """ 26 | 27 | """ 28 | allowed enum values 29 | """ 30 | FREE = "FREE" 31 | PREMIUM = "PREMIUM" 32 | 33 | @classmethod 34 | def from_json(cls, json_str: str) -> Self: 35 | """Create an instance of WafType from a JSON string""" 36 | return cls(json.loads(json_str)) 37 | -------------------------------------------------------------------------------- /services/scf/src/stackit/scf/models/org_role_type.py: -------------------------------------------------------------------------------- 1 | # coding: utf-8 2 | 3 | """ 4 | STACKIT Cloud Foundry API 5 | 6 | API endpoints for managing STACKIT Cloud Foundry 7 | 8 | The version of the OpenAPI document: 1.0.0 9 | Contact: support@stackit.cloud 10 | Generated by OpenAPI Generator (https://openapi-generator.tech) 11 | 12 | Do not edit the class manually. 13 | """ # noqa: E501 14 | 15 | from __future__ import annotations 16 | 17 | import json 18 | from enum import Enum 19 | 20 | from typing_extensions import Self 21 | 22 | 23 | class OrgRoleType(str, Enum): 24 | """ 25 | OrgRoleType 26 | """ 27 | 28 | """ 29 | allowed enum values 30 | """ 31 | ORGANIZATION_USER = "organization_user" 32 | ORGANIZATION_AUDITOR = "organization_auditor" 33 | ORGANIZATION_MANAGER = "organization_manager" 34 | ORGANIZATION_BILLING_MANAGER = "organization_billing_manager" 35 | 36 | @classmethod 37 | def from_json(cls, json_str: str) -> Self: 38 | """Create an instance of OrgRoleType from a JSON string""" 39 | return cls(json.loads(json_str)) 40 | -------------------------------------------------------------------------------- /services/ske/src/stackit/ske/models/get_provider_options_request_version_state.py: -------------------------------------------------------------------------------- 1 | # coding: utf-8 2 | 3 | """ 4 | STACKIT Kubernetes Engine API 5 | 6 | The SKE API provides endpoints to create, update, delete clusters within STACKIT portal projects and to trigger further cluster management tasks. 7 | 8 | The version of the OpenAPI document: 2.0 9 | Generated by OpenAPI Generator (https://openapi-generator.tech) 10 | 11 | Do not edit the class manually. 12 | """ # noqa: E501 13 | 14 | from __future__ import annotations 15 | 16 | import json 17 | from enum import Enum 18 | 19 | from typing_extensions import Self 20 | 21 | 22 | class GetProviderOptionsRequestVersionState(str, Enum): 23 | """ 24 | GetProviderOptionsRequestVersionState 25 | """ 26 | 27 | """ 28 | allowed enum values 29 | """ 30 | UNSPECIFIED = "UNSPECIFIED" 31 | SUPPORTED = "SUPPORTED" 32 | 33 | @classmethod 34 | def from_json(cls, json_str: str) -> Self: 35 | """Create an instance of GetProviderOptionsRequestVersionState from a JSON string""" 36 | return cls(json.loads(json_str)) 37 | -------------------------------------------------------------------------------- /services/kms/src/stackit/kms/models/purpose.py: -------------------------------------------------------------------------------- 1 | # coding: utf-8 2 | 3 | """ 4 | STACKIT Key Management Service API 5 | 6 | This API provides endpoints for managing keys and key rings. 7 | 8 | The version of the OpenAPI document: 1.0.0 9 | Generated by OpenAPI Generator (https://openapi-generator.tech) 10 | 11 | Do not edit the class manually. 12 | """ # noqa: E501 13 | 14 | from __future__ import annotations 15 | 16 | import json 17 | from enum import Enum 18 | 19 | from typing_extensions import Self 20 | 21 | 22 | class Purpose(str, Enum): 23 | """ 24 | The purpose of the key. 25 | """ 26 | 27 | """ 28 | allowed enum values 29 | """ 30 | SYMMETRIC_ENCRYPT_DECRYPT = "symmetric_encrypt_decrypt" 31 | ASYMMETRIC_ENCRYPT_DECRYPT = "asymmetric_encrypt_decrypt" 32 | MESSAGE_AUTHENTICATION_CODE = "message_authentication_code" 33 | ASYMMETRIC_SIGN_VERIFY = "asymmetric_sign_verify" 34 | 35 | @classmethod 36 | def from_json(cls, json_str: str) -> Self: 37 | """Create an instance of Purpose from a JSON string""" 38 | return cls(json.loads(json_str)) 39 | -------------------------------------------------------------------------------- /scripts/lint-versions.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | # Immediate exit on failure 4 | set -e 5 | 6 | echo ">> Linting SDK module versions..." 7 | 8 | # Check all pyproject.toml files 9 | for file in $(find . -print | sed 's|^./||' | grep -E "(^services/[^/]+/pyproject.toml$|^core/pyproject.toml$)"); do 10 | # Extract the current version 11 | dirpath=$(dirname "$file") 12 | version=$(scripts/helper.sh "$dirpath") 13 | 14 | # skip iaasalpha 15 | case "$dirpath" in 16 | "services/iaasalpha") 17 | continue 18 | ;; 19 | esac 20 | 21 | # special handling for CDN (is in v2 by accident) 22 | if [[ "$dirpath" == "services/cdn" ]]; then 23 | if [[ ! "$version" =~ ^v[0-2]\.[0-9]+\.[0-9]+$ ]]; then 24 | echo ">> $dirpath" 25 | echo "The version '$version' is invalid." 26 | exit 1 27 | fi 28 | continue 29 | fi 30 | 31 | # verify version 32 | if [[ ! "$version" =~ ^v[0-1]\.[0-9]+\.[0-9]+$ ]]; then 33 | echo ">> $dirpath" 34 | echo "The version '$version' is invalid." 35 | exit 1 36 | fi 37 | done 38 | -------------------------------------------------------------------------------- /services/stackitmarketplace/src/stackit/stackitmarketplace/models/delivery_method.py: -------------------------------------------------------------------------------- 1 | # coding: utf-8 2 | 3 | """ 4 | STACKIT Marketplace API 5 | 6 | API to manage STACKIT Marketplace. 7 | 8 | The version of the OpenAPI document: 1 9 | Contact: marketplace@stackit.cloud 10 | Generated by OpenAPI Generator (https://openapi-generator.tech) 11 | 12 | Do not edit the class manually. 13 | """ # noqa: E501 14 | 15 | from __future__ import annotations 16 | 17 | import json 18 | from enum import Enum 19 | 20 | from typing_extensions import Self 21 | 22 | 23 | class DeliveryMethod(str, Enum): 24 | """ 25 | The product delivery method/type. For reference: SAAS - Software as a Service, SAI - STACKIT Application Image 26 | """ 27 | 28 | """ 29 | allowed enum values 30 | """ 31 | SAAS = "SAAS" 32 | KUBERNETES = "KUBERNETES" 33 | SAI = "SAI" 34 | PROFESSIONAL_SERVICE = "PROFESSIONAL_SERVICE" 35 | 36 | @classmethod 37 | def from_json(cls, json_str: str) -> Self: 38 | """Create an instance of DeliveryMethod from a JSON string""" 39 | return cls(json.loads(json_str)) 40 | -------------------------------------------------------------------------------- /services/stackitmarketplace/src/stackit/stackitmarketplace/models/inquiry_form_type.py: -------------------------------------------------------------------------------- 1 | # coding: utf-8 2 | 3 | """ 4 | STACKIT Marketplace API 5 | 6 | API to manage STACKIT Marketplace. 7 | 8 | The version of the OpenAPI document: 1 9 | Contact: marketplace@stackit.cloud 10 | Generated by OpenAPI Generator (https://openapi-generator.tech) 11 | 12 | Do not edit the class manually. 13 | """ # noqa: E501 14 | 15 | from __future__ import annotations 16 | 17 | import json 18 | from enum import Enum 19 | 20 | from typing_extensions import Self 21 | 22 | 23 | class InquiryFormType(str, Enum): 24 | """ 25 | The form type. 26 | """ 27 | 28 | """ 29 | allowed enum values 30 | """ 31 | SUGGEST_PRODUCT = "SUGGEST_PRODUCT" 32 | CONTACT_SALES = "CONTACT_SALES" 33 | BECOME_VENDOR = "BECOME_VENDOR" 34 | REGISTER_TESTING = "REGISTER_TESTING" 35 | REQUEST_PRIVATE_PLAN = "REQUEST_PRIVATE_PLAN" 36 | 37 | @classmethod 38 | def from_json(cls, json_str: str) -> Self: 39 | """Create an instance of InquiryFormType from a JSON string""" 40 | return cls(json.loads(json_str)) 41 | -------------------------------------------------------------------------------- /services/sqlserverflex/CHANGELOG.md: -------------------------------------------------------------------------------- 1 | ## v1.1.0 2 | - **Version**: Minimal version is now python 3.9 3 | 4 | ## v1.0.2 (2025-05-14) 5 | - **Feature:** Add new method `list_metrics` 6 | 7 | ## v1.0.1 (2025-05-09) 8 | - **Feature:** Update user-agent header 9 | 10 | ## v1.0.0 (2025-03-18) 11 | - **Breaking Change:** The region is no longer specified within the client configuration. Instead, the region must be passed as a parameter to any region-specific request. 12 | 13 | ## v0.3.0 (2025-01-21) 14 | - **Breaking change**: Delete endpoint made private. 15 | 16 | ## v0.2.0 (2025-01-13) 17 | - **Breaking Change:**: `get_host_from_settings` returns an error if a region is specified for a global URL. 18 | 19 | STACKIT will move to a new way of specifying regions, where the region is provided as a function argument instead of being set in the client configuration. Once all services have migrated, the methods to specify the region in the client configuration will be removed. 20 | 21 | ## v0.1.0 (2024-12-04) 22 | - Manage your STACKIT SQLServer Flex resources 23 | - [Usage example](https://github.com/stackitcloud/stackit-sdk-python/tree/main/examples/sqlserverflex) 24 | -------------------------------------------------------------------------------- /services/serviceenablement/CHANGELOG.md: -------------------------------------------------------------------------------- 1 | ## v1.1.1 2 | - **Bugfix:** Prevent year 0 timestamp issue 3 | 4 | ## v1.1.0 5 | - **Version**: Minimal version is now python 3.9 6 | 7 | ## v1.0.2 8 | - **Internal:** Improve deserializing and error types 9 | 10 | ## v1.0.1 (2025-05-09) 11 | - **Feature:** Update user-agent header 12 | 13 | ## v1.0.0 (2025-03-18) 14 | - **Breaking Change:** The region is no longer specified within the client configuration. Instead, the region must be passed as a parameter to any region-specific request. 15 | 16 | ## v0.2.0 (2025-01-13) 17 | - **Breaking Change:**: `get_host_from_settings` returns an error if a region is specified for a global URL. 18 | 19 | STACKIT will move to a new way of specifying regions, where the region is provided as a function argument instead of being set in the client configuration. Once all services have migrated, the methods to specify the region in the client configuration will be removed. 20 | 21 | ## v0.1.0 (2024-12-04) 22 | - STACKIT Service Enablement module can be used to enable services 23 | - [Usage example](https://github.com/stackitcloud/stackit-sdk-python/tree/main/examples/serviceenablement) 24 | -------------------------------------------------------------------------------- /services/serviceaccount/CHANGELOG.md: -------------------------------------------------------------------------------- 1 | ## v0.4.2 2 | - **Bugfix:** Prevent year 0 timestamp issue 3 | 4 | ## v0.4.1 5 | - **Improvement:** Improve error handling for `CreateShortLivedAccessToken` 6 | 7 | ## v0.4.0 8 | - **Feature:** Add new `algorithm` field to `CreateServiceAccountKeyPayload` model with enum values `RSA_2048` and `RSA_4096` 9 | 10 | ## v0.3.0 11 | - **Version**: Minimal version is now python 3.9 12 | 13 | ## v0.2.2 14 | - **Internal:** Improve deserializing and error types 15 | 16 | ## v0.2.1 (2025-05-09) 17 | - **Feature:** Update user-agent header 18 | 19 | ## v0.2.0 (2025-01-13) 20 | - **Breaking Change:**: `get_host_from_settings` returns an error if a region is specified for a global URL. 21 | 22 | STACKIT will move to a new way of specifying regions, where the region is provided as a function argument instead of being set in the client configuration. Once all services have migrated, the methods to specify the region in the client configuration will be removed. 23 | 24 | ## v0.1.0 (2024-12-04) 25 | - Manage your STACKIT Service Accounts 26 | - [Usage example](https://github.com/stackitcloud/stackit-sdk-python/tree/main/examples/serviceaccount) 27 | -------------------------------------------------------------------------------- /services/serviceenablement/src/stackit/serviceenablement/models/__init__.py: -------------------------------------------------------------------------------- 1 | # coding: utf-8 2 | 3 | # flake8: noqa 4 | """ 5 | STACKIT Service Enablement API 6 | 7 | STACKIT Service Enablement API 8 | 9 | The version of the OpenAPI document: 2.0 10 | Generated by OpenAPI Generator (https://openapi-generator.tech) 11 | 12 | Do not edit the class manually. 13 | """ # noqa: E501 14 | 15 | 16 | # import models into model package 17 | from stackit.serviceenablement.models.action_error import ActionError 18 | from stackit.serviceenablement.models.check_service import CheckService 19 | from stackit.serviceenablement.models.cloud_service import CloudService 20 | from stackit.serviceenablement.models.dependencies import Dependencies 21 | from stackit.serviceenablement.models.error_response import ErrorResponse 22 | from stackit.serviceenablement.models.list_service_status_regional200_response import ( 23 | ListServiceStatusRegional200Response, 24 | ) 25 | from stackit.serviceenablement.models.parameters import Parameters 26 | from stackit.serviceenablement.models.parameters_general import ParametersGeneral 27 | from stackit.serviceenablement.models.service_status import ServiceStatus 28 | -------------------------------------------------------------------------------- /examples/postgresflex/create_instance.py: -------------------------------------------------------------------------------- 1 | import os 2 | 3 | from stackit.core.configuration import Configuration 4 | from stackit.postgresflex.api.default_api import DefaultApi 5 | from stackit.postgresflex.models.acl import ACL 6 | from stackit.postgresflex.models.create_instance_payload import CreateInstancePayload 7 | from stackit.postgresflex.models.storage import Storage 8 | 9 | project_id = os.getenv("PROJECT_ID") 10 | 11 | # Create a new API client, that uses default authentication and configuration 12 | config = Configuration() 13 | client = DefaultApi(config) 14 | 15 | # Get possible flavors 16 | flavor_response = client.list_flavors(project_id) 17 | 18 | # Create instance using the first flvaor 19 | create_instance_payload = CreateInstancePayload( 20 | name="example-instance", 21 | backupSchedule="0 0 1 * *", 22 | acl=ACL(items=["45.129.40.0/21", "193.148.160.0/19"]), 23 | storage=Storage(var_class="premium-perf2-stackit", size=20), 24 | flavorId=flavor_response.flavors[0].id, 25 | replicas=1, 26 | version="16", 27 | options={"type": "Single"}, 28 | ) 29 | instance = client.create_instance(project_id, create_instance_payload) 30 | print("Created instance with ID: " + instance.id) 31 | -------------------------------------------------------------------------------- /services/cdn/src/stackit/cdn/models/waf_paranoia_level.py: -------------------------------------------------------------------------------- 1 | # coding: utf-8 2 | 3 | """ 4 | CDN API 5 | 6 | API used to create and manage your CDN distributions. 7 | 8 | The version of the OpenAPI document: 1.0.0 9 | Generated by OpenAPI Generator (https://openapi-generator.tech) 10 | 11 | Do not edit the class manually. 12 | """ # noqa: E501 13 | 14 | from __future__ import annotations 15 | 16 | import json 17 | from enum import Enum 18 | 19 | from typing_extensions import Self 20 | 21 | 22 | class WafParanoiaLevel(str, Enum): 23 | """ 24 | The paranoia level defines how aggressively the WAF should action on requests. It ranges from `L1` (least strict, lowest chance of false positives) to `L4` (most strict, highest chance of false positives). A higher paranoia level is more effective at catching attacks but can also block legitimate traffic. 25 | """ 26 | 27 | """ 28 | allowed enum values 29 | """ 30 | L1 = "L1" 31 | L2 = "L2" 32 | L3 = "L3" 33 | L4 = "L4" 34 | 35 | @classmethod 36 | def from_json(cls, json_str: str) -> Self: 37 | """Create an instance of WafParanoiaLevel from a JSON string""" 38 | return cls(json.loads(json_str)) 39 | -------------------------------------------------------------------------------- /services/certificates/src/stackit/certificates/models/__init__.py: -------------------------------------------------------------------------------- 1 | # coding: utf-8 2 | 3 | # flake8: noqa 4 | """ 5 | STACKIT Application Load Balancer Certificates API 6 | 7 | This API offers the ability to store TLS certificates, which can be used by load balancing servers in STACKIT. They can be between consumer and load balancing server and/or between load balancing server and endpoint server. 8 | 9 | The version of the OpenAPI document: 2beta.0.0 10 | Generated by OpenAPI Generator (https://openapi-generator.tech) 11 | 12 | Do not edit the class manually. 13 | """ # noqa: E501 14 | 15 | 16 | # import models into model package 17 | from stackit.certificates.models.create_certificate_payload import ( 18 | CreateCertificatePayload, 19 | ) 20 | from stackit.certificates.models.create_certificate_response import ( 21 | CreateCertificateResponse, 22 | ) 23 | from stackit.certificates.models.get_certificate_response import GetCertificateResponse 24 | from stackit.certificates.models.google_protobuf_any import GoogleProtobufAny 25 | from stackit.certificates.models.list_certificates_response import ( 26 | ListCertificatesResponse, 27 | ) 28 | from stackit.certificates.models.status import Status 29 | -------------------------------------------------------------------------------- /services/intake/src/stackit/intake/models/partitioning_type.py: -------------------------------------------------------------------------------- 1 | # coding: utf-8 2 | 3 | """ 4 | STACKIT Intake API 5 | 6 | This API provides endpoints for managing Intakes. 7 | 8 | The version of the OpenAPI document: 1beta.3.5 9 | Generated by OpenAPI Generator (https://openapi-generator.tech) 10 | 11 | Do not edit the class manually. 12 | """ # noqa: E501 13 | 14 | from __future__ import annotations 15 | 16 | import json 17 | from enum import Enum 18 | 19 | from typing_extensions import Self 20 | 21 | 22 | class PartitioningType(str, Enum): 23 | """ 24 | The target table's partitioning. * `none` disables partitioning, the default. * `intake-time` configures daily partitioning based on the automatically created ingestion time column `__intake_ts`. * `manual` allows arbitrary Iceberg partitioning expression to be set via `partitionBy`. 25 | """ 26 | 27 | """ 28 | allowed enum values 29 | """ 30 | NONE = "none" 31 | INTAKE_MINUS_TIME = "intake-time" 32 | MANUAL = "manual" 33 | 34 | @classmethod 35 | def from_json(cls, json_str: str) -> Self: 36 | """Create an instance of PartitioningType from a JSON string""" 37 | return cls(json.loads(json_str)) 38 | -------------------------------------------------------------------------------- /examples/dns/create_recordset.py: -------------------------------------------------------------------------------- 1 | import os 2 | 3 | from stackit.dns.api.default_api import DefaultApi 4 | from stackit.dns.models.create_record_set_payload import CreateRecordSetPayload 5 | from stackit.dns.models.record_payload import RecordPayload 6 | from stackit.core.configuration import Configuration 7 | 8 | project_id = os.getenv("PROJECT_ID") 9 | 10 | # Create a new API client, that uses default authentication and configuration 11 | config = Configuration() 12 | client = DefaultApi(config) 13 | 14 | zones = client.list_zones(project_id) 15 | 16 | # Get first active zone 17 | zone_id = [zone.id for zone in zones.zones if zone.active][0] 18 | 19 | # Create a DNS recors in the first DNS zone 20 | create_recordset_payload = CreateRecordSetPayload( 21 | name="a", 22 | records=[ 23 | RecordPayload(content="192.168.0.1"), # Will go nowhere 24 | ], 25 | type="A", 26 | ) 27 | create_record_response = client.create_record_set(project_id, zone_id, create_recordset_payload) 28 | 29 | # Get the DNS record for the newly create DNS zone 30 | print( 31 | client.get_record_set( 32 | project_id=project_id, 33 | zone_id=zone_id, 34 | rr_set_id=create_record_response.rrset.id, 35 | ) 36 | ) 37 | -------------------------------------------------------------------------------- /examples/mongodbflex/create_instance.py: -------------------------------------------------------------------------------- 1 | import os 2 | 3 | from stackit.mongodbflex.api.default_api import DefaultApi 4 | from stackit.mongodbflex.models.create_instance_payload import CreateInstancePayload 5 | from stackit.mongodbflex.models.acl import ACL 6 | from stackit.mongodbflex.models.storage import Storage 7 | from stackit.core.configuration import Configuration 8 | 9 | 10 | tag = "tag" 11 | storage_class = "premium-perf2-mongodb" 12 | project_id = os.getenv("PROJECT_ID") 13 | 14 | # Create a new API client, that uses default authentication and configuration 15 | config = Configuration() 16 | client = DefaultApi(config) 17 | 18 | # Get all MongoDBFlex flavors 19 | flavors_response = client.list_flavors(project_id) 20 | 21 | # Create an instance using the first offering 22 | create_instance_payload = CreateInstancePayload( 23 | name="exampleInstance", 24 | backupSchedule="0 0 1 * *", 25 | acl=ACL(items=["45.129.40.0/21", "193.148.160.0/19"]), 26 | tag=tag, 27 | storage=Storage(var_class=storage_class, size=20), 28 | replicas=1, 29 | version="7.0", 30 | flavorId=flavors_response.flavors[0].id, 31 | options={"type": "Single"}, 32 | ) 33 | client.create_instance(project_id, create_instance_payload) 34 | -------------------------------------------------------------------------------- /services/authorization/CHANGELOG.md: -------------------------------------------------------------------------------- 1 | ## v0.5.0 2 | - Add new `etag` attribute to `Role` model class 3 | 4 | ## v0.4.1 5 | - **Bugfix:** Prevent year 0 timestamp issue 6 | 7 | ## v0.4.0 8 | - **Feature**: Add support for assignable subjects 9 | 10 | ## v0.3.0 11 | - **Version**: Minimal version is now python 3.9 12 | 13 | ## v0.2.5 14 | - **Internal:** Improve deserializing and error types 15 | 16 | ## v0.2.4 (2025-05-13) 17 | - **Bugfix:** Updated regex validator 18 | 19 | ## v0.2.3 (2025-05-09) 20 | - **Feature:** Update user-agent header 21 | 22 | ## v0.2.2 (2025-01-21) 23 | - **Bugfix:** Revert back to global URL configuration 24 | 25 | ## v0.2.1 (2025-01-14) 26 | - **Bugfix**: `configuration.py` region adjustment was missing 27 | 28 | ## v0.2.0 (2025-01-13) 29 | - **Breaking Change:**: `get_host_from_settings` returns an error if a region is specified for a global URL. 30 | 31 | STACKIT will move to a new way of specifying regions, where the region is provided as a function argument instead of being set in the client configuration. Once all services have migrated, the methods to specify the region in the client configuration will be removed. 32 | 33 | ## v0.1.0 (2024-12-04) 34 | - Manage authorization of your STACKIT resources 35 | -------------------------------------------------------------------------------- /services/intake/src/stackit/intake/models/partitioning_update_type.py: -------------------------------------------------------------------------------- 1 | # coding: utf-8 2 | 3 | """ 4 | STACKIT Intake API 5 | 6 | This API provides endpoints for managing Intakes. 7 | 8 | The version of the OpenAPI document: 1beta.3.5 9 | Generated by OpenAPI Generator (https://openapi-generator.tech) 10 | 11 | Do not edit the class manually. 12 | """ # noqa: E501 13 | 14 | from __future__ import annotations 15 | 16 | import json 17 | from enum import Enum 18 | 19 | from typing_extensions import Self 20 | 21 | 22 | class PartitioningUpdateType(str, Enum): 23 | """ 24 | The target table's partitioning. * `none` disables partitioning. * `intake-time` configures daily partitioning based on the automatically created ingestion time column `__intake_ts`. * `manual` allows arbitrary Iceberg partitioning expression to be set via `partitionBy`. 25 | """ 26 | 27 | """ 28 | allowed enum values 29 | """ 30 | NONE = "none" 31 | INTAKE_MINUS_TIME = "intake-time" 32 | MANUAL = "manual" 33 | 34 | @classmethod 35 | def from_json(cls, json_str: str) -> Self: 36 | """Create an instance of PartitioningUpdateType from a JSON string""" 37 | return cls(json.loads(json_str)) 38 | -------------------------------------------------------------------------------- /services/git/CHANGELOG.md: -------------------------------------------------------------------------------- 1 | ## v0.7.0 2 | - **Breaking Change:** Replace `patch_operation` by `patch_instance_payload` in `patch_instance` request 3 | - **Feature:** Add enums `InstanceFlavor` 4 | 5 | ## v0.6.0 6 | - **Feature:** Add support for list runner labels operation 7 | - new API client methods `list_runner_labels` 8 | - new model classes `RunnerLabel` and `ListRunnerLabels` 9 | 10 | ## v0.5.1 11 | - **Bugfix:** Prevent year 0 timestamp issue 12 | 13 | ## v0.5.0 14 | - **Feature**: Add support for instance patch operation 15 | 16 | ## v0.4.0 17 | - **Version**: Minimal version is now python 3.9 18 | 19 | ## v0.3.0 20 | - **Feature:** Add validation for field `flavor` in `CreateInstancePayload` model 21 | - **Feature:** Add field `sku` in `Flavor` model 22 | - **Internal:** Improve deserializing and error types 23 | 24 | ## v0.2.0 25 | - **Feature:** Add support for `Flavors` for STACKIT git instance 26 | - **Improvement:** Error handling and documentation improved 27 | 28 | ## v0.1.2 (2025-05-09) 29 | - **Feature:** Update user-agent header 30 | 31 | ## v0.1.1 (2025-05-05) 32 | - **Bugfix**: Spelling corrections in documentation 33 | 34 | ## v0.1.0 (2025-04-23) 35 | 36 | - **New**: STACKIT Git module can be used to manage STACKIT Git 37 | -------------------------------------------------------------------------------- /services/dns/CHANGELOG.md: -------------------------------------------------------------------------------- 1 | ## v0.5.0 2 | - **Version**: Minimal version is now python 3.9 3 | 4 | ## v0.4.1 5 | - **Internal:** Improve deserializing and error types 6 | 7 | ## v0.4.0 8 | - **Feature:** Add new record set types 9 | - **Feature:** Improve documentation for APEX records in `RecordSet` and `CreateRecordSetPayload` models 10 | 11 | ## v0.3.2 (2025-05-09) 12 | - **Feature:** Update user-agent header 13 | 14 | ## v0.3.1 (2025-03-18) 15 | - Adapted to minor API changes 16 | 17 | ## v0.3.0 (2025-02-27) 18 | 19 | - Add support for extensions 20 | 21 | ## v0.2.1 (2025-01-14) 22 | 23 | - **Bugfix**: `configuration.py` region adjustment was missing 24 | 25 | ## v0.2.0 (2025-01-13) 26 | 27 | - **Breaking Change:**: `get_host_from_settings` returns an error if a region is specified for a global URL. 28 | 29 | STACKIT will move to a new way of specifying regions, where the region is provided as a function argument instead of being set in the client configuration. Once all services have migrated, the methods to specify the region in the client configuration will be removed. 30 | 31 | ## v0.1.0 (2024-12-04) 32 | 33 | - Manage your STACKIT DNS resources 34 | - [Usage example](https://github.com/stackitcloud/stackit-sdk-python/tree/main/examples/dns) 35 | -------------------------------------------------------------------------------- /services/alb/CHANGELOG.md: -------------------------------------------------------------------------------- 1 | ## v0.6.1 2 | - **Docs:** Update description of field `WafConfigName` in `Listener` model 3 | 4 | ## v0.6.0 5 | - **Feature:** Add attribute `labels` to `LoadBalancer`, `CreateLoadBalancerPayload` and `UpdateLoadBalancerPayload` model classes 6 | - **Feature:** Add attribute `waf_config_name` to `Listener` model class 7 | 8 | ## v0.5.0 9 | - **Version**: Minimal version is now python 3.9 10 | 11 | ## v0.4.0 12 | - **Feature:** Add new field `load_balancer_security_group` in `LoadBalancer`, `CreateLoadBalancerPayload` and `UpdateLoadBalancerPayload` Models 13 | 14 | ## v0.3.1 15 | - **Internal:** Improve deserializing and error types 16 | 17 | ## v0.3.0 (2025-06-12) 18 | - **Feature:** Add new fields `disable_target_security_group_assignment` and `target_security_group` in `LoadBalancer`, `CreateLoadBalancerPayload` and `UpdateLoadBalancerPayload` Models 19 | 20 | ## v0.2.1 (2025-06-02) 21 | - **Improvement:** Adjusted `GetQuotaResponse` and `RESTResponseType` message 22 | 23 | ## v0.2.0 (2025-05-14) 24 | - **Feature:** New field `Path` for `Rule` 25 | 26 | ## v0.1.2 (2025-05-09) 27 | - **Feature:** Update user-agent header 28 | 29 | ## v0.1.1 (2025-05-05) 30 | - **Feature:** Switch to beta2 API 31 | 32 | ## v0.1.0 (2025-03-18) 33 | - **New**: Client for managing the ALB service 34 | -------------------------------------------------------------------------------- /services/intake/CHANGELOG.md: -------------------------------------------------------------------------------- 1 | ## v0.4.0 2 | - **Feature:** Add new enum class `PartitioningUpdateType` 3 | - **Feature:** Add attributes `partition_by` and `partitioning` to `IntakeCatalogPatch` model class 4 | 5 | ## v0.3.0 6 | - Validate `display_name` attribute regular expression using a field validator in model classes `CreateIntakePayload`, `CreateIntakeRunnerPayload` and `CreateIntakeUserPayload` 7 | - Set minimum length (`12`) for `password` attribute in model class `CreateIntakeUserPayload` 8 | - Set maximum length from `32` to `1024` for `table_name` attribute in `IntakeCatalog` and `IntakeCatalogPatch` model classes 9 | 10 | ## v0.2.1 11 | - **Bugfix:** Prevent year 0 timestamp issue 12 | 13 | ## v0.2.0 14 | - **Feature:** Add response `IntakeRunnerResponse` to `UpdateIntakeRunnerExecute` request 15 | - **Feature:** Add response `IntakeUserResponse` to `UpdateIntakeUserExecute` request 16 | 17 | ## v0.1.2 18 | - **Feature:** Add new field `partitioning` to `IntakeCatalog` model 19 | 20 | ## v0.1.1 21 | - Mark attributes `max_message_size_ki_b` and `max_messages_per_hour` as optional (previously required) in `UpdateIntakeRunnerPayload` model 22 | 23 | ## v0.1.0 24 | - **New**: STACKIT Intake module can be used to manage the STACKIT Intake. Manage your `IntakeRunners`, `Intakes` and `IntakeUsers` 25 | -------------------------------------------------------------------------------- /services/stackitmarketplace/src/stackit/stackitmarketplace/models/subscription_lifecycle_state.py: -------------------------------------------------------------------------------- 1 | # coding: utf-8 2 | 3 | """ 4 | STACKIT Marketplace API 5 | 6 | API to manage STACKIT Marketplace. 7 | 8 | The version of the OpenAPI document: 1 9 | Contact: marketplace@stackit.cloud 10 | Generated by OpenAPI Generator (https://openapi-generator.tech) 11 | 12 | Do not edit the class manually. 13 | """ # noqa: E501 14 | 15 | from __future__ import annotations 16 | 17 | import json 18 | from enum import Enum 19 | 20 | from typing_extensions import Self 21 | 22 | 23 | class SubscriptionLifecycleState(str, Enum): 24 | """ 25 | Lifecycle state of the subscription. 26 | """ 27 | 28 | """ 29 | allowed enum values 30 | """ 31 | SUBSCRIPTION_PENDING = "SUBSCRIPTION_PENDING" 32 | SUBSCRIPTION_ACTIVE = "SUBSCRIPTION_ACTIVE" 33 | SUBSCRIPTION_INACTIVE = "SUBSCRIPTION_INACTIVE" 34 | SUBSCRIPTION_CANCELLING = "SUBSCRIPTION_CANCELLING" 35 | SUBSCRIPTION_CANCELLED = "SUBSCRIPTION_CANCELLED" 36 | SUBSCRIPTION_REJECTED = "SUBSCRIPTION_REJECTED" 37 | 38 | @classmethod 39 | def from_json(cls, json_str: str) -> Self: 40 | """Create an instance of SubscriptionLifecycleState from a JSON string""" 41 | return cls(json.loads(json_str)) 42 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/bug_report.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Bug report 3 | about: Report a bug in the STACKIT Python SDK 4 | title: '' 5 | labels: bug 6 | assignees: '' 7 | 8 | --- 9 | 10 | ## Description 11 | 12 | *Please add a clear and concise description of what the bug is.* 13 | 14 | ## Steps to reproduce 15 | 16 | 17 | ```python 18 | # put your python example here 19 | # ... 20 | ``` 21 | 22 | 23 | 24 | 1. Run ... 25 | 2. ... 26 | 27 | ## Actual behavior 28 | 29 | *Please describe the current behavior of the STACKIT Python SDK. Don't forget to add detailed information like error messages.* 30 | 31 | ## Expected behavior 32 | 33 | *Please describe the behavior which you would expect from the STACKIT Python SDK in that case.* 34 | 35 | ## Environment 36 | - OS: 37 | - Python version (see `python --version`): `3.X.X` 38 | - Version of the Python STACKIT SDK: 39 | 40 | ``` 41 | # please run the following command to get the versions of the STACKIT Python SDK versions and add the output here in this code block 42 | 43 | $ pip list | grep "stackit" 44 | ``` 45 | 46 | **Additional information** 47 | 48 | *Feel free to add any additional information here.* 49 | -------------------------------------------------------------------------------- /services/lbapplication/CHANGELOG.md: -------------------------------------------------------------------------------- 1 | ## v0.4.0 2 | - **Version**: Minimal version is now python 3.9 3 | 4 | ## v0.3.4 5 | - **Internal:** Improve deserializing and error types 6 | 7 | ## v0.3.3 (2025-06-02) 8 | - **Deprecated:** Changed deprecation message of `GetQuotaResponse` and `RESTResponseType` 9 | 10 | ## v0.3.2 (2025-05-14) 11 | - **Deprecated:** `lbapplication` service is deprecated and no longer maintained. Use the `alb` service instead 12 | 13 | ## v0.3.1 (2025-03-18) 14 | - Adapted to minor API changes 15 | 16 | ## v0.3.0 (2025-02-07) 17 | 18 | - **Bugfix**: Set type from interface to int64 of `HealthyThreshold`, `UnhealthyThreshold`, `MaxLoadBalancers`, `Port`, `MaxConnections`, `Code` and `TargetPort` 19 | 20 | ## v0.2.1 (2025-01-14) 21 | 22 | - **Bugfix**: `configuration.py` region adjustment was missing 23 | 24 | ## v0.2.0 (2025-01-13) 25 | 26 | - **Breaking Change:**: `get_host_from_settings` returns an error if a region is specified for a global URL. 27 | 28 | STACKIT will move to a new way of specifying regions, where the region is provided as a function argument instead of being set in the client configuration. Once all services have migrated, the methods to specify the region in the client configuration will be removed. 29 | 30 | ## v0.1.0 (2024-12-23) 31 | 32 | - Manage your STACKIT Load Balancer applications 33 | -------------------------------------------------------------------------------- /services/git/src/stackit/git/models/__init__.py: -------------------------------------------------------------------------------- 1 | # coding: utf-8 2 | 3 | # flake8: noqa 4 | """ 5 | STACKIT Git API 6 | 7 | STACKIT Git management API. 8 | 9 | The version of the OpenAPI document: 1beta.0.4 10 | Contact: git@stackit.cloud 11 | Generated by OpenAPI Generator (https://openapi-generator.tech) 12 | 13 | Do not edit the class manually. 14 | """ # noqa: E501 15 | 16 | 17 | # import models into model package 18 | from stackit.git.models.create_instance_payload import CreateInstancePayload 19 | from stackit.git.models.flavor import Flavor 20 | from stackit.git.models.generic_error_response import GenericErrorResponse 21 | from stackit.git.models.instance import Instance 22 | from stackit.git.models.instance_flavor import InstanceFlavor 23 | from stackit.git.models.internal_server_error_response import ( 24 | InternalServerErrorResponse, 25 | ) 26 | from stackit.git.models.list_flavors import ListFlavors 27 | from stackit.git.models.list_instances import ListInstances 28 | from stackit.git.models.list_runner_labels import ListRunnerLabels 29 | from stackit.git.models.patch_instance_payload import PatchInstancePayload 30 | from stackit.git.models.patch_operation import PatchOperation 31 | from stackit.git.models.runner_label import RunnerLabel 32 | from stackit.git.models.unauthorized_response import UnauthorizedResponse 33 | -------------------------------------------------------------------------------- /examples/iaas/create_network_area.py: -------------------------------------------------------------------------------- 1 | import os 2 | 3 | from stackit.iaas.models import RegionalAreaIPv4 4 | from stackit.iaas.models import CreateNetworkAreaRegionPayload 5 | from stackit.iaas.api.default_api import DefaultApi 6 | from stackit.iaas.models.create_network_area_payload import CreateNetworkAreaPayload 7 | from stackit.iaas.models.network_range import NetworkRange 8 | from stackit.core.configuration import Configuration 9 | 10 | organization_id = os.getenv("ORGANIZATION_ID") 11 | 12 | # Create a new API client, that uses default authentication and configuration 13 | config = Configuration() 14 | client = DefaultApi(config) 15 | 16 | # Create new network area 17 | create_network_area_payload = CreateNetworkAreaPayload( 18 | name="example-network-area", 19 | ) 20 | network_area = client.create_network_area(organization_id, create_network_area_payload) 21 | print(network_area) 22 | 23 | # Create a new network area region 24 | payload = CreateNetworkAreaRegionPayload( 25 | ipv4=RegionalAreaIPv4( 26 | defaultPrefixLen=25, 27 | maxPrefixLen=29, 28 | minPrefixLen=24, 29 | networkRanges=[ 30 | NetworkRange(prefix="192.168.0.0/24"), 31 | ], 32 | transferNetwork="192.160.0.0/24", 33 | ) 34 | ) 35 | print(client.create_network_area_region(organization_id, network_area.id, "eu01", payload)) 36 | -------------------------------------------------------------------------------- /services/serverupdate/CHANGELOG.md: -------------------------------------------------------------------------------- 1 | ## v1.1.0 2 | - **Version**: Minimal version is now python 3.9 3 | 4 | ## v1.0.3 5 | - **Internal:** Improve deserializing and error types 6 | 7 | ## v1.0.2 (2025-05-09) 8 | - **Feature:** Update user-agent header 9 | 10 | ## v1.0.1 (2025-05-05) 11 | - **Minor change:** Use stderr by default. 12 | 13 | ## v1.0.0 (2025-03-18) 14 | - **Breaking Change:** The region is no longer specified within the client configuration. Instead, the region must be passed as a parameter to any region-specific request. 15 | 16 | ## v0.3.0 (2025-02-06) 17 | 18 | - **Breaking Change:**: Remove field `BackupProperties` from `CreateUpdatePayload` model 19 | - **Fix**: Remove field `Id` from `CreateUpdateSchedulePayload` model 20 | 21 | ## v0.2.0 (2025-01-13) 22 | 23 | - **Breaking Change:**: `get_host_from_settings` returns an error if a region is specified for a global URL. 24 | 25 | STACKIT will move to a new way of specifying regions, where the region is provided as a function argument instead of being set in the client configuration. Once all services have migrated, the methods to specify the region in the client configuration will be removed. 26 | 27 | ## v0.1.1 (2024-12-23) 28 | 29 | - **Bugfix:** `Id` field of `Update` model is now of type `int64` (was `string`) 30 | 31 | ## v0.1.0 (2024-12-04) 32 | 33 | - Manage your STACKIT Server Updates 34 | -------------------------------------------------------------------------------- /services/cdn/src/stackit/cdn/models/domain_status.py: -------------------------------------------------------------------------------- 1 | # coding: utf-8 2 | 3 | """ 4 | CDN API 5 | 6 | API used to create and manage your CDN distributions. 7 | 8 | The version of the OpenAPI document: 1.0.0 9 | Generated by OpenAPI Generator (https://openapi-generator.tech) 10 | 11 | Do not edit the class manually. 12 | """ # noqa: E501 13 | 14 | from __future__ import annotations 15 | 16 | import json 17 | from enum import Enum 18 | 19 | from typing_extensions import Self 20 | 21 | 22 | class DomainStatus(str, Enum): 23 | """ 24 | The status of the domain: CREATING indicates that the custom domain is being set up. UPDATING means that requested changes are being applied to the custom domain. ACTIVE means the custom domain is currently configured and active. DELETING means that the domain is in the process of being removed from the distribution. In case the domain has the ERROR state, more information will be available in the errors list. 25 | """ 26 | 27 | """ 28 | allowed enum values 29 | """ 30 | CREATING = "CREATING" 31 | ACTIVE = "ACTIVE" 32 | UPDATING = "UPDATING" 33 | DELETING = "DELETING" 34 | ERROR = "ERROR" 35 | 36 | @classmethod 37 | def from_json(cls, json_str: str) -> Self: 38 | """Create an instance of DomainStatus from a JSON string""" 39 | return cls(json.loads(json_str)) 40 | -------------------------------------------------------------------------------- /services/ske/src/stackit/ske/models/cluster_status_state.py: -------------------------------------------------------------------------------- 1 | # coding: utf-8 2 | 3 | """ 4 | STACKIT Kubernetes Engine API 5 | 6 | The SKE API provides endpoints to create, update, delete clusters within STACKIT portal projects and to trigger further cluster management tasks. 7 | 8 | The version of the OpenAPI document: 2.0 9 | Generated by OpenAPI Generator (https://openapi-generator.tech) 10 | 11 | Do not edit the class manually. 12 | """ # noqa: E501 13 | 14 | from __future__ import annotations 15 | 16 | import json 17 | from enum import Enum 18 | 19 | from typing_extensions import Self 20 | 21 | 22 | class ClusterStatusState(str, Enum): 23 | """ 24 | ClusterStatusState 25 | """ 26 | 27 | """ 28 | allowed enum values 29 | """ 30 | STATE_UNSPECIFIED = "STATE_UNSPECIFIED" 31 | STATE_HEALTHY = "STATE_HEALTHY" 32 | STATE_CREATING = "STATE_CREATING" 33 | STATE_DELETING = "STATE_DELETING" 34 | STATE_UNHEALTHY = "STATE_UNHEALTHY" 35 | STATE_RECONCILING = "STATE_RECONCILING" 36 | STATE_HIBERNATED = "STATE_HIBERNATED" 37 | STATE_HIBERNATING = "STATE_HIBERNATING" 38 | STATE_WAKINGUP = "STATE_WAKINGUP" 39 | 40 | @classmethod 41 | def from_json(cls, json_str: str) -> Self: 42 | """Create an instance of ClusterStatusState from a JSON string""" 43 | return cls(json.loads(json_str)) 44 | -------------------------------------------------------------------------------- /services/kms/src/stackit/kms/models/algorithm.py: -------------------------------------------------------------------------------- 1 | # coding: utf-8 2 | 3 | """ 4 | STACKIT Key Management Service API 5 | 6 | This API provides endpoints for managing keys and key rings. 7 | 8 | The version of the OpenAPI document: 1.0.0 9 | Generated by OpenAPI Generator (https://openapi-generator.tech) 10 | 11 | Do not edit the class manually. 12 | """ # noqa: E501 13 | 14 | from __future__ import annotations 15 | 16 | import json 17 | from enum import Enum 18 | 19 | from typing_extensions import Self 20 | 21 | 22 | class Algorithm(str, Enum): 23 | """ 24 | The algorithm the key material uses. 25 | """ 26 | 27 | """ 28 | allowed enum values 29 | """ 30 | AES_256_GCM = "aes_256_gcm" 31 | RSA_2048_OAEP_SHA256 = "rsa_2048_oaep_sha256" 32 | RSA_3072_OAEP_SHA256 = "rsa_3072_oaep_sha256" 33 | RSA_4096_OAEP_SHA256 = "rsa_4096_oaep_sha256" 34 | RSA_4096_OAEP_SHA512 = "rsa_4096_oaep_sha512" 35 | HMAC_SHA256 = "hmac_sha256" 36 | HMAC_SHA384 = "hmac_sha384" 37 | HMAC_SHA512 = "hmac_sha512" 38 | ECDSA_P256_SHA256 = "ecdsa_p256_sha256" 39 | ECDSA_P384_SHA384 = "ecdsa_p384_sha384" 40 | ECDSA_P521_SHA512 = "ecdsa_p521_sha512" 41 | 42 | @classmethod 43 | def from_json(cls, json_str: str) -> Self: 44 | """Create an instance of Algorithm from a JSON string""" 45 | return cls(json.loads(json_str)) 46 | -------------------------------------------------------------------------------- /services/runcommand/src/stackit/runcommand/models/__init__.py: -------------------------------------------------------------------------------- 1 | # coding: utf-8 2 | 3 | # flake8: noqa 4 | """ 5 | STACKIT Run Commands Service API 6 | 7 | API endpoints for the STACKIT Run Commands Service API 8 | 9 | The version of the OpenAPI document: 2.0 10 | Contact: support@stackit.de 11 | Generated by OpenAPI Generator (https://openapi-generator.tech) 12 | 13 | Do not edit the class manually. 14 | """ # noqa: E501 15 | 16 | 17 | # import models into model package 18 | from stackit.runcommand.models.command_details import CommandDetails 19 | from stackit.runcommand.models.command_template import CommandTemplate 20 | from stackit.runcommand.models.command_template_response import CommandTemplateResponse 21 | from stackit.runcommand.models.command_template_schema import CommandTemplateSchema 22 | from stackit.runcommand.models.commands import Commands 23 | from stackit.runcommand.models.create_command_payload import CreateCommandPayload 24 | from stackit.runcommand.models.error_response import ErrorResponse 25 | from stackit.runcommand.models.get_commands_response import GetCommandsResponse 26 | from stackit.runcommand.models.model_field import ModelField 27 | from stackit.runcommand.models.new_command_response import NewCommandResponse 28 | from stackit.runcommand.models.parameters_schema import ParametersSchema 29 | from stackit.runcommand.models.properties import Properties 30 | -------------------------------------------------------------------------------- /services/postgresflex/CHANGELOG.md: -------------------------------------------------------------------------------- 1 | ## v1.2.0 2 | - **Breaking Change:** The attribute type for `PartialUpdateInstancePayload` and `UpdateInstancePayload` changed from `Storage` to `StorageUpdate`. 3 | - **Deprecation:** `StorageUpdate`: updating the performance class field is not possible. 4 | 5 | ## v1.1.0 6 | - **Version**: Minimal version is now python 3.9 7 | 8 | ## v1.0.2 9 | - **Internal:** Improve deserializing and error types 10 | 11 | ## v1.0.1 (2025-05-09) 12 | - **Feature:** Update user-agent header 13 | 14 | ## v1.0.0 (2025-02-27) 15 | - **Breaking Change:** The region is no longer specified within the client configuration. Instead, the region must be passed as a parameter to any region-specific request. 16 | 17 | ## v0.3.0 (2025-01-21) 18 | - **Breaking change**: Delete endpoint made private. 19 | 20 | ## v0.2.0 (2025-01-13) 21 | - **Breaking Change:**: `get_host_from_settings` returns an error if a region is specified for a global URL. 22 | 23 | STACKIT will move to a new way of specifying regions, where the region is provided as a function argument instead of being set in the client configuration. Once all services have migrated, the methods to specify the region in the client configuration will be removed. 24 | 25 | ## v0.1.0 (2024-12-04) 26 | - Manage your STACKIT PostgreSQL Flex resources 27 | - [Usage example](https://github.com/stackitcloud/stackit-sdk-python/tree/main/examples/postgresflex) 28 | -------------------------------------------------------------------------------- /scripts/helper.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | # Check if the directory is provided as an argument 4 | if [ $# -lt 1 ] || [ $# -gt 2 ]; then 5 | echo "Usage: $0 [option]" 6 | echo "Options:" 7 | echo " -v | --version Print just the version number" 8 | echo " -p | --path-version Print the concatenation of the path and the version" 9 | exit 1 10 | fi 11 | 12 | # Check if the directory exists 13 | if [ ! -d "$1" ]; then 14 | echo "Directory '$1' does not exist" 15 | exit 1 16 | fi 17 | 18 | # Append a trailing slash to the path if it's not already present 19 | if [ "${1: -1}" != "/" ]; then 20 | path="$1/" 21 | else 22 | path="$1" 23 | fi 24 | 25 | # Change into the directory and run the command 26 | cd "$path" || exit 1 27 | version=$(poetry version) 28 | 29 | # Get the version number 30 | version_number="${version##* }" 31 | 32 | # Get the path and version string 33 | path_version="$path$version_number" 34 | 35 | # Handle options 36 | if [ $# -eq 1 ]; then 37 | # Default behavior: print just the version number 38 | echo "$version_number" 39 | elif [ "$2" = "-v" ] || [ "$2" = "--version" ]; then 40 | # Print just the version number 41 | echo "$version_number" 42 | elif [ "$2" = "-p" ] || [ "$2" = "--path-version" ]; then 43 | # Print the concatenation of the path and the version 44 | echo "$path_version" 45 | else 46 | echo "Invalid option: '$2'" 47 | exit 1 48 | fi 49 | -------------------------------------------------------------------------------- /.github/pull_request_template.md: -------------------------------------------------------------------------------- 1 | ## Description 2 | 3 | 7 | 8 | relates to #1234 9 | 10 | ## Checklist 11 | 12 | - [ ] Issue was linked above 13 | - [ ] **No generated code was adjusted manually** (check [comments in file header](https://github.com/stackitcloud/stackit-sdk-python/blob/main/services/dns/src/stackit/dns/api_client.py#L10-L12)) 14 | - [ ] Changelogs and versioning 15 | - [ ] Changelog in root directory was adjusted (see [here](https://github.com/stackitcloud/stackit-sdk-python/blob/608176ab8cdfa60a3cfb09da49de0b1aba5fea84/CHANGELOG.md)) 16 | - [ ] Changelog of the service(s) was adjusted (see e.g. [here](https://github.com/stackitcloud/stackit-sdk-python/blob/608176ab8cdfa60a3cfb09da49de0b1aba5fea84/services/dns/CHANGELOG.md)) 17 | - [ ] `pyproject.toml` of the service(s) was adjusted (see e.g. [here](https://github.com/stackitcloud/stackit-sdk-python/blob/608176ab8cdfa60a3cfb09da49de0b1aba5fea84/services/dns/pyproject.toml)) 18 | - [ ] Examples were added / adjusted (see `examples/` directory) 19 | - [ ] Unit tests got implemented or updated 20 | - [x] Unit tests are passing: `make test` (will be checked by CI) 21 | - [x] No linter issues: `make lint` (will be checked by CI) 22 | -------------------------------------------------------------------------------- /.github/workflows/stale.yaml: -------------------------------------------------------------------------------- 1 | name: "Stale" 2 | on: 3 | schedule: 4 | # every night at 01:30 5 | - cron: "30 1 * * *" 6 | # run this workflow if the workflow definition gets changed within a PR 7 | pull_request: 8 | branches: ["main"] 9 | paths: [".github/workflows/stale.yaml"] 10 | 11 | env: 12 | DAYS_BEFORE_PR_STALE: 7 13 | DAYS_BEFORE_PR_CLOSE: 7 14 | 15 | permissions: 16 | issues: write 17 | pull-requests: write 18 | 19 | jobs: 20 | stale: 21 | name: "Stale" 22 | runs-on: ubuntu-latest 23 | timeout-minutes: 10 24 | steps: 25 | - name: "Mark old PRs as stale" 26 | uses: actions/stale@v9 27 | with: 28 | repo-token: ${{ secrets.GITHUB_TOKEN }} 29 | stale-pr-message: "This PR was marked as stale after ${{ env.DAYS_BEFORE_PR_STALE }} days of inactivity and will be closed after another ${{ env.DAYS_BEFORE_PR_CLOSE }} days of further inactivity. If this PR should be kept open, just add a comment, remove the stale label or push new commits to it." 30 | close-pr-message: "This PR was closed automatically because it has been stalled for ${{ env.DAYS_BEFORE_PR_CLOSE }} days with no activity. Feel free to re-open it at any time." 31 | days-before-pr-stale: ${{ env.DAYS_BEFORE_PR_STALE }} 32 | days-before-pr-close: ${{ env.DAYS_BEFORE_PR_CLOSE }} 33 | # never mark issues as stale or close them 34 | days-before-issue-stale: -1 35 | days-before-issue-close: -1 36 | -------------------------------------------------------------------------------- /services/auditlog/README.md: -------------------------------------------------------------------------------- 1 | # stackit.auditlog 2 | API Endpoints to retrieve recorded actions and resulting changes in the system. 3 | 4 | ### Documentation 5 | The user documentation with explanations how to use the api can be found 6 | [here](https://docs.stackit.cloud/stackit/en/retrieve-audit-log-per-api-request-134415907.html). 7 | 8 | ### Audit Logging 9 | Changes on organizations, folders and projects and respective cloud resources are logged and collected in the audit 10 | log. 11 | 12 | ### API Constraints 13 | The audit log API allows to download messages from the last 90 days. The maximum duration that can be queried at 14 | once is 24 hours. Requests are rate limited - the current maximum is 60 requests per minute. 15 | 16 | For more information, please visit [https://support.stackit.cloud/servicedesk](https://support.stackit.cloud/servicedesk) 17 | 18 | This package is part of the STACKIT Python SDK. For additional information, please visit the [GitHub repository](https://github.com/stackitcloud/stackit-sdk-python) of the SDK. 19 | 20 | 21 | ## Installation & Usage 22 | ### pip install 23 | 24 | ```sh 25 | pip install stackit-auditlog 26 | ``` 27 | 28 | Then import the package: 29 | ```python 30 | import stackit.auditlog 31 | ``` 32 | 33 | ## Getting Started 34 | 35 | [Examples](https://github.com/stackitcloud/stackit-sdk-python/tree/main/examples) for the usage of the package can be found in the [GitHub repository](https://github.com/stackitcloud/stackit-sdk-python) of the SDK. -------------------------------------------------------------------------------- /services/mongodbflex/CHANGELOG.md: -------------------------------------------------------------------------------- 1 | ## v1.2.1 2 | - **Improvement:** Improve documentation for user roles field with descriptions of available values and behavior 3 | 4 | ## v1.2.0 5 | - **Version**: Minimal version is now python 3.9 6 | 7 | ## v1.1.0 8 | - **Breaking Change:** Add required `region` parameter to all API methods. 9 | - **Feature:** Add new methods `clone_instance()` and `restore_instance()`. 10 | - **Feature:** Add new models `InstanceFlavor` and `InstanceResponse`. 11 | 12 | ## v1.0.1 (2025-05-09) 13 | - **Feature:** Update user-agent header 14 | 15 | ## v1.0.0 (2025-05-05) 16 | - **Breaking Change:** Introduce typed enum constants for status attributes 17 | 18 | ## v0.3.0 (2025-01-21) 19 | 20 | - **Breaking change**: Delete endpoint made private. 21 | 22 | ## v0.2.1 (2025-01-14) 23 | 24 | - **Bugfix**: `configuration.py` region adjustment was missing 25 | 26 | ## v0.2.0 (2025-01-13) 27 | 28 | - **Breaking Change:**: `get_host_from_settings` returns an error if a region is specified for a global URL. 29 | 30 | STACKIT will move to a new way of specifying regions, where the region is provided as a function argument instead of being set in the client configuration. Once all services have migrated, the methods to specify the region in the client configuration will be removed. 31 | 32 | ## v0.1.0 (2024-12-04) 33 | 34 | - Manage your STACKIT MongoDB Flex resources 35 | - [Usage example](https://github.com/stackitcloud/stackit-sdk-python/tree/main/examples/mongodbflex) 36 | -------------------------------------------------------------------------------- /services/kms/src/stackit/kms/models/wrapping_algorithm.py: -------------------------------------------------------------------------------- 1 | # coding: utf-8 2 | 3 | """ 4 | STACKIT Key Management Service API 5 | 6 | This API provides endpoints for managing keys and key rings. 7 | 8 | The version of the OpenAPI document: 1.0.0 9 | Generated by OpenAPI Generator (https://openapi-generator.tech) 10 | 11 | Do not edit the class manually. 12 | """ # noqa: E501 13 | 14 | from __future__ import annotations 15 | 16 | import json 17 | from enum import Enum 18 | 19 | from typing_extensions import Self 20 | 21 | 22 | class WrappingAlgorithm(str, Enum): 23 | """ 24 | The wrapping algorithm used to wrap the key to import. 25 | """ 26 | 27 | """ 28 | allowed enum values 29 | """ 30 | RSA_2048_OAEP_SHA256 = "rsa_2048_oaep_sha256" 31 | RSA_3072_OAEP_SHA256 = "rsa_3072_oaep_sha256" 32 | RSA_4096_OAEP_SHA256 = "rsa_4096_oaep_sha256" 33 | RSA_4096_OAEP_SHA512 = "rsa_4096_oaep_sha512" 34 | RSA_2048_OAEP_SHA256_AES_256_KEY_WRAP = "rsa_2048_oaep_sha256_aes_256_key_wrap" 35 | RSA_3072_OAEP_SHA256_AES_256_KEY_WRAP = "rsa_3072_oaep_sha256_aes_256_key_wrap" 36 | RSA_4096_OAEP_SHA256_AES_256_KEY_WRAP = "rsa_4096_oaep_sha256_aes_256_key_wrap" 37 | RSA_4096_OAEP_SHA512_AES_256_KEY_WRAP = "rsa_4096_oaep_sha512_aes_256_key_wrap" 38 | 39 | @classmethod 40 | def from_json(cls, json_str: str) -> Self: 41 | """Create an instance of WrappingAlgorithm from a JSON string""" 42 | return cls(json.loads(json_str)) 43 | -------------------------------------------------------------------------------- /services/objectstorage/CHANGELOG.md: -------------------------------------------------------------------------------- 1 | ## v1.2.1 2 | - **Bugfix:** Prevent year 0 timestamp issue 3 | 4 | ## v1.2.0 5 | - **Breaking change:** Set `expires` field in `CreateAccessKeyResponse` model to optional 6 | 7 | ## v1.1.0 8 | - **Version**: Minimal version is now python 3.9 9 | 10 | ## v1.0.4 11 | - **Internal:** Improve deserializing and error types 12 | 13 | ## v1.0.3 (2025-05-09) 14 | - **Feature:** Update user-agent header 15 | 16 | ## v1.0.2 (2025-03-18) 17 | - Adapted to minor API changes 18 | 19 | ## v1.0.1 (2025-02-26) 20 | 21 | - New value `eu02` in region enum 22 | 23 | ## v1.0.0 (2025-02-06) 24 | 25 | - **Breaking Change:** The region is no longer specified within the client configuration. Instead, the region must be passed as a parameter to any region-specific request. 26 | 27 | ## v0.2.1 (2025-01-14) 28 | 29 | - **Bugfix**: `configuration.py` region adjustment was missing 30 | 31 | ## v0.2.0 (2025-01-13) 32 | 33 | - **Breaking Change:**: `get_host_from_settings` returns an error if a region is specified for a global URL. 34 | 35 | STACKIT will move to a new way of specifying regions, where the region is provided as a function argument instead of being set in the client configuration. Once all services have migrated, the methods to specify the region in the client configuration will be removed. 36 | 37 | ## v0.1.0 (2024-12-04) 38 | 39 | - Manage your STACKIT Object Storage resources 40 | - [Usage example](https://github.com/stackitcloud/stackit-sdk-python/tree/main/examples/objectstorage) 41 | -------------------------------------------------------------------------------- /core/tests/core/test_config.py: -------------------------------------------------------------------------------- 1 | import pytest 2 | 3 | from stackit.core.configuration import Configuration 4 | 5 | 6 | SERVICE_ACCOUNT_EMAIL = "test@example.org" 7 | SERVICE_ACCOUNT_TOKEN = "token" 8 | SERVICE_ACCOUNT_KEY_PATH = "/path/to/account/key" 9 | PRIVATE_KEY_PATH = "/path/to/private/key" 10 | TOKEN_BASEURL = "http://localhost:8000" 11 | CREDENTIALS_PATH = "/path/to/credentials" 12 | REGION = "test-region" 13 | 14 | 15 | @pytest.fixture() 16 | def config_envs(monkeypatch): 17 | monkeypatch.setenv("STACKIT_SERVICE_ACCOUNT_EMAIL", SERVICE_ACCOUNT_EMAIL) 18 | monkeypatch.setenv("STACKIT_SERVICE_ACCOUNT_TOKEN", SERVICE_ACCOUNT_TOKEN) 19 | monkeypatch.setenv("STACKIT_SERVICE_ACCOUNT_KEY_PATH", SERVICE_ACCOUNT_KEY_PATH) 20 | monkeypatch.setenv("STACKIT_PRIVATE_KEY_PATH", PRIVATE_KEY_PATH) 21 | monkeypatch.setenv("STACKIT_TOKEN_BASEURL", TOKEN_BASEURL) 22 | monkeypatch.setenv("STACKIT_CREDENTIALS_PATH", CREDENTIALS_PATH) 23 | monkeypatch.setenv("STACKIT_REGION", REGION) 24 | 25 | 26 | class TestConfig: 27 | def test_check_if_environment_is_set(self, config_envs): 28 | config = Configuration() 29 | assert config.service_account_mail == SERVICE_ACCOUNT_EMAIL 30 | assert config.service_account_token == SERVICE_ACCOUNT_TOKEN 31 | assert config.service_account_key_path == SERVICE_ACCOUNT_KEY_PATH 32 | assert config.private_key_path == PRIVATE_KEY_PATH 33 | assert config.region == REGION 34 | 35 | def test_check_valid_server_index(self): 36 | config = Configuration() 37 | assert config.server_index == 0 38 | -------------------------------------------------------------------------------- /examples/ske/create_cluster.py: -------------------------------------------------------------------------------- 1 | import os 2 | 3 | from stackit.core.configuration import Configuration 4 | from stackit.ske.api.default_api import DefaultApi 5 | from stackit.ske.models.create_or_update_cluster_payload import ( 6 | CreateOrUpdateClusterPayload, 7 | ) 8 | from stackit.ske.models.image import Image 9 | from stackit.ske.models.kubernetes import Kubernetes 10 | from stackit.ske.models.machine import Machine 11 | from stackit.ske.models.nodepool import Nodepool 12 | from stackit.ske.models.volume import Volume 13 | 14 | project_id = os.getenv("PROJECT_ID") 15 | 16 | # Create a new API client, that uses default authentication and configuration 17 | config = Configuration() 18 | client = DefaultApi(config) 19 | 20 | # Create a new cluster 21 | cluster_name = "my-cl" 22 | create_cluster_payload = CreateOrUpdateClusterPayload( 23 | kubernetes=Kubernetes(version="1.30.6"), 24 | nodepools=[ 25 | Nodepool( 26 | availability_zones=["eu01-3"], 27 | machine=Machine( 28 | image=Image( 29 | name="ubuntu", 30 | version="2204.20240912.0", 31 | ), 32 | type="b1.2", 33 | ), 34 | maximum=3, 35 | minimum=2, 36 | name="my-nodepool", 37 | volume=Volume( 38 | size=20, 39 | type="storage_premium_perf0", 40 | ), 41 | ) 42 | ], 43 | ) 44 | cluster = client.create_or_update_cluster(project_id, cluster_name, create_cluster_payload) 45 | print("Created cluster with name: " + cluster.name) 46 | -------------------------------------------------------------------------------- /services/secretsmanager/src/stackit/secretsmanager/models/__init__.py: -------------------------------------------------------------------------------- 1 | # coding: utf-8 2 | 3 | # flake8: noqa 4 | """ 5 | STACKIT Secrets Manager API 6 | 7 | This API provides endpoints for managing the Secrets-Manager. 8 | 9 | The version of the OpenAPI document: 1.4.1 10 | Generated by OpenAPI Generator (https://openapi-generator.tech) 11 | 12 | Do not edit the class manually. 13 | """ # noqa: E501 14 | 15 | 16 | # import models into model package 17 | from stackit.secretsmanager.models.acl import ACL 18 | from stackit.secretsmanager.models.bad_request import BadRequest 19 | from stackit.secretsmanager.models.conflict import Conflict 20 | from stackit.secretsmanager.models.create_acl_payload import CreateACLPayload 21 | from stackit.secretsmanager.models.create_instance_payload import CreateInstancePayload 22 | from stackit.secretsmanager.models.create_user_payload import CreateUserPayload 23 | from stackit.secretsmanager.models.instance import Instance 24 | from stackit.secretsmanager.models.list_acls_response import ListACLsResponse 25 | from stackit.secretsmanager.models.list_instances_response import ListInstancesResponse 26 | from stackit.secretsmanager.models.list_users_response import ListUsersResponse 27 | from stackit.secretsmanager.models.not_found import NotFound 28 | from stackit.secretsmanager.models.update_acl_payload import UpdateACLPayload 29 | from stackit.secretsmanager.models.update_acls_payload import UpdateACLsPayload 30 | from stackit.secretsmanager.models.update_instance_payload import UpdateInstancePayload 31 | from stackit.secretsmanager.models.update_user_payload import UpdateUserPayload 32 | from stackit.secretsmanager.models.user import User 33 | -------------------------------------------------------------------------------- /services/loadbalancer/CHANGELOG.md: -------------------------------------------------------------------------------- 1 | ## v0.7.0 2 | - **Feature**: Add new attribute `labels` to `LoadBalancer`, `CreateLoadBalancerPayload`, `UpdateLoadBalancerPayload` model classes 3 | 4 | ## v0.6.0 5 | - **Version**: Minimal version is now python 3.9 6 | 7 | ## v0.5.0 8 | - **Feature:** Add new field `load_balancer_security_group` in `LoadBalancer`, `CreateLoadBalancerPayload` and `UpdateLoadBalancerPayload` Models 9 | 10 | ## v0.4.1 11 | - **Internal:** Improve deserializing and error types 12 | 13 | ## v0.4.0 (2025-06-12) 14 | - **Feature:** Add new field `disable_target_security_group_assignment` in `LoadBalancer`, `CreateLoadBalancerPayload` and `UpdateLoadBalancerPayload` Models 15 | 16 | ## v0.3.0 (2025-06-10) 17 | - **Feature:** Add new field `target_security_group` in `LoadBalancer` Model 18 | 19 | ## v0.2.4 (2025-06-02) 20 | - **Improvement:** Adjusted `GetQuotaResponse` and `RESTResponseType` message 21 | 22 | ## v0.2.3 (2025-05-09) 23 | - **Feature:** Update user-agent header 24 | 25 | ## v0.2.2 (2025-03-18) 26 | - Adapted to minor API changes 27 | 28 | ## v0.2.1 (2025-01-14) 29 | 30 | - **Bugfix**: `configuration.py` region adjustment was missing 31 | 32 | ## v0.2.0 (2025-01-13) 33 | 34 | - **Breaking Change:**: `get_host_from_settings` returns an error if a region is specified for a global URL. 35 | 36 | STACKIT will move to a new way of specifying regions, where the region is provided as a function argument instead of being set in the client configuration. Once all services have migrated, the methods to specify the region in the client configuration will be removed. 37 | 38 | ## v0.1.0 (2024-12-04) 39 | 40 | - Manage your STACKIT Load Balancer resources 41 | - [Usage example](https://github.com/stackitcloud/stackit-sdk-python/tree/main/examples/loadbalancer) 42 | --------------------------------------------------------------------------------