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
4 changes: 4 additions & 0 deletions robosystems_client/api/graph_limits/get_graph_limits.py
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,7 @@ def sync_detailed(
- **Backup Limits**: Frequency, retention, size limits
- **Rate Limits**: Requests per minute/hour based on tier
- **Credit Limits**: AI operation credits (if applicable)
- **Content Limits**: Node, relationship, and row limits (if applicable)

This unified endpoint provides all limits in one place for easier client integration.

Expand Down Expand Up @@ -125,6 +126,7 @@ def sync(
- **Backup Limits**: Frequency, retention, size limits
- **Rate Limits**: Requests per minute/hour based on tier
- **Credit Limits**: AI operation credits (if applicable)
- **Content Limits**: Node, relationship, and row limits (if applicable)

This unified endpoint provides all limits in one place for easier client integration.

Expand Down Expand Up @@ -163,6 +165,7 @@ async def asyncio_detailed(
- **Backup Limits**: Frequency, retention, size limits
- **Rate Limits**: Requests per minute/hour based on tier
- **Credit Limits**: AI operation credits (if applicable)
- **Content Limits**: Node, relationship, and row limits (if applicable)

This unified endpoint provides all limits in one place for easier client integration.

Expand Down Expand Up @@ -204,6 +207,7 @@ async def asyncio(
- **Backup Limits**: Frequency, retention, size limits
- **Rate Limits**: Requests per minute/hour based on tier
- **Credit Limits**: AI operation credits (if applicable)
- **Content Limits**: Node, relationship, and row limits (if applicable)

This unified endpoint provides all limits in one place for easier client integration.

Expand Down
16 changes: 4 additions & 12 deletions robosystems_client/api/graphs/get_available_graph_tiers.py
Original file line number Diff line number Diff line change
Expand Up @@ -83,11 +83,9 @@ def sync_detailed(
- Availability status

**Available Tiers:**
- **ladybug-standard**: Multi-tenant entry-level tier
- **ladybug-standard**: Dedicated entry-level tier
- **ladybug-large**: Dedicated professional tier with subgraph support
- **ladybug-xlarge**: Enterprise tier with maximum resources
- **neo4j-community-large**: Neo4j Community Edition (optional, if enabled)
- **neo4j-enterprise-xlarge**: Neo4j Enterprise Edition (optional, if enabled)

**Use Cases:**
- Display tier options in graph creation UI
Expand Down Expand Up @@ -140,11 +138,9 @@ def sync(
- Availability status

**Available Tiers:**
- **ladybug-standard**: Multi-tenant entry-level tier
- **ladybug-standard**: Dedicated entry-level tier
- **ladybug-large**: Dedicated professional tier with subgraph support
- **ladybug-xlarge**: Enterprise tier with maximum resources
- **neo4j-community-large**: Neo4j Community Edition (optional, if enabled)
- **neo4j-enterprise-xlarge**: Neo4j Enterprise Edition (optional, if enabled)

**Use Cases:**
- Display tier options in graph creation UI
Expand Down Expand Up @@ -192,11 +188,9 @@ async def asyncio_detailed(
- Availability status

**Available Tiers:**
- **ladybug-standard**: Multi-tenant entry-level tier
- **ladybug-standard**: Dedicated entry-level tier
- **ladybug-large**: Dedicated professional tier with subgraph support
- **ladybug-xlarge**: Enterprise tier with maximum resources
- **neo4j-community-large**: Neo4j Community Edition (optional, if enabled)
- **neo4j-enterprise-xlarge**: Neo4j Enterprise Edition (optional, if enabled)

**Use Cases:**
- Display tier options in graph creation UI
Expand Down Expand Up @@ -247,11 +241,9 @@ async def asyncio(
- Availability status

**Available Tiers:**
- **ladybug-standard**: Multi-tenant entry-level tier
- **ladybug-standard**: Dedicated entry-level tier
- **ladybug-large**: Dedicated professional tier with subgraph support
- **ladybug-xlarge**: Enterprise tier with maximum resources
- **neo4j-community-large**: Neo4j Community Edition (optional, if enabled)
- **neo4j-enterprise-xlarge**: Neo4j Enterprise Edition (optional, if enabled)

**Use Cases:**
- Display tier options in graph creation UI
Expand Down
21 changes: 21 additions & 0 deletions robosystems_client/api/materialize/materialize_graph.py
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,11 @@ def _parse_response(

return response_409

if response.status_code == 413:
response_413 = ErrorResponse.from_dict(response.json())

return response_413

if response.status_code == 422:
response_422 = HTTPValidationError.from_dict(response.json())

Expand Down Expand Up @@ -150,6 +155,10 @@ def sync_detailed(
Full graph materialization can take minutes for large datasets. Consider running
during off-peak hours for production systems.

**Dry Run:**
Set `dry_run=true` to validate limits without executing. Returns current usage, tier limits,
and any warnings or errors. No lock is acquired, no SSE operation is created.

**Credits:**
Materialization is included - no credit consumption

Expand Down Expand Up @@ -234,6 +243,10 @@ def sync(
Full graph materialization can take minutes for large datasets. Consider running
during off-peak hours for production systems.

**Dry Run:**
Set `dry_run=true` to validate limits without executing. Returns current usage, tier limits,
and any warnings or errors. No lock is acquired, no SSE operation is created.

**Credits:**
Materialization is included - no credit consumption

Expand Down Expand Up @@ -313,6 +326,10 @@ async def asyncio_detailed(
Full graph materialization can take minutes for large datasets. Consider running
during off-peak hours for production systems.

**Dry Run:**
Set `dry_run=true` to validate limits without executing. Returns current usage, tier limits,
and any warnings or errors. No lock is acquired, no SSE operation is created.

**Credits:**
Materialization is included - no credit consumption

Expand Down Expand Up @@ -395,6 +412,10 @@ async def asyncio(
Full graph materialization can take minutes for large datasets. Consider running
during off-peak hours for production systems.

**Dry Run:**
Set `dry_run=true` to validate limits without executing. Returns current usage, tier limits,
and any warnings or errors. No lock is acquired, no SSE operation is created.

**Credits:**
Materialization is included - no credit consumption

Expand Down
12 changes: 8 additions & 4 deletions robosystems_client/models/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,7 @@
from .connection_response import ConnectionResponse
from .connection_response_metadata import ConnectionResponseMetadata
from .connection_response_provider import ConnectionResponseProvider
from .content_limits import ContentLimits
from .copy_operation_limits import CopyOperationLimits
from .create_api_key_request import CreateAPIKeyRequest
from .create_api_key_response import CreateAPIKeyResponse
Expand Down Expand Up @@ -90,6 +91,7 @@
DetailedTransactionsResponseDateRange,
)
from .detailed_transactions_response_summary import DetailedTransactionsResponseSummary
from .download_quota import DownloadQuota
from .email_verification_request import EmailVerificationRequest
from .enhanced_credit_transaction_response import EnhancedCreditTransactionResponse
from .enhanced_credit_transaction_response_metadata import (
Expand Down Expand Up @@ -162,6 +164,7 @@
from .logout_user_response_logoutuser import LogoutUserResponseLogoutuser
from .materialize_request import MaterializeRequest
from .materialize_response import MaterializeResponse
from .materialize_response_limit_check_type_0 import MaterializeResponseLimitCheckType0
from .materialize_status_response import MaterializeStatusResponse
from .mcp_tool_call import MCPToolCall
from .mcp_tool_call_arguments import MCPToolCallArguments
Expand Down Expand Up @@ -252,8 +255,6 @@
from .sso_exchange_response import SSOExchangeResponse
from .sso_token_response import SSOTokenResponse
from .storage_info import StorageInfo
from .storage_info_included_per_tier import StorageInfoIncludedPerTier
from .storage_info_overage_pricing import StorageInfoOveragePricing
from .storage_limit_response import StorageLimitResponse
from .storage_limits import StorageLimits
from .storage_summary import StorageSummary
Expand Down Expand Up @@ -289,6 +290,7 @@
from .user_graphs_response import UserGraphsResponse
from .user_response import UserResponse
from .validation_error import ValidationError
from .validation_error_context import ValidationErrorContext
from .view_axis_config import ViewAxisConfig
from .view_axis_config_element_labels_type_0 import ViewAxisConfigElementLabelsType0
from .view_axis_config_member_labels_type_0 import ViewAxisConfigMemberLabelsType0
Expand Down Expand Up @@ -344,6 +346,7 @@
"ConnectionResponse",
"ConnectionResponseMetadata",
"ConnectionResponseProvider",
"ContentLimits",
"CopyOperationLimits",
"CreateAPIKeyRequest",
"CreateAPIKeyResponse",
Expand Down Expand Up @@ -375,6 +378,7 @@
"DetailedTransactionsResponse",
"DetailedTransactionsResponseDateRange",
"DetailedTransactionsResponseSummary",
"DownloadQuota",
"EmailVerificationRequest",
"EnhancedCreditTransactionResponse",
"EnhancedCreditTransactionResponseMetadata",
Expand Down Expand Up @@ -433,6 +437,7 @@
"LogoutUserResponseLogoutuser",
"MaterializeRequest",
"MaterializeResponse",
"MaterializeResponseLimitCheckType0",
"MaterializeStatusResponse",
"MCPToolCall",
"MCPToolCallArguments",
Expand Down Expand Up @@ -507,8 +512,6 @@
"SSOExchangeResponse",
"SSOTokenResponse",
"StorageInfo",
"StorageInfoIncludedPerTier",
"StorageInfoOveragePricing",
"StorageLimitResponse",
"StorageLimits",
"StorageSummary",
Expand Down Expand Up @@ -540,6 +543,7 @@
"UserGraphsResponse",
"UserResponse",
"ValidationError",
"ValidationErrorContext",
"ViewAxisConfig",
"ViewAxisConfigElementLabelsType0",
"ViewAxisConfigMemberLabelsType0",
Expand Down
47 changes: 46 additions & 1 deletion robosystems_client/models/backup_list_response.py
Original file line number Diff line number Diff line change
@@ -1,13 +1,16 @@
from __future__ import annotations

from collections.abc import Mapping
from typing import TYPE_CHECKING, Any, TypeVar
from typing import TYPE_CHECKING, Any, TypeVar, cast

from attrs import define as _attrs_define
from attrs import field as _attrs_field

from ..types import UNSET, Unset

if TYPE_CHECKING:
from ..models.backup_response import BackupResponse
from ..models.download_quota import DownloadQuota


T = TypeVar("T", bound="BackupListResponse")
Expand All @@ -21,14 +24,20 @@ class BackupListResponse:
backups (list[BackupResponse]):
total_count (int):
graph_id (str):
is_shared_repository (bool | Unset): Whether this is a shared repository (limits apply) Default: False.
download_quota (DownloadQuota | None | Unset): Download quota for shared repositories
"""

backups: list[BackupResponse]
total_count: int
graph_id: str
is_shared_repository: bool | Unset = False
download_quota: DownloadQuota | None | Unset = UNSET
additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)

def to_dict(self) -> dict[str, Any]:
from ..models.download_quota import DownloadQuota

backups = []
for backups_item_data in self.backups:
backups_item = backups_item_data.to_dict()
Expand All @@ -38,6 +47,16 @@ def to_dict(self) -> dict[str, Any]:

graph_id = self.graph_id

is_shared_repository = self.is_shared_repository

download_quota: dict[str, Any] | None | Unset
if isinstance(self.download_quota, Unset):
download_quota = UNSET
elif isinstance(self.download_quota, DownloadQuota):
download_quota = self.download_quota.to_dict()
else:
download_quota = self.download_quota

field_dict: dict[str, Any] = {}
field_dict.update(self.additional_properties)
field_dict.update(
Expand All @@ -47,12 +66,17 @@ def to_dict(self) -> dict[str, Any]:
"graph_id": graph_id,
}
)
if is_shared_repository is not UNSET:
field_dict["is_shared_repository"] = is_shared_repository
if download_quota is not UNSET:
field_dict["download_quota"] = download_quota

return field_dict

@classmethod
def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
from ..models.backup_response import BackupResponse
from ..models.download_quota import DownloadQuota

d = dict(src_dict)
backups = []
Expand All @@ -66,10 +90,31 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:

graph_id = d.pop("graph_id")

is_shared_repository = d.pop("is_shared_repository", UNSET)

def _parse_download_quota(data: object) -> DownloadQuota | None | Unset:
if data is None:
return data
if isinstance(data, Unset):
return data
try:
if not isinstance(data, dict):
raise TypeError()
download_quota_type_0 = DownloadQuota.from_dict(data)

return download_quota_type_0
except (TypeError, ValueError, AttributeError, KeyError):
pass
return cast(DownloadQuota | None | Unset, data)

download_quota = _parse_download_quota(d.pop("download_quota", UNSET))

backup_list_response = cls(
backups=backups,
total_count=total_count,
graph_id=graph_id,
is_shared_repository=is_shared_repository,
download_quota=download_quota,
)

backup_list_response.additional_properties = d
Expand Down
Loading