Skip to main content

TransIP API Connector

Project description

===========
TransIP API
===========

|Build Status| |Docs Status|

.. |Build Status| image:: https://travis-ci.org/benkonrath/transip-api.svg?branch=master
:target: https://travis-ci.org/benkonrath/transip-api
:alt: Build Status
.. |Docs Status| image:: https://readthedocs.org/projects/transip-api/badge/?version=latest
:target: https://transip-api.readthedocs.io/en/latest/?badge=latest
:alt: Documentation Status

This library aims to implement the `TransIP API`_ in Python.

Quick Start
===========

Prerequisite
------------

* Make sure you have an account at TransIP_
* *Enable* the API (https://www.transip.nl/cp/mijn-account/#api)
* Whitelist your IP.
* Generate a new key-pair.
+ Copy-paste the private key into a file.
+ Either reformat the key to PKCS#1 format using ``$ openssl rsa -in input.key -out decrypted_key`` or install cryptography using ``$ pip install cryptography``.
+ Put the private key in a file called ``decrypted_key`` beside this ``README.rst`` file.

Setup
-----

.. code-block::

$ python setup.py install


Example
-------

The command-line interpreter doesn't do much yet. By default it does a
getDomainNames() call, but with the '-u' option it's also possible to add or
update DNS records. When calling it with '-h', it will show all available options.

.. code-block::

$ transip-api
[example.com, example.org, example.net]

$ transip-api -h
usage: transip-api [-h] [-l LOGINNAME] [-s] [-a] [-u] [-d]
[--domain-name DOMAIN_NAME] [--entry-name ENTRY_NAME]
[--entry-expire ENTRY_EXPIRE] [--entry-type ENTRY_TYPE]
[--entry-content ENTRY_CONTENT] [--api-key PRIVATE_KEY_FILE]

optional arguments:
-h, --help show this help message and exit
-l LOGINNAME, --login-name LOGINNAME
TransIP username
-s, --show-dns-entries
show all DNS entries for a domain
-a, --add-dns-entry add an entry in the DNS
-u, --update-dns-entry
update an entry in the DNS
-d, --delete-dns-entry
delete an entry in the DNS
--domain-name DOMAIN_NAME
domain name to use
--entry-name ENTRY_NAME
name of the DNS entry
--entry-expire ENTRY_EXPIRE
expire time of the DNS entry
--entry-type ENTRY_TYPE
type of the DNS entry
--entry-content ENTRY_CONTENT
content of the DNS entry
--api-key PRIVATE_KEY_FILE
TransIP private key


Example of adding/updating a record:

.. code-block::

$ transip-api -l githubuser -u --api-key privatekey --domain-name example.com --entry-name testentry --entry-expire 86400 --entry-type A --entry-content 127.0.0.1
Request finished successfully.


Documentation
=============

Further documentation can be found in the ``docs`` directory, or on https://transip-api.readthedocs.io/en/latest/.

.. _virtualenv: http://virtualenv.org/
.. _TransIP: https://www.transip.nl/cp/
.. _`TransIP API`: https://www.transip.eu/transip/api/

FAQ
===

Question:

When using the library I get SSL errors such as:

.. code-block::

urllib2.URLError: <urlopen error [Errno 1] _ssl.c:510: error:14077458:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1 unrecognized name>

Answer:

The `suds` library has fairly limited SSL support which is dependent on the Python version, to work around this the `suds_requests` library can be used which replaces `urllib2` with the `requests` library. Additionally the `requests` library automatically pools connections which makes the library slightly faster to use.
To install:

.. code-block::

pip install suds_requests

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

transip-1.0.1.tar.gz (12.4 kB view details)

Uploaded Source

File details

Details for the file transip-1.0.1.tar.gz.

File metadata

  • Download URL: transip-1.0.1.tar.gz
  • Upload date:
  • Size: 12.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.6.3

File hashes

Hashes for transip-1.0.1.tar.gz
Algorithm Hash digest
SHA256 bfefc05281ede4809cada23cd07d8267852891d60b632e7b1ce84b1f73ac7798
MD5 210a0e7678e3b43b2b0dd444f7d0bdff
BLAKE2b-256 27ab5f6f9fff897729ec9169d4561957e3d499c0cad1785d200b81344a323409

See more details on using hashes here.

Supported by

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