Skip to content
Open
Show file tree
Hide file tree
Changes from all 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: 1 addition & 1 deletion services/ske/oas_commit
Original file line number Diff line number Diff line change
@@ -1 +1 @@
9ba4c1ad01406fe6d0399b971043a2f9f74ea510
3e9c109388be83b40c16d8cb5ab146aa314eb6e8
4 changes: 4 additions & 0 deletions services/ske/src/stackit/ske/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@
"ApiAttributeError",
"ApiException",
"ACL",
"Access",
"AccessScope",
"AvailabilityZone",
"CRI",
Expand All @@ -45,6 +46,7 @@
"Hibernation",
"HibernationSchedule",
"IDP",
"IDPKubeconfig",
"Image",
"Kubeconfig",
"Kubernetes",
Expand Down Expand Up @@ -83,6 +85,7 @@
from stackit.ske.exceptions import ApiTypeError as ApiTypeError
from stackit.ske.exceptions import ApiValueError as ApiValueError
from stackit.ske.exceptions import OpenApiException as OpenApiException
from stackit.ske.models.access import Access as Access
from stackit.ske.models.access_scope import AccessScope as AccessScope

# import models into sdk package
Expand Down Expand Up @@ -114,6 +117,7 @@
HibernationSchedule as HibernationSchedule,
)
from stackit.ske.models.idp import IDP as IDP
from stackit.ske.models.idp_kubeconfig import IDPKubeconfig as IDPKubeconfig
from stackit.ske.models.image import Image as Image
from stackit.ske.models.kubeconfig import Kubeconfig as Kubeconfig
from stackit.ske.models.kubernetes import Kubernetes as Kubernetes
Expand Down
266 changes: 266 additions & 0 deletions services/ske/src/stackit/ske/api/default_api.py
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@
from stackit.ske.models.create_or_update_cluster_payload import (
CreateOrUpdateClusterPayload,
)
from stackit.ske.models.idp_kubeconfig import IDPKubeconfig
from stackit.ske.models.kubeconfig import Kubeconfig
from stackit.ske.models.list_clusters_response import ListClustersResponse
from stackit.ske.models.login_kubeconfig import LoginKubeconfig
Expand Down Expand Up @@ -1430,6 +1431,271 @@ def _get_cluster_serialize(
_request_auth=_request_auth,
)

@validate_call
def get_idp_kubeconfig(
self,
project_id: StrictStr,
region: StrictStr,
cluster_name: StrictStr,
_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,
) -> IDPKubeconfig:
"""Get a kubeconfig to authenticate via IDP for use with the STACKIT CLI

A kubeconfig retrieved using this endpoint does not contain any credentials and instead obtains valid credentials via the STACKIT CLI. Permissions must be granted to the user beforehand using an admin kubeconfig.

:param project_id: (required)
:type project_id: str
:param region: (required)
:type region: str
:param cluster_name: (required)
:type cluster_name: 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

_param = self._get_idp_kubeconfig_serialize(
project_id=project_id,
region=region,
cluster_name=cluster_name,
_request_auth=_request_auth,
_content_type=_content_type,
_headers=_headers,
_host_index=_host_index,
)

_response_types_map: Dict[str, Optional[str]] = {
"200": "IDPKubeconfig",
"400": "object",
"401": "object",
"404": "object",
}
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 get_idp_kubeconfig_with_http_info(
self,
project_id: StrictStr,
region: StrictStr,
cluster_name: StrictStr,
_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[IDPKubeconfig]:
"""Get a kubeconfig to authenticate via IDP for use with the STACKIT CLI

A kubeconfig retrieved using this endpoint does not contain any credentials and instead obtains valid credentials via the STACKIT CLI. Permissions must be granted to the user beforehand using an admin kubeconfig.

:param project_id: (required)
:type project_id: str
:param region: (required)
:type region: str
:param cluster_name: (required)
:type cluster_name: 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

_param = self._get_idp_kubeconfig_serialize(
project_id=project_id,
region=region,
cluster_name=cluster_name,
_request_auth=_request_auth,
_content_type=_content_type,
_headers=_headers,
_host_index=_host_index,
)

_response_types_map: Dict[str, Optional[str]] = {
"200": "IDPKubeconfig",
"400": "object",
"401": "object",
"404": "object",
}
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 get_idp_kubeconfig_without_preload_content(
self,
project_id: StrictStr,
region: StrictStr,
cluster_name: StrictStr,
_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:
"""Get a kubeconfig to authenticate via IDP for use with the STACKIT CLI

A kubeconfig retrieved using this endpoint does not contain any credentials and instead obtains valid credentials via the STACKIT CLI. Permissions must be granted to the user beforehand using an admin kubeconfig.

:param project_id: (required)
:type project_id: str
:param region: (required)
:type region: str
:param cluster_name: (required)
:type cluster_name: 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

_param = self._get_idp_kubeconfig_serialize(
project_id=project_id,
region=region,
cluster_name=cluster_name,
_request_auth=_request_auth,
_content_type=_content_type,
_headers=_headers,
_host_index=_host_index,
)

_response_types_map: Dict[str, Optional[str]] = {
"200": "IDPKubeconfig",
"400": "object",
"401": "object",
"404": "object",
}
response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout)
return response_data.response

def _get_idp_kubeconfig_serialize(
self,
project_id,
region,
cluster_name,
_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, List[str], List[bytes], List[Tuple[str, bytes]]]] = {}
_body_params: Optional[bytes] = None

# process the path parameters
if project_id is not None:
_path_params["projectId"] = project_id
if region is not None:
_path_params["region"] = region
if cluster_name is not None:
_path_params["clusterName"] = cluster_name
# 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="GET",
resource_path="/v2/projects/{projectId}/regions/{region}/clusters/{clusterName}/kubeconfig/idp",
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 get_login_kubeconfig(
self,
Expand Down
2 changes: 2 additions & 0 deletions services/ske/src/stackit/ske/models/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
""" # noqa: E501


from stackit.ske.models.access import Access
from stackit.ske.models.access_scope import AccessScope

# import models into model package
Expand All @@ -36,6 +37,7 @@
from stackit.ske.models.hibernation import Hibernation
from stackit.ske.models.hibernation_schedule import HibernationSchedule
from stackit.ske.models.idp import IDP
from stackit.ske.models.idp_kubeconfig import IDPKubeconfig
from stackit.ske.models.image import Image
from stackit.ske.models.kubeconfig import Kubeconfig
from stackit.ske.models.kubernetes import Kubernetes
Expand Down
Loading