Skip to main content

An API client for the Pureport ReST API

Project description

Pureport Python Client

A thin Python 3 client for the Pureport ReST API, backed by requests.

Install

pip install pureport-client

For Python2, you can use any version prior to 1.0.0.

pip install pureport-client<1

Usage

from pureport.api.client import Client
from pureport.exception.api import ClientHttpException, NotFoundException

### Create the Client and login with your API Key
client = Client()
client.login("MY_API_KEY", "MY_API_SECRET")

### List Accounts
accounts = client.accounts.list()
first_account = accounts[0]

### List all Networks for the first Account
networks = client.accounts.networks(first_account['id']).list()

### Create a Network for the Account
new_network = client.accounts.networks(first_account['id']).create({
    'name': 'My First Network'
})

### Obtain a Pureport location link for a new Connection
location = client.locations.list()[0]
location_link = Client.to_link(location, location['name'])

### Create an AWS Connection
new_connection_data = {
    'name': 'My First AWS Connection',
    'type': 'AWS_DIRECT_CONNECT',
    'speed': 50,
    'highAvailability': True,
    'peering': {
        'type': 'PRIVATE'
    },
    'location': location_link,
    'billingTerm': 'HOURLY',
    'awsAccountId': 'YOUR_AWS_ACCOUNT_ID',
    'awsRegion': 'YOUR_AWS_REGION' # e.g. 'us-west-2'
}

new_connection = None
try:
    new_connection = client.networks.connections(new_network['id']).create(new_connection_data)
except ClientHttpException as e:
    print(e.response.text)

### Retrieve the new AWS Connection by the returned object
client.connections.get(new_connection['id'])

### Delete the new AWS Connection
client.connections.delete(new_connection['id'])

### Expect a 404 error for the deleted connection
try:
    client.connections.get(new_connection['id'])
except NotFoundException as e:
    print(e.response.text)

### Delete the Network
client.networks.delete(new_network['id'])

CLI Usage

This uses jq to help parse the JSON output from the Pureport client.

export PUREPORT_API_KEY="MY_API_KEY"
export PUREPORT_API_SECRET="MY_API_SECRET"

### List accounts
pureport accounts list | jq

### List all networks for the first account
first_account_id=$(pureport accounts list --name traynham | jq -r '.[0].id')
pureport accounts networks -a $first_account_id list

### Create a Network for the Account and persist it's id
new_network_id=$(pureport accounts networks -a $first_account_id create '{"name": "My First Network"}' | jq -r '.id')

### List all pureport locations
pureport locations list | jq

### Create a link object with the first location
location_link=$(pureport locations list | jq -r '.[0] | {id: .id, href: .href, title: .name}')

### Create an AWS Connection
new_connection_id=$(pureport networks connections -n $new_network_id create --wait_until_active '{
    "name": "My First AWS Connection",
    "type": "AWS_DIRECT_CONNECT",
    "speed": 50,
    "highAvailability": true,
    "peering": {
        "type": "PRIVATE"
    },
    "location": '$location_link',
    "billingTerm": "HOURLY",
    "awsAccountId": "YOUR_AWS_ACCOUNT_ID",
    "awsRegion": "YOUR_AWS_REGION"
}' | jq -r '.id')

### Retrieve the new AWS Connection with the returned id
pureport connections get $new_connection_id | jq

### Delete the new AWS Connection
pureport connections delete --wait_until_deleted $new_connection_id

### Delete the Network
pureport networks delete $new_network_id

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

pureport-client-1.0.7.tar.gz (19.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pureport_client-1.0.7-py3-none-any.whl (19.5 kB view details)

Uploaded Python 3

File details

Details for the file pureport-client-1.0.7.tar.gz.

File metadata

  • Download URL: pureport-client-1.0.7.tar.gz
  • Upload date:
  • Size: 19.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/45.2.0 requests-toolbelt/0.9.1 tqdm/4.43.0 CPython/3.8.2

File hashes

Hashes for pureport-client-1.0.7.tar.gz
Algorithm Hash digest
SHA256 a0324569d1fd70c76e341fe0210248dc29c6b2a4db04822d07de700102f60b39
MD5 38e419303cbad825dee1d060da53ef58
BLAKE2b-256 7e334d3292fbb0d7c6c255f7bfdce7c47c8def6d48298f3a302970e1273d7e61

See more details on using hashes here.

File details

Details for the file pureport_client-1.0.7-py3-none-any.whl.

File metadata

  • Download URL: pureport_client-1.0.7-py3-none-any.whl
  • Upload date:
  • Size: 19.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/45.2.0 requests-toolbelt/0.9.1 tqdm/4.43.0 CPython/3.8.2

File hashes

Hashes for pureport_client-1.0.7-py3-none-any.whl
Algorithm Hash digest
SHA256 f6437bad22802e225e6fd60f6ecf718e6395a010a8613395bc6d1ae24f049c80
MD5 9df94052a47ebaf8b8ee48c45959f923
BLAKE2b-256 f5ffc945b045b2ce2567f2ad21adfb5a7174f18b0a101a38375330758a797f4f

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