Skip to main content

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:

  1. The zone export endpoint, when requesting more than one zone, will return a zip file
  2. The zone export endpoint, when requesting one zone, returns a plain text response
  3. 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ultra_auth-0.1.2.1.tar.gz (6.4 kB view details)

Uploaded Source

Built Distribution

ultra_auth-0.1.2.1-py3-none-any.whl (6.9 kB view details)

Uploaded Python 3

File details

Details for the file ultra_auth-0.1.2.1.tar.gz.

File metadata

  • Download URL: ultra_auth-0.1.2.1.tar.gz
  • Upload date:
  • Size: 6.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.18

File hashes

Hashes for ultra_auth-0.1.2.1.tar.gz
Algorithm Hash digest
SHA256 434c70b6fab30c5ac9bebe63ce46e7b06500338efefb24801957658639338e98
MD5 f4f5e08c3180e172bc8a2a30741c1589
BLAKE2b-256 30b4575c7a217d91f7d55331486179eca827111b6e0289717002b7f1f4a93519

See more details on using hashes here.

File details

Details for the file ultra_auth-0.1.2.1-py3-none-any.whl.

File metadata

File hashes

Hashes for ultra_auth-0.1.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 f561c8c944f3e8eaaf862beb9fd5f6d9e1ac2299157e6e619eddc36cb97c0296
MD5 ee84ecb3a9278c77708ad6a58ed4c33d
BLAKE2b-256 e2f5fee8fddd2dcbca4f5d7ddb2dedb53e23bdefa258b8fb17196de680494be2

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page