Skip to content
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
85 changes: 18 additions & 67 deletions scaleway-async/scaleway_async/secret/v1alpha1/api.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,7 @@
Region,
)
from scaleway_core.utils import (
OneOfPossibility,
fetch_all_pages_async,
resolve_one_of,
validate_path_param,
)
from .types import (
Expand Down Expand Up @@ -95,23 +93,19 @@ async def create_secret(
async def get_secret(
self,
*,
secret_id: str,
region: Optional[Region] = None,
secret_id: Optional[str] = None,
secret_name: Optional[str] = None,
) -> Secret:
"""
Get metadata of a Secret
:param region: Region to target. If none is passed will use default region from the config
:param secret_id: ID of the Secret
:param secret_name: Name of the Secret (alternative to secret_id).

One-of ('secret_ref'): at most one of 'secret_name' could be set.
:return: :class:`Secret <Secret>`

Usage:
::

result = await api.get_secret()
result = await api.get_secret(secret_id="example")
"""

param_region = validate_path_param(
Expand All @@ -122,13 +116,6 @@ async def get_secret(
res = self._request(
"GET",
f"/secret-manager/v1alpha1/regions/{param_region}/secrets/{param_secret_id}",
params={
**resolve_one_of(
[
OneOfPossibility("secret_name", secret_name),
]
),
},
)

self._throw_on_error(res)
Expand Down Expand Up @@ -188,7 +175,6 @@ async def list_secrets(
organization_id: Optional[str] = None,
project_id: Optional[str] = None,
tags: Optional[List[str]] = None,
name: Optional[str] = None,
order_by: ListSecretsRequestOrderBy = ListSecretsRequestOrderBy.NAME_ASC,
page: Optional[int] = None,
page_size: Optional[int] = None,
Expand All @@ -199,7 +185,6 @@ async def list_secrets(
:param organization_id: ID of an organization to filter on (optional)
:param project_id: ID of a project to filter on (optional)
:param tags: List of tags to filter on (optional)
:param name: Name of the secrets (optional)
:param order_by:
:param page:
:param page_size:
Expand All @@ -219,7 +204,6 @@ async def list_secrets(
"GET",
f"/secret-manager/v1alpha1/regions/{param_region}/secrets",
params={
"name": name,
"order_by": order_by,
"organization_id": organization_id
or self.client.default_organization_id,
Expand All @@ -240,7 +224,6 @@ async def list_secrets_all(
organization_id: Optional[str] = None,
project_id: Optional[str] = None,
tags: Optional[List[str]] = None,
name: Optional[str] = None,
order_by: Optional[ListSecretsRequestOrderBy] = None,
page: Optional[int] = None,
page_size: Optional[int] = None,
Expand All @@ -251,7 +234,6 @@ async def list_secrets_all(
:param organization_id: ID of an organization to filter on (optional)
:param project_id: ID of a project to filter on (optional)
:param tags: List of tags to filter on (optional)
:param name: Name of the secrets (optional)
:param order_by:
:param page:
:param page_size:
Expand All @@ -272,7 +254,6 @@ async def list_secrets_all(
"organization_id": organization_id,
"project_id": project_id,
"tags": tags,
"name": name,
"order_by": order_by,
"page": page,
"page_size": page_size,
Expand Down Expand Up @@ -359,25 +340,24 @@ async def create_secret_version(
async def get_secret_version(
self,
*,
secret_id: str,
revision: str,
region: Optional[Region] = None,
secret_id: Optional[str] = None,
secret_name: Optional[str] = None,
) -> SecretVersion:
"""
Get metadata of a SecretVersion
:param region: Region to target. If none is passed will use default region from the config
:param secret_id: ID of the Secret
:param revision: Revision of the SecretVersion (may be a number or "latest")
:param secret_name: Name of the Secret (alternative to secret_id).

One-of ('secret_ref'): at most one of 'secret_name' could be set.
:return: :class:`SecretVersion <SecretVersion>`

Usage:
::

result = await api.get_secret_version(revision="example")
result = await api.get_secret_version(
secret_id="example",
revision="example",
)
"""

param_region = validate_path_param(
Expand All @@ -389,13 +369,6 @@ async def get_secret_version(
res = self._request(
"GET",
f"/secret-manager/v1alpha1/regions/{param_region}/secrets/{param_secret_id}/versions/{param_revision}",
params={
**resolve_one_of(
[
OneOfPossibility("secret_name", secret_name),
]
),
},
)

self._throw_on_error(res)
Expand Down Expand Up @@ -452,9 +425,8 @@ async def update_secret_version(
async def list_secret_versions(
self,
*,
secret_id: str,
region: Optional[Region] = None,
secret_id: Optional[str] = None,
secret_name: Optional[str] = None,
page: Optional[int] = None,
page_size: Optional[int] = None,
status: Optional[List[SecretVersionStatus]] = None,
Expand All @@ -463,9 +435,6 @@ async def list_secret_versions(
List versions of a secret, not returning any sensitive data
:param region: Region to target. If none is passed will use default region from the config
:param secret_id: ID of the Secret
:param secret_name: Name of the Secret (alternative to secret_id).

One-of ('secret_ref'): at most one of 'secret_name' could be set.
:param page:
:param page_size:
:param status: Filter results by status
Expand All @@ -474,7 +443,7 @@ async def list_secret_versions(
Usage:
::

result = await api.list_secret_versions()
result = await api.list_secret_versions(secret_id="example")
"""

param_region = validate_path_param(
Expand All @@ -489,11 +458,6 @@ async def list_secret_versions(
"page": page,
"page_size": page_size or self.client.default_page_size,
"status": status,
**resolve_one_of(
[
OneOfPossibility("secret_name", secret_name),
]
),
},
)

Expand All @@ -503,9 +467,8 @@ async def list_secret_versions(
async def list_secret_versions_all(
self,
*,
secret_id: str,
region: Optional[Region] = None,
secret_id: Optional[str] = None,
secret_name: Optional[str] = None,
page: Optional[int] = None,
page_size: Optional[int] = None,
status: Optional[List[SecretVersionStatus]] = None,
Expand All @@ -514,9 +477,6 @@ async def list_secret_versions_all(
List versions of a secret, not returning any sensitive data
:param region: Region to target. If none is passed will use default region from the config
:param secret_id: ID of the Secret
:param secret_name: Name of the Secret (alternative to secret_id).

One-of ('secret_ref'): at most one of 'secret_name' could be set.
:param page:
:param page_size:
:param status: Filter results by status
Expand All @@ -525,17 +485,16 @@ async def list_secret_versions_all(
Usage:
::

result = await api.list_secret_versions_all()
result = await api.list_secret_versions_all(secret_id="example")
"""

return await fetch_all_pages_async(
type=ListSecretVersionsResponse,
key="versions",
fetcher=self.list_secret_versions,
args={
"region": region,
"secret_id": secret_id,
"secret_name": secret_name,
"region": region,
"page": page,
"page_size": page_size,
"status": status,
Expand Down Expand Up @@ -656,25 +615,24 @@ async def disable_secret_version(
async def access_secret_version(
self,
*,
secret_id: str,
revision: str,
region: Optional[Region] = None,
secret_id: Optional[str] = None,
secret_name: Optional[str] = None,
) -> AccessSecretVersionResponse:
"""
Access a SecretVersion, returning the sensitive data
:param region: Region to target. If none is passed will use default region from the config
:param secret_id: ID of the Secret
:param revision: Revision of the SecretVersion (may be a number, "latest" or "latest_enabled")
:param secret_name: Name of the Secret (alternative to secret_id).

One-of ('secret_ref'): at most one of 'secret_name' could be set.
:param revision: Revision of the SecretVersion (may be a number or "latest")
:return: :class:`AccessSecretVersionResponse <AccessSecretVersionResponse>`

Usage:
::

result = await api.access_secret_version(revision="example")
result = await api.access_secret_version(
secret_id="example",
revision="example",
)
"""

param_region = validate_path_param(
Expand All @@ -686,13 +644,6 @@ async def access_secret_version(
res = self._request(
"GET",
f"/secret-manager/v1alpha1/regions/{param_region}/secrets/{param_secret_id}/versions/{param_revision}/access",
params={
**resolve_one_of(
[
OneOfPossibility("secret_name", secret_name),
]
),
},
)

self._throw_on_error(res)
Expand Down
43 changes: 5 additions & 38 deletions scaleway-async/scaleway_async/secret/v1alpha1/types.py
Original file line number Diff line number Diff line change
Expand Up @@ -233,18 +233,11 @@ class GetSecretRequest:
Region to target. If none is passed will use default region from the config
"""

secret_id: Optional[str]
secret_id: str
"""
ID of the Secret
"""

secret_name: Optional[str]
"""
Name of the Secret (alternative to secret_id).

One-of ('secret_ref'): at most one of 'secret_name' could be set.
"""


@dataclass
class UpdateSecretRequest:
Expand Down Expand Up @@ -296,11 +289,6 @@ class ListSecretsRequest:
List of tags to filter on (optional)
"""

name: Optional[str]
"""
Name of the secrets (optional)
"""

order_by: Optional[ListSecretsRequestOrderBy]

page: Optional[int]
Expand Down Expand Up @@ -351,7 +339,7 @@ class GetSecretVersionRequest:
Region to target. If none is passed will use default region from the config
"""

secret_id: Optional[str]
secret_id: str
"""
ID of the Secret
"""
Expand All @@ -361,13 +349,6 @@ class GetSecretVersionRequest:
Revision of the SecretVersion (may be a number or "latest")
"""

secret_name: Optional[str]
"""
Name of the Secret (alternative to secret_id).

One-of ('secret_ref'): at most one of 'secret_name' could be set.
"""


@dataclass
class UpdateSecretVersionRequest:
Expand Down Expand Up @@ -399,18 +380,11 @@ class ListSecretVersionsRequest:
Region to target. If none is passed will use default region from the config
"""

secret_id: Optional[str]
secret_id: str
"""
ID of the Secret
"""

secret_name: Optional[str]
"""
Name of the Secret (alternative to secret_id).

One-of ('secret_ref'): at most one of 'secret_name' could be set.
"""

page: Optional[int]

page_size: Optional[int]
Expand Down Expand Up @@ -482,19 +456,12 @@ class AccessSecretVersionRequest:
Region to target. If none is passed will use default region from the config
"""

secret_id: Optional[str]
secret_id: str
"""
ID of the Secret
"""

revision: str
"""
Revision of the SecretVersion (may be a number, "latest" or "latest_enabled")
"""

secret_name: Optional[str]
"""
Name of the Secret (alternative to secret_id).

One-of ('secret_ref'): at most one of 'secret_name' could be set.
Revision of the SecretVersion (may be a number or "latest")
"""
Loading