%global _empty_manifest_terminate_build 0 Name: python-3scale-api Version: 0.29.0 Release: 1 Summary: 3scale API python client License: Apache Software License URL: https://github.com/pestanko/3scale-api-python Source0: https://mirrors.nju.edu.cn/pypi/web/packages/eb/2c/affdc75f7a3a194e5c8fb1e88d55756f62d874564688d990d9d207b20de4/3scale-api-0.29.0.tar.gz BuildArch: noarch Requires: python3-requests Requires: python3-pytest Requires: python3-coverage Requires: python3-mock Requires: python3-dotenv Requires: python3-sphinx %description # 3scale REST API client in Python 3Scale REST API client in a wrapper over the 3scale API. [![lint & smoke](https://github.com/3scale-qe/3scale-api-python/actions/workflows/lint-and-smoke.yml/badge.svg)](https://github.com/3scale-qe/3scale-api-python/actions) ## Installing Install and update using pip: ```bash pip install 3scale-api ``` Or as a dependency using the pipenv ```bash pipenv install 3scale-api ``` ## Usage Client supports basic CRUD operations and it using the official 3scale API. The API can be found at `/p/admin/api_docs` Basic usage of the client: ```python from threescale_api import ThreeScaleClient, resources from typing import List client = ThreeScaleClient(url="myaccount.3scale.net", token="secret_token", ssl_verify=True) # Get list of APIs/Services or any other resource services: List[resources.Service] = client.services.list() # Get service by it's name test_service: resources.Service = client.services["test_service"] # or use: client.services.read_by_name(system_name) # Get service by it's id test_service: resources.Service = client.services[12345] # or use client.services.read(id) # To get raw JSON response - you can use the fetch method - it takes the service id raw_json: dict = client.services.fetch(12345) # To create a new service (or any other resource), parameters are the same as you would provide by the documentation new_service: resources.Service = client.services.create(system_name='my_testing_service', name="My Testing service") # In order to update service you can either client.services[123456].update(param="new_value") # or service: resources.Service = client.services[123456] service['param'] = 'new_value' service.update() # To get a proxy config you can use proxy: resources.Proxy = client.services['test_service'].proxy.read() # To update the proxy you can either proxy: resources.Proxy = client.services['test_service'].proxy.update(parameter_to_update='update') # or proxy_instance = client.services['test_service'].proxy.read() proxy_instance['param'] = 'new_value' proxy_instance.update() # On the service you can access the: service: resources.Service = client.services[123456] service.proxy # The PROXY client service.mapping_rules # mapping rules client service.metrics # metrics service.app_plans # application plans # The proxy supports: proxy = service.proxy.read() proxy.promote(version=1, from_env="sandbox", to_env="production") # The promote operation proxy.mapping_rules # The mapping rules proxy.configs # proxy configurations client proxy.policies # Policies defined for the API ``` ## Run the Tests To run the tests you need to have installed development dependencies: ```bash pipenv install --dev ``` and then run the `pytest`: ```bash pipenv run pytest -v ``` ### Integration tests configuration To run the integration tests you need to set these env variables: ``` THREESCALE_PROVIDER_URL='https://example-admin.3scale.net' THREESCALE_PROVIDER_TOKEN='' # OPTIONAL: THREESCALE_MASTER_URL='https://master.3scale.net' THREESCALE_MASTER_TOKEN='' ``` %package -n python3-3scale-api Summary: 3scale API python client Provides: python-3scale-api BuildRequires: python3-devel BuildRequires: python3-setuptools BuildRequires: python3-pip %description -n python3-3scale-api # 3scale REST API client in Python 3Scale REST API client in a wrapper over the 3scale API. [![lint & smoke](https://github.com/3scale-qe/3scale-api-python/actions/workflows/lint-and-smoke.yml/badge.svg)](https://github.com/3scale-qe/3scale-api-python/actions) ## Installing Install and update using pip: ```bash pip install 3scale-api ``` Or as a dependency using the pipenv ```bash pipenv install 3scale-api ``` ## Usage Client supports basic CRUD operations and it using the official 3scale API. The API can be found at `/p/admin/api_docs` Basic usage of the client: ```python from threescale_api import ThreeScaleClient, resources from typing import List client = ThreeScaleClient(url="myaccount.3scale.net", token="secret_token", ssl_verify=True) # Get list of APIs/Services or any other resource services: List[resources.Service] = client.services.list() # Get service by it's name test_service: resources.Service = client.services["test_service"] # or use: client.services.read_by_name(system_name) # Get service by it's id test_service: resources.Service = client.services[12345] # or use client.services.read(id) # To get raw JSON response - you can use the fetch method - it takes the service id raw_json: dict = client.services.fetch(12345) # To create a new service (or any other resource), parameters are the same as you would provide by the documentation new_service: resources.Service = client.services.create(system_name='my_testing_service', name="My Testing service") # In order to update service you can either client.services[123456].update(param="new_value") # or service: resources.Service = client.services[123456] service['param'] = 'new_value' service.update() # To get a proxy config you can use proxy: resources.Proxy = client.services['test_service'].proxy.read() # To update the proxy you can either proxy: resources.Proxy = client.services['test_service'].proxy.update(parameter_to_update='update') # or proxy_instance = client.services['test_service'].proxy.read() proxy_instance['param'] = 'new_value' proxy_instance.update() # On the service you can access the: service: resources.Service = client.services[123456] service.proxy # The PROXY client service.mapping_rules # mapping rules client service.metrics # metrics service.app_plans # application plans # The proxy supports: proxy = service.proxy.read() proxy.promote(version=1, from_env="sandbox", to_env="production") # The promote operation proxy.mapping_rules # The mapping rules proxy.configs # proxy configurations client proxy.policies # Policies defined for the API ``` ## Run the Tests To run the tests you need to have installed development dependencies: ```bash pipenv install --dev ``` and then run the `pytest`: ```bash pipenv run pytest -v ``` ### Integration tests configuration To run the integration tests you need to set these env variables: ``` THREESCALE_PROVIDER_URL='https://example-admin.3scale.net' THREESCALE_PROVIDER_TOKEN='' # OPTIONAL: THREESCALE_MASTER_URL='https://master.3scale.net' THREESCALE_MASTER_TOKEN='' ``` %package help Summary: Development documents and examples for 3scale-api Provides: python3-3scale-api-doc %description help # 3scale REST API client in Python 3Scale REST API client in a wrapper over the 3scale API. [![lint & smoke](https://github.com/3scale-qe/3scale-api-python/actions/workflows/lint-and-smoke.yml/badge.svg)](https://github.com/3scale-qe/3scale-api-python/actions) ## Installing Install and update using pip: ```bash pip install 3scale-api ``` Or as a dependency using the pipenv ```bash pipenv install 3scale-api ``` ## Usage Client supports basic CRUD operations and it using the official 3scale API. The API can be found at `/p/admin/api_docs` Basic usage of the client: ```python from threescale_api import ThreeScaleClient, resources from typing import List client = ThreeScaleClient(url="myaccount.3scale.net", token="secret_token", ssl_verify=True) # Get list of APIs/Services or any other resource services: List[resources.Service] = client.services.list() # Get service by it's name test_service: resources.Service = client.services["test_service"] # or use: client.services.read_by_name(system_name) # Get service by it's id test_service: resources.Service = client.services[12345] # or use client.services.read(id) # To get raw JSON response - you can use the fetch method - it takes the service id raw_json: dict = client.services.fetch(12345) # To create a new service (or any other resource), parameters are the same as you would provide by the documentation new_service: resources.Service = client.services.create(system_name='my_testing_service', name="My Testing service") # In order to update service you can either client.services[123456].update(param="new_value") # or service: resources.Service = client.services[123456] service['param'] = 'new_value' service.update() # To get a proxy config you can use proxy: resources.Proxy = client.services['test_service'].proxy.read() # To update the proxy you can either proxy: resources.Proxy = client.services['test_service'].proxy.update(parameter_to_update='update') # or proxy_instance = client.services['test_service'].proxy.read() proxy_instance['param'] = 'new_value' proxy_instance.update() # On the service you can access the: service: resources.Service = client.services[123456] service.proxy # The PROXY client service.mapping_rules # mapping rules client service.metrics # metrics service.app_plans # application plans # The proxy supports: proxy = service.proxy.read() proxy.promote(version=1, from_env="sandbox", to_env="production") # The promote operation proxy.mapping_rules # The mapping rules proxy.configs # proxy configurations client proxy.policies # Policies defined for the API ``` ## Run the Tests To run the tests you need to have installed development dependencies: ```bash pipenv install --dev ``` and then run the `pytest`: ```bash pipenv run pytest -v ``` ### Integration tests configuration To run the integration tests you need to set these env variables: ``` THREESCALE_PROVIDER_URL='https://example-admin.3scale.net' THREESCALE_PROVIDER_TOKEN='' # OPTIONAL: THREESCALE_MASTER_URL='https://master.3scale.net' THREESCALE_MASTER_TOKEN='' ``` %prep %autosetup -n 3scale-api-0.29.0 %build %py3_build %install %py3_install install -d -m755 %{buildroot}/%{_pkgdocdir} if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi pushd %{buildroot} if [ -d usr/lib ]; then find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst fi if [ -d usr/lib64 ]; then find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst fi if [ -d usr/bin ]; then find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst fi if [ -d usr/sbin ]; then find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst fi touch doclist.lst if [ -d usr/share/man ]; then find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst fi popd mv %{buildroot}/filelist.lst . mv %{buildroot}/doclist.lst . %files -n python3-3scale-api -f filelist.lst %dir %{python3_sitelib}/* %files help -f doclist.lst %{_docdir}/* %changelog * Tue Apr 25 2023 Python_Bot - 0.29.0-1 - Package Spec generated