robosystems-client 0.2.5__py3-none-any.whl → 0.2.7__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 (51) hide show
  1. robosystems_client/api/agent/auto_select_agent.py +164 -32
  2. robosystems_client/api/backup/create_backup.py +72 -0
  3. robosystems_client/api/backup/get_backup_download_url.py +12 -28
  4. robosystems_client/api/backup/restore_backup.py +92 -0
  5. robosystems_client/api/graph_limits/get_graph_limits.py +12 -14
  6. robosystems_client/api/graphs/create_graph.py +136 -36
  7. robosystems_client/api/graphs/get_available_graph_tiers.py +281 -0
  8. robosystems_client/api/query/execute_cypher_query.py +13 -11
  9. robosystems_client/api/service_offerings/get_service_offerings.py +13 -11
  10. robosystems_client/models/__init__.py +66 -8
  11. robosystems_client/models/agent_response.py +1 -1
  12. robosystems_client/models/available_graph_tiers_response.py +74 -0
  13. robosystems_client/models/backup_download_url_response.py +92 -0
  14. robosystems_client/models/backup_limits.py +76 -0
  15. robosystems_client/models/batch_agent_request.py +1 -1
  16. robosystems_client/models/batch_agent_response.py +2 -2
  17. robosystems_client/models/copy_operation_limits.py +100 -0
  18. robosystems_client/models/create_graph_request.py +16 -17
  19. robosystems_client/models/credit_limits.py +84 -0
  20. robosystems_client/models/custom_schema_definition.py +14 -10
  21. robosystems_client/models/execute_cypher_query_response_200.py +135 -0
  22. robosystems_client/models/{get_graph_limits_response_getgraphlimits.py → execute_cypher_query_response_200_data_item.py} +5 -5
  23. robosystems_client/models/graph_limits_response.py +174 -0
  24. robosystems_client/models/graph_subscription_tier.py +220 -0
  25. robosystems_client/models/graph_subscriptions.py +100 -0
  26. robosystems_client/models/graph_tier_backup.py +76 -0
  27. robosystems_client/models/graph_tier_copy_operations.py +92 -0
  28. robosystems_client/models/graph_tier_info.py +192 -0
  29. robosystems_client/models/graph_tier_instance.py +76 -0
  30. robosystems_client/models/graph_tier_limits.py +106 -0
  31. robosystems_client/models/initial_entity_data.py +15 -12
  32. robosystems_client/models/offering_repository_plan.py +148 -0
  33. robosystems_client/models/offering_repository_plan_rate_limits_type_0.py +61 -0
  34. robosystems_client/models/operation_costs.py +100 -0
  35. robosystems_client/models/operation_costs_ai_operations.py +44 -0
  36. robosystems_client/models/operation_costs_token_pricing.py +59 -0
  37. robosystems_client/models/query_limits.py +84 -0
  38. robosystems_client/models/rate_limits.py +76 -0
  39. robosystems_client/models/repository_info.py +114 -0
  40. robosystems_client/models/repository_subscriptions.py +90 -0
  41. robosystems_client/models/service_offering_summary.py +84 -0
  42. robosystems_client/models/service_offerings_response.py +98 -0
  43. robosystems_client/models/storage_info.py +76 -0
  44. robosystems_client/models/{get_backup_download_url_response_getbackupdownloadurl.py → storage_info_included_per_tier.py} +9 -9
  45. robosystems_client/models/storage_info_overage_pricing.py +44 -0
  46. robosystems_client/models/storage_limits.py +90 -0
  47. robosystems_client/models/token_pricing.py +68 -0
  48. {robosystems_client-0.2.5.dist-info → robosystems_client-0.2.7.dist-info}/METADATA +1 -1
  49. {robosystems_client-0.2.5.dist-info → robosystems_client-0.2.7.dist-info}/RECORD +51 -21
  50. {robosystems_client-0.2.5.dist-info → robosystems_client-0.2.7.dist-info}/WHEEL +0 -0
  51. {robosystems_client-0.2.5.dist-info → robosystems_client-0.2.7.dist-info}/licenses/LICENSE +0 -0
@@ -0,0 +1,100 @@
1
+ from collections.abc import Mapping
2
+ from typing import TYPE_CHECKING, Any, TypeVar, cast
3
+
4
+ from attrs import define as _attrs_define
5
+ from attrs import field as _attrs_field
6
+
7
+ if TYPE_CHECKING:
8
+ from ..models.operation_costs_ai_operations import OperationCostsAiOperations
9
+ from ..models.operation_costs_token_pricing import OperationCostsTokenPricing
10
+
11
+
12
+ T = TypeVar("T", bound="OperationCosts")
13
+
14
+
15
+ @_attrs_define
16
+ class OperationCosts:
17
+ """Operation cost information.
18
+
19
+ Attributes:
20
+ description (str): Description of operation costs
21
+ ai_operations (OperationCostsAiOperations): Base costs for AI operations
22
+ token_pricing (OperationCostsTokenPricing): Token pricing by model
23
+ included_operations (list[str]): Operations that don't consume credits
24
+ notes (list[str]): Important notes about costs
25
+ """
26
+
27
+ description: str
28
+ ai_operations: "OperationCostsAiOperations"
29
+ token_pricing: "OperationCostsTokenPricing"
30
+ included_operations: list[str]
31
+ notes: list[str]
32
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
33
+
34
+ def to_dict(self) -> dict[str, Any]:
35
+ description = self.description
36
+
37
+ ai_operations = self.ai_operations.to_dict()
38
+
39
+ token_pricing = self.token_pricing.to_dict()
40
+
41
+ included_operations = self.included_operations
42
+
43
+ notes = self.notes
44
+
45
+ field_dict: dict[str, Any] = {}
46
+ field_dict.update(self.additional_properties)
47
+ field_dict.update(
48
+ {
49
+ "description": description,
50
+ "ai_operations": ai_operations,
51
+ "token_pricing": token_pricing,
52
+ "included_operations": included_operations,
53
+ "notes": notes,
54
+ }
55
+ )
56
+
57
+ return field_dict
58
+
59
+ @classmethod
60
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
61
+ from ..models.operation_costs_ai_operations import OperationCostsAiOperations
62
+ from ..models.operation_costs_token_pricing import OperationCostsTokenPricing
63
+
64
+ d = dict(src_dict)
65
+ description = d.pop("description")
66
+
67
+ ai_operations = OperationCostsAiOperations.from_dict(d.pop("ai_operations"))
68
+
69
+ token_pricing = OperationCostsTokenPricing.from_dict(d.pop("token_pricing"))
70
+
71
+ included_operations = cast(list[str], d.pop("included_operations"))
72
+
73
+ notes = cast(list[str], d.pop("notes"))
74
+
75
+ operation_costs = cls(
76
+ description=description,
77
+ ai_operations=ai_operations,
78
+ token_pricing=token_pricing,
79
+ included_operations=included_operations,
80
+ notes=notes,
81
+ )
82
+
83
+ operation_costs.additional_properties = d
84
+ return operation_costs
85
+
86
+ @property
87
+ def additional_keys(self) -> list[str]:
88
+ return list(self.additional_properties.keys())
89
+
90
+ def __getitem__(self, key: str) -> Any:
91
+ return self.additional_properties[key]
92
+
93
+ def __setitem__(self, key: str, value: Any) -> None:
94
+ self.additional_properties[key] = value
95
+
96
+ def __delitem__(self, key: str) -> None:
97
+ del self.additional_properties[key]
98
+
99
+ def __contains__(self, key: str) -> bool:
100
+ return key in self.additional_properties
@@ -0,0 +1,44 @@
1
+ from collections.abc import Mapping
2
+ from typing import Any, TypeVar
3
+
4
+ from attrs import define as _attrs_define
5
+ from attrs import field as _attrs_field
6
+
7
+ T = TypeVar("T", bound="OperationCostsAiOperations")
8
+
9
+
10
+ @_attrs_define
11
+ class OperationCostsAiOperations:
12
+ """Base costs for AI operations"""
13
+
14
+ additional_properties: dict[str, float] = _attrs_field(init=False, factory=dict)
15
+
16
+ def to_dict(self) -> dict[str, Any]:
17
+ field_dict: dict[str, Any] = {}
18
+ field_dict.update(self.additional_properties)
19
+
20
+ return field_dict
21
+
22
+ @classmethod
23
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
24
+ d = dict(src_dict)
25
+ operation_costs_ai_operations = cls()
26
+
27
+ operation_costs_ai_operations.additional_properties = d
28
+ return operation_costs_ai_operations
29
+
30
+ @property
31
+ def additional_keys(self) -> list[str]:
32
+ return list(self.additional_properties.keys())
33
+
34
+ def __getitem__(self, key: str) -> float:
35
+ return self.additional_properties[key]
36
+
37
+ def __setitem__(self, key: str, value: float) -> None:
38
+ self.additional_properties[key] = value
39
+
40
+ def __delitem__(self, key: str) -> None:
41
+ del self.additional_properties[key]
42
+
43
+ def __contains__(self, key: str) -> bool:
44
+ return key in self.additional_properties
@@ -0,0 +1,59 @@
1
+ from collections.abc import Mapping
2
+ from typing import TYPE_CHECKING, Any, TypeVar
3
+
4
+ from attrs import define as _attrs_define
5
+ from attrs import field as _attrs_field
6
+
7
+ if TYPE_CHECKING:
8
+ from ..models.token_pricing import TokenPricing
9
+
10
+
11
+ T = TypeVar("T", bound="OperationCostsTokenPricing")
12
+
13
+
14
+ @_attrs_define
15
+ class OperationCostsTokenPricing:
16
+ """Token pricing by model"""
17
+
18
+ additional_properties: dict[str, "TokenPricing"] = _attrs_field(
19
+ init=False, factory=dict
20
+ )
21
+
22
+ def to_dict(self) -> dict[str, Any]:
23
+ field_dict: dict[str, Any] = {}
24
+ for prop_name, prop in self.additional_properties.items():
25
+ field_dict[prop_name] = prop.to_dict()
26
+
27
+ return field_dict
28
+
29
+ @classmethod
30
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
31
+ from ..models.token_pricing import TokenPricing
32
+
33
+ d = dict(src_dict)
34
+ operation_costs_token_pricing = cls()
35
+
36
+ additional_properties = {}
37
+ for prop_name, prop_dict in d.items():
38
+ additional_property = TokenPricing.from_dict(prop_dict)
39
+
40
+ additional_properties[prop_name] = additional_property
41
+
42
+ operation_costs_token_pricing.additional_properties = additional_properties
43
+ return operation_costs_token_pricing
44
+
45
+ @property
46
+ def additional_keys(self) -> list[str]:
47
+ return list(self.additional_properties.keys())
48
+
49
+ def __getitem__(self, key: str) -> "TokenPricing":
50
+ return self.additional_properties[key]
51
+
52
+ def __setitem__(self, key: str, value: "TokenPricing") -> None:
53
+ self.additional_properties[key] = value
54
+
55
+ def __delitem__(self, key: str) -> None:
56
+ del self.additional_properties[key]
57
+
58
+ def __contains__(self, key: str) -> bool:
59
+ return key in self.additional_properties
@@ -0,0 +1,84 @@
1
+ from collections.abc import Mapping
2
+ from typing import Any, TypeVar
3
+
4
+ from attrs import define as _attrs_define
5
+ from attrs import field as _attrs_field
6
+
7
+ T = TypeVar("T", bound="QueryLimits")
8
+
9
+
10
+ @_attrs_define
11
+ class QueryLimits:
12
+ """Query operation limits.
13
+
14
+ Attributes:
15
+ max_timeout_seconds (int): Maximum query timeout in seconds
16
+ chunk_size (int): Maximum chunk size for result streaming
17
+ max_rows_per_query (int): Maximum rows returned per query
18
+ concurrent_queries (int): Maximum concurrent queries allowed
19
+ """
20
+
21
+ max_timeout_seconds: int
22
+ chunk_size: int
23
+ max_rows_per_query: int
24
+ concurrent_queries: int
25
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
26
+
27
+ def to_dict(self) -> dict[str, Any]:
28
+ max_timeout_seconds = self.max_timeout_seconds
29
+
30
+ chunk_size = self.chunk_size
31
+
32
+ max_rows_per_query = self.max_rows_per_query
33
+
34
+ concurrent_queries = self.concurrent_queries
35
+
36
+ field_dict: dict[str, Any] = {}
37
+ field_dict.update(self.additional_properties)
38
+ field_dict.update(
39
+ {
40
+ "max_timeout_seconds": max_timeout_seconds,
41
+ "chunk_size": chunk_size,
42
+ "max_rows_per_query": max_rows_per_query,
43
+ "concurrent_queries": concurrent_queries,
44
+ }
45
+ )
46
+
47
+ return field_dict
48
+
49
+ @classmethod
50
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
51
+ d = dict(src_dict)
52
+ max_timeout_seconds = d.pop("max_timeout_seconds")
53
+
54
+ chunk_size = d.pop("chunk_size")
55
+
56
+ max_rows_per_query = d.pop("max_rows_per_query")
57
+
58
+ concurrent_queries = d.pop("concurrent_queries")
59
+
60
+ query_limits = cls(
61
+ max_timeout_seconds=max_timeout_seconds,
62
+ chunk_size=chunk_size,
63
+ max_rows_per_query=max_rows_per_query,
64
+ concurrent_queries=concurrent_queries,
65
+ )
66
+
67
+ query_limits.additional_properties = d
68
+ return query_limits
69
+
70
+ @property
71
+ def additional_keys(self) -> list[str]:
72
+ return list(self.additional_properties.keys())
73
+
74
+ def __getitem__(self, key: str) -> Any:
75
+ return self.additional_properties[key]
76
+
77
+ def __setitem__(self, key: str, value: Any) -> None:
78
+ self.additional_properties[key] = value
79
+
80
+ def __delitem__(self, key: str) -> None:
81
+ del self.additional_properties[key]
82
+
83
+ def __contains__(self, key: str) -> bool:
84
+ return key in self.additional_properties
@@ -0,0 +1,76 @@
1
+ from collections.abc import Mapping
2
+ from typing import Any, TypeVar
3
+
4
+ from attrs import define as _attrs_define
5
+ from attrs import field as _attrs_field
6
+
7
+ T = TypeVar("T", bound="RateLimits")
8
+
9
+
10
+ @_attrs_define
11
+ class RateLimits:
12
+ """API rate limits.
13
+
14
+ Attributes:
15
+ requests_per_minute (int): Requests per minute limit
16
+ requests_per_hour (int): Requests per hour limit
17
+ burst_capacity (int): Burst capacity for short spikes
18
+ """
19
+
20
+ requests_per_minute: int
21
+ requests_per_hour: int
22
+ burst_capacity: int
23
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
24
+
25
+ def to_dict(self) -> dict[str, Any]:
26
+ requests_per_minute = self.requests_per_minute
27
+
28
+ requests_per_hour = self.requests_per_hour
29
+
30
+ burst_capacity = self.burst_capacity
31
+
32
+ field_dict: dict[str, Any] = {}
33
+ field_dict.update(self.additional_properties)
34
+ field_dict.update(
35
+ {
36
+ "requests_per_minute": requests_per_minute,
37
+ "requests_per_hour": requests_per_hour,
38
+ "burst_capacity": burst_capacity,
39
+ }
40
+ )
41
+
42
+ return field_dict
43
+
44
+ @classmethod
45
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
46
+ d = dict(src_dict)
47
+ requests_per_minute = d.pop("requests_per_minute")
48
+
49
+ requests_per_hour = d.pop("requests_per_hour")
50
+
51
+ burst_capacity = d.pop("burst_capacity")
52
+
53
+ rate_limits = cls(
54
+ requests_per_minute=requests_per_minute,
55
+ requests_per_hour=requests_per_hour,
56
+ burst_capacity=burst_capacity,
57
+ )
58
+
59
+ rate_limits.additional_properties = d
60
+ return rate_limits
61
+
62
+ @property
63
+ def additional_keys(self) -> list[str]:
64
+ return list(self.additional_properties.keys())
65
+
66
+ def __getitem__(self, key: str) -> Any:
67
+ return self.additional_properties[key]
68
+
69
+ def __setitem__(self, key: str, value: Any) -> None:
70
+ self.additional_properties[key] = value
71
+
72
+ def __delitem__(self, key: str) -> None:
73
+ del self.additional_properties[key]
74
+
75
+ def __contains__(self, key: str) -> bool:
76
+ return key in self.additional_properties
@@ -0,0 +1,114 @@
1
+ from collections.abc import Mapping
2
+ from typing import TYPE_CHECKING, Any, TypeVar
3
+
4
+ from attrs import define as _attrs_define
5
+ from attrs import field as _attrs_field
6
+
7
+ if TYPE_CHECKING:
8
+ from ..models.offering_repository_plan import OfferingRepositoryPlan
9
+
10
+
11
+ T = TypeVar("T", bound="RepositoryInfo")
12
+
13
+
14
+ @_attrs_define
15
+ class RepositoryInfo:
16
+ """Information about a shared repository.
17
+
18
+ Attributes:
19
+ type_ (str): Repository type identifier
20
+ name (str): Repository name
21
+ description (str): Repository description
22
+ enabled (bool): Whether repository is enabled
23
+ coming_soon (bool): Whether repository is coming soon
24
+ plans (list['OfferingRepositoryPlan']): Available plans
25
+ """
26
+
27
+ type_: str
28
+ name: str
29
+ description: str
30
+ enabled: bool
31
+ coming_soon: bool
32
+ plans: list["OfferingRepositoryPlan"]
33
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
34
+
35
+ def to_dict(self) -> dict[str, Any]:
36
+ type_ = self.type_
37
+
38
+ name = self.name
39
+
40
+ description = self.description
41
+
42
+ enabled = self.enabled
43
+
44
+ coming_soon = self.coming_soon
45
+
46
+ plans = []
47
+ for plans_item_data in self.plans:
48
+ plans_item = plans_item_data.to_dict()
49
+ plans.append(plans_item)
50
+
51
+ field_dict: dict[str, Any] = {}
52
+ field_dict.update(self.additional_properties)
53
+ field_dict.update(
54
+ {
55
+ "type": type_,
56
+ "name": name,
57
+ "description": description,
58
+ "enabled": enabled,
59
+ "coming_soon": coming_soon,
60
+ "plans": plans,
61
+ }
62
+ )
63
+
64
+ return field_dict
65
+
66
+ @classmethod
67
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
68
+ from ..models.offering_repository_plan import OfferingRepositoryPlan
69
+
70
+ d = dict(src_dict)
71
+ type_ = d.pop("type")
72
+
73
+ name = d.pop("name")
74
+
75
+ description = d.pop("description")
76
+
77
+ enabled = d.pop("enabled")
78
+
79
+ coming_soon = d.pop("coming_soon")
80
+
81
+ plans = []
82
+ _plans = d.pop("plans")
83
+ for plans_item_data in _plans:
84
+ plans_item = OfferingRepositoryPlan.from_dict(plans_item_data)
85
+
86
+ plans.append(plans_item)
87
+
88
+ repository_info = cls(
89
+ type_=type_,
90
+ name=name,
91
+ description=description,
92
+ enabled=enabled,
93
+ coming_soon=coming_soon,
94
+ plans=plans,
95
+ )
96
+
97
+ repository_info.additional_properties = d
98
+ return repository_info
99
+
100
+ @property
101
+ def additional_keys(self) -> list[str]:
102
+ return list(self.additional_properties.keys())
103
+
104
+ def __getitem__(self, key: str) -> Any:
105
+ return self.additional_properties[key]
106
+
107
+ def __setitem__(self, key: str, value: Any) -> None:
108
+ self.additional_properties[key] = value
109
+
110
+ def __delitem__(self, key: str) -> None:
111
+ del self.additional_properties[key]
112
+
113
+ def __contains__(self, key: str) -> bool:
114
+ return key in self.additional_properties
@@ -0,0 +1,90 @@
1
+ from collections.abc import Mapping
2
+ from typing import TYPE_CHECKING, Any, TypeVar, cast
3
+
4
+ from attrs import define as _attrs_define
5
+ from attrs import field as _attrs_field
6
+
7
+ if TYPE_CHECKING:
8
+ from ..models.repository_info import RepositoryInfo
9
+
10
+
11
+ T = TypeVar("T", bound="RepositorySubscriptions")
12
+
13
+
14
+ @_attrs_define
15
+ class RepositorySubscriptions:
16
+ """Repository subscription offerings.
17
+
18
+ Attributes:
19
+ description (str): Description of repository subscriptions
20
+ repositories (list['RepositoryInfo']): Available repositories
21
+ notes (list[str]): Important notes
22
+ """
23
+
24
+ description: str
25
+ repositories: list["RepositoryInfo"]
26
+ notes: list[str]
27
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
28
+
29
+ def to_dict(self) -> dict[str, Any]:
30
+ description = self.description
31
+
32
+ repositories = []
33
+ for repositories_item_data in self.repositories:
34
+ repositories_item = repositories_item_data.to_dict()
35
+ repositories.append(repositories_item)
36
+
37
+ notes = self.notes
38
+
39
+ field_dict: dict[str, Any] = {}
40
+ field_dict.update(self.additional_properties)
41
+ field_dict.update(
42
+ {
43
+ "description": description,
44
+ "repositories": repositories,
45
+ "notes": notes,
46
+ }
47
+ )
48
+
49
+ return field_dict
50
+
51
+ @classmethod
52
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
53
+ from ..models.repository_info import RepositoryInfo
54
+
55
+ d = dict(src_dict)
56
+ description = d.pop("description")
57
+
58
+ repositories = []
59
+ _repositories = d.pop("repositories")
60
+ for repositories_item_data in _repositories:
61
+ repositories_item = RepositoryInfo.from_dict(repositories_item_data)
62
+
63
+ repositories.append(repositories_item)
64
+
65
+ notes = cast(list[str], d.pop("notes"))
66
+
67
+ repository_subscriptions = cls(
68
+ description=description,
69
+ repositories=repositories,
70
+ notes=notes,
71
+ )
72
+
73
+ repository_subscriptions.additional_properties = d
74
+ return repository_subscriptions
75
+
76
+ @property
77
+ def additional_keys(self) -> list[str]:
78
+ return list(self.additional_properties.keys())
79
+
80
+ def __getitem__(self, key: str) -> Any:
81
+ return self.additional_properties[key]
82
+
83
+ def __setitem__(self, key: str, value: Any) -> None:
84
+ self.additional_properties[key] = value
85
+
86
+ def __delitem__(self, key: str) -> None:
87
+ del self.additional_properties[key]
88
+
89
+ def __contains__(self, key: str) -> bool:
90
+ return key in self.additional_properties
@@ -0,0 +1,84 @@
1
+ from collections.abc import Mapping
2
+ from typing import Any, TypeVar
3
+
4
+ from attrs import define as _attrs_define
5
+ from attrs import field as _attrs_field
6
+
7
+ T = TypeVar("T", bound="ServiceOfferingSummary")
8
+
9
+
10
+ @_attrs_define
11
+ class ServiceOfferingSummary:
12
+ """Summary of service offerings.
13
+
14
+ Attributes:
15
+ total_graph_tiers (int): Total number of graph tiers
16
+ total_repositories (int): Total number of repositories
17
+ enabled_repositories (int): Number of enabled repositories
18
+ coming_soon_repositories (int): Number of coming soon repositories
19
+ """
20
+
21
+ total_graph_tiers: int
22
+ total_repositories: int
23
+ enabled_repositories: int
24
+ coming_soon_repositories: int
25
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
26
+
27
+ def to_dict(self) -> dict[str, Any]:
28
+ total_graph_tiers = self.total_graph_tiers
29
+
30
+ total_repositories = self.total_repositories
31
+
32
+ enabled_repositories = self.enabled_repositories
33
+
34
+ coming_soon_repositories = self.coming_soon_repositories
35
+
36
+ field_dict: dict[str, Any] = {}
37
+ field_dict.update(self.additional_properties)
38
+ field_dict.update(
39
+ {
40
+ "total_graph_tiers": total_graph_tiers,
41
+ "total_repositories": total_repositories,
42
+ "enabled_repositories": enabled_repositories,
43
+ "coming_soon_repositories": coming_soon_repositories,
44
+ }
45
+ )
46
+
47
+ return field_dict
48
+
49
+ @classmethod
50
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
51
+ d = dict(src_dict)
52
+ total_graph_tiers = d.pop("total_graph_tiers")
53
+
54
+ total_repositories = d.pop("total_repositories")
55
+
56
+ enabled_repositories = d.pop("enabled_repositories")
57
+
58
+ coming_soon_repositories = d.pop("coming_soon_repositories")
59
+
60
+ service_offering_summary = cls(
61
+ total_graph_tiers=total_graph_tiers,
62
+ total_repositories=total_repositories,
63
+ enabled_repositories=enabled_repositories,
64
+ coming_soon_repositories=coming_soon_repositories,
65
+ )
66
+
67
+ service_offering_summary.additional_properties = d
68
+ return service_offering_summary
69
+
70
+ @property
71
+ def additional_keys(self) -> list[str]:
72
+ return list(self.additional_properties.keys())
73
+
74
+ def __getitem__(self, key: str) -> Any:
75
+ return self.additional_properties[key]
76
+
77
+ def __setitem__(self, key: str, value: Any) -> None:
78
+ self.additional_properties[key] = value
79
+
80
+ def __delitem__(self, key: str) -> None:
81
+ del self.additional_properties[key]
82
+
83
+ def __contains__(self, key: str) -> bool:
84
+ return key in self.additional_properties