Skip to content

Generator: Update SDK /services/kms #1221

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 3 commits into from
May 19, 2025
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@
- **Feature:** New field `Path` for `Rule`
- `authorization`: [v0.2.4](services/authorization/CHANGELOG.md#v024-2025-05-13)
- **Bugfix:** Updated regex validator
- `kms`: [v0.0.4](services/kms/CHANGELOG.md#v004-2025-05-19)
- **Feature:** Added new method `delete_wrapping_key`
- `lbapplication`: [v0.3.2](services/lbapplication/CHANGELOG.md#v032-2025-05-14)
- **Deprecated:** `lbapplication` service is deprecated and no longer maintained. Use the `alb` service instead
- `resourcemanager` [v0.4.0](services/resourcemanager/CHANGELOG.md#v040-2025-05-14)
Expand Down
3 changes: 3 additions & 0 deletions services/kms/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
## v0.0.4 (2025-05-19)
- **Feature:** Added new method `delete_wrapping_key`

## v0.0.3 (2025-05-09)
- **Feature:** Update user-agent header

Expand Down
2 changes: 1 addition & 1 deletion services/kms/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ name = "stackit-kms"

[tool.poetry]
name = "stackit-kms"
version = "v0.0.3"
version = "v0.0.4"
authors = [
"STACKIT Developer Tools <developer-tools@stackit.cloud>",
]
Expand Down
283 changes: 283 additions & 0 deletions services/kms/src/stackit/kms/api/default_api.py
Original file line number Diff line number Diff line change
Expand Up @@ -1791,6 +1791,289 @@ def _delete_key_ring_serialize(
_request_auth=_request_auth,
)

@validate_call
def delete_wrapping_key(
self,
project_id: Annotated[StrictStr, Field(description="The STACKIT portal project UUID the key ring is part of.")],
region_id: Annotated[StrictStr, Field(description="The STACKIT region name the key ring is located in.")],
key_ring_id: Annotated[StrictStr, Field(description="The key ring UUID.")],
wrapping_key_id: Annotated[StrictStr, Field(description="The wrapping key UUID.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]],
] = None,
_request_auth: Optional[Dict[StrictStr, Any]] = None,
_content_type: Optional[StrictStr] = None,
_headers: Optional[Dict[StrictStr, Any]] = None,
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
) -> None:
"""Delete wrapping key

Deletes the given wrapping key

:param project_id: The STACKIT portal project UUID the key ring is part of. (required)
:type project_id: str
:param region_id: The STACKIT region name the key ring is located in. (required)
:type region_id: str
:param key_ring_id: The key ring UUID. (required)
:type key_ring_id: str
:param wrapping_key_id: The wrapping key UUID. (required)
:type wrapping_key_id: str
: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
(connection, read) timeouts.
:type _request_timeout: int, tuple(int, int), optional
:param _request_auth: set to override the auth_settings for an a single
request; this effectively ignores the
authentication in the spec for a single request.
:type _request_auth: dict, optional
:param _content_type: force content-type for the request.
:type _content_type: str, Optional
:param _headers: set to override the headers for a single
request; this effectively ignores the headers
in the spec for a single request.
:type _headers: dict, optional
:param _host_index: set to override the host_index for a single
request; this effectively ignores the host_index
in the spec for a single request.
:type _host_index: int, optional
:return: Returns the result object.
""" # noqa: E501 docstring might be too long

_param = self._delete_wrapping_key_serialize(
project_id=project_id,
region_id=region_id,
key_ring_id=key_ring_id,
wrapping_key_id=wrapping_key_id,
_request_auth=_request_auth,
_content_type=_content_type,
_headers=_headers,
_host_index=_host_index,
)

_response_types_map: Dict[str, Optional[str]] = {
"204": None,
"400": "HttpError",
"401": "HttpError",
"404": "HttpError",
"500": "HttpError",
}
response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout)
response_data.read()
return self.api_client.response_deserialize(
response_data=response_data,
response_types_map=_response_types_map,
).data

@validate_call
def delete_wrapping_key_with_http_info(
self,
project_id: Annotated[StrictStr, Field(description="The STACKIT portal project UUID the key ring is part of.")],
region_id: Annotated[StrictStr, Field(description="The STACKIT region name the key ring is located in.")],
key_ring_id: Annotated[StrictStr, Field(description="The key ring UUID.")],
wrapping_key_id: Annotated[StrictStr, Field(description="The wrapping key UUID.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]],
] = None,
_request_auth: Optional[Dict[StrictStr, Any]] = None,
_content_type: Optional[StrictStr] = None,
_headers: Optional[Dict[StrictStr, Any]] = None,
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
) -> ApiResponse[None]:
"""Delete wrapping key

Deletes the given wrapping key

:param project_id: The STACKIT portal project UUID the key ring is part of. (required)
:type project_id: str
:param region_id: The STACKIT region name the key ring is located in. (required)
:type region_id: str
:param key_ring_id: The key ring UUID. (required)
:type key_ring_id: str
:param wrapping_key_id: The wrapping key UUID. (required)
:type wrapping_key_id: str
: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
(connection, read) timeouts.
:type _request_timeout: int, tuple(int, int), optional
:param _request_auth: set to override the auth_settings for an a single
request; this effectively ignores the
authentication in the spec for a single request.
:type _request_auth: dict, optional
:param _content_type: force content-type for the request.
:type _content_type: str, Optional
:param _headers: set to override the headers for a single
request; this effectively ignores the headers
in the spec for a single request.
:type _headers: dict, optional
:param _host_index: set to override the host_index for a single
request; this effectively ignores the host_index
in the spec for a single request.
:type _host_index: int, optional
:return: Returns the result object.
""" # noqa: E501 docstring might be too long

_param = self._delete_wrapping_key_serialize(
project_id=project_id,
region_id=region_id,
key_ring_id=key_ring_id,
wrapping_key_id=wrapping_key_id,
_request_auth=_request_auth,
_content_type=_content_type,
_headers=_headers,
_host_index=_host_index,
)

_response_types_map: Dict[str, Optional[str]] = {
"204": None,
"400": "HttpError",
"401": "HttpError",
"404": "HttpError",
"500": "HttpError",
}
response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout)
response_data.read()
return self.api_client.response_deserialize(
response_data=response_data,
response_types_map=_response_types_map,
)

@validate_call
def delete_wrapping_key_without_preload_content(
self,
project_id: Annotated[StrictStr, Field(description="The STACKIT portal project UUID the key ring is part of.")],
region_id: Annotated[StrictStr, Field(description="The STACKIT region name the key ring is located in.")],
key_ring_id: Annotated[StrictStr, Field(description="The key ring UUID.")],
wrapping_key_id: Annotated[StrictStr, Field(description="The wrapping key UUID.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]],
] = None,
_request_auth: Optional[Dict[StrictStr, Any]] = None,
_content_type: Optional[StrictStr] = None,
_headers: Optional[Dict[StrictStr, Any]] = None,
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
) -> RESTResponseType:
"""Delete wrapping key

Deletes the given wrapping key

:param project_id: The STACKIT portal project UUID the key ring is part of. (required)
:type project_id: str
:param region_id: The STACKIT region name the key ring is located in. (required)
:type region_id: str
:param key_ring_id: The key ring UUID. (required)
:type key_ring_id: str
:param wrapping_key_id: The wrapping key UUID. (required)
:type wrapping_key_id: str
: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
(connection, read) timeouts.
:type _request_timeout: int, tuple(int, int), optional
:param _request_auth: set to override the auth_settings for an a single
request; this effectively ignores the
authentication in the spec for a single request.
:type _request_auth: dict, optional
:param _content_type: force content-type for the request.
:type _content_type: str, Optional
:param _headers: set to override the headers for a single
request; this effectively ignores the headers
in the spec for a single request.
:type _headers: dict, optional
:param _host_index: set to override the host_index for a single
request; this effectively ignores the host_index
in the spec for a single request.
:type _host_index: int, optional
:return: Returns the result object.
""" # noqa: E501 docstring might be too long

_param = self._delete_wrapping_key_serialize(
project_id=project_id,
region_id=region_id,
key_ring_id=key_ring_id,
wrapping_key_id=wrapping_key_id,
_request_auth=_request_auth,
_content_type=_content_type,
_headers=_headers,
_host_index=_host_index,
)

_response_types_map: Dict[str, Optional[str]] = {
"204": None,
"400": "HttpError",
"401": "HttpError",
"404": "HttpError",
"500": "HttpError",
}
response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout)
return response_data.response

def _delete_wrapping_key_serialize(
self,
project_id,
region_id,
key_ring_id,
wrapping_key_id,
_request_auth,
_content_type,
_headers,
_host_index,
) -> RequestSerialized:

_host = None

_collection_formats: Dict[str, str] = {}

_path_params: Dict[str, str] = {}
_query_params: List[Tuple[str, str]] = []
_header_params: Dict[str, Optional[str]] = _headers or {}
_form_params: List[Tuple[str, str]] = []
_files: Dict[str, Union[str, bytes]] = {}
_body_params: Optional[bytes] = None

# process the path parameters
if project_id is not None:
_path_params["projectId"] = project_id
if region_id is not None:
_path_params["regionId"] = region_id
if key_ring_id is not None:
_path_params["keyRingId"] = key_ring_id
if wrapping_key_id is not None:
_path_params["wrappingKeyId"] = wrapping_key_id
# process the query parameters
# process the header parameters
# process the form parameters
# process the body parameter

# set the HTTP header `Accept`
if "Accept" not in _header_params:
_header_params["Accept"] = self.api_client.select_header_accept(["application/json"])

# authentication setting
_auth_settings: List[str] = []

return self.api_client.param_serialize(
method="DELETE",
resource_path="/v1beta/projects/{projectId}/regions/{regionId}/keyrings/{keyRingId}/wrappingkeys/{wrappingKeyId}",
path_params=_path_params,
query_params=_query_params,
header_params=_header_params,
body=_body_params,
post_params=_form_params,
files=_files,
auth_settings=_auth_settings,
collection_formats=_collection_formats,
_host=_host,
_request_auth=_request_auth,
)

@validate_call
def destroy_version(
self,
Expand Down
6 changes: 4 additions & 2 deletions services/kms/src/stackit/kms/models/key.py
Original file line number Diff line number Diff line change
Expand Up @@ -80,8 +80,10 @@ class Key(BaseModel):
@field_validator("state")
def state_validate_enum(cls, value):
"""Validates the enum"""
if value not in set(["active", "version_not_ready", "deleted"]):
raise ValueError("must be one of enum values ('active', 'version_not_ready', 'deleted')")
if value not in set(["active", "deleted", "not_available", "errors_exist", "no_version"]):
raise ValueError(
"must be one of enum values ('active', 'deleted', 'not_available', 'errors_exist', 'no_version')"
)
return value

model_config = ConfigDict(
Expand Down
13 changes: 11 additions & 2 deletions services/kms/src/stackit/kms/models/version.py
Original file line number Diff line number Diff line change
Expand Up @@ -69,9 +69,18 @@ class Version(BaseModel):
@field_validator("state")
def state_validate_enum(cls, value):
"""Validates the enum"""
if value not in set(["active", "key_material_not_ready", "key_material_invalid", "disabled", "destroyed"]):
if value not in set(
[
"active",
"key_material_not_ready",
"key_material_invalid",
"key_material_unavailable",
"disabled",
"destroyed",
]
):
raise ValueError(
"must be one of enum values ('active', 'key_material_not_ready', 'key_material_invalid', 'disabled', 'destroyed')"
"must be one of enum values ('active', 'key_material_not_ready', 'key_material_invalid', 'key_material_unavailable', 'disabled', 'destroyed')"
)
return value

Expand Down
6 changes: 4 additions & 2 deletions services/kms/src/stackit/kms/models/wrapping_key.py
Original file line number Diff line number Diff line change
Expand Up @@ -69,8 +69,10 @@ class WrappingKey(BaseModel):
@field_validator("state")
def state_validate_enum(cls, value):
"""Validates the enum"""
if value not in set(["active", "key_material_not_ready", "expired", "deleting"]):
raise ValueError("must be one of enum values ('active', 'key_material_not_ready', 'expired', 'deleting')")
if value not in set(["active", "key_material_not_ready", "expired", "deleted", "key_material_unavailable"]):
raise ValueError(
"must be one of enum values ('active', 'key_material_not_ready', 'expired', 'deleted', 'key_material_unavailable')"
)
return value

model_config = ConfigDict(
Expand Down
Loading