Skip to content
Closed
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
Original file line number Diff line number Diff line change
Expand Up @@ -29,8 +29,10 @@
"ApiAttributeError",
"ApiException",
"AddMembersPayload",
"AssignableSubject",
"ErrorResponse",
"ExistingPermission",
"ListAssignableSubjectsResponse",
"ListMembersResponse",
"ListPermissionsResponse",
"ListUserMembershipsResponse",
Expand Down Expand Up @@ -64,10 +66,16 @@
from stackit.authorization.models.add_members_payload import (
AddMembersPayload as AddMembersPayload,
)
from stackit.authorization.models.assignable_subject import (
AssignableSubject as AssignableSubject,
)
from stackit.authorization.models.error_response import ErrorResponse as ErrorResponse
from stackit.authorization.models.existing_permission import (
ExistingPermission as ExistingPermission,
)
from stackit.authorization.models.list_assignable_subjects_response import (
ListAssignableSubjectsResponse as ListAssignableSubjectsResponse,
)
from stackit.authorization.models.list_members_response import (
ListMembersResponse as ListMembersResponse,
)
Expand Down
270 changes: 270 additions & 0 deletions services/authorization/src/stackit/authorization/api/default_api.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,9 @@
from stackit.authorization.api_client import ApiClient, RequestSerialized
from stackit.authorization.api_response import ApiResponse
from stackit.authorization.models.add_members_payload import AddMembersPayload
from stackit.authorization.models.list_assignable_subjects_response import (
ListAssignableSubjectsResponse,
)
from stackit.authorization.models.list_members_response import ListMembersResponse
from stackit.authorization.models.list_permissions_response import (
ListPermissionsResponse,
Expand Down Expand Up @@ -307,6 +310,273 @@ def _add_members_serialize(
_request_auth=_request_auth,
)

@validate_call
def get_assignable_subjects(
self,
resource_type: StrictStr,
resource_id: StrictStr,
subject: Optional[StrictStr] = None,
_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,
) -> ListAssignableSubjectsResponse:
"""Get subjects assignable to a resource

BFF endpoint for portal. List subjects assignable to a given resource.

:param resource_type: (required)
:type resource_type: str
:param resource_id: (required)
:type resource_id: str
:param subject:
:type subject: 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_assignable_subjects_serialize(
resource_type=resource_type,
resource_id=resource_id,
subject=subject,
_request_auth=_request_auth,
_content_type=_content_type,
_headers=_headers,
_host_index=_host_index,
)

_response_types_map: Dict[str, Optional[str]] = {
"200": "ListAssignableSubjectsResponse",
"400": "ErrorResponse",
"401": "ErrorResponse",
"403": "ErrorResponse",
}
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_assignable_subjects_with_http_info(
self,
resource_type: StrictStr,
resource_id: StrictStr,
subject: Optional[StrictStr] = None,
_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[ListAssignableSubjectsResponse]:
"""Get subjects assignable to a resource

BFF endpoint for portal. List subjects assignable to a given resource.

:param resource_type: (required)
:type resource_type: str
:param resource_id: (required)
:type resource_id: str
:param subject:
:type subject: 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_assignable_subjects_serialize(
resource_type=resource_type,
resource_id=resource_id,
subject=subject,
_request_auth=_request_auth,
_content_type=_content_type,
_headers=_headers,
_host_index=_host_index,
)

_response_types_map: Dict[str, Optional[str]] = {
"200": "ListAssignableSubjectsResponse",
"400": "ErrorResponse",
"401": "ErrorResponse",
"403": "ErrorResponse",
}
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_assignable_subjects_without_preload_content(
self,
resource_type: StrictStr,
resource_id: StrictStr,
subject: Optional[StrictStr] = None,
_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 subjects assignable to a resource

BFF endpoint for portal. List subjects assignable to a given resource.

:param resource_type: (required)
:type resource_type: str
:param resource_id: (required)
:type resource_id: str
:param subject:
:type subject: 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_assignable_subjects_serialize(
resource_type=resource_type,
resource_id=resource_id,
subject=subject,
_request_auth=_request_auth,
_content_type=_content_type,
_headers=_headers,
_host_index=_host_index,
)

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

def _get_assignable_subjects_serialize(
self,
resource_type,
resource_id,
subject,
_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 resource_type is not None:
_path_params["resourceType"] = resource_type
if resource_id is not None:
_path_params["resourceId"] = resource_id
# process the query parameters
if subject is not None:

_query_params.append(("subject", subject))

# 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/bff/{resourceType}/{resourceId}/assignableSubjects",
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 list_members(
self,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,12 @@

# import models into model package
from stackit.authorization.models.add_members_payload import AddMembersPayload
from stackit.authorization.models.assignable_subject import AssignableSubject
from stackit.authorization.models.error_response import ErrorResponse
from stackit.authorization.models.existing_permission import ExistingPermission
from stackit.authorization.models.list_assignable_subjects_response import (
ListAssignableSubjectsResponse,
)
from stackit.authorization.models.list_members_response import ListMembersResponse
from stackit.authorization.models.list_permissions_response import (
ListPermissionsResponse,
Expand Down
Loading