Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions src/gradient_labs/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,3 +15,4 @@
from .tool import *
from .topic import *
from .terminology_substitution import *
from .ip_addresses import *
7 changes: 7 additions & 0 deletions src/gradient_labs/_ip_addresses_list.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
from ._http_client import HttpClient
from .ip_addresses import IPAddresses


def list_ip_addresses(*, client: HttpClient) -> IPAddresses:
rsp = client.get(path="ip-addresses", body={})
return IPAddresses.from_dict(rsp)
12 changes: 12 additions & 0 deletions src/gradient_labs/client.py
Original file line number Diff line number Diff line change
Expand Up @@ -136,6 +136,9 @@
)
from ._traffic_group_exclusion_delete import delete_traffic_group_exclusion

from .ip_addresses import IPAddresses
from ._ip_addresses_list import list_ip_addresses

from ._http_client import HttpClient, API_BASE_URL
from .tool import *
from .note import Note
Expand Down Expand Up @@ -934,3 +937,12 @@ def delete_traffic_group_exclusion(self, *, group_id: str, target_id: str) -> No
group_id=group_id,
target_id=target_id,
)

# ==================== IP Addresses ====================

def list_ip_addresses(self) -> IPAddresses:
"""list_ip_addresses returns the CIDR ranges used by the API and the egress IP.

Useful for customers who need to whitelist Gradient Labs IPs in their firewall
or security-group rules."""
return list_ip_addresses(client=self.http_client)
10 changes: 10 additions & 0 deletions src/gradient_labs/ip_addresses.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
from typing import List
from dataclasses import dataclass
from dataclasses_json import dataclass_json


@dataclass_json
@dataclass(frozen=True)
class IPAddresses:
api: List[str]
egress: List[str]
Loading