Skip to main content

An API Client for the Neon API.

Project description

neon_client: an api wrapper for the Neon API.

neon_client is a Python wrapper designed to simplify interactions with the Neon API. It provides a convenient way for developers to integrate their Python applications with the Neon platform, offering methods to manage API keys, projects, branches, databases, endpoints, roles, and operations programmatically.

With neon_client, you can automate tasks, streamline workflows, and build powerful integrations with ease.

Installation

$ pip install neon-client

Please Note: this repository is a work in progress. The package is not yet available on PyPi. The above command will not work.

Usage

from neon_client import NeonAPI

# Initialize the client.
neon = NeonAPI(api_key='your_api_key')

Remember that you should never expose your api_key and handle it carefully since it gives access to sensitive data. It's better to set it as an environment variable (e.g. NEON_API_KEY + accompanying neon_client.from_environ()).


Methods of the NeonAPI class:

  • me(): Returns the current user.

Manage API keys:

  • api_keys(): Returns a list of API keys.
  • api_key_create(**json): Creates an API key.
  • api_key_delete(key_id): Deletes a given API key.

Manage projects:

  • projects(): Returns a list of projects.
  • project(project_id): Returns a specific project.
  • project_create(project_id, **json): Creates a new project.
  • project_update(project_id, **json): Updates a given project.
  • project_delete(project_id): Deletes a given project.
  • project_permissions(project_id): Returns a list of permissions for a given project.
  • project_permissions_grant(project_id, **json): Grant permissions to a given project.
  • project_permissions_revoke(project_id, **json): Revoke permissions from a given project.

Manage branches:

  • branches(project_id): Returns a list of branches for a given project.
  • branch(project_id, branch_id): Returns a specific branch.
  • branch_create(project_id, **json): Creates a new branch.
  • branch_update(project_id, branch_id, **json): Updates a given branch.
  • branch_delete(project_id, branch_id): Deletes a given branch.
  • branch_set_as_primary(project_id, branch_id): Sets a given branch as primary.

Manage databases:

  • databases(project_id, branch_id): Returns a list of databases for a given project and branch.
  • database(project_id, branch_id, database_id): Returns a specific database.
  • database_create(project_id, branch_id, **json): Creates a new database.
  • database_update(project_id, branch_id, **json): Updates a given database.
  • database_delete(project_id, branch_id, database_id): Deletes a given database.

Manage endpoints:

  • endpoints(project_id, branch_id): Returns a list of endpoints for a given project and branch.
  • endpoint_create(project_id, branch_id, **json): Creates a new endpoint.
  • endpoint_update(project_id, branch_id, endpoint_id, **json): Updates a given endpoint.
  • endpoint_delete(project_id, branch_id, endpoint_id): Deletes a given endpoint.
  • endpoint_start(project_id, branch_id, endpoint_id): Starts a given endpoint.
  • endpoint_suspend(project_id, branch_id, endpoint_id): Suspends a given endpoint.

Manage roles:

  • roles(project_id, branch_id): Returns a list of roles for a given project and branch.
  • role(project_id, branch_id, role_name): Returns a specific role.
  • role_create(project_id, branch_id, role_name): Creates a new role.
  • role_delete(project_id, branch_id, role_name): Deletes a given role.
  • role_password_reveal(project_id, branch_id, role_name): Reveals the password for a given role.
  • role_password_reset(project_id, branch_id, role_name): Resets the password for a given role.

Manage operations:

  • operations(project_id): Returns a list of operations for a given project.
  • operation(project_id, operation_id): Returns a specific operation.

Experimental:

  • consumption(): Returns a list of project consumption metrics.

View the Neon API documentation for more information on the available endpoints and their parameters.

Development

Installation is simple with pipenv. Just run the following command in the root directory of the repository:

$ pipenv install --dev

This will install all the necessary dependencies for development.

To run the tests, use the following command:

$ make test

The tests don't require an internet connection, as they are mocked using the pytest-vcr library. To record new cassettes, use the following command:

$ make record

This will record new cassettes for the tests. Make sure to commit these cassettes along with your changes.

License & Copyright

MIT licensed.

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

neon-client-0.1.0.tar.gz (17.8 kB view details)

Uploaded Source

Built Distribution

neon_client-0.1.0-py2.py3-none-any.whl (15.1 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file neon-client-0.1.0.tar.gz.

File metadata

  • Download URL: neon-client-0.1.0.tar.gz
  • Upload date:
  • Size: 17.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.12.2

File hashes

Hashes for neon-client-0.1.0.tar.gz
Algorithm Hash digest
SHA256 f40f74d71be88c4bbedced56677d566e0a2df329ad067462c6c1abe99efc261e
MD5 4c17e4d8c292849db5866517b2923a0f
BLAKE2b-256 ca514878b402a4fcb7c17007fff6c1f5e22c1d1e74821e837f3fecde08111d9d

See more details on using hashes here.

File details

Details for the file neon_client-0.1.0-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for neon_client-0.1.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 93b5e96f4126c1af17ddb333f21a5b60f9464b37dcb4f239572013b618fbb51e
MD5 4ca9c913c865ed29933f58703608d2e0
BLAKE2b-256 30a6042f77a84669ed31fbf046907326a65bfa45259ebdefaedb269fbd7a87f4

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