robosystems-client 0.2.11__py3-none-any.whl → 0.2.13__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of robosystems-client might be problematic. Click here for more details.
- robosystems_client/api/agent/auto_select_agent.py +81 -9
- robosystems_client/api/agent/execute_specific_agent.py +73 -5
- robosystems_client/api/agent/get_agent_metadata.py +1 -1
- robosystems_client/api/agent/list_agents.py +1 -1
- robosystems_client/api/auth/register_user.py +36 -8
- robosystems_client/api/billing/{cancel_subscription.py → cancel_org_subscription.py} +34 -9
- robosystems_client/api/billing/create_checkout_session.py +28 -20
- robosystems_client/api/billing/get_org_billing_customer.py +189 -0
- robosystems_client/api/billing/{get_subscription.py → get_org_subscription.py} +30 -5
- robosystems_client/api/billing/{get_upcoming_invoice.py → get_org_upcoming_invoice.py} +68 -22
- robosystems_client/api/billing/{list_invoices.py → list_org_invoices.py} +38 -9
- robosystems_client/api/billing/{list_subscriptions.py → list_org_subscriptions.py} +64 -22
- robosystems_client/api/billing/{update_payment_method.py → update_org_payment_method.py} +34 -9
- robosystems_client/api/credits_/list_credit_transactions.py +4 -4
- robosystems_client/api/org/__init__.py +1 -0
- robosystems_client/api/org/create_org.py +174 -0
- robosystems_client/api/{billing/get_billing_customer.py → org/get_org.py} +50 -28
- robosystems_client/api/org/list_org_graphs.py +170 -0
- robosystems_client/api/{user/get_user_limits.py → org/list_user_orgs.py} +21 -25
- robosystems_client/api/org/update_org.py +187 -0
- robosystems_client/api/org_members/__init__.py +1 -0
- robosystems_client/api/org_members/invite_org_member.py +207 -0
- robosystems_client/api/org_members/list_org_members.py +165 -0
- robosystems_client/api/org_members/remove_org_member.py +176 -0
- robosystems_client/api/org_members/update_org_member_role.py +200 -0
- robosystems_client/api/org_usage/__init__.py +1 -0
- robosystems_client/api/org_usage/get_org_limits.py +165 -0
- robosystems_client/api/org_usage/get_org_usage.py +186 -0
- robosystems_client/api/service_offerings/get_service_offerings.py +32 -8
- robosystems_client/api/usage/get_graph_usage_analytics.py +4 -4
- robosystems_client/extensions/__init__.py +25 -0
- robosystems_client/extensions/agent_client.py +526 -0
- robosystems_client/extensions/extensions.py +3 -0
- robosystems_client/models/__init__.py +44 -6
- robosystems_client/models/auth_response.py +35 -0
- robosystems_client/models/{user_usage_response_graphs.py → auth_response_org_type_0.py} +6 -6
- robosystems_client/models/billing_customer.py +8 -8
- robosystems_client/models/checkout_response.py +65 -22
- robosystems_client/models/checkout_status_response.py +2 -1
- robosystems_client/models/create_checkout_request.py +2 -1
- robosystems_client/models/create_checkout_request_resource_config.py +4 -1
- robosystems_client/models/create_org_request.py +79 -0
- robosystems_client/models/graph_subscription_tier.py +40 -48
- robosystems_client/models/graph_subscriptions.py +17 -5
- robosystems_client/models/invite_member_request.py +93 -0
- robosystems_client/models/list_org_graphs_response_200_item.py +44 -0
- robosystems_client/models/org_detail_response.py +174 -0
- robosystems_client/models/org_detail_response_graphs_item.py +44 -0
- robosystems_client/models/org_detail_response_limits_type_0.py +44 -0
- robosystems_client/models/org_detail_response_members_item.py +44 -0
- robosystems_client/models/org_limits_response.py +98 -0
- robosystems_client/models/org_limits_response_current_usage.py +44 -0
- robosystems_client/models/org_list_response.py +82 -0
- robosystems_client/models/org_member_list_response.py +90 -0
- robosystems_client/models/org_member_response.py +104 -0
- robosystems_client/models/org_response.py +121 -0
- robosystems_client/models/org_role.py +10 -0
- robosystems_client/models/org_type.py +10 -0
- robosystems_client/models/org_usage_response.py +146 -0
- robosystems_client/models/org_usage_response_daily_trend_item.py +44 -0
- robosystems_client/models/org_usage_response_graph_details_item.py +44 -0
- robosystems_client/models/org_usage_summary.py +158 -0
- robosystems_client/models/repository_subscriptions.py +15 -4
- robosystems_client/models/service_offerings_response.py +15 -0
- robosystems_client/models/update_member_role_request.py +62 -0
- robosystems_client/models/update_org_request.py +103 -0
- {robosystems_client-0.2.11.dist-info → robosystems_client-0.2.13.dist-info}/METADATA +1 -1
- {robosystems_client-0.2.11.dist-info → robosystems_client-0.2.13.dist-info}/RECORD +70 -37
- robosystems_client/models/user_limits_response.py +0 -95
- robosystems_client/models/user_usage_response.py +0 -90
- {robosystems_client-0.2.11.dist-info → robosystems_client-0.2.13.dist-info}/WHEEL +0 -0
- {robosystems_client-0.2.11.dist-info → robosystems_client-0.2.13.dist-info}/licenses/LICENSE +0 -0
|
@@ -7,6 +7,7 @@ from attrs import field as _attrs_field
|
|
|
7
7
|
from ..types import UNSET, Unset
|
|
8
8
|
|
|
9
9
|
if TYPE_CHECKING:
|
|
10
|
+
from ..models.auth_response_org_type_0 import AuthResponseOrgType0
|
|
10
11
|
from ..models.auth_response_user import AuthResponseUser
|
|
11
12
|
|
|
12
13
|
|
|
@@ -20,6 +21,8 @@ class AuthResponse:
|
|
|
20
21
|
Attributes:
|
|
21
22
|
user (AuthResponseUser): User information
|
|
22
23
|
message (str): Success message
|
|
24
|
+
org (Union['AuthResponseOrgType0', None, Unset]): Organization information (personal org created automatically
|
|
25
|
+
on registration)
|
|
23
26
|
token (Union[None, Unset, str]): JWT authentication token (optional for cookie-based auth)
|
|
24
27
|
expires_in (Union[None, Unset, int]): Token expiry time in seconds from now
|
|
25
28
|
refresh_threshold (Union[None, Unset, int]): Recommended refresh threshold in seconds before expiry
|
|
@@ -27,16 +30,27 @@ class AuthResponse:
|
|
|
27
30
|
|
|
28
31
|
user: "AuthResponseUser"
|
|
29
32
|
message: str
|
|
33
|
+
org: Union["AuthResponseOrgType0", None, Unset] = UNSET
|
|
30
34
|
token: Union[None, Unset, str] = UNSET
|
|
31
35
|
expires_in: Union[None, Unset, int] = UNSET
|
|
32
36
|
refresh_threshold: Union[None, Unset, int] = UNSET
|
|
33
37
|
additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
|
|
34
38
|
|
|
35
39
|
def to_dict(self) -> dict[str, Any]:
|
|
40
|
+
from ..models.auth_response_org_type_0 import AuthResponseOrgType0
|
|
41
|
+
|
|
36
42
|
user = self.user.to_dict()
|
|
37
43
|
|
|
38
44
|
message = self.message
|
|
39
45
|
|
|
46
|
+
org: Union[None, Unset, dict[str, Any]]
|
|
47
|
+
if isinstance(self.org, Unset):
|
|
48
|
+
org = UNSET
|
|
49
|
+
elif isinstance(self.org, AuthResponseOrgType0):
|
|
50
|
+
org = self.org.to_dict()
|
|
51
|
+
else:
|
|
52
|
+
org = self.org
|
|
53
|
+
|
|
40
54
|
token: Union[None, Unset, str]
|
|
41
55
|
if isinstance(self.token, Unset):
|
|
42
56
|
token = UNSET
|
|
@@ -63,6 +77,8 @@ class AuthResponse:
|
|
|
63
77
|
"message": message,
|
|
64
78
|
}
|
|
65
79
|
)
|
|
80
|
+
if org is not UNSET:
|
|
81
|
+
field_dict["org"] = org
|
|
66
82
|
if token is not UNSET:
|
|
67
83
|
field_dict["token"] = token
|
|
68
84
|
if expires_in is not UNSET:
|
|
@@ -74,6 +90,7 @@ class AuthResponse:
|
|
|
74
90
|
|
|
75
91
|
@classmethod
|
|
76
92
|
def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
|
|
93
|
+
from ..models.auth_response_org_type_0 import AuthResponseOrgType0
|
|
77
94
|
from ..models.auth_response_user import AuthResponseUser
|
|
78
95
|
|
|
79
96
|
d = dict(src_dict)
|
|
@@ -81,6 +98,23 @@ class AuthResponse:
|
|
|
81
98
|
|
|
82
99
|
message = d.pop("message")
|
|
83
100
|
|
|
101
|
+
def _parse_org(data: object) -> Union["AuthResponseOrgType0", None, Unset]:
|
|
102
|
+
if data is None:
|
|
103
|
+
return data
|
|
104
|
+
if isinstance(data, Unset):
|
|
105
|
+
return data
|
|
106
|
+
try:
|
|
107
|
+
if not isinstance(data, dict):
|
|
108
|
+
raise TypeError()
|
|
109
|
+
org_type_0 = AuthResponseOrgType0.from_dict(data)
|
|
110
|
+
|
|
111
|
+
return org_type_0
|
|
112
|
+
except: # noqa: E722
|
|
113
|
+
pass
|
|
114
|
+
return cast(Union["AuthResponseOrgType0", None, Unset], data)
|
|
115
|
+
|
|
116
|
+
org = _parse_org(d.pop("org", UNSET))
|
|
117
|
+
|
|
84
118
|
def _parse_token(data: object) -> Union[None, Unset, str]:
|
|
85
119
|
if data is None:
|
|
86
120
|
return data
|
|
@@ -111,6 +145,7 @@ class AuthResponse:
|
|
|
111
145
|
auth_response = cls(
|
|
112
146
|
user=user,
|
|
113
147
|
message=message,
|
|
148
|
+
org=org,
|
|
114
149
|
token=token,
|
|
115
150
|
expires_in=expires_in,
|
|
116
151
|
refresh_threshold=refresh_threshold,
|
|
@@ -4,12 +4,12 @@ from typing import Any, TypeVar
|
|
|
4
4
|
from attrs import define as _attrs_define
|
|
5
5
|
from attrs import field as _attrs_field
|
|
6
6
|
|
|
7
|
-
T = TypeVar("T", bound="
|
|
7
|
+
T = TypeVar("T", bound="AuthResponseOrgType0")
|
|
8
8
|
|
|
9
9
|
|
|
10
10
|
@_attrs_define
|
|
11
|
-
class
|
|
12
|
-
"""
|
|
11
|
+
class AuthResponseOrgType0:
|
|
12
|
+
""" """
|
|
13
13
|
|
|
14
14
|
additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
|
|
15
15
|
|
|
@@ -22,10 +22,10 @@ class UserUsageResponseGraphs:
|
|
|
22
22
|
@classmethod
|
|
23
23
|
def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
|
|
24
24
|
d = dict(src_dict)
|
|
25
|
-
|
|
25
|
+
auth_response_org_type_0 = cls()
|
|
26
26
|
|
|
27
|
-
|
|
28
|
-
return
|
|
27
|
+
auth_response_org_type_0.additional_properties = d
|
|
28
|
+
return auth_response_org_type_0
|
|
29
29
|
|
|
30
30
|
@property
|
|
31
31
|
def additional_keys(self) -> list[str]:
|
|
@@ -15,18 +15,18 @@ T = TypeVar("T", bound="BillingCustomer")
|
|
|
15
15
|
|
|
16
16
|
@_attrs_define
|
|
17
17
|
class BillingCustomer:
|
|
18
|
-
"""Billing customer information.
|
|
18
|
+
"""Billing customer information for an organization.
|
|
19
19
|
|
|
20
20
|
Attributes:
|
|
21
|
-
|
|
22
|
-
has_payment_method (bool): Whether
|
|
21
|
+
org_id (str): Organization ID
|
|
22
|
+
has_payment_method (bool): Whether organization has a payment method on file
|
|
23
23
|
invoice_billing_enabled (bool): Whether invoice billing is enabled (enterprise customers)
|
|
24
24
|
payment_methods (list['PaymentMethod']): List of payment methods on file
|
|
25
25
|
created_at (str): Customer creation timestamp (ISO format)
|
|
26
26
|
stripe_customer_id (Union[None, Unset, str]): Stripe customer ID if applicable
|
|
27
27
|
"""
|
|
28
28
|
|
|
29
|
-
|
|
29
|
+
org_id: str
|
|
30
30
|
has_payment_method: bool
|
|
31
31
|
invoice_billing_enabled: bool
|
|
32
32
|
payment_methods: list["PaymentMethod"]
|
|
@@ -35,7 +35,7 @@ class BillingCustomer:
|
|
|
35
35
|
additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
|
|
36
36
|
|
|
37
37
|
def to_dict(self) -> dict[str, Any]:
|
|
38
|
-
|
|
38
|
+
org_id = self.org_id
|
|
39
39
|
|
|
40
40
|
has_payment_method = self.has_payment_method
|
|
41
41
|
|
|
@@ -58,7 +58,7 @@ class BillingCustomer:
|
|
|
58
58
|
field_dict.update(self.additional_properties)
|
|
59
59
|
field_dict.update(
|
|
60
60
|
{
|
|
61
|
-
"
|
|
61
|
+
"org_id": org_id,
|
|
62
62
|
"has_payment_method": has_payment_method,
|
|
63
63
|
"invoice_billing_enabled": invoice_billing_enabled,
|
|
64
64
|
"payment_methods": payment_methods,
|
|
@@ -75,7 +75,7 @@ class BillingCustomer:
|
|
|
75
75
|
from ..models.payment_method import PaymentMethod
|
|
76
76
|
|
|
77
77
|
d = dict(src_dict)
|
|
78
|
-
|
|
78
|
+
org_id = d.pop("org_id")
|
|
79
79
|
|
|
80
80
|
has_payment_method = d.pop("has_payment_method")
|
|
81
81
|
|
|
@@ -100,7 +100,7 @@ class BillingCustomer:
|
|
|
100
100
|
stripe_customer_id = _parse_stripe_customer_id(d.pop("stripe_customer_id", UNSET))
|
|
101
101
|
|
|
102
102
|
billing_customer = cls(
|
|
103
|
-
|
|
103
|
+
org_id=org_id,
|
|
104
104
|
has_payment_method=has_payment_method,
|
|
105
105
|
invoice_billing_enabled=invoice_billing_enabled,
|
|
106
106
|
payment_methods=payment_methods,
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
from collections.abc import Mapping
|
|
2
|
-
from typing import Any, TypeVar, Union
|
|
2
|
+
from typing import Any, TypeVar, Union, cast
|
|
3
3
|
|
|
4
4
|
from attrs import define as _attrs_define
|
|
5
5
|
from attrs import field as _attrs_field
|
|
@@ -14,57 +14,100 @@ class CheckoutResponse:
|
|
|
14
14
|
"""Response from checkout session creation.
|
|
15
15
|
|
|
16
16
|
Attributes:
|
|
17
|
-
checkout_url (str): URL to redirect user to for payment
|
|
18
|
-
session_id (str): Checkout session ID for status polling
|
|
19
|
-
subscription_id (str): Internal subscription ID
|
|
17
|
+
checkout_url (Union[None, Unset, str]): URL to redirect user to for payment
|
|
18
|
+
session_id (Union[None, Unset, str]): Checkout session ID for status polling
|
|
19
|
+
subscription_id (Union[None, Unset, str]): Internal subscription ID
|
|
20
20
|
requires_checkout (Union[Unset, bool]): Whether checkout is required Default: True.
|
|
21
|
+
billing_disabled (Union[Unset, bool]): Whether billing is disabled on this instance Default: False.
|
|
21
22
|
"""
|
|
22
23
|
|
|
23
|
-
checkout_url: str
|
|
24
|
-
session_id: str
|
|
25
|
-
subscription_id: str
|
|
24
|
+
checkout_url: Union[None, Unset, str] = UNSET
|
|
25
|
+
session_id: Union[None, Unset, str] = UNSET
|
|
26
|
+
subscription_id: Union[None, Unset, str] = UNSET
|
|
26
27
|
requires_checkout: Union[Unset, bool] = True
|
|
28
|
+
billing_disabled: Union[Unset, bool] = False
|
|
27
29
|
additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
|
|
28
30
|
|
|
29
31
|
def to_dict(self) -> dict[str, Any]:
|
|
30
|
-
checkout_url
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
32
|
+
checkout_url: Union[None, Unset, str]
|
|
33
|
+
if isinstance(self.checkout_url, Unset):
|
|
34
|
+
checkout_url = UNSET
|
|
35
|
+
else:
|
|
36
|
+
checkout_url = self.checkout_url
|
|
37
|
+
|
|
38
|
+
session_id: Union[None, Unset, str]
|
|
39
|
+
if isinstance(self.session_id, Unset):
|
|
40
|
+
session_id = UNSET
|
|
41
|
+
else:
|
|
42
|
+
session_id = self.session_id
|
|
43
|
+
|
|
44
|
+
subscription_id: Union[None, Unset, str]
|
|
45
|
+
if isinstance(self.subscription_id, Unset):
|
|
46
|
+
subscription_id = UNSET
|
|
47
|
+
else:
|
|
48
|
+
subscription_id = self.subscription_id
|
|
35
49
|
|
|
36
50
|
requires_checkout = self.requires_checkout
|
|
37
51
|
|
|
52
|
+
billing_disabled = self.billing_disabled
|
|
53
|
+
|
|
38
54
|
field_dict: dict[str, Any] = {}
|
|
39
55
|
field_dict.update(self.additional_properties)
|
|
40
|
-
field_dict.update(
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
56
|
+
field_dict.update({})
|
|
57
|
+
if checkout_url is not UNSET:
|
|
58
|
+
field_dict["checkout_url"] = checkout_url
|
|
59
|
+
if session_id is not UNSET:
|
|
60
|
+
field_dict["session_id"] = session_id
|
|
61
|
+
if subscription_id is not UNSET:
|
|
62
|
+
field_dict["subscription_id"] = subscription_id
|
|
47
63
|
if requires_checkout is not UNSET:
|
|
48
64
|
field_dict["requires_checkout"] = requires_checkout
|
|
65
|
+
if billing_disabled is not UNSET:
|
|
66
|
+
field_dict["billing_disabled"] = billing_disabled
|
|
49
67
|
|
|
50
68
|
return field_dict
|
|
51
69
|
|
|
52
70
|
@classmethod
|
|
53
71
|
def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
|
|
54
72
|
d = dict(src_dict)
|
|
55
|
-
checkout_url = d.pop("checkout_url")
|
|
56
73
|
|
|
57
|
-
|
|
74
|
+
def _parse_checkout_url(data: object) -> Union[None, Unset, str]:
|
|
75
|
+
if data is None:
|
|
76
|
+
return data
|
|
77
|
+
if isinstance(data, Unset):
|
|
78
|
+
return data
|
|
79
|
+
return cast(Union[None, Unset, str], data)
|
|
80
|
+
|
|
81
|
+
checkout_url = _parse_checkout_url(d.pop("checkout_url", UNSET))
|
|
58
82
|
|
|
59
|
-
|
|
83
|
+
def _parse_session_id(data: object) -> Union[None, Unset, str]:
|
|
84
|
+
if data is None:
|
|
85
|
+
return data
|
|
86
|
+
if isinstance(data, Unset):
|
|
87
|
+
return data
|
|
88
|
+
return cast(Union[None, Unset, str], data)
|
|
89
|
+
|
|
90
|
+
session_id = _parse_session_id(d.pop("session_id", UNSET))
|
|
91
|
+
|
|
92
|
+
def _parse_subscription_id(data: object) -> Union[None, Unset, str]:
|
|
93
|
+
if data is None:
|
|
94
|
+
return data
|
|
95
|
+
if isinstance(data, Unset):
|
|
96
|
+
return data
|
|
97
|
+
return cast(Union[None, Unset, str], data)
|
|
98
|
+
|
|
99
|
+
subscription_id = _parse_subscription_id(d.pop("subscription_id", UNSET))
|
|
60
100
|
|
|
61
101
|
requires_checkout = d.pop("requires_checkout", UNSET)
|
|
62
102
|
|
|
103
|
+
billing_disabled = d.pop("billing_disabled", UNSET)
|
|
104
|
+
|
|
63
105
|
checkout_response = cls(
|
|
64
106
|
checkout_url=checkout_url,
|
|
65
107
|
session_id=session_id,
|
|
66
108
|
subscription_id=subscription_id,
|
|
67
109
|
requires_checkout=requires_checkout,
|
|
110
|
+
billing_disabled=billing_disabled,
|
|
68
111
|
)
|
|
69
112
|
|
|
70
113
|
checkout_response.additional_properties = d
|
|
@@ -16,7 +16,8 @@ class CheckoutStatusResponse:
|
|
|
16
16
|
Attributes:
|
|
17
17
|
status (str): Checkout status: 'pending_payment', 'provisioning', 'completed', 'failed'
|
|
18
18
|
subscription_id (str): Internal subscription ID
|
|
19
|
-
resource_id (Union[None, Unset, str]): Resource ID (graph_id
|
|
19
|
+
resource_id (Union[None, Unset, str]): Resource ID (graph_id for both graphs and repositories) once provisioned.
|
|
20
|
+
For repositories, this is the repository slug (e.g., 'sec')
|
|
20
21
|
operation_id (Union[None, Unset, str]): SSE operation ID for monitoring provisioning progress
|
|
21
22
|
error (Union[None, Unset, str]): Error message if checkout failed
|
|
22
23
|
"""
|
|
@@ -20,7 +20,8 @@ class CreateCheckoutRequest:
|
|
|
20
20
|
Attributes:
|
|
21
21
|
plan_name (str): Billing plan name (e.g., 'kuzu-standard')
|
|
22
22
|
resource_type (str): Resource type ('graph' or 'repository')
|
|
23
|
-
resource_config (CreateCheckoutRequestResourceConfig): Configuration for the resource to be provisioned
|
|
23
|
+
resource_config (CreateCheckoutRequestResourceConfig): Configuration for the resource to be provisioned. For
|
|
24
|
+
repositories: {'repository_name': 'graph_id'} where graph_id is the repository slug (e.g., 'sec')
|
|
24
25
|
"""
|
|
25
26
|
|
|
26
27
|
plan_name: str
|
|
@@ -9,7 +9,10 @@ T = TypeVar("T", bound="CreateCheckoutRequestResourceConfig")
|
|
|
9
9
|
|
|
10
10
|
@_attrs_define
|
|
11
11
|
class CreateCheckoutRequestResourceConfig:
|
|
12
|
-
"""Configuration for the resource to be provisioned
|
|
12
|
+
"""Configuration for the resource to be provisioned. For repositories: {'repository_name': 'graph_id'} where graph_id
|
|
13
|
+
is the repository slug (e.g., 'sec')
|
|
14
|
+
|
|
15
|
+
"""
|
|
13
16
|
|
|
14
17
|
additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
|
|
15
18
|
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
from collections.abc import Mapping
|
|
2
|
+
from typing import Any, TypeVar, Union
|
|
3
|
+
|
|
4
|
+
from attrs import define as _attrs_define
|
|
5
|
+
from attrs import field as _attrs_field
|
|
6
|
+
|
|
7
|
+
from ..models.org_type import OrgType
|
|
8
|
+
from ..types import UNSET, Unset
|
|
9
|
+
|
|
10
|
+
T = TypeVar("T", bound="CreateOrgRequest")
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
@_attrs_define
|
|
14
|
+
class CreateOrgRequest:
|
|
15
|
+
"""Request to create an organization.
|
|
16
|
+
|
|
17
|
+
Attributes:
|
|
18
|
+
name (str):
|
|
19
|
+
org_type (Union[Unset, OrgType]):
|
|
20
|
+
"""
|
|
21
|
+
|
|
22
|
+
name: str
|
|
23
|
+
org_type: Union[Unset, OrgType] = UNSET
|
|
24
|
+
additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
|
|
25
|
+
|
|
26
|
+
def to_dict(self) -> dict[str, Any]:
|
|
27
|
+
name = self.name
|
|
28
|
+
|
|
29
|
+
org_type: Union[Unset, str] = UNSET
|
|
30
|
+
if not isinstance(self.org_type, Unset):
|
|
31
|
+
org_type = self.org_type.value
|
|
32
|
+
|
|
33
|
+
field_dict: dict[str, Any] = {}
|
|
34
|
+
field_dict.update(self.additional_properties)
|
|
35
|
+
field_dict.update(
|
|
36
|
+
{
|
|
37
|
+
"name": name,
|
|
38
|
+
}
|
|
39
|
+
)
|
|
40
|
+
if org_type is not UNSET:
|
|
41
|
+
field_dict["org_type"] = org_type
|
|
42
|
+
|
|
43
|
+
return field_dict
|
|
44
|
+
|
|
45
|
+
@classmethod
|
|
46
|
+
def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
|
|
47
|
+
d = dict(src_dict)
|
|
48
|
+
name = d.pop("name")
|
|
49
|
+
|
|
50
|
+
_org_type = d.pop("org_type", UNSET)
|
|
51
|
+
org_type: Union[Unset, OrgType]
|
|
52
|
+
if isinstance(_org_type, Unset):
|
|
53
|
+
org_type = UNSET
|
|
54
|
+
else:
|
|
55
|
+
org_type = OrgType(_org_type)
|
|
56
|
+
|
|
57
|
+
create_org_request = cls(
|
|
58
|
+
name=name,
|
|
59
|
+
org_type=org_type,
|
|
60
|
+
)
|
|
61
|
+
|
|
62
|
+
create_org_request.additional_properties = d
|
|
63
|
+
return create_org_request
|
|
64
|
+
|
|
65
|
+
@property
|
|
66
|
+
def additional_keys(self) -> list[str]:
|
|
67
|
+
return list(self.additional_properties.keys())
|
|
68
|
+
|
|
69
|
+
def __getitem__(self, key: str) -> Any:
|
|
70
|
+
return self.additional_properties[key]
|
|
71
|
+
|
|
72
|
+
def __setitem__(self, key: str, value: Any) -> None:
|
|
73
|
+
self.additional_properties[key] = value
|
|
74
|
+
|
|
75
|
+
def __delitem__(self, key: str) -> None:
|
|
76
|
+
del self.additional_properties[key]
|
|
77
|
+
|
|
78
|
+
def __contains__(self, key: str) -> bool:
|
|
79
|
+
return key in self.additional_properties
|
|
@@ -11,42 +11,45 @@ T = TypeVar("T", bound="GraphSubscriptionTier")
|
|
|
11
11
|
|
|
12
12
|
@_attrs_define
|
|
13
13
|
class GraphSubscriptionTier:
|
|
14
|
-
"""Information about a graph
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
14
|
+
"""Information about a graph infrastructure tier.
|
|
15
|
+
|
|
16
|
+
Each tier represents a per-graph subscription option with specific
|
|
17
|
+
infrastructure, performance, and pricing characteristics.
|
|
18
|
+
|
|
19
|
+
Attributes:
|
|
20
|
+
name (str): Infrastructure tier identifier (e.g., kuzu-standard)
|
|
21
|
+
display_name (str): Display name for UI
|
|
22
|
+
description (str): Tier description
|
|
23
|
+
monthly_price_per_graph (float): Monthly price in USD per graph
|
|
24
|
+
monthly_credits_per_graph (int): Monthly AI credits per graph
|
|
25
|
+
storage_included_gb (int): Storage included in GB
|
|
26
|
+
storage_overage_per_gb (float): Overage cost per GB per month
|
|
27
|
+
infrastructure (str): Infrastructure description
|
|
28
|
+
features (list[str]): List of features
|
|
29
|
+
backup_retention_days (int): Backup retention in days
|
|
30
|
+
priority_support (bool): Whether priority support is included
|
|
31
|
+
api_rate_multiplier (float): API rate multiplier
|
|
32
|
+
backend (str): Database backend (kuzu or neo4j)
|
|
33
|
+
max_queries_per_hour (Union[None, Unset, int]): Maximum queries per hour
|
|
34
|
+
max_subgraphs (Union[Unset, int]): Maximum subgraphs supported Default: 0.
|
|
35
|
+
instance_type (Union[None, Unset, str]): Instance type
|
|
33
36
|
"""
|
|
34
37
|
|
|
35
38
|
name: str
|
|
36
39
|
display_name: str
|
|
37
40
|
description: str
|
|
38
|
-
|
|
39
|
-
|
|
41
|
+
monthly_price_per_graph: float
|
|
42
|
+
monthly_credits_per_graph: int
|
|
40
43
|
storage_included_gb: int
|
|
41
44
|
storage_overage_per_gb: float
|
|
42
|
-
|
|
45
|
+
infrastructure: str
|
|
43
46
|
features: list[str]
|
|
44
47
|
backup_retention_days: int
|
|
45
48
|
priority_support: bool
|
|
46
49
|
api_rate_multiplier: float
|
|
47
50
|
backend: str
|
|
48
51
|
max_queries_per_hour: Union[None, Unset, int] = UNSET
|
|
49
|
-
max_subgraphs: Union[
|
|
52
|
+
max_subgraphs: Union[Unset, int] = 0
|
|
50
53
|
instance_type: Union[None, Unset, str] = UNSET
|
|
51
54
|
additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
|
|
52
55
|
|
|
@@ -57,15 +60,15 @@ class GraphSubscriptionTier:
|
|
|
57
60
|
|
|
58
61
|
description = self.description
|
|
59
62
|
|
|
60
|
-
|
|
63
|
+
monthly_price_per_graph = self.monthly_price_per_graph
|
|
61
64
|
|
|
62
|
-
|
|
65
|
+
monthly_credits_per_graph = self.monthly_credits_per_graph
|
|
63
66
|
|
|
64
67
|
storage_included_gb = self.storage_included_gb
|
|
65
68
|
|
|
66
69
|
storage_overage_per_gb = self.storage_overage_per_gb
|
|
67
70
|
|
|
68
|
-
|
|
71
|
+
infrastructure = self.infrastructure
|
|
69
72
|
|
|
70
73
|
features = self.features
|
|
71
74
|
|
|
@@ -83,11 +86,7 @@ class GraphSubscriptionTier:
|
|
|
83
86
|
else:
|
|
84
87
|
max_queries_per_hour = self.max_queries_per_hour
|
|
85
88
|
|
|
86
|
-
max_subgraphs
|
|
87
|
-
if isinstance(self.max_subgraphs, Unset):
|
|
88
|
-
max_subgraphs = UNSET
|
|
89
|
-
else:
|
|
90
|
-
max_subgraphs = self.max_subgraphs
|
|
89
|
+
max_subgraphs = self.max_subgraphs
|
|
91
90
|
|
|
92
91
|
instance_type: Union[None, Unset, str]
|
|
93
92
|
if isinstance(self.instance_type, Unset):
|
|
@@ -102,11 +101,11 @@ class GraphSubscriptionTier:
|
|
|
102
101
|
"name": name,
|
|
103
102
|
"display_name": display_name,
|
|
104
103
|
"description": description,
|
|
105
|
-
"
|
|
106
|
-
"
|
|
104
|
+
"monthly_price_per_graph": monthly_price_per_graph,
|
|
105
|
+
"monthly_credits_per_graph": monthly_credits_per_graph,
|
|
107
106
|
"storage_included_gb": storage_included_gb,
|
|
108
107
|
"storage_overage_per_gb": storage_overage_per_gb,
|
|
109
|
-
"
|
|
108
|
+
"infrastructure": infrastructure,
|
|
110
109
|
"features": features,
|
|
111
110
|
"backup_retention_days": backup_retention_days,
|
|
112
111
|
"priority_support": priority_support,
|
|
@@ -132,15 +131,15 @@ class GraphSubscriptionTier:
|
|
|
132
131
|
|
|
133
132
|
description = d.pop("description")
|
|
134
133
|
|
|
135
|
-
|
|
134
|
+
monthly_price_per_graph = d.pop("monthly_price_per_graph")
|
|
136
135
|
|
|
137
|
-
|
|
136
|
+
monthly_credits_per_graph = d.pop("monthly_credits_per_graph")
|
|
138
137
|
|
|
139
138
|
storage_included_gb = d.pop("storage_included_gb")
|
|
140
139
|
|
|
141
140
|
storage_overage_per_gb = d.pop("storage_overage_per_gb")
|
|
142
141
|
|
|
143
|
-
|
|
142
|
+
infrastructure = d.pop("infrastructure")
|
|
144
143
|
|
|
145
144
|
features = cast(list[str], d.pop("features"))
|
|
146
145
|
|
|
@@ -163,14 +162,7 @@ class GraphSubscriptionTier:
|
|
|
163
162
|
d.pop("max_queries_per_hour", UNSET)
|
|
164
163
|
)
|
|
165
164
|
|
|
166
|
-
|
|
167
|
-
if data is None:
|
|
168
|
-
return data
|
|
169
|
-
if isinstance(data, Unset):
|
|
170
|
-
return data
|
|
171
|
-
return cast(Union[None, Unset, int], data)
|
|
172
|
-
|
|
173
|
-
max_subgraphs = _parse_max_subgraphs(d.pop("max_subgraphs", UNSET))
|
|
165
|
+
max_subgraphs = d.pop("max_subgraphs", UNSET)
|
|
174
166
|
|
|
175
167
|
def _parse_instance_type(data: object) -> Union[None, Unset, str]:
|
|
176
168
|
if data is None:
|
|
@@ -185,11 +177,11 @@ class GraphSubscriptionTier:
|
|
|
185
177
|
name=name,
|
|
186
178
|
display_name=display_name,
|
|
187
179
|
description=description,
|
|
188
|
-
|
|
189
|
-
|
|
180
|
+
monthly_price_per_graph=monthly_price_per_graph,
|
|
181
|
+
monthly_credits_per_graph=monthly_credits_per_graph,
|
|
190
182
|
storage_included_gb=storage_included_gb,
|
|
191
183
|
storage_overage_per_gb=storage_overage_per_gb,
|
|
192
|
-
|
|
184
|
+
infrastructure=infrastructure,
|
|
193
185
|
features=features,
|
|
194
186
|
backup_retention_days=backup_retention_days,
|
|
195
187
|
priority_support=priority_support,
|
|
@@ -16,14 +16,20 @@ T = TypeVar("T", bound="GraphSubscriptions")
|
|
|
16
16
|
class GraphSubscriptions:
|
|
17
17
|
"""Graph subscription offerings.
|
|
18
18
|
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
19
|
+
Graph subscriptions are per-graph, not per-organization. Each graph
|
|
20
|
+
created by an organization has its own subscription with its own
|
|
21
|
+
infrastructure tier, pricing, and credit allocation.
|
|
22
|
+
|
|
23
|
+
Attributes:
|
|
24
|
+
description (str): Description of graph subscriptions
|
|
25
|
+
pricing_model (str): Pricing model type (per_graph or per_organization)
|
|
26
|
+
tiers (list['GraphSubscriptionTier']): Available infrastructure tiers
|
|
27
|
+
storage (StorageInfo): Storage pricing information.
|
|
28
|
+
notes (list[str]): Important notes
|
|
24
29
|
"""
|
|
25
30
|
|
|
26
31
|
description: str
|
|
32
|
+
pricing_model: str
|
|
27
33
|
tiers: list["GraphSubscriptionTier"]
|
|
28
34
|
storage: "StorageInfo"
|
|
29
35
|
notes: list[str]
|
|
@@ -32,6 +38,8 @@ class GraphSubscriptions:
|
|
|
32
38
|
def to_dict(self) -> dict[str, Any]:
|
|
33
39
|
description = self.description
|
|
34
40
|
|
|
41
|
+
pricing_model = self.pricing_model
|
|
42
|
+
|
|
35
43
|
tiers = []
|
|
36
44
|
for tiers_item_data in self.tiers:
|
|
37
45
|
tiers_item = tiers_item_data.to_dict()
|
|
@@ -46,6 +54,7 @@ class GraphSubscriptions:
|
|
|
46
54
|
field_dict.update(
|
|
47
55
|
{
|
|
48
56
|
"description": description,
|
|
57
|
+
"pricing_model": pricing_model,
|
|
49
58
|
"tiers": tiers,
|
|
50
59
|
"storage": storage,
|
|
51
60
|
"notes": notes,
|
|
@@ -62,6 +71,8 @@ class GraphSubscriptions:
|
|
|
62
71
|
d = dict(src_dict)
|
|
63
72
|
description = d.pop("description")
|
|
64
73
|
|
|
74
|
+
pricing_model = d.pop("pricing_model")
|
|
75
|
+
|
|
65
76
|
tiers = []
|
|
66
77
|
_tiers = d.pop("tiers")
|
|
67
78
|
for tiers_item_data in _tiers:
|
|
@@ -75,6 +86,7 @@ class GraphSubscriptions:
|
|
|
75
86
|
|
|
76
87
|
graph_subscriptions = cls(
|
|
77
88
|
description=description,
|
|
89
|
+
pricing_model=pricing_model,
|
|
78
90
|
tiers=tiers,
|
|
79
91
|
storage=storage,
|
|
80
92
|
notes=notes,
|