A compact auth client for UltraDNS
Project description
ultra_auth
A compact Python client for managing a connection with the UltraDNS API. For the "official," and much more ambitious project, go here.
Features
- Support for authenticating with username and password, or directly with a bearer token.
- Automatic token refreshing when the token expires.
- Built-in handling of various content types.
Installation
You can easily install ultra_auth
using pip
:
pip install ultra_auth
Once installed, you can use the ultra_auth module in your Python scripts:
from ultra_auth import UltraApi
client = UltraApi(args)
Usage
Authenticating using Username and Password
client = UltraApi(your_username, your_password)
Authenticating using Bearer Token
client = UltraApi(your_bearer_token, use_token=True)
Authenticating using Bearer Token and Refresh Token
client = UltraApi(your_bearer_token, your_refresh_token, True)
Making API Calls
# Make a GET request
response = client.get("/ultra/api/endpoint")
# Make a POST request
response = client.post("/ultra/api/endpoint", payload={"key": "value"})
# ... similarly for PUT, PATCH, DELETE
Response Handling
The client can return data in the form of dictionaries, strings, or bytes depending on the response content type.
For example:
- The zone export endpoint, when requesting more than one zone, will return a zip file
- The zone export endpoint, when requesting one zone, returns a plain text response
- Most endpoints return JSON
Debugging
Debug Mode
When debug mode is enabled the client will print some verbose information about the request to stdout.
client = UltraApi(your_username, your_password, debug=True)
# Toggle it on and off
client.toggle_debug()
Pretty Print Mode
When pretty print mode is enabled the client will print the JSON response in a more human-readable format. This returns a string instead of a dictionary, so be aware of that.
client = UltraApi(your_username, your_password, pprint=True)
# Toggle it on and off
client.toggle_pprint()
User-Agent
The client will send a unique User-Agent header with each request. By default, the User-Agent header will be "python-ultra-auth/vX.X.X (+repository_url)" where X.X.X is the version of the client.
You can override this by passing a custom User-Agent header to the client.
client = UltraApi(your_username, your_password, user_agent="my-custom-user-agent")
# This can be modified using the set_user_agent method. You return to the default, simply set it to None.
client.set_user_agent(None)
client.set_user_agent("my-new-custom-user-agent")
Note
Using a bearer token without a refresh token means the client state will expire in approximately 1 hour (assuming the token was just generated). The client won't stop you from doing this, but be warned.
Contribute
Contributions are always welcome! Please open a pull request with your changes, or open an issue if you encounter any problems or have suggestions.
License
This project is licensed under the MIT License - see the LICENSE file for details
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for ultra_auth-0.1.2.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f561c8c944f3e8eaaf862beb9fd5f6d9e1ac2299157e6e619eddc36cb97c0296 |
|
MD5 | ee84ecb3a9278c77708ad6a58ed4c33d |
|
BLAKE2b-256 | e2f5fee8fddd2dcbca4f5d7ddb2dedb53e23bdefa258b8fb17196de680494be2 |