Skip to content

feat(account): add project customization endpoint #911

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 2 commits into from
Mar 17, 2025
Merged
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
30 changes: 30 additions & 0 deletions scaleway-async/scaleway_async/account/v3/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,22 @@
from .types import ContractType
from .types import ListContractSignaturesRequestOrderBy
from .types import ListProjectsRequestOrderBy
from .types import QualificationArchitectureType
from .types import QualificationHostApplicationSubUseCase
from .types import QualificationHostWebsiteSubUseCase
from .types import Contract
from .types import QualificationAiMachine
from .types import QualificationArchiveData
from .types import QualificationContainer
from .types import QualificationDeploySoftware
from .types import QualificationHostApplication
from .types import QualificationHostWebsite
from .types import QualificationOtherUseCase
from .types import QualificationSetScalewayEnvironment
from .types import QualificationShareData
from .types import ContractSignature
from .types import Project
from .types import Qualification
from .types import CheckContractSignatureResponse
from .types import ContractApiCheckContractSignatureRequest
from .types import ContractApiCreateContractSignatureRequest
Expand All @@ -18,17 +31,32 @@
from .types import ProjectApiDeleteProjectRequest
from .types import ProjectApiGetProjectRequest
from .types import ProjectApiListProjectsRequest
from .types import ProjectApiSetProjectQualificationRequest
from .types import ProjectApiUpdateProjectRequest
from .types import ProjectQualification
from .api import AccountV3ContractAPI
from .api import AccountV3ProjectAPI

__all__ = [
"ContractType",
"ListContractSignaturesRequestOrderBy",
"ListProjectsRequestOrderBy",
"QualificationArchitectureType",
"QualificationHostApplicationSubUseCase",
"QualificationHostWebsiteSubUseCase",
"Contract",
"QualificationAiMachine",
"QualificationArchiveData",
"QualificationContainer",
"QualificationDeploySoftware",
"QualificationHostApplication",
"QualificationHostWebsite",
"QualificationOtherUseCase",
"QualificationSetScalewayEnvironment",
"QualificationShareData",
"ContractSignature",
"Project",
"Qualification",
"CheckContractSignatureResponse",
"ContractApiCheckContractSignatureRequest",
"ContractApiCreateContractSignatureRequest",
Expand All @@ -41,7 +69,9 @@
"ProjectApiDeleteProjectRequest",
"ProjectApiGetProjectRequest",
"ProjectApiListProjectsRequest",
"ProjectApiSetProjectQualificationRequest",
"ProjectApiUpdateProjectRequest",
"ProjectQualification",
"AccountV3ContractAPI",
"AccountV3ProjectAPI",
]
43 changes: 43 additions & 0 deletions scaleway-async/scaleway_async/account/v3/api.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,17 +25,22 @@
ListProjectsResponse,
Project,
ProjectApiCreateProjectRequest,
ProjectApiSetProjectQualificationRequest,
ProjectApiUpdateProjectRequest,
ProjectQualification,
Qualification,
)
from .marshalling import (
unmarshal_ContractSignature,
unmarshal_Project,
unmarshal_CheckContractSignatureResponse,
unmarshal_ListContractSignaturesResponse,
unmarshal_ListProjectsResponse,
unmarshal_ProjectQualification,
marshal_ContractApiCheckContractSignatureRequest,
marshal_ContractApiCreateContractSignatureRequest,
marshal_ProjectApiCreateProjectRequest,
marshal_ProjectApiSetProjectQualificationRequest,
marshal_ProjectApiUpdateProjectRequest,
)
from ...std.types import (
Expand Down Expand Up @@ -491,3 +496,41 @@ async def update_project(

self._throw_on_error(res)
return unmarshal_Project(res.json())

async def set_project_qualification(
self,
*,
project_id: Optional[str] = None,
qualification: Optional[Qualification] = None,
) -> ProjectQualification:
"""
Set project use case.
Set the project use case for a new or existing Project, specified by its Project ID. You can customize the use case, sub use case, and architecture type you want to use in the Project.
:param project_id: Project ID.
:param qualification: Use case chosen for the Project.
:return: :class:`ProjectQualification <ProjectQualification>`

Usage:
::

result = await api.set_project_qualification()
"""

param_project_id = validate_path_param(
"project_id", project_id or self.client.default_project_id
)

res = self._request(
"POST",
f"/account/v3/projects/{param_project_id}/project-qualification",
body=marshal_ProjectApiSetProjectQualificationRequest(
ProjectApiSetProjectQualificationRequest(
project_id=project_id,
qualification=qualification,
),
self.client,
),
)

self._throw_on_error(res)
return unmarshal_ProjectQualification(res.json())
Loading