From b1f51fb9564e4ac2a5ed7af3ee085ff8bece2cf7 Mon Sep 17 00:00:00 2001 From: SDK Generator Bot Date: Fri, 13 Mar 2026 12:27:30 +0000 Subject: [PATCH] Generate alb --- services/alb/oas_commit | 2 +- .../alb/src/stackit/alb/api/default_api.py | 25 ++++++++------- services/alb/src/stackit/alb/api_client.py | 31 +++++++++++++------ services/alb/src/stackit/alb/exceptions.py | 2 +- .../alb/src/stackit/alb/models/__init__.py | 1 - .../models/create_load_balancer_payload.py | 24 +++++++------- .../stackit/alb/models/get_quota_response.py | 5 ++- .../alb/src/stackit/alb/models/host_config.py | 6 ++-- .../alb/models/list_credentials_response.py | 6 ++-- .../models/list_load_balancers_response.py | 6 ++-- .../stackit/alb/models/list_plans_response.py | 6 ++-- .../src/stackit/alb/models/load_balancer.py | 24 +++++++------- .../alb/src/stackit/alb/models/network.py | 5 +-- .../alb/models/protocol_options_http.py | 6 ++-- services/alb/src/stackit/alb/models/rule.py | 12 +++---- services/alb/src/stackit/alb/models/status.py | 6 ++-- .../alb/src/stackit/alb/models/target_pool.py | 6 ++-- .../models/update_load_balancer_payload.py | 24 +++++++------- .../alb/models/update_target_pool_payload.py | 6 ++-- services/alb/src/stackit/alb/rest.py | 22 +++++++++++-- 20 files changed, 127 insertions(+), 98 deletions(-) diff --git a/services/alb/oas_commit b/services/alb/oas_commit index 6a2a7d7b4..e3713dde3 100644 --- a/services/alb/oas_commit +++ b/services/alb/oas_commit @@ -1 +1 @@ -10774896634990c655a523f5f0fabd6e2be9e216 +0e64886dd0847341800d7191ed193b75413be998 diff --git a/services/alb/src/stackit/alb/api/default_api.py b/services/alb/src/stackit/alb/api/default_api.py index 4d49284f1..3ec7b8067 100644 --- a/services/alb/src/stackit/alb/api/default_api.py +++ b/services/alb/src/stackit/alb/api/default_api.py @@ -12,6 +12,7 @@ """ # noqa: E501 from typing import Any, Dict, List, Optional, Tuple, Union +from uuid import UUID from pydantic import Field, StrictFloat, StrictInt, StrictStr, validate_call from stackit.core.configuration import Configuration @@ -55,7 +56,7 @@ def create_credentials( project_id: StrictStr, region: StrictStr, create_credentials_payload: CreateCredentialsPayload, - x_request_id: Optional[StrictStr] = None, + x_request_id: Optional[UUID] = None, _request_timeout: Union[ None, Annotated[StrictFloat, Field(gt=0)], @@ -77,7 +78,7 @@ def create_credentials( :param create_credentials_payload: (required) :type create_credentials_payload: CreateCredentialsPayload :param x_request_id: - :type x_request_id: str + :type x_request_id: UUID :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of @@ -131,7 +132,7 @@ def create_credentials_with_http_info( project_id: StrictStr, region: StrictStr, create_credentials_payload: CreateCredentialsPayload, - x_request_id: Optional[StrictStr] = None, + x_request_id: Optional[UUID] = None, _request_timeout: Union[ None, Annotated[StrictFloat, Field(gt=0)], @@ -153,7 +154,7 @@ def create_credentials_with_http_info( :param create_credentials_payload: (required) :type create_credentials_payload: CreateCredentialsPayload :param x_request_id: - :type x_request_id: str + :type x_request_id: UUID :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of @@ -207,7 +208,7 @@ def create_credentials_without_preload_content( project_id: StrictStr, region: StrictStr, create_credentials_payload: CreateCredentialsPayload, - x_request_id: Optional[StrictStr] = None, + x_request_id: Optional[UUID] = None, _request_timeout: Union[ None, Annotated[StrictFloat, Field(gt=0)], @@ -229,7 +230,7 @@ def create_credentials_without_preload_content( :param create_credentials_payload: (required) :type create_credentials_payload: CreateCredentialsPayload :param x_request_id: - :type x_request_id: str + :type x_request_id: UUID :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of @@ -346,7 +347,7 @@ def create_load_balancer( project_id: StrictStr, region: StrictStr, create_load_balancer_payload: CreateLoadBalancerPayload, - x_request_id: Optional[StrictStr] = None, + x_request_id: Optional[UUID] = None, _request_timeout: Union[ None, Annotated[StrictFloat, Field(gt=0)], @@ -368,7 +369,7 @@ def create_load_balancer( :param create_load_balancer_payload: (required) :type create_load_balancer_payload: CreateLoadBalancerPayload :param x_request_id: - :type x_request_id: str + :type x_request_id: UUID :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of @@ -423,7 +424,7 @@ def create_load_balancer_with_http_info( project_id: StrictStr, region: StrictStr, create_load_balancer_payload: CreateLoadBalancerPayload, - x_request_id: Optional[StrictStr] = None, + x_request_id: Optional[UUID] = None, _request_timeout: Union[ None, Annotated[StrictFloat, Field(gt=0)], @@ -445,7 +446,7 @@ def create_load_balancer_with_http_info( :param create_load_balancer_payload: (required) :type create_load_balancer_payload: CreateLoadBalancerPayload :param x_request_id: - :type x_request_id: str + :type x_request_id: UUID :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of @@ -500,7 +501,7 @@ def create_load_balancer_without_preload_content( project_id: StrictStr, region: StrictStr, create_load_balancer_payload: CreateLoadBalancerPayload, - x_request_id: Optional[StrictStr] = None, + x_request_id: Optional[UUID] = None, _request_timeout: Union[ None, Annotated[StrictFloat, Field(gt=0)], @@ -522,7 +523,7 @@ def create_load_balancer_without_preload_content( :param create_load_balancer_payload: (required) :type create_load_balancer_payload: CreateLoadBalancerPayload :param x_request_id: - :type x_request_id: str + :type x_request_id: UUID :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of diff --git a/services/alb/src/stackit/alb/api_client.py b/services/alb/src/stackit/alb/api_client.py index 1d62a6c80..d7eeb86ac 100644 --- a/services/alb/src/stackit/alb/api_client.py +++ b/services/alb/src/stackit/alb/api_client.py @@ -12,11 +12,13 @@ """ # noqa: E501 import datetime +import decimal import json import mimetypes import os import re import tempfile +import uuid from enum import Enum from typing import Dict, List, Optional, Tuple, Union from urllib.parse import quote @@ -63,8 +65,10 @@ class ApiClient: "bool": bool, "date": datetime.date, "datetime": datetime.datetime, + "decimal": decimal.Decimal, "object": object, } + _pool = None def __init__(self, configuration, header_name=None, header_value=None, cookie=None) -> None: self.config: Configuration = configuration @@ -267,7 +271,7 @@ def response_deserialize( return_data = self.__deserialize_file(response_data) elif response_type is not None: match = None - content_type = response_data.getheader("content-type") + content_type = response_data.headers.get("content-type") if content_type is not None: match = re.search(r"charset=([a-zA-Z\-\d]+)[\s;]?", content_type) encoding = match.group(1) if match else "utf-8" @@ -284,7 +288,7 @@ def response_deserialize( return ApiResponse( status_code=response_data.status, data=return_data, - headers=response_data.getheaders(), + headers=response_data.headers, raw_data=response_data.data, ) @@ -296,6 +300,7 @@ def sanitize_for_serialization(self, obj): If obj is str, int, long, float, bool, return directly. If obj is datetime.datetime, datetime.date convert to string in iso8601 format. + If obj is decimal.Decimal return string representation. If obj is list, sanitize each element in the list. If obj is dict, return the dict. If obj is OpenAPI model, return the properties dict. @@ -311,12 +316,16 @@ def sanitize_for_serialization(self, obj): return obj.get_secret_value() elif isinstance(obj, self.PRIMITIVE_TYPES): return obj + elif isinstance(obj, uuid.UUID): + return str(obj) elif isinstance(obj, list): return [self.sanitize_for_serialization(sub_obj) for sub_obj in obj] elif isinstance(obj, tuple): return tuple(self.sanitize_for_serialization(sub_obj) for sub_obj in obj) elif isinstance(obj, (datetime.datetime, datetime.date)): return obj.isoformat() + elif isinstance(obj, decimal.Decimal): + return str(obj) elif isinstance(obj, dict): obj_dict = obj @@ -326,7 +335,7 @@ def sanitize_for_serialization(self, obj): # and attributes which value is not None. # Convert attribute name to json key in # model definition for request. - if hasattr(obj, "to_dict") and callable(obj.to_dict): + if hasattr(obj, "to_dict") and callable(getattr(obj, "to_dict")): obj_dict = obj.to_dict() else: obj_dict = obj.__dict__ @@ -354,7 +363,7 @@ def deserialize(self, response_text: str, response_type: str, content_type: Opti data = json.loads(response_text) except ValueError: data = response_text - elif re.match(r"^application/(json|[\w!#$&.+-^_]+\+json)\s*(;|$)", content_type, re.IGNORECASE): + elif re.match(r"^application/(json|[\w!#$&.+\-^_]+\+json)\s*(;|$)", content_type, re.IGNORECASE): if response_text == "": data = "" else: @@ -400,12 +409,14 @@ def __deserialize(self, data, klass): if klass in self.PRIMITIVE_TYPES: return self.__deserialize_primitive(data, klass) - elif klass == object: + elif klass is object: return self.__deserialize_object(data) - elif klass == datetime.date: + elif klass is datetime.date: return self.__deserialize_date(data) - elif klass == datetime.datetime: + elif klass is datetime.datetime: return self.__deserialize_datetime(data) + elif klass is decimal.Decimal: + return decimal.Decimal(data) elif issubclass(klass, Enum): return self.__deserialize_enum(data, klass) else: @@ -553,12 +564,14 @@ def __deserialize_file(self, response): os.close(fd) os.remove(path) - content_disposition = response.getheader("Content-Disposition") + content_disposition = response.headers.get("Content-Disposition") if content_disposition: m = re.search(r'filename=[\'"]?([^\'"\s]+)[\'"]?', content_disposition) if m is None: raise ValueError("Unexpected 'content-disposition' header value") - filename = m.group(1) + filename = os.path.basename(m.group(1)) # Strip any directory traversal + if filename in ("", ".", ".."): # fall back to tmp filename + filename = os.path.basename(path) path = os.path.join(os.path.dirname(path), filename) with open(path, "wb") as f: diff --git a/services/alb/src/stackit/alb/exceptions.py b/services/alb/src/stackit/alb/exceptions.py index 1427c9154..297834376 100644 --- a/services/alb/src/stackit/alb/exceptions.py +++ b/services/alb/src/stackit/alb/exceptions.py @@ -129,7 +129,7 @@ def __init__( self.body = http_resp.data.decode("utf-8") except Exception: # noqa: S110 pass - self.headers = http_resp.getheaders() + self.headers = http_resp.headers @classmethod def from_response( diff --git a/services/alb/src/stackit/alb/models/__init__.py b/services/alb/src/stackit/alb/models/__init__.py index c87941dfb..33bd3b32e 100644 --- a/services/alb/src/stackit/alb/models/__init__.py +++ b/services/alb/src/stackit/alb/models/__init__.py @@ -12,7 +12,6 @@ Do not edit the class manually. """ # noqa: E501 - # import models into model package from stackit.alb.models.active_health_check import ActiveHealthCheck from stackit.alb.models.certificate_config import CertificateConfig diff --git a/services/alb/src/stackit/alb/models/create_load_balancer_payload.py b/services/alb/src/stackit/alb/models/create_load_balancer_payload.py index e3c3ea452..3a6360d3e 100644 --- a/services/alb/src/stackit/alb/models/create_load_balancer_payload.py +++ b/services/alb/src/stackit/alb/models/create_load_balancer_payload.py @@ -198,16 +198,16 @@ def to_dict(self) -> Dict[str, Any]: # override the default output from pydantic by calling `to_dict()` of each item in errors (list) _items = [] if self.errors: - for _item in self.errors: - if _item: - _items.append(_item.to_dict()) + for _item_errors in self.errors: + if _item_errors: + _items.append(_item_errors.to_dict()) _dict["errors"] = _items # override the default output from pydantic by calling `to_dict()` of each item in listeners (list) _items = [] if self.listeners: - for _item in self.listeners: - if _item: - _items.append(_item.to_dict()) + for _item_listeners in self.listeners: + if _item_listeners: + _items.append(_item_listeners.to_dict()) _dict["listeners"] = _items # override the default output from pydantic by calling `to_dict()` of load_balancer_security_group if self.load_balancer_security_group: @@ -215,9 +215,9 @@ def to_dict(self) -> Dict[str, Any]: # override the default output from pydantic by calling `to_dict()` of each item in networks (list) _items = [] if self.networks: - for _item in self.networks: - if _item: - _items.append(_item.to_dict()) + for _item_networks in self.networks: + if _item_networks: + _items.append(_item_networks.to_dict()) _dict["networks"] = _items # override the default output from pydantic by calling `to_dict()` of options if self.options: @@ -225,9 +225,9 @@ def to_dict(self) -> Dict[str, Any]: # override the default output from pydantic by calling `to_dict()` of each item in target_pools (list) _items = [] if self.target_pools: - for _item in self.target_pools: - if _item: - _items.append(_item.to_dict()) + for _item_target_pools in self.target_pools: + if _item_target_pools: + _items.append(_item_target_pools.to_dict()) _dict["targetPools"] = _items # override the default output from pydantic by calling `to_dict()` of target_security_group if self.target_security_group: diff --git a/services/alb/src/stackit/alb/models/get_quota_response.py b/services/alb/src/stackit/alb/models/get_quota_response.py index b8e01c548..d43f2a517 100644 --- a/services/alb/src/stackit/alb/models/get_quota_response.py +++ b/services/alb/src/stackit/alb/models/get_quota_response.py @@ -17,6 +17,7 @@ import pprint import re # noqa: F401 from typing import Any, ClassVar, Dict, List, Optional, Set +from uuid import UUID from pydantic import BaseModel, ConfigDict, Field, field_validator from typing_extensions import Annotated, Self @@ -37,9 +38,7 @@ class GetQuotaResponse(BaseModel): description="The maximum number of load balancing servers in this project.", alias="maxLoadBalancers", ) - project_id: Optional[Annotated[str, Field(strict=True)]] = Field( - default=None, description="Project identifier", alias="projectId" - ) + project_id: Optional[UUID] = Field(default=None, description="Project identifier", alias="projectId") region: Optional[Annotated[str, Field(strict=True)]] = Field(default=None, description="Region") used_credentials: Optional[Annotated[int, Field(le=1000000, strict=True, ge=-1)]] = Field( default=None, diff --git a/services/alb/src/stackit/alb/models/host_config.py b/services/alb/src/stackit/alb/models/host_config.py index b822b90d3..674452108 100644 --- a/services/alb/src/stackit/alb/models/host_config.py +++ b/services/alb/src/stackit/alb/models/host_config.py @@ -76,9 +76,9 @@ def to_dict(self) -> Dict[str, Any]: # override the default output from pydantic by calling `to_dict()` of each item in rules (list) _items = [] if self.rules: - for _item in self.rules: - if _item: - _items.append(_item.to_dict()) + for _item_rules in self.rules: + if _item_rules: + _items.append(_item_rules.to_dict()) _dict["rules"] = _items return _dict diff --git a/services/alb/src/stackit/alb/models/list_credentials_response.py b/services/alb/src/stackit/alb/models/list_credentials_response.py index 872afd890..06e03fdfc 100644 --- a/services/alb/src/stackit/alb/models/list_credentials_response.py +++ b/services/alb/src/stackit/alb/models/list_credentials_response.py @@ -71,9 +71,9 @@ def to_dict(self) -> Dict[str, Any]: # override the default output from pydantic by calling `to_dict()` of each item in credentials (list) _items = [] if self.credentials: - for _item in self.credentials: - if _item: - _items.append(_item.to_dict()) + for _item_credentials in self.credentials: + if _item_credentials: + _items.append(_item_credentials.to_dict()) _dict["credentials"] = _items return _dict diff --git a/services/alb/src/stackit/alb/models/list_load_balancers_response.py b/services/alb/src/stackit/alb/models/list_load_balancers_response.py index 367f38598..995eed9bf 100644 --- a/services/alb/src/stackit/alb/models/list_load_balancers_response.py +++ b/services/alb/src/stackit/alb/models/list_load_balancers_response.py @@ -87,9 +87,9 @@ def to_dict(self) -> Dict[str, Any]: # override the default output from pydantic by calling `to_dict()` of each item in load_balancers (list) _items = [] if self.load_balancers: - for _item in self.load_balancers: - if _item: - _items.append(_item.to_dict()) + for _item_load_balancers in self.load_balancers: + if _item_load_balancers: + _items.append(_item_load_balancers.to_dict()) _dict["loadBalancers"] = _items return _dict diff --git a/services/alb/src/stackit/alb/models/list_plans_response.py b/services/alb/src/stackit/alb/models/list_plans_response.py index 782048c54..98d6ceb71 100644 --- a/services/alb/src/stackit/alb/models/list_plans_response.py +++ b/services/alb/src/stackit/alb/models/list_plans_response.py @@ -73,9 +73,9 @@ def to_dict(self) -> Dict[str, Any]: # override the default output from pydantic by calling `to_dict()` of each item in valid_plans (list) _items = [] if self.valid_plans: - for _item in self.valid_plans: - if _item: - _items.append(_item.to_dict()) + for _item_valid_plans in self.valid_plans: + if _item_valid_plans: + _items.append(_item_valid_plans.to_dict()) _dict["validPlans"] = _items return _dict diff --git a/services/alb/src/stackit/alb/models/load_balancer.py b/services/alb/src/stackit/alb/models/load_balancer.py index 262869618..abeb8560d 100644 --- a/services/alb/src/stackit/alb/models/load_balancer.py +++ b/services/alb/src/stackit/alb/models/load_balancer.py @@ -198,16 +198,16 @@ def to_dict(self) -> Dict[str, Any]: # override the default output from pydantic by calling `to_dict()` of each item in errors (list) _items = [] if self.errors: - for _item in self.errors: - if _item: - _items.append(_item.to_dict()) + for _item_errors in self.errors: + if _item_errors: + _items.append(_item_errors.to_dict()) _dict["errors"] = _items # override the default output from pydantic by calling `to_dict()` of each item in listeners (list) _items = [] if self.listeners: - for _item in self.listeners: - if _item: - _items.append(_item.to_dict()) + for _item_listeners in self.listeners: + if _item_listeners: + _items.append(_item_listeners.to_dict()) _dict["listeners"] = _items # override the default output from pydantic by calling `to_dict()` of load_balancer_security_group if self.load_balancer_security_group: @@ -215,9 +215,9 @@ def to_dict(self) -> Dict[str, Any]: # override the default output from pydantic by calling `to_dict()` of each item in networks (list) _items = [] if self.networks: - for _item in self.networks: - if _item: - _items.append(_item.to_dict()) + for _item_networks in self.networks: + if _item_networks: + _items.append(_item_networks.to_dict()) _dict["networks"] = _items # override the default output from pydantic by calling `to_dict()` of options if self.options: @@ -225,9 +225,9 @@ def to_dict(self) -> Dict[str, Any]: # override the default output from pydantic by calling `to_dict()` of each item in target_pools (list) _items = [] if self.target_pools: - for _item in self.target_pools: - if _item: - _items.append(_item.to_dict()) + for _item_target_pools in self.target_pools: + if _item_target_pools: + _items.append(_item_target_pools.to_dict()) _dict["targetPools"] = _items # override the default output from pydantic by calling `to_dict()` of target_security_group if self.target_security_group: diff --git a/services/alb/src/stackit/alb/models/network.py b/services/alb/src/stackit/alb/models/network.py index 330dffc4a..0df3c7cf3 100644 --- a/services/alb/src/stackit/alb/models/network.py +++ b/services/alb/src/stackit/alb/models/network.py @@ -17,9 +17,10 @@ import pprint import re # noqa: F401 from typing import Any, ClassVar, Dict, List, Optional, Set +from uuid import UUID from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator -from typing_extensions import Annotated, Self +from typing_extensions import Self class Network(BaseModel): @@ -27,7 +28,7 @@ class Network(BaseModel): Network """ # noqa: E501 - network_id: Optional[Annotated[str, Field(strict=True)]] = Field( + network_id: Optional[UUID] = Field( default=None, description="STACKIT network ID the Application Load Balancer and/or targets are in.", alias="networkId", diff --git a/services/alb/src/stackit/alb/models/protocol_options_http.py b/services/alb/src/stackit/alb/models/protocol_options_http.py index fa47eee84..a7e746b7f 100644 --- a/services/alb/src/stackit/alb/models/protocol_options_http.py +++ b/services/alb/src/stackit/alb/models/protocol_options_http.py @@ -71,9 +71,9 @@ def to_dict(self) -> Dict[str, Any]: # override the default output from pydantic by calling `to_dict()` of each item in hosts (list) _items = [] if self.hosts: - for _item in self.hosts: - if _item: - _items.append(_item.to_dict()) + for _item_hosts in self.hosts: + if _item_hosts: + _items.append(_item_hosts.to_dict()) _dict["hosts"] = _items return _dict diff --git a/services/alb/src/stackit/alb/models/rule.py b/services/alb/src/stackit/alb/models/rule.py index 67d9bee6e..5855cd8b1 100644 --- a/services/alb/src/stackit/alb/models/rule.py +++ b/services/alb/src/stackit/alb/models/rule.py @@ -103,9 +103,9 @@ def to_dict(self) -> Dict[str, Any]: # override the default output from pydantic by calling `to_dict()` of each item in headers (list) _items = [] if self.headers: - for _item in self.headers: - if _item: - _items.append(_item.to_dict()) + for _item_headers in self.headers: + if _item_headers: + _items.append(_item_headers.to_dict()) _dict["headers"] = _items # override the default output from pydantic by calling `to_dict()` of path if self.path: @@ -113,9 +113,9 @@ def to_dict(self) -> Dict[str, Any]: # override the default output from pydantic by calling `to_dict()` of each item in query_parameters (list) _items = [] if self.query_parameters: - for _item in self.query_parameters: - if _item: - _items.append(_item.to_dict()) + for _item_query_parameters in self.query_parameters: + if _item_query_parameters: + _items.append(_item_query_parameters.to_dict()) _dict["queryParameters"] = _items return _dict diff --git a/services/alb/src/stackit/alb/models/status.py b/services/alb/src/stackit/alb/models/status.py index 5e08e70ee..284d1892d 100644 --- a/services/alb/src/stackit/alb/models/status.py +++ b/services/alb/src/stackit/alb/models/status.py @@ -82,9 +82,9 @@ def to_dict(self) -> Dict[str, Any]: # override the default output from pydantic by calling `to_dict()` of each item in details (list) _items = [] if self.details: - for _item in self.details: - if _item: - _items.append(_item.to_dict()) + for _item_details in self.details: + if _item_details: + _items.append(_item_details.to_dict()) _dict["details"] = _items return _dict diff --git a/services/alb/src/stackit/alb/models/target_pool.py b/services/alb/src/stackit/alb/models/target_pool.py index 9b1bc64b4..a012d4559 100644 --- a/services/alb/src/stackit/alb/models/target_pool.py +++ b/services/alb/src/stackit/alb/models/target_pool.py @@ -97,9 +97,9 @@ def to_dict(self) -> Dict[str, Any]: # override the default output from pydantic by calling `to_dict()` of each item in targets (list) _items = [] if self.targets: - for _item in self.targets: - if _item: - _items.append(_item.to_dict()) + for _item_targets in self.targets: + if _item_targets: + _items.append(_item_targets.to_dict()) _dict["targets"] = _items # override the default output from pydantic by calling `to_dict()` of tls_config if self.tls_config: diff --git a/services/alb/src/stackit/alb/models/update_load_balancer_payload.py b/services/alb/src/stackit/alb/models/update_load_balancer_payload.py index 7a96fc12c..4e04222f2 100644 --- a/services/alb/src/stackit/alb/models/update_load_balancer_payload.py +++ b/services/alb/src/stackit/alb/models/update_load_balancer_payload.py @@ -196,16 +196,16 @@ def to_dict(self) -> Dict[str, Any]: # override the default output from pydantic by calling `to_dict()` of each item in errors (list) _items = [] if self.errors: - for _item in self.errors: - if _item: - _items.append(_item.to_dict()) + for _item_errors in self.errors: + if _item_errors: + _items.append(_item_errors.to_dict()) _dict["errors"] = _items # override the default output from pydantic by calling `to_dict()` of each item in listeners (list) _items = [] if self.listeners: - for _item in self.listeners: - if _item: - _items.append(_item.to_dict()) + for _item_listeners in self.listeners: + if _item_listeners: + _items.append(_item_listeners.to_dict()) _dict["listeners"] = _items # override the default output from pydantic by calling `to_dict()` of load_balancer_security_group if self.load_balancer_security_group: @@ -213,9 +213,9 @@ def to_dict(self) -> Dict[str, Any]: # override the default output from pydantic by calling `to_dict()` of each item in networks (list) _items = [] if self.networks: - for _item in self.networks: - if _item: - _items.append(_item.to_dict()) + for _item_networks in self.networks: + if _item_networks: + _items.append(_item_networks.to_dict()) _dict["networks"] = _items # override the default output from pydantic by calling `to_dict()` of options if self.options: @@ -223,9 +223,9 @@ def to_dict(self) -> Dict[str, Any]: # override the default output from pydantic by calling `to_dict()` of each item in target_pools (list) _items = [] if self.target_pools: - for _item in self.target_pools: - if _item: - _items.append(_item.to_dict()) + for _item_target_pools in self.target_pools: + if _item_target_pools: + _items.append(_item_target_pools.to_dict()) _dict["targetPools"] = _items # override the default output from pydantic by calling `to_dict()` of target_security_group if self.target_security_group: diff --git a/services/alb/src/stackit/alb/models/update_target_pool_payload.py b/services/alb/src/stackit/alb/models/update_target_pool_payload.py index 703845363..d15d480cf 100644 --- a/services/alb/src/stackit/alb/models/update_target_pool_payload.py +++ b/services/alb/src/stackit/alb/models/update_target_pool_payload.py @@ -97,9 +97,9 @@ def to_dict(self) -> Dict[str, Any]: # override the default output from pydantic by calling `to_dict()` of each item in targets (list) _items = [] if self.targets: - for _item in self.targets: - if _item: - _items.append(_item.to_dict()) + for _item_targets in self.targets: + if _item_targets: + _items.append(_item_targets.to_dict()) _dict["targets"] = _items # override the default output from pydantic by calling `to_dict()` of tls_config if self.tls_config: diff --git a/services/alb/src/stackit/alb/rest.py b/services/alb/src/stackit/alb/rest.py index cde165c9c..68d0ede2a 100644 --- a/services/alb/src/stackit/alb/rest.py +++ b/services/alb/src/stackit/alb/rest.py @@ -38,12 +38,17 @@ def read(self): self.data = self.response.content return self.data + @property + def headers(self): + """Returns a dictionary of response headers.""" + return self.response.headers + def getheaders(self): - """Returns a dictionary of the response headers.""" + """Returns a dictionary of the response headers; use ``headers`` instead.""" return self.response.headers def getheader(self, name, default=None): - """Returns a given response header.""" + """Returns a given response header; use ``headers.get()`` instead.""" return self.response.headers.get(name, default) @@ -93,6 +98,7 @@ def request(self, method, url, headers=None, body=None, post_params=None, _reque url, data=request_body, headers=headers, + timeout=_request_timeout, ) elif content_type == "application/x-www-form-urlencoded": r = self.session.request( @@ -100,6 +106,7 @@ def request(self, method, url, headers=None, body=None, post_params=None, _reque url, params=post_params, headers=headers, + timeout=_request_timeout, ) elif content_type == "multipart/form-data": # must del headers['Content-Type'], or the correct @@ -113,6 +120,7 @@ def request(self, method, url, headers=None, body=None, post_params=None, _reque url, files=post_params, headers=headers, + timeout=_request_timeout, ) # Pass a `string` parameter directly in the body to support # other content types than JSON when `body` argument is @@ -123,10 +131,17 @@ def request(self, method, url, headers=None, body=None, post_params=None, _reque url, data=body, headers=headers, + timeout=_request_timeout, ) elif headers["Content-Type"].startswith("text/") and isinstance(body, bool): request_body = "true" if body else "false" - r = self.session.request(method, url, data=request_body, headers=headers) + r = self.session.request( + method, + url, + data=request_body, + headers=headers, + timeout=_request_timeout, + ) else: # Cannot generate the request from given parameters msg = """Cannot prepare a request message for provided @@ -140,6 +155,7 @@ def request(self, method, url, headers=None, body=None, post_params=None, _reque url, params={}, headers=headers, + timeout=_request_timeout, ) except requests.exceptions.SSLError as e: msg = "\n".join([type(e).__name__, str(e)])