stackit-loadbalancer 0.0.1a1__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.
Files changed (46) hide show
  1. stackit/loadbalancer/__init__.py +94 -0
  2. stackit/loadbalancer/api/__init__.py +4 -0
  3. stackit/loadbalancer/api/default_api.py +4224 -0
  4. stackit/loadbalancer/api_client.py +626 -0
  5. stackit/loadbalancer/api_response.py +23 -0
  6. stackit/loadbalancer/configuration.py +111 -0
  7. stackit/loadbalancer/exceptions.py +198 -0
  8. stackit/loadbalancer/models/__init__.py +75 -0
  9. stackit/loadbalancer/models/active_health_check.py +142 -0
  10. stackit/loadbalancer/models/create_credentials_payload.py +104 -0
  11. stackit/loadbalancer/models/create_credentials_response.py +92 -0
  12. stackit/loadbalancer/models/create_load_balancer_payload.py +231 -0
  13. stackit/loadbalancer/models/credentials_response.py +106 -0
  14. stackit/loadbalancer/models/get_credentials_response.py +92 -0
  15. stackit/loadbalancer/models/get_quota_response.py +106 -0
  16. stackit/loadbalancer/models/get_service_status_response.py +103 -0
  17. stackit/loadbalancer/models/google_protobuf_any.py +97 -0
  18. stackit/loadbalancer/models/list_credentials_response.py +98 -0
  19. stackit/loadbalancer/models/list_load_balancers_response.py +115 -0
  20. stackit/loadbalancer/models/list_plans_response.py +98 -0
  21. stackit/loadbalancer/models/listener.py +162 -0
  22. stackit/loadbalancer/models/load_balancer.py +231 -0
  23. stackit/loadbalancer/models/load_balancer_error.py +113 -0
  24. stackit/loadbalancer/models/load_balancer_options.py +116 -0
  25. stackit/loadbalancer/models/loadbalancer_option_access_control.py +85 -0
  26. stackit/loadbalancer/models/loadbalancer_option_logs.py +90 -0
  27. stackit/loadbalancer/models/loadbalancer_option_metrics.py +90 -0
  28. stackit/loadbalancer/models/loadbalancer_option_observability.py +100 -0
  29. stackit/loadbalancer/models/network.py +112 -0
  30. stackit/loadbalancer/models/options_tcp.py +96 -0
  31. stackit/loadbalancer/models/options_udp.py +96 -0
  32. stackit/loadbalancer/models/plan_details.py +97 -0
  33. stackit/loadbalancer/models/server_name_indicator.py +81 -0
  34. stackit/loadbalancer/models/session_persistence.py +85 -0
  35. stackit/loadbalancer/models/status.py +111 -0
  36. stackit/loadbalancer/models/target.py +97 -0
  37. stackit/loadbalancer/models/target_pool.py +137 -0
  38. stackit/loadbalancer/models/update_credentials_payload.py +104 -0
  39. stackit/loadbalancer/models/update_credentials_response.py +92 -0
  40. stackit/loadbalancer/models/update_load_balancer_payload.py +231 -0
  41. stackit/loadbalancer/models/update_target_pool_payload.py +137 -0
  42. stackit/loadbalancer/py.typed +0 -0
  43. stackit/loadbalancer/rest.py +148 -0
  44. stackit_loadbalancer-0.0.1a1.dist-info/METADATA +46 -0
  45. stackit_loadbalancer-0.0.1a1.dist-info/RECORD +46 -0
  46. stackit_loadbalancer-0.0.1a1.dist-info/WHEEL +4 -0
@@ -0,0 +1,90 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ Load Balancer API
5
+
6
+ This API offers an interface to provision and manage load balancing servers in your STACKIT project. It also has the possibility of pooling target servers for load balancing purposes. For each load balancer provided, two VMs are deployed in your OpenStack project subject to a fee.
7
+
8
+ The version of the OpenAPI document: 1.7.2
9
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
10
+
11
+ Do not edit the class manually.
12
+ """ # noqa: E501 docstring might be too long
13
+
14
+ from __future__ import annotations
15
+
16
+ import json
17
+ import pprint
18
+ from typing import Any, ClassVar, Dict, List, Optional, Set
19
+
20
+ from pydantic import BaseModel, ConfigDict, Field, StrictStr
21
+ from typing_extensions import Self
22
+
23
+
24
+ class LoadbalancerOptionMetrics(BaseModel):
25
+ """
26
+ LoadbalancerOptionMetrics
27
+ """
28
+
29
+ credentials_ref: Optional[StrictStr] = Field(
30
+ default=None,
31
+ description="Credentials reference for metrics. This reference is created via the observability create endpoint and the credential needs to contain the basic auth username and password for the metrics solution the push URL points to. Then this enables monitoring via remote write for the Load Balancer.",
32
+ alias="credentialsRef",
33
+ )
34
+ push_url: Optional[StrictStr] = Field(
35
+ default=None,
36
+ description="The ARGUS/Prometheus remote write Push URL you want the metrics to be shipped to.",
37
+ alias="pushUrl",
38
+ )
39
+ __properties: ClassVar[List[str]] = ["credentialsRef", "pushUrl"]
40
+
41
+ model_config = ConfigDict(
42
+ populate_by_name=True,
43
+ validate_assignment=True,
44
+ protected_namespaces=(),
45
+ )
46
+
47
+ def to_str(self) -> str:
48
+ """Returns the string representation of the model using alias"""
49
+ return pprint.pformat(self.model_dump(by_alias=True))
50
+
51
+ def to_json(self) -> str:
52
+ """Returns the JSON representation of the model using alias"""
53
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
54
+ return json.dumps(self.to_dict())
55
+
56
+ @classmethod
57
+ def from_json(cls, json_str: str) -> Optional[Self]:
58
+ """Create an instance of LoadbalancerOptionMetrics from a JSON string"""
59
+ return cls.from_dict(json.loads(json_str))
60
+
61
+ def to_dict(self) -> Dict[str, Any]:
62
+ """Return the dictionary representation of the model using alias.
63
+
64
+ This has the following differences from calling pydantic's
65
+ `self.model_dump(by_alias=True)`:
66
+
67
+ * `None` is only added to the output dict for nullable fields that
68
+ were set at model initialization. Other fields with value `None`
69
+ are ignored.
70
+ """
71
+ excluded_fields: Set[str] = set([])
72
+
73
+ _dict = self.model_dump(
74
+ by_alias=True,
75
+ exclude=excluded_fields,
76
+ exclude_none=True,
77
+ )
78
+ return _dict
79
+
80
+ @classmethod
81
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
82
+ """Create an instance of LoadbalancerOptionMetrics from a dict"""
83
+ if obj is None:
84
+ return None
85
+
86
+ if not isinstance(obj, dict):
87
+ return cls.model_validate(obj)
88
+
89
+ _obj = cls.model_validate({"credentialsRef": obj.get("credentialsRef"), "pushUrl": obj.get("pushUrl")})
90
+ return _obj
@@ -0,0 +1,100 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ Load Balancer API
5
+
6
+ This API offers an interface to provision and manage load balancing servers in your STACKIT project. It also has the possibility of pooling target servers for load balancing purposes. For each load balancer provided, two VMs are deployed in your OpenStack project subject to a fee.
7
+
8
+ The version of the OpenAPI document: 1.7.2
9
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
10
+
11
+ Do not edit the class manually.
12
+ """ # noqa: E501 docstring might be too long
13
+
14
+ from __future__ import annotations
15
+
16
+ import json
17
+ import pprint
18
+ from typing import Any, ClassVar, Dict, List, Optional, Set
19
+
20
+ from pydantic import BaseModel, ConfigDict
21
+ from typing_extensions import Self
22
+
23
+ from stackit.loadbalancer.models.loadbalancer_option_logs import LoadbalancerOptionLogs
24
+ from stackit.loadbalancer.models.loadbalancer_option_metrics import (
25
+ LoadbalancerOptionMetrics,
26
+ )
27
+
28
+
29
+ class LoadbalancerOptionObservability(BaseModel):
30
+ """
31
+ We offer Load Balancer metrics observability via ARGUS or external solutions. Not changeable after creation.
32
+ """
33
+
34
+ logs: Optional[LoadbalancerOptionLogs] = None
35
+ metrics: Optional[LoadbalancerOptionMetrics] = None
36
+ __properties: ClassVar[List[str]] = ["logs", "metrics"]
37
+
38
+ model_config = ConfigDict(
39
+ populate_by_name=True,
40
+ validate_assignment=True,
41
+ protected_namespaces=(),
42
+ )
43
+
44
+ def to_str(self) -> str:
45
+ """Returns the string representation of the model using alias"""
46
+ return pprint.pformat(self.model_dump(by_alias=True))
47
+
48
+ def to_json(self) -> str:
49
+ """Returns the JSON representation of the model using alias"""
50
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
51
+ return json.dumps(self.to_dict())
52
+
53
+ @classmethod
54
+ def from_json(cls, json_str: str) -> Optional[Self]:
55
+ """Create an instance of LoadbalancerOptionObservability from a JSON string"""
56
+ return cls.from_dict(json.loads(json_str))
57
+
58
+ def to_dict(self) -> Dict[str, Any]:
59
+ """Return the dictionary representation of the model using alias.
60
+
61
+ This has the following differences from calling pydantic's
62
+ `self.model_dump(by_alias=True)`:
63
+
64
+ * `None` is only added to the output dict for nullable fields that
65
+ were set at model initialization. Other fields with value `None`
66
+ are ignored.
67
+ """
68
+ excluded_fields: Set[str] = set([])
69
+
70
+ _dict = self.model_dump(
71
+ by_alias=True,
72
+ exclude=excluded_fields,
73
+ exclude_none=True,
74
+ )
75
+ # override the default output from pydantic by calling `to_dict()` of logs
76
+ if self.logs:
77
+ _dict["logs"] = self.logs.to_dict()
78
+ # override the default output from pydantic by calling `to_dict()` of metrics
79
+ if self.metrics:
80
+ _dict["metrics"] = self.metrics.to_dict()
81
+ return _dict
82
+
83
+ @classmethod
84
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
85
+ """Create an instance of LoadbalancerOptionObservability from a dict"""
86
+ if obj is None:
87
+ return None
88
+
89
+ if not isinstance(obj, dict):
90
+ return cls.model_validate(obj)
91
+
92
+ _obj = cls.model_validate(
93
+ {
94
+ "logs": LoadbalancerOptionLogs.from_dict(obj["logs"]) if obj.get("logs") is not None else None,
95
+ "metrics": (
96
+ LoadbalancerOptionMetrics.from_dict(obj["metrics"]) if obj.get("metrics") is not None else None
97
+ ),
98
+ }
99
+ )
100
+ return _obj
@@ -0,0 +1,112 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ Load Balancer API
5
+
6
+ This API offers an interface to provision and manage load balancing servers in your STACKIT project. It also has the possibility of pooling target servers for load balancing purposes. For each load balancer provided, two VMs are deployed in your OpenStack project subject to a fee.
7
+
8
+ The version of the OpenAPI document: 1.7.2
9
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
10
+
11
+ Do not edit the class manually.
12
+ """ # noqa: E501 docstring might be too long
13
+
14
+ from __future__ import annotations
15
+
16
+ import json
17
+ import pprint
18
+ import re
19
+ from typing import Any, ClassVar, Dict, List, Optional, Set
20
+
21
+ from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator
22
+ from typing_extensions import Annotated, Self
23
+
24
+
25
+ class Network(BaseModel):
26
+ """
27
+ Network
28
+ """
29
+
30
+ network_id: Optional[Annotated[str, Field(strict=True)]] = Field(
31
+ default=None, description="Openstack network ID", alias="networkId"
32
+ )
33
+ role: Optional[StrictStr] = Field(
34
+ default=None,
35
+ description="The role defines how the load balancer is using the network. Currently only ROLE_LISTENERS_AND_TARGETS is supported.",
36
+ )
37
+ __properties: ClassVar[List[str]] = ["networkId", "role"]
38
+
39
+ @field_validator("network_id")
40
+ def network_id_validate_regular_expression(cls, value):
41
+ """Validates the regular expression"""
42
+ if value is None:
43
+ return value
44
+
45
+ if not re.match(r"^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$", value):
46
+ raise ValueError(
47
+ r"must validate the regular expression /^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/"
48
+ )
49
+ return value
50
+
51
+ @field_validator("role")
52
+ def role_validate_enum(cls, value):
53
+ """Validates the enum"""
54
+ if value is None:
55
+ return value
56
+
57
+ if value not in set(["ROLE_UNSPECIFIED", "ROLE_LISTENERS_AND_TARGETS", "ROLE_LISTENERS", "ROLE_TARGETS"]):
58
+ raise ValueError(
59
+ "must be one of enum values ('ROLE_UNSPECIFIED', 'ROLE_LISTENERS_AND_TARGETS', 'ROLE_LISTENERS', 'ROLE_TARGETS')"
60
+ )
61
+ return value
62
+
63
+ model_config = ConfigDict(
64
+ populate_by_name=True,
65
+ validate_assignment=True,
66
+ protected_namespaces=(),
67
+ )
68
+
69
+ def to_str(self) -> str:
70
+ """Returns the string representation of the model using alias"""
71
+ return pprint.pformat(self.model_dump(by_alias=True))
72
+
73
+ def to_json(self) -> str:
74
+ """Returns the JSON representation of the model using alias"""
75
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
76
+ return json.dumps(self.to_dict())
77
+
78
+ @classmethod
79
+ def from_json(cls, json_str: str) -> Optional[Self]:
80
+ """Create an instance of Network from a JSON string"""
81
+ return cls.from_dict(json.loads(json_str))
82
+
83
+ def to_dict(self) -> Dict[str, Any]:
84
+ """Return the dictionary representation of the model using alias.
85
+
86
+ This has the following differences from calling pydantic's
87
+ `self.model_dump(by_alias=True)`:
88
+
89
+ * `None` is only added to the output dict for nullable fields that
90
+ were set at model initialization. Other fields with value `None`
91
+ are ignored.
92
+ """
93
+ excluded_fields: Set[str] = set([])
94
+
95
+ _dict = self.model_dump(
96
+ by_alias=True,
97
+ exclude=excluded_fields,
98
+ exclude_none=True,
99
+ )
100
+ return _dict
101
+
102
+ @classmethod
103
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
104
+ """Create an instance of Network from a dict"""
105
+ if obj is None:
106
+ return None
107
+
108
+ if not isinstance(obj, dict):
109
+ return cls.model_validate(obj)
110
+
111
+ _obj = cls.model_validate({"networkId": obj.get("networkId"), "role": obj.get("role")})
112
+ return _obj
@@ -0,0 +1,96 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ Load Balancer API
5
+
6
+ This API offers an interface to provision and manage load balancing servers in your STACKIT project. It also has the possibility of pooling target servers for load balancing purposes. For each load balancer provided, two VMs are deployed in your OpenStack project subject to a fee.
7
+
8
+ The version of the OpenAPI document: 1.7.2
9
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
10
+
11
+ Do not edit the class manually.
12
+ """ # noqa: E501 docstring might be too long
13
+
14
+ from __future__ import annotations
15
+
16
+ import json
17
+ import pprint
18
+ import re
19
+ from typing import Any, ClassVar, Dict, List, Optional, Set
20
+
21
+ from pydantic import BaseModel, ConfigDict, Field, field_validator
22
+ from typing_extensions import Annotated, Self
23
+
24
+
25
+ class OptionsTCP(BaseModel):
26
+ """
27
+ OptionsTCP
28
+ """
29
+
30
+ idle_timeout: Optional[Annotated[str, Field(strict=True)]] = Field(
31
+ default=None,
32
+ description="The connection idle timeout to be used with the protocol. The default value is set to 5 minutes, and the maximum value is one hour.",
33
+ alias="idleTimeout",
34
+ )
35
+ __properties: ClassVar[List[str]] = ["idleTimeout"]
36
+
37
+ @field_validator("idle_timeout")
38
+ def idle_timeout_validate_regular_expression(cls, value):
39
+ """Validates the regular expression"""
40
+ if value is None:
41
+ return value
42
+
43
+ if not re.match(r"^-?(?:0|[1-9][0-9]{0,11})(?:\.[0-9]{1,9})?s$", value):
44
+ raise ValueError(r"must validate the regular expression /^-?(?:0|[1-9][0-9]{0,11})(?:\.[0-9]{1,9})?s$/")
45
+ return value
46
+
47
+ model_config = ConfigDict(
48
+ populate_by_name=True,
49
+ validate_assignment=True,
50
+ protected_namespaces=(),
51
+ )
52
+
53
+ def to_str(self) -> str:
54
+ """Returns the string representation of the model using alias"""
55
+ return pprint.pformat(self.model_dump(by_alias=True))
56
+
57
+ def to_json(self) -> str:
58
+ """Returns the JSON representation of the model using alias"""
59
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
60
+ return json.dumps(self.to_dict())
61
+
62
+ @classmethod
63
+ def from_json(cls, json_str: str) -> Optional[Self]:
64
+ """Create an instance of OptionsTCP from a JSON string"""
65
+ return cls.from_dict(json.loads(json_str))
66
+
67
+ def to_dict(self) -> Dict[str, Any]:
68
+ """Return the dictionary representation of the model using alias.
69
+
70
+ This has the following differences from calling pydantic's
71
+ `self.model_dump(by_alias=True)`:
72
+
73
+ * `None` is only added to the output dict for nullable fields that
74
+ were set at model initialization. Other fields with value `None`
75
+ are ignored.
76
+ """
77
+ excluded_fields: Set[str] = set([])
78
+
79
+ _dict = self.model_dump(
80
+ by_alias=True,
81
+ exclude=excluded_fields,
82
+ exclude_none=True,
83
+ )
84
+ return _dict
85
+
86
+ @classmethod
87
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
88
+ """Create an instance of OptionsTCP from a dict"""
89
+ if obj is None:
90
+ return None
91
+
92
+ if not isinstance(obj, dict):
93
+ return cls.model_validate(obj)
94
+
95
+ _obj = cls.model_validate({"idleTimeout": obj.get("idleTimeout")})
96
+ return _obj
@@ -0,0 +1,96 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ Load Balancer API
5
+
6
+ This API offers an interface to provision and manage load balancing servers in your STACKIT project. It also has the possibility of pooling target servers for load balancing purposes. For each load balancer provided, two VMs are deployed in your OpenStack project subject to a fee.
7
+
8
+ The version of the OpenAPI document: 1.7.2
9
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
10
+
11
+ Do not edit the class manually.
12
+ """ # noqa: E501 docstring might be too long
13
+
14
+ from __future__ import annotations
15
+
16
+ import json
17
+ import pprint
18
+ import re
19
+ from typing import Any, ClassVar, Dict, List, Optional, Set
20
+
21
+ from pydantic import BaseModel, ConfigDict, Field, field_validator
22
+ from typing_extensions import Annotated, Self
23
+
24
+
25
+ class OptionsUDP(BaseModel):
26
+ """
27
+ OptionsUDP
28
+ """
29
+
30
+ idle_timeout: Optional[Annotated[str, Field(strict=True)]] = Field(
31
+ default=None,
32
+ description="The connection idle timeout to be used with the protocol. The default value is set to 1 minute, and the maximum value is 2 minutes.",
33
+ alias="idleTimeout",
34
+ )
35
+ __properties: ClassVar[List[str]] = ["idleTimeout"]
36
+
37
+ @field_validator("idle_timeout")
38
+ def idle_timeout_validate_regular_expression(cls, value):
39
+ """Validates the regular expression"""
40
+ if value is None:
41
+ return value
42
+
43
+ if not re.match(r"^-?(?:0|[1-9][0-9]{0,11})(?:\.[0-9]{1,9})?s$", value):
44
+ raise ValueError(r"must validate the regular expression /^-?(?:0|[1-9][0-9]{0,11})(?:\.[0-9]{1,9})?s$/")
45
+ return value
46
+
47
+ model_config = ConfigDict(
48
+ populate_by_name=True,
49
+ validate_assignment=True,
50
+ protected_namespaces=(),
51
+ )
52
+
53
+ def to_str(self) -> str:
54
+ """Returns the string representation of the model using alias"""
55
+ return pprint.pformat(self.model_dump(by_alias=True))
56
+
57
+ def to_json(self) -> str:
58
+ """Returns the JSON representation of the model using alias"""
59
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
60
+ return json.dumps(self.to_dict())
61
+
62
+ @classmethod
63
+ def from_json(cls, json_str: str) -> Optional[Self]:
64
+ """Create an instance of OptionsUDP from a JSON string"""
65
+ return cls.from_dict(json.loads(json_str))
66
+
67
+ def to_dict(self) -> Dict[str, Any]:
68
+ """Return the dictionary representation of the model using alias.
69
+
70
+ This has the following differences from calling pydantic's
71
+ `self.model_dump(by_alias=True)`:
72
+
73
+ * `None` is only added to the output dict for nullable fields that
74
+ were set at model initialization. Other fields with value `None`
75
+ are ignored.
76
+ """
77
+ excluded_fields: Set[str] = set([])
78
+
79
+ _dict = self.model_dump(
80
+ by_alias=True,
81
+ exclude=excluded_fields,
82
+ exclude_none=True,
83
+ )
84
+ return _dict
85
+
86
+ @classmethod
87
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
88
+ """Create an instance of OptionsUDP from a dict"""
89
+ if obj is None:
90
+ return None
91
+
92
+ if not isinstance(obj, dict):
93
+ return cls.model_validate(obj)
94
+
95
+ _obj = cls.model_validate({"idleTimeout": obj.get("idleTimeout")})
96
+ return _obj
@@ -0,0 +1,97 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ Load Balancer API
5
+
6
+ This API offers an interface to provision and manage load balancing servers in your STACKIT project. It also has the possibility of pooling target servers for load balancing purposes. For each load balancer provided, two VMs are deployed in your OpenStack project subject to a fee.
7
+
8
+ The version of the OpenAPI document: 1.7.2
9
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
10
+
11
+ Do not edit the class manually.
12
+ """ # noqa: E501 docstring might be too long
13
+
14
+ from __future__ import annotations
15
+
16
+ import json
17
+ import pprint
18
+ from typing import Any, ClassVar, Dict, List, Optional, Set
19
+
20
+ from pydantic import BaseModel, ConfigDict, Field, StrictInt, StrictStr
21
+ from typing_extensions import Self
22
+
23
+
24
+ class PlanDetails(BaseModel):
25
+ """
26
+ PlanDetails
27
+ """
28
+
29
+ description: Optional[StrictStr] = Field(default=None, description="Description")
30
+ flavor_name: Optional[StrictStr] = Field(default=None, description="Flavor Name", alias="flavorName")
31
+ max_connections: Optional[StrictInt] = Field(
32
+ default=None,
33
+ description="Maximum number of concurrent connections per load balancer VM instance.",
34
+ alias="maxConnections",
35
+ )
36
+ name: Optional[StrictStr] = Field(default=None, description="Service Plan Name")
37
+ plan_id: Optional[StrictStr] = Field(default=None, description="Service Plan Identifier", alias="planId")
38
+ __properties: ClassVar[List[str]] = ["description", "flavorName", "maxConnections", "name", "planId"]
39
+
40
+ model_config = ConfigDict(
41
+ populate_by_name=True,
42
+ validate_assignment=True,
43
+ protected_namespaces=(),
44
+ )
45
+
46
+ def to_str(self) -> str:
47
+ """Returns the string representation of the model using alias"""
48
+ return pprint.pformat(self.model_dump(by_alias=True))
49
+
50
+ def to_json(self) -> str:
51
+ """Returns the JSON representation of the model using alias"""
52
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
53
+ return json.dumps(self.to_dict())
54
+
55
+ @classmethod
56
+ def from_json(cls, json_str: str) -> Optional[Self]:
57
+ """Create an instance of PlanDetails from a JSON string"""
58
+ return cls.from_dict(json.loads(json_str))
59
+
60
+ def to_dict(self) -> Dict[str, Any]:
61
+ """Return the dictionary representation of the model using alias.
62
+
63
+ This has the following differences from calling pydantic's
64
+ `self.model_dump(by_alias=True)`:
65
+
66
+ * `None` is only added to the output dict for nullable fields that
67
+ were set at model initialization. Other fields with value `None`
68
+ are ignored.
69
+ """
70
+ excluded_fields: Set[str] = set([])
71
+
72
+ _dict = self.model_dump(
73
+ by_alias=True,
74
+ exclude=excluded_fields,
75
+ exclude_none=True,
76
+ )
77
+ return _dict
78
+
79
+ @classmethod
80
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
81
+ """Create an instance of PlanDetails from a dict"""
82
+ if obj is None:
83
+ return None
84
+
85
+ if not isinstance(obj, dict):
86
+ return cls.model_validate(obj)
87
+
88
+ _obj = cls.model_validate(
89
+ {
90
+ "description": obj.get("description"),
91
+ "flavorName": obj.get("flavorName"),
92
+ "maxConnections": obj.get("maxConnections"),
93
+ "name": obj.get("name"),
94
+ "planId": obj.get("planId"),
95
+ }
96
+ )
97
+ return _obj
@@ -0,0 +1,81 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ Load Balancer API
5
+
6
+ This API offers an interface to provision and manage load balancing servers in your STACKIT project. It also has the possibility of pooling target servers for load balancing purposes. For each load balancer provided, two VMs are deployed in your OpenStack project subject to a fee.
7
+
8
+ The version of the OpenAPI document: 1.7.2
9
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
10
+
11
+ Do not edit the class manually.
12
+ """ # noqa: E501 docstring might be too long
13
+
14
+ from __future__ import annotations
15
+
16
+ import json
17
+ import pprint
18
+ from typing import Any, ClassVar, Dict, List, Optional, Set
19
+
20
+ from pydantic import BaseModel, ConfigDict, Field, StrictStr
21
+ from typing_extensions import Self
22
+
23
+
24
+ class ServerNameIndicator(BaseModel):
25
+ """
26
+ ServerNameIndicator
27
+ """
28
+
29
+ name: Optional[StrictStr] = Field(default=None, description="The domain name for this SNI config.")
30
+ __properties: ClassVar[List[str]] = ["name"]
31
+
32
+ model_config = ConfigDict(
33
+ populate_by_name=True,
34
+ validate_assignment=True,
35
+ protected_namespaces=(),
36
+ )
37
+
38
+ def to_str(self) -> str:
39
+ """Returns the string representation of the model using alias"""
40
+ return pprint.pformat(self.model_dump(by_alias=True))
41
+
42
+ def to_json(self) -> str:
43
+ """Returns the JSON representation of the model using alias"""
44
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
45
+ return json.dumps(self.to_dict())
46
+
47
+ @classmethod
48
+ def from_json(cls, json_str: str) -> Optional[Self]:
49
+ """Create an instance of ServerNameIndicator from a JSON string"""
50
+ return cls.from_dict(json.loads(json_str))
51
+
52
+ def to_dict(self) -> Dict[str, Any]:
53
+ """Return the dictionary representation of the model using alias.
54
+
55
+ This has the following differences from calling pydantic's
56
+ `self.model_dump(by_alias=True)`:
57
+
58
+ * `None` is only added to the output dict for nullable fields that
59
+ were set at model initialization. Other fields with value `None`
60
+ are ignored.
61
+ """
62
+ excluded_fields: Set[str] = set([])
63
+
64
+ _dict = self.model_dump(
65
+ by_alias=True,
66
+ exclude=excluded_fields,
67
+ exclude_none=True,
68
+ )
69
+ return _dict
70
+
71
+ @classmethod
72
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
73
+ """Create an instance of ServerNameIndicator from a dict"""
74
+ if obj is None:
75
+ return None
76
+
77
+ if not isinstance(obj, dict):
78
+ return cls.model_validate(obj)
79
+
80
+ _obj = cls.model_validate({"name": obj.get("name")})
81
+ return _obj