robosystems-client 0.2.10__py3-none-any.whl → 0.2.12__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.

Files changed (73) hide show
  1. robosystems_client/api/auth/register_user.py +36 -8
  2. robosystems_client/api/billing/__init__.py +1 -0
  3. robosystems_client/api/billing/cancel_org_subscription.py +198 -0
  4. robosystems_client/api/billing/create_checkout_session.py +238 -0
  5. robosystems_client/api/billing/get_checkout_status.py +221 -0
  6. robosystems_client/api/billing/get_org_billing_customer.py +189 -0
  7. robosystems_client/api/billing/get_org_subscription.py +190 -0
  8. robosystems_client/api/billing/get_org_upcoming_invoice.py +203 -0
  9. robosystems_client/api/billing/list_org_invoices.py +210 -0
  10. robosystems_client/api/billing/list_org_subscriptions.py +194 -0
  11. robosystems_client/api/billing/update_org_payment_method.py +207 -0
  12. robosystems_client/api/org/__init__.py +1 -0
  13. robosystems_client/api/org/create_org.py +174 -0
  14. robosystems_client/api/org/get_org.py +165 -0
  15. robosystems_client/api/org/list_org_graphs.py +170 -0
  16. robosystems_client/api/{user/get_user_limits.py → org/list_user_orgs.py} +21 -25
  17. robosystems_client/api/org/update_org.py +187 -0
  18. robosystems_client/api/org_members/__init__.py +1 -0
  19. robosystems_client/api/org_members/invite_org_member.py +207 -0
  20. robosystems_client/api/org_members/list_org_members.py +165 -0
  21. robosystems_client/api/org_members/remove_org_member.py +176 -0
  22. robosystems_client/api/org_members/update_org_member_role.py +200 -0
  23. robosystems_client/api/org_usage/__init__.py +1 -0
  24. robosystems_client/api/org_usage/get_org_limits.py +165 -0
  25. robosystems_client/api/org_usage/get_org_usage.py +186 -0
  26. robosystems_client/api/service_offerings/get_service_offerings.py +32 -8
  27. robosystems_client/api/usage/get_graph_usage_analytics.py +4 -4
  28. robosystems_client/models/__init__.py +68 -6
  29. robosystems_client/models/auth_response.py +35 -0
  30. robosystems_client/models/{user_usage_response_graphs.py → auth_response_org_type_0.py} +6 -6
  31. robosystems_client/models/billing_customer.py +128 -0
  32. robosystems_client/models/checkout_response.py +130 -0
  33. robosystems_client/models/checkout_status_response.py +130 -0
  34. robosystems_client/models/create_checkout_request.py +88 -0
  35. robosystems_client/models/create_checkout_request_resource_config.py +44 -0
  36. robosystems_client/models/create_org_request.py +79 -0
  37. robosystems_client/models/graph_subscription_tier.py +40 -48
  38. robosystems_client/models/graph_subscriptions.py +17 -5
  39. robosystems_client/models/invite_member_request.py +93 -0
  40. robosystems_client/models/invoice.py +244 -0
  41. robosystems_client/models/invoice_line_item.py +118 -0
  42. robosystems_client/models/invoices_response.py +90 -0
  43. robosystems_client/models/list_org_graphs_response_200_item.py +44 -0
  44. robosystems_client/models/org_detail_response.py +174 -0
  45. robosystems_client/models/org_detail_response_graphs_item.py +44 -0
  46. robosystems_client/models/org_detail_response_limits_type_0.py +44 -0
  47. robosystems_client/models/org_detail_response_members_item.py +44 -0
  48. robosystems_client/models/org_limits_response.py +98 -0
  49. robosystems_client/models/org_limits_response_current_usage.py +44 -0
  50. robosystems_client/models/org_list_response.py +82 -0
  51. robosystems_client/models/org_member_list_response.py +90 -0
  52. robosystems_client/models/org_member_response.py +104 -0
  53. robosystems_client/models/org_response.py +121 -0
  54. robosystems_client/models/org_role.py +10 -0
  55. robosystems_client/models/org_type.py +10 -0
  56. robosystems_client/models/org_usage_response.py +146 -0
  57. robosystems_client/models/org_usage_response_daily_trend_item.py +44 -0
  58. robosystems_client/models/org_usage_response_graph_details_item.py +44 -0
  59. robosystems_client/models/org_usage_summary.py +158 -0
  60. robosystems_client/models/payment_method.py +158 -0
  61. robosystems_client/models/repository_subscriptions.py +15 -4
  62. robosystems_client/models/service_offerings_response.py +15 -0
  63. robosystems_client/models/upcoming_invoice.py +128 -0
  64. robosystems_client/models/update_member_role_request.py +62 -0
  65. robosystems_client/models/update_org_request.py +103 -0
  66. robosystems_client/models/update_payment_method_request.py +60 -0
  67. robosystems_client/models/update_payment_method_response.py +74 -0
  68. {robosystems_client-0.2.10.dist-info → robosystems_client-0.2.12.dist-info}/METADATA +1 -1
  69. {robosystems_client-0.2.10.dist-info → robosystems_client-0.2.12.dist-info}/RECORD +71 -17
  70. robosystems_client/models/user_limits_response.py +0 -95
  71. robosystems_client/models/user_usage_response.py +0 -90
  72. {robosystems_client-0.2.10.dist-info → robosystems_client-0.2.12.dist-info}/WHEEL +0 -0
  73. {robosystems_client-0.2.10.dist-info → robosystems_client-0.2.12.dist-info}/licenses/LICENSE +0 -0
@@ -0,0 +1,221 @@
1
+ from http import HTTPStatus
2
+ from typing import Any, Optional, Union
3
+
4
+ import httpx
5
+
6
+ from ... import errors
7
+ from ...client import AuthenticatedClient, Client
8
+ from ...models.checkout_status_response import CheckoutStatusResponse
9
+ from ...models.http_validation_error import HTTPValidationError
10
+ from ...types import Response
11
+
12
+
13
+ def _get_kwargs(
14
+ session_id: str,
15
+ ) -> dict[str, Any]:
16
+ _kwargs: dict[str, Any] = {
17
+ "method": "get",
18
+ "url": f"/v1/billing/checkout/{session_id}/status",
19
+ }
20
+
21
+ return _kwargs
22
+
23
+
24
+ def _parse_response(
25
+ *, client: Union[AuthenticatedClient, Client], response: httpx.Response
26
+ ) -> Optional[Union[CheckoutStatusResponse, HTTPValidationError]]:
27
+ if response.status_code == 200:
28
+ response_200 = CheckoutStatusResponse.from_dict(response.json())
29
+
30
+ return response_200
31
+
32
+ if response.status_code == 422:
33
+ response_422 = HTTPValidationError.from_dict(response.json())
34
+
35
+ return response_422
36
+
37
+ if client.raise_on_unexpected_status:
38
+ raise errors.UnexpectedStatus(response.status_code, response.content)
39
+ else:
40
+ return None
41
+
42
+
43
+ def _build_response(
44
+ *, client: Union[AuthenticatedClient, Client], response: httpx.Response
45
+ ) -> Response[Union[CheckoutStatusResponse, HTTPValidationError]]:
46
+ return Response(
47
+ status_code=HTTPStatus(response.status_code),
48
+ content=response.content,
49
+ headers=response.headers,
50
+ parsed=_parse_response(client=client, response=response),
51
+ )
52
+
53
+
54
+ def sync_detailed(
55
+ session_id: str,
56
+ *,
57
+ client: AuthenticatedClient,
58
+ ) -> Response[Union[CheckoutStatusResponse, HTTPValidationError]]:
59
+ """Get Checkout Session Status
60
+
61
+ Poll the status of a checkout session.
62
+
63
+ Frontend should poll this endpoint after user returns from Stripe Checkout
64
+ to determine when the resource is ready.
65
+
66
+ **Status Values:**
67
+ - `pending_payment`: Waiting for payment to complete
68
+ - `provisioning`: Payment confirmed, resource being created
69
+ - `completed`: Resource is ready (resource_id will be set)
70
+ - `failed`: Something went wrong (error field will be set)
71
+
72
+ **When status is 'completed':**
73
+ - For graphs: `resource_id` will be the graph_id, and `operation_id` can be used to monitor SSE
74
+ progress
75
+ - For repositories: `resource_id` will be the repository name and access is immediately available
76
+
77
+ Args:
78
+ session_id (str):
79
+
80
+ Raises:
81
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
82
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
83
+
84
+ Returns:
85
+ Response[Union[CheckoutStatusResponse, HTTPValidationError]]
86
+ """
87
+
88
+ kwargs = _get_kwargs(
89
+ session_id=session_id,
90
+ )
91
+
92
+ response = client.get_httpx_client().request(
93
+ **kwargs,
94
+ )
95
+
96
+ return _build_response(client=client, response=response)
97
+
98
+
99
+ def sync(
100
+ session_id: str,
101
+ *,
102
+ client: AuthenticatedClient,
103
+ ) -> Optional[Union[CheckoutStatusResponse, HTTPValidationError]]:
104
+ """Get Checkout Session Status
105
+
106
+ Poll the status of a checkout session.
107
+
108
+ Frontend should poll this endpoint after user returns from Stripe Checkout
109
+ to determine when the resource is ready.
110
+
111
+ **Status Values:**
112
+ - `pending_payment`: Waiting for payment to complete
113
+ - `provisioning`: Payment confirmed, resource being created
114
+ - `completed`: Resource is ready (resource_id will be set)
115
+ - `failed`: Something went wrong (error field will be set)
116
+
117
+ **When status is 'completed':**
118
+ - For graphs: `resource_id` will be the graph_id, and `operation_id` can be used to monitor SSE
119
+ progress
120
+ - For repositories: `resource_id` will be the repository name and access is immediately available
121
+
122
+ Args:
123
+ session_id (str):
124
+
125
+ Raises:
126
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
127
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
128
+
129
+ Returns:
130
+ Union[CheckoutStatusResponse, HTTPValidationError]
131
+ """
132
+
133
+ return sync_detailed(
134
+ session_id=session_id,
135
+ client=client,
136
+ ).parsed
137
+
138
+
139
+ async def asyncio_detailed(
140
+ session_id: str,
141
+ *,
142
+ client: AuthenticatedClient,
143
+ ) -> Response[Union[CheckoutStatusResponse, HTTPValidationError]]:
144
+ """Get Checkout Session Status
145
+
146
+ Poll the status of a checkout session.
147
+
148
+ Frontend should poll this endpoint after user returns from Stripe Checkout
149
+ to determine when the resource is ready.
150
+
151
+ **Status Values:**
152
+ - `pending_payment`: Waiting for payment to complete
153
+ - `provisioning`: Payment confirmed, resource being created
154
+ - `completed`: Resource is ready (resource_id will be set)
155
+ - `failed`: Something went wrong (error field will be set)
156
+
157
+ **When status is 'completed':**
158
+ - For graphs: `resource_id` will be the graph_id, and `operation_id` can be used to monitor SSE
159
+ progress
160
+ - For repositories: `resource_id` will be the repository name and access is immediately available
161
+
162
+ Args:
163
+ session_id (str):
164
+
165
+ Raises:
166
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
167
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
168
+
169
+ Returns:
170
+ Response[Union[CheckoutStatusResponse, HTTPValidationError]]
171
+ """
172
+
173
+ kwargs = _get_kwargs(
174
+ session_id=session_id,
175
+ )
176
+
177
+ response = await client.get_async_httpx_client().request(**kwargs)
178
+
179
+ return _build_response(client=client, response=response)
180
+
181
+
182
+ async def asyncio(
183
+ session_id: str,
184
+ *,
185
+ client: AuthenticatedClient,
186
+ ) -> Optional[Union[CheckoutStatusResponse, HTTPValidationError]]:
187
+ """Get Checkout Session Status
188
+
189
+ Poll the status of a checkout session.
190
+
191
+ Frontend should poll this endpoint after user returns from Stripe Checkout
192
+ to determine when the resource is ready.
193
+
194
+ **Status Values:**
195
+ - `pending_payment`: Waiting for payment to complete
196
+ - `provisioning`: Payment confirmed, resource being created
197
+ - `completed`: Resource is ready (resource_id will be set)
198
+ - `failed`: Something went wrong (error field will be set)
199
+
200
+ **When status is 'completed':**
201
+ - For graphs: `resource_id` will be the graph_id, and `operation_id` can be used to monitor SSE
202
+ progress
203
+ - For repositories: `resource_id` will be the repository name and access is immediately available
204
+
205
+ Args:
206
+ session_id (str):
207
+
208
+ Raises:
209
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
210
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
211
+
212
+ Returns:
213
+ Union[CheckoutStatusResponse, HTTPValidationError]
214
+ """
215
+
216
+ return (
217
+ await asyncio_detailed(
218
+ session_id=session_id,
219
+ client=client,
220
+ )
221
+ ).parsed
@@ -0,0 +1,189 @@
1
+ from http import HTTPStatus
2
+ from typing import Any, Optional, Union
3
+
4
+ import httpx
5
+
6
+ from ... import errors
7
+ from ...client import AuthenticatedClient, Client
8
+ from ...models.billing_customer import BillingCustomer
9
+ from ...models.http_validation_error import HTTPValidationError
10
+ from ...types import Response
11
+
12
+
13
+ def _get_kwargs(
14
+ org_id: str,
15
+ ) -> dict[str, Any]:
16
+ _kwargs: dict[str, Any] = {
17
+ "method": "get",
18
+ "url": f"/v1/billing/customer/{org_id}",
19
+ }
20
+
21
+ return _kwargs
22
+
23
+
24
+ def _parse_response(
25
+ *, client: Union[AuthenticatedClient, Client], response: httpx.Response
26
+ ) -> Optional[Union[BillingCustomer, HTTPValidationError]]:
27
+ if response.status_code == 200:
28
+ response_200 = BillingCustomer.from_dict(response.json())
29
+
30
+ return response_200
31
+
32
+ if response.status_code == 422:
33
+ response_422 = HTTPValidationError.from_dict(response.json())
34
+
35
+ return response_422
36
+
37
+ if client.raise_on_unexpected_status:
38
+ raise errors.UnexpectedStatus(response.status_code, response.content)
39
+ else:
40
+ return None
41
+
42
+
43
+ def _build_response(
44
+ *, client: Union[AuthenticatedClient, Client], response: httpx.Response
45
+ ) -> Response[Union[BillingCustomer, HTTPValidationError]]:
46
+ return Response(
47
+ status_code=HTTPStatus(response.status_code),
48
+ content=response.content,
49
+ headers=response.headers,
50
+ parsed=_parse_response(client=client, response=response),
51
+ )
52
+
53
+
54
+ def sync_detailed(
55
+ org_id: str,
56
+ *,
57
+ client: AuthenticatedClient,
58
+ ) -> Response[Union[BillingCustomer, HTTPValidationError]]:
59
+ """Get Organization Customer Info
60
+
61
+ Get billing customer information for an organization including payment methods on file.
62
+
63
+ Returns customer details, payment methods, and whether invoice billing is enabled.
64
+
65
+ **Requirements:**
66
+ - User must be a member of the organization
67
+ - Sensitive payment details are only visible to owners
68
+
69
+ Args:
70
+ org_id (str):
71
+
72
+ Raises:
73
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
74
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
75
+
76
+ Returns:
77
+ Response[Union[BillingCustomer, HTTPValidationError]]
78
+ """
79
+
80
+ kwargs = _get_kwargs(
81
+ org_id=org_id,
82
+ )
83
+
84
+ response = client.get_httpx_client().request(
85
+ **kwargs,
86
+ )
87
+
88
+ return _build_response(client=client, response=response)
89
+
90
+
91
+ def sync(
92
+ org_id: str,
93
+ *,
94
+ client: AuthenticatedClient,
95
+ ) -> Optional[Union[BillingCustomer, HTTPValidationError]]:
96
+ """Get Organization Customer Info
97
+
98
+ Get billing customer information for an organization including payment methods on file.
99
+
100
+ Returns customer details, payment methods, and whether invoice billing is enabled.
101
+
102
+ **Requirements:**
103
+ - User must be a member of the organization
104
+ - Sensitive payment details are only visible to owners
105
+
106
+ Args:
107
+ org_id (str):
108
+
109
+ Raises:
110
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
111
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
112
+
113
+ Returns:
114
+ Union[BillingCustomer, HTTPValidationError]
115
+ """
116
+
117
+ return sync_detailed(
118
+ org_id=org_id,
119
+ client=client,
120
+ ).parsed
121
+
122
+
123
+ async def asyncio_detailed(
124
+ org_id: str,
125
+ *,
126
+ client: AuthenticatedClient,
127
+ ) -> Response[Union[BillingCustomer, HTTPValidationError]]:
128
+ """Get Organization Customer Info
129
+
130
+ Get billing customer information for an organization including payment methods on file.
131
+
132
+ Returns customer details, payment methods, and whether invoice billing is enabled.
133
+
134
+ **Requirements:**
135
+ - User must be a member of the organization
136
+ - Sensitive payment details are only visible to owners
137
+
138
+ Args:
139
+ org_id (str):
140
+
141
+ Raises:
142
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
143
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
144
+
145
+ Returns:
146
+ Response[Union[BillingCustomer, HTTPValidationError]]
147
+ """
148
+
149
+ kwargs = _get_kwargs(
150
+ org_id=org_id,
151
+ )
152
+
153
+ response = await client.get_async_httpx_client().request(**kwargs)
154
+
155
+ return _build_response(client=client, response=response)
156
+
157
+
158
+ async def asyncio(
159
+ org_id: str,
160
+ *,
161
+ client: AuthenticatedClient,
162
+ ) -> Optional[Union[BillingCustomer, HTTPValidationError]]:
163
+ """Get Organization Customer Info
164
+
165
+ Get billing customer information for an organization including payment methods on file.
166
+
167
+ Returns customer details, payment methods, and whether invoice billing is enabled.
168
+
169
+ **Requirements:**
170
+ - User must be a member of the organization
171
+ - Sensitive payment details are only visible to owners
172
+
173
+ Args:
174
+ org_id (str):
175
+
176
+ Raises:
177
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
178
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
179
+
180
+ Returns:
181
+ Union[BillingCustomer, HTTPValidationError]
182
+ """
183
+
184
+ return (
185
+ await asyncio_detailed(
186
+ org_id=org_id,
187
+ client=client,
188
+ )
189
+ ).parsed
@@ -0,0 +1,190 @@
1
+ from http import HTTPStatus
2
+ from typing import Any, Optional, Union
3
+
4
+ import httpx
5
+
6
+ from ... import errors
7
+ from ...client import AuthenticatedClient, Client
8
+ from ...models.graph_subscription_response import GraphSubscriptionResponse
9
+ from ...models.http_validation_error import HTTPValidationError
10
+ from ...types import Response
11
+
12
+
13
+ def _get_kwargs(
14
+ org_id: str,
15
+ subscription_id: str,
16
+ ) -> dict[str, Any]:
17
+ _kwargs: dict[str, Any] = {
18
+ "method": "get",
19
+ "url": f"/v1/billing/subscriptions/{org_id}/subscription/{subscription_id}",
20
+ }
21
+
22
+ return _kwargs
23
+
24
+
25
+ def _parse_response(
26
+ *, client: Union[AuthenticatedClient, Client], response: httpx.Response
27
+ ) -> Optional[Union[GraphSubscriptionResponse, HTTPValidationError]]:
28
+ if response.status_code == 200:
29
+ response_200 = GraphSubscriptionResponse.from_dict(response.json())
30
+
31
+ return response_200
32
+
33
+ if response.status_code == 422:
34
+ response_422 = HTTPValidationError.from_dict(response.json())
35
+
36
+ return response_422
37
+
38
+ if client.raise_on_unexpected_status:
39
+ raise errors.UnexpectedStatus(response.status_code, response.content)
40
+ else:
41
+ return None
42
+
43
+
44
+ def _build_response(
45
+ *, client: Union[AuthenticatedClient, Client], response: httpx.Response
46
+ ) -> Response[Union[GraphSubscriptionResponse, HTTPValidationError]]:
47
+ return Response(
48
+ status_code=HTTPStatus(response.status_code),
49
+ content=response.content,
50
+ headers=response.headers,
51
+ parsed=_parse_response(client=client, response=response),
52
+ )
53
+
54
+
55
+ def sync_detailed(
56
+ org_id: str,
57
+ subscription_id: str,
58
+ *,
59
+ client: AuthenticatedClient,
60
+ ) -> Response[Union[GraphSubscriptionResponse, HTTPValidationError]]:
61
+ """Get Organization Subscription Details
62
+
63
+ Get detailed information about a specific subscription.
64
+
65
+ **Requirements:**
66
+ - User must be a member of the organization
67
+
68
+ Args:
69
+ org_id (str):
70
+ subscription_id (str):
71
+
72
+ Raises:
73
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
74
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
75
+
76
+ Returns:
77
+ Response[Union[GraphSubscriptionResponse, HTTPValidationError]]
78
+ """
79
+
80
+ kwargs = _get_kwargs(
81
+ org_id=org_id,
82
+ subscription_id=subscription_id,
83
+ )
84
+
85
+ response = client.get_httpx_client().request(
86
+ **kwargs,
87
+ )
88
+
89
+ return _build_response(client=client, response=response)
90
+
91
+
92
+ def sync(
93
+ org_id: str,
94
+ subscription_id: str,
95
+ *,
96
+ client: AuthenticatedClient,
97
+ ) -> Optional[Union[GraphSubscriptionResponse, HTTPValidationError]]:
98
+ """Get Organization Subscription Details
99
+
100
+ Get detailed information about a specific subscription.
101
+
102
+ **Requirements:**
103
+ - User must be a member of the organization
104
+
105
+ Args:
106
+ org_id (str):
107
+ subscription_id (str):
108
+
109
+ Raises:
110
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
111
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
112
+
113
+ Returns:
114
+ Union[GraphSubscriptionResponse, HTTPValidationError]
115
+ """
116
+
117
+ return sync_detailed(
118
+ org_id=org_id,
119
+ subscription_id=subscription_id,
120
+ client=client,
121
+ ).parsed
122
+
123
+
124
+ async def asyncio_detailed(
125
+ org_id: str,
126
+ subscription_id: str,
127
+ *,
128
+ client: AuthenticatedClient,
129
+ ) -> Response[Union[GraphSubscriptionResponse, HTTPValidationError]]:
130
+ """Get Organization Subscription Details
131
+
132
+ Get detailed information about a specific subscription.
133
+
134
+ **Requirements:**
135
+ - User must be a member of the organization
136
+
137
+ Args:
138
+ org_id (str):
139
+ subscription_id (str):
140
+
141
+ Raises:
142
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
143
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
144
+
145
+ Returns:
146
+ Response[Union[GraphSubscriptionResponse, HTTPValidationError]]
147
+ """
148
+
149
+ kwargs = _get_kwargs(
150
+ org_id=org_id,
151
+ subscription_id=subscription_id,
152
+ )
153
+
154
+ response = await client.get_async_httpx_client().request(**kwargs)
155
+
156
+ return _build_response(client=client, response=response)
157
+
158
+
159
+ async def asyncio(
160
+ org_id: str,
161
+ subscription_id: str,
162
+ *,
163
+ client: AuthenticatedClient,
164
+ ) -> Optional[Union[GraphSubscriptionResponse, HTTPValidationError]]:
165
+ """Get Organization Subscription Details
166
+
167
+ Get detailed information about a specific subscription.
168
+
169
+ **Requirements:**
170
+ - User must be a member of the organization
171
+
172
+ Args:
173
+ org_id (str):
174
+ subscription_id (str):
175
+
176
+ Raises:
177
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
178
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
179
+
180
+ Returns:
181
+ Union[GraphSubscriptionResponse, HTTPValidationError]
182
+ """
183
+
184
+ return (
185
+ await asyncio_detailed(
186
+ org_id=org_id,
187
+ subscription_id=subscription_id,
188
+ client=client,
189
+ )
190
+ ).parsed