Metadata-Version: 2.4
Name: pnap_network_api
Version: 3.1.0
Summary: Networks API
Home-page: 
Author: PhoenixNAP Team
Author-email: PhoenixNAP Team <support@phoenixnap.com>
License: Apache 2.0
Project-URL: Repository, https://github.com/GIT_USER_ID/GIT_REPO_ID
Keywords: OpenAPI,OpenAPI-Generator,Networks API
Requires-Python: >=3.9
Description-Content-Type: text/markdown
Requires-Dist: urllib3<3.0.0,>=2.1.0
Requires-Dist: python-dateutil>=2.8.2
Requires-Dist: pydantic>=2
Requires-Dist: typing-extensions>=4.7.1
Dynamic: author

# pnap-network-api
Create, list, edit and delete public/private networks with the Network API. Use public networks to place multiple 
servers on the same network or VLAN. Assign new servers with IP addresses from the same CIDR range. Use private 
networks to avoid unnecessary egress data charges. Model your networks according to your business needs.<br>
<br>
<span class='pnap-api-knowledge-base-link'>
Helpful knowledge base articles are available for 
<a href='https://phoenixnap.com/kb/bmc-server-management-via-api#multi-private-backend-network-api' target='_blank'>multi-private backend networks</a>, 
<a href='https://phoenixnap.com/kb/bmc-server-management-via-api#ftoc-heading-15' target='_blank'>public networks</a> and
<a href='https://phoenixnap.com/kb/border-gateway-protocol-bmc' target='_blank'>border gateway protocol peer groups</a>.
</span><br>
<br>
<b>All URLs are relative to (https://api.phoenixnap.com/networks/v1/)</b>


This Python package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project:

- API version: 1.0
- Package version: 3.1.0
- Build package: org.openapitools.codegen.languages.PythonClientCodegen
For more information, please visit [https://phoenixnap.com/](https://phoenixnap.com/)

## Requirements.

Python 3.9+

## Installation & Usage
### pip install

You can install this package directly from the [Python Package Index](https://pypi.org/) using:

```sh
$ pip install pnap_network_api
```

Then import the package:
```python
import pnap_network_api
```

### Setuptools

Install via [Setuptools](http://pypi.python.org/pypi/setuptools).

```sh
python setup.py install --user
```
(or `sudo python setup.py install` to install the package for all users)

Then import the package:
```python
import pnap_network_api
```

### Tests

Execute `pytest` to run the tests.

## Getting Started

Please follow the [installation procedure](#installation--usage) and then run the following:

```python

import pnap_network_api
from pnap_network_api.rest import ApiException
from pprint import pprint

# Defining the host is optional and defaults to https://api.phoenixnap.com/networks/v1
# See configuration.py for a list of all supported configuration parameters.
configuration = pnap_network_api.Configuration(
    host = "https://api.phoenixnap.com/networks/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_network_api.ApiClient(configuration) as api_client:
    # Create an instance of the API class
    api_instance = pnap_network_api.BGPPeerGroupsApi(api_client)
    location = 'PHX' # str | If present will filter the result by the given location of the BGP Peer Group. (optional)

    try:
        # List BGP Peer Groups.
        api_response = api_instance.bgp_peer_groups_get(location=location)
        print("The response of BGPPeerGroupsApi->bgp_peer_groups_get:\n")
        pprint(api_response)
    except ApiException as e:
        print("Exception when calling BGPPeerGroupsApi->bgp_peer_groups_get: %s\n" % e)

```

To generate a token using the [python-keycloak](https://pypi.org/project/python-keycloak/) library:
```python
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/networks/v1*

Class | Method | HTTP request | Description
------------ | ------------- | ------------- | -------------
*BGPPeerGroupsApi* | [**bgp_peer_groups_get**](docs/BGPPeerGroupsApi.md#bgp_peer_groups_get) | **GET** /bgp-peer-groups | List BGP Peer Groups.
*BGPPeerGroupsApi* | [**bgp_peer_groups_peer_group_id_delete**](docs/BGPPeerGroupsApi.md#bgp_peer_groups_peer_group_id_delete) | **DELETE** /bgp-peer-groups/{bgpPeerGroupId} | Delete a BGP Peer Group.
*BGPPeerGroupsApi* | [**bgp_peer_groups_peer_group_id_get**](docs/BGPPeerGroupsApi.md#bgp_peer_groups_peer_group_id_get) | **GET** /bgp-peer-groups/{bgpPeerGroupId} | Get a BGP Peer Group.
*BGPPeerGroupsApi* | [**bgp_peer_groups_peer_group_id_patch**](docs/BGPPeerGroupsApi.md#bgp_peer_groups_peer_group_id_patch) | **PATCH** /bgp-peer-groups/{bgpPeerGroupId} | Modify a BGP Peer Group.
*BGPPeerGroupsApi* | [**bgp_peer_groups_post**](docs/BGPPeerGroupsApi.md#bgp_peer_groups_post) | **POST** /bgp-peer-groups | Create a BGP Peer Group.
*PrivateNetworksApi* | [**private_networks_get**](docs/PrivateNetworksApi.md#private_networks_get) | **GET** /private-networks | List Private Networks.
*PrivateNetworksApi* | [**private_networks_network_id_delete**](docs/PrivateNetworksApi.md#private_networks_network_id_delete) | **DELETE** /private-networks/{privateNetworkId} | Delete a Private Network.
*PrivateNetworksApi* | [**private_networks_network_id_get**](docs/PrivateNetworksApi.md#private_networks_network_id_get) | **GET** /private-networks/{privateNetworkId} | Get a Private Network.
*PrivateNetworksApi* | [**private_networks_network_id_put**](docs/PrivateNetworksApi.md#private_networks_network_id_put) | **PUT** /private-networks/{privateNetworkId} | Update a Private Network.
*PrivateNetworksApi* | [**private_networks_post**](docs/PrivateNetworksApi.md#private_networks_post) | **POST** /private-networks | Create a Private Network.
*PublicNetworksApi* | [**public_networks_get**](docs/PublicNetworksApi.md#public_networks_get) | **GET** /public-networks | List Public Networks.
*PublicNetworksApi* | [**public_networks_network_id_delete**](docs/PublicNetworksApi.md#public_networks_network_id_delete) | **DELETE** /public-networks/{publicNetworkId} | Delete a Public Network.
*PublicNetworksApi* | [**public_networks_network_id_get**](docs/PublicNetworksApi.md#public_networks_network_id_get) | **GET** /public-networks/{publicNetworkId} | Get a Public Network.
*PublicNetworksApi* | [**public_networks_network_id_ip_blocks_ip_block_id_delete**](docs/PublicNetworksApi.md#public_networks_network_id_ip_blocks_ip_block_id_delete) | **DELETE** /public-networks/{publicNetworkId}/ip-blocks/{ipBlockId} | Removes the IP Block from the Public Network.
*PublicNetworksApi* | [**public_networks_network_id_ip_blocks_post**](docs/PublicNetworksApi.md#public_networks_network_id_ip_blocks_post) | **POST** /public-networks/{publicNetworkId}/ip-blocks | Adds an IP block to this public network.
*PublicNetworksApi* | [**public_networks_network_id_patch**](docs/PublicNetworksApi.md#public_networks_network_id_patch) | **PATCH** /public-networks/{publicNetworkId} | Update Public Network&#39;s Details.
*PublicNetworksApi* | [**public_networks_post**](docs/PublicNetworksApi.md#public_networks_post) | **POST** /public-networks | Create a public network.


## Documentation For Models

 - [AsnDetails](docs/AsnDetails.md)
 - [BgpIPv4Prefix](docs/BgpIPv4Prefix.md)
 - [BgpIpPrefix](docs/BgpIpPrefix.md)
 - [BgpPeerGroup](docs/BgpPeerGroup.md)
 - [BgpPeerGroupCreate](docs/BgpPeerGroupCreate.md)
 - [BgpPeerGroupPatch](docs/BgpPeerGroupPatch.md)
 - [Error](docs/Error.md)
 - [NetworkMembership](docs/NetworkMembership.md)
 - [PrivateNetwork](docs/PrivateNetwork.md)
 - [PrivateNetworkCreate](docs/PrivateNetworkCreate.md)
 - [PrivateNetworkModify](docs/PrivateNetworkModify.md)
 - [PrivateNetworkServer](docs/PrivateNetworkServer.md)
 - [PublicNetwork](docs/PublicNetwork.md)
 - [PublicNetworkCreate](docs/PublicNetworkCreate.md)
 - [PublicNetworkIpBlock](docs/PublicNetworkIpBlock.md)
 - [PublicNetworkIpBlockCreate](docs/PublicNetworkIpBlockCreate.md)
 - [PublicNetworkModify](docs/PublicNetworkModify.md)


<a id="documentation-for-authorization"></a>
## Documentation For Authorization


Authentication schemes defined for the API:
<a id="OAuth2"></a>
### 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
