Skip to main content

pnap-bmc-api

Create, power off, power on, reset, reboot, or shut down your server with the Bare Metal Cloud API. Deprovision servers, get or edit SSH key details, assign public IPs, assign servers to networks and a lot more. Manage your infrastructure more efficiently using just a few simple API calls.

Knowledge base articles to help you can be found here

All URLs are relative to (https://api.phoenixnap.com/bmc/v1/)

This Python package is automatically generated by the OpenAPI Generator project:

  • API version: 0.1
  • Package version: 2.4.0
  • Build package: org.openapitools.codegen.languages.PythonClientCodegen For more information, please visit https://phoenixnap.com/

Requirements.

Python 3.9+

Installation & Usage

pip install

You can install this package directly from the Python Package Index using:

$ pip install pnap_bmc_api

Then import the package:

import pnap_bmc_api

Setuptools

Install via Setuptools.

python setup.py install --user

(or sudo python setup.py install to install the package for all users)

Then import the package:

import pnap_bmc_api

Tests

Execute pytest to run the tests.

Getting Started

Please follow the installation procedure and then run the following:

import pnap_bmc_api
from pnap_bmc_api.rest import ApiException
from pprint import pprint

# Defining the host is optional and defaults to https://api.phoenixnap.com/bmc/v1
# See configuration.py for a list of all supported configuration parameters.
configuration = pnap_bmc_api.Configuration(
    host = "https://api.phoenixnap.com/bmc/v1"
)

# The client must configure the authentication and authorization parameters
# in accordance with the API server security policy.
# Examples for each auth method are provided below, use the example that
# satisfies your auth use case.

configuration.access_token = os.environ["ACCESS_TOKEN"]


# Enter a context with an instance of the API client
with pnap_bmc_api.ApiClient(configuration) as api_client:
    # Create an instance of the API class
    api_instance = pnap_bmc_api.QuotasApi(api_client)

    try:
        # List quotas
        api_response = api_instance.quotas_get()
        print("The response of QuotasApi->quotas_get:\n")
        pprint(api_response)
    except ApiException as e:
        print("Exception when calling QuotasApi->quotas_get: %s\n" % e)

To generate a token using the python-keycloak library:

from keycloak import KeycloakOpenID

clientId = "YOUR_CLIENT_ID"
clientSecret = "YOUR_CLIENT_SECRET"
serverUrl = "https://auth.phoenixnap.com/auth/"
realmName = "BMC"
grantType = "client_credentials"

keycloakOpenId =  KeycloakOpenID(server_url=serverUrl,
                        realm_name=realmName,
                        client_id=clientId,
                        client_secret_key=clientSecret)

ACCESS_TOKEN = keycloakOpenId.token(grant_type=grantType)['access_token']

Documentation for API Endpoints

All URIs are relative to https://api.phoenixnap.com/bmc/v1

Class Method HTTP request Description
QuotasApi quotas_get GET /quotas List quotas
QuotasApi quotas_quota_id_actions_request_edit_post POST /quotas/{quotaId}/actions/request-edit Request quota limit change.
QuotasApi quotas_quota_id_get GET /quotas/{quotaId} Get a quota.
SSHKeysApi ssh_keys_get GET /ssh-keys List SSH Keys.
SSHKeysApi ssh_keys_post POST /ssh-keys Create SSH Key.
SSHKeysApi ssh_keys_ssh_key_id_delete DELETE /ssh-keys/{sshKeyId} Delete SSH Key.
SSHKeysApi ssh_keys_ssh_key_id_get GET /ssh-keys/{sshKeyId} Get SSH Key.
SSHKeysApi ssh_keys_ssh_key_id_put PUT /ssh-keys/{sshKeyId} Edit SSH Key.
ServersApi delete_private_network DELETE /servers/{serverId}/network-configuration/private-network-configuration/private-networks/{privateNetworkId} Removes the server from private network.
ServersApi servers_get GET /servers List servers.
ServersApi servers_post POST /servers Create new server.
ServersApi servers_server_id_actions_deprovision_post POST /servers/{serverId}/actions/deprovision Deprovision a server.
ServersApi servers_server_id_actions_power_off_post POST /servers/{serverId}/actions/power-off Power off server.
ServersApi servers_server_id_actions_power_on_post POST /servers/{serverId}/actions/power-on Power on server.
ServersApi servers_server_id_actions_provision_post POST /servers/{serverId}/actions/provision Provision server.
ServersApi servers_server_id_actions_reboot_post POST /servers/{serverId}/actions/reboot Reboot server.
ServersApi servers_server_id_actions_reserve_post POST /servers/{serverId}/actions/reserve Reserve server.
ServersApi servers_server_id_actions_reset_post POST /servers/{serverId}/actions/reset Reset server.
ServersApi servers_server_id_actions_shutdown_post POST /servers/{serverId}/actions/shutdown Shutdown server.
ServersApi servers_server_id_actions_transfer_reservation POST /servers/{serverId}/actions/transfer-reservation Transfer server reservation.
ServersApi servers_server_id_delete DELETE /servers/{serverId} Delete server.
ServersApi servers_server_id_get GET /servers/{serverId} Get server.
ServersApi servers_server_id_ip_blocks_ip_block_id_delete DELETE /servers/{serverId}/network-configuration/ip-block-configurations/ip-blocks/{ipBlockId} Unassign IP Block from Server.
ServersApi servers_server_id_ip_blocks_post POST /servers/{serverId}/network-configuration/ip-block-configurations/ip-blocks Assign IP Block to Server.
ServersApi servers_server_id_os_configuration_ipxe_put PUT /servers/{serverId}/os-configuration/ipxe Updates the iPXE OS configuration.
ServersApi servers_server_id_patch PATCH /servers/{serverId} Patch a Server.
ServersApi servers_server_id_private_networks_patch PATCH /servers/{serverId}/network-configuration/private-network-configuration/private-networks/{privateNetworkId} Updates the server's private network's IP addresses
ServersApi servers_server_id_private_networks_post POST /servers/{serverId}/network-configuration/private-network-configuration/private-networks Adds the server to a private network.
ServersApi servers_server_id_public_networks_delete DELETE /servers/{serverId}/network-configuration/public-network-configuration/public-networks/{publicNetworkId} Removes the server from the Public Network
ServersApi servers_server_id_public_networks_patch PATCH /servers/{serverId}/network-configuration/public-network-configuration/public-networks/{publicNetworkId} Updates the server's public network's IP addresses.
ServersApi servers_server_id_public_networks_post POST /servers/{serverId}/network-configuration/public-network-configuration/public-networks Adds the server to a Public Network.
ServersApi servers_server_id_tags_put PUT /servers/{serverId}/tags Overwrite tags assigned for Server.

Documentation For Models

Documentation For Authorization

Authentication schemes defined for the API:

OAuth2

  • Type: OAuth
  • Flow: application
  • Authorization URL:
  • Scopes:
  • bmc: Grants full access to bmc-api.
  • bmc.read: Grants read only access to bmc-api.

Author

support@phoenixnap.com

Release files for pnap-bmc-api 2.4.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pnap-bmc-api 2.4.0
File Size Uploaded
pnap_bmc_api-2.4.0.tar.gz 58.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for pnap-bmc-api 2.4.0
File Interpreter ABI Platform
pnap_bmc_api-2.4.0-py3-none-any.whl Python 3 none any Details

Total release size: 196.2 kB

Release files / pnap_bmc_api-2.4.0.tar.gz

Download URL pnap_bmc_api-2.4.0.tar.gz
Size 58.1 kB
Tags Source
SHA-256 checksum
How to use checksums
9510c94a77b00d5291a9845638a778c6e41917c50bda921714901596c56a84b4
BLAKE2b-256 checksum
How to use checksums
a32f32ece96b3db56c1820257534c31e3b6840179d9b4281f37ffd4127f85b8b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.10.20

Release files / pnap_bmc_api-2.4.0-py3-none-any.whl

Download URL pnap_bmc_api-2.4.0-py3-none-any.whl
Size 138.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
3474cdadab9eed26a407c726a00fc936df3f3382e5ad59c837f00c39556065b3
BLAKE2b-256 checksum
How to use checksums
0bfe4dc849f1cdf20033b4ef044889e2296c40225018328d41b14fd8139568fd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.10.20

Release history Release notifications | RSS feed

This release

2.4.0 This release

2 release files

2.3.0

2 release files

2.2.1

2 release files

2.2.0

2 release files

2.1.0

2 release files

2.0.1

2 release files

2.0.0

2 release files

1.5.0

2 release files

1.4.0

2 release files

1.3.0

2 release files

1.2.0

2 release files

1.1.1

2 release files

1.1.0

2 release files

1.0.1

2 release files

1.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page