Skip to content

Commit 3d6f59d

Browse files
authored
feat(secret-manager): don't exclude password_generation field (#194)
1 parent 00df84f commit 3d6f59d

File tree

6 files changed

+92
-0
lines changed

6 files changed

+92
-0
lines changed

scaleway-async/scaleway_async/secret/v1alpha1/api.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
AccessSecretVersionResponse,
1818
ListSecretVersionsResponse,
1919
ListSecretsResponse,
20+
PasswordGenerationParams,
2021
Secret,
2122
SecretVersion,
2223
CreateSecretRequest,
@@ -402,6 +403,7 @@ async def create_secret_version(
402403
region: Optional[Region] = None,
403404
description: Optional[str] = None,
404405
disable_previous: Optional[bool] = None,
406+
password_generation: Optional[PasswordGenerationParams] = None,
405407
data_crc32: Optional[int] = None,
406408
) -> SecretVersion:
407409
"""
@@ -413,6 +415,10 @@ async def create_secret_version(
413415
:param description: Description of the version.
414416
:param disable_previous: Disable the previous secret version.
415417
(Optional.) If there is no previous version or if the previous version was already disabled, does nothing.
418+
:param password_generation: Options to generate a password.
419+
(Optional.) If specified, a random password will be generated. The `data` and `data_crc32` fields must be empty. By default, the generator will use upper and lower case letters, and digits. This behavior can be tuned using the generation parameters.
420+
421+
One-of ('_password_generation'): at most one of 'password_generation' could be set.
416422
:param data_crc32: (Optional.) The CRC32 checksum of the data as a base-10 integer.
417423
If specified, Secret Manager will verify the integrity of the data received against the given CRC32 checksum. An error is returned if the CRC32 does not match. If, however, the CRC32 matches, it will be stored and returned along with the SecretVersion on future access requests.
418424
:return: :class:`SecretVersion <SecretVersion>`
@@ -441,6 +447,7 @@ async def create_secret_version(
441447
region=region,
442448
description=description,
443449
disable_previous=disable_previous,
450+
password_generation=password_generation,
444451
data_crc32=data_crc32,
445452
),
446453
self.client,

scaleway-async/scaleway_async/secret/v1alpha1/marshalling.py

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,16 @@
44
from typing import Any, Dict
55

66
from scaleway_core.profile import ProfileDefaults
7+
from scaleway_core.utils import (
8+
OneOfPossibility,
9+
resolve_one_of,
10+
)
711
from dateutil import parser
812
from .types import (
913
AccessSecretVersionResponse,
1014
ListSecretVersionsResponse,
1115
ListSecretsResponse,
16+
PasswordGenerationParams,
1217
Secret,
1318
SecretVersion,
1419
CreateSecretRequest,
@@ -153,6 +158,19 @@ def unmarshal_ListSecretsResponse(data: Any) -> ListSecretsResponse:
153158
return ListSecretsResponse(**args)
154159

155160

161+
def marshal_PasswordGenerationParams(
162+
request: PasswordGenerationParams,
163+
defaults: ProfileDefaults,
164+
) -> Dict[str, Any]:
165+
return {
166+
"additional_chars": request.additional_chars,
167+
"length": request.length,
168+
"no_digits": request.no_digits,
169+
"no_lowercase_letters": request.no_lowercase_letters,
170+
"no_uppercase_letters": request.no_uppercase_letters,
171+
}
172+
173+
156174
def marshal_AddSecretOwnerRequest(
157175
request: AddSecretOwnerRequest,
158176
defaults: ProfileDefaults,
@@ -179,6 +197,18 @@ def marshal_CreateSecretVersionRequest(
179197
defaults: ProfileDefaults,
180198
) -> Dict[str, Any]:
181199
return {
200+
**resolve_one_of(
201+
[
202+
OneOfPossibility(
203+
"password_generation",
204+
marshal_PasswordGenerationParams(
205+
request.password_generation, defaults
206+
)
207+
if request.password_generation is not None
208+
else None,
209+
),
210+
]
211+
),
182212
"data": request.data,
183213
"data_crc32": request.data_crc32,
184214
"description": request.description,

scaleway-async/scaleway_async/secret/v1alpha1/types.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -434,6 +434,15 @@ class CreateSecretVersionRequest:
434434
(Optional.) If there is no previous version or if the previous version was already disabled, does nothing.
435435
"""
436436

437+
password_generation: Optional[PasswordGenerationParams]
438+
"""
439+
Options to generate a password.
440+
(Optional.) If specified, a random password will be generated. The `data` and `data_crc32` fields must be empty. By default, the generator will use upper and lower case letters, and digits. This behavior can be tuned using the generation parameters.
441+
442+
One-of ('_password_generation'): at most one of 'password_generation' could be set.
443+
:deprecated
444+
"""
445+
437446
data_crc32: Optional[int]
438447
"""
439448
(Optional.) The CRC32 checksum of the data as a base-10 integer.

scaleway/scaleway/secret/v1alpha1/api.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
AccessSecretVersionResponse,
1818
ListSecretVersionsResponse,
1919
ListSecretsResponse,
20+
PasswordGenerationParams,
2021
Secret,
2122
SecretVersion,
2223
CreateSecretRequest,
@@ -402,6 +403,7 @@ def create_secret_version(
402403
region: Optional[Region] = None,
403404
description: Optional[str] = None,
404405
disable_previous: Optional[bool] = None,
406+
password_generation: Optional[PasswordGenerationParams] = None,
405407
data_crc32: Optional[int] = None,
406408
) -> SecretVersion:
407409
"""
@@ -413,6 +415,10 @@ def create_secret_version(
413415
:param description: Description of the version.
414416
:param disable_previous: Disable the previous secret version.
415417
(Optional.) If there is no previous version or if the previous version was already disabled, does nothing.
418+
:param password_generation: Options to generate a password.
419+
(Optional.) If specified, a random password will be generated. The `data` and `data_crc32` fields must be empty. By default, the generator will use upper and lower case letters, and digits. This behavior can be tuned using the generation parameters.
420+
421+
One-of ('_password_generation'): at most one of 'password_generation' could be set.
416422
:param data_crc32: (Optional.) The CRC32 checksum of the data as a base-10 integer.
417423
If specified, Secret Manager will verify the integrity of the data received against the given CRC32 checksum. An error is returned if the CRC32 does not match. If, however, the CRC32 matches, it will be stored and returned along with the SecretVersion on future access requests.
418424
:return: :class:`SecretVersion <SecretVersion>`
@@ -441,6 +447,7 @@ def create_secret_version(
441447
region=region,
442448
description=description,
443449
disable_previous=disable_previous,
450+
password_generation=password_generation,
444451
data_crc32=data_crc32,
445452
),
446453
self.client,

scaleway/scaleway/secret/v1alpha1/marshalling.py

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,16 @@
44
from typing import Any, Dict
55

66
from scaleway_core.profile import ProfileDefaults
7+
from scaleway_core.utils import (
8+
OneOfPossibility,
9+
resolve_one_of,
10+
)
711
from dateutil import parser
812
from .types import (
913
AccessSecretVersionResponse,
1014
ListSecretVersionsResponse,
1115
ListSecretsResponse,
16+
PasswordGenerationParams,
1217
Secret,
1318
SecretVersion,
1419
CreateSecretRequest,
@@ -153,6 +158,19 @@ def unmarshal_ListSecretsResponse(data: Any) -> ListSecretsResponse:
153158
return ListSecretsResponse(**args)
154159

155160

161+
def marshal_PasswordGenerationParams(
162+
request: PasswordGenerationParams,
163+
defaults: ProfileDefaults,
164+
) -> Dict[str, Any]:
165+
return {
166+
"additional_chars": request.additional_chars,
167+
"length": request.length,
168+
"no_digits": request.no_digits,
169+
"no_lowercase_letters": request.no_lowercase_letters,
170+
"no_uppercase_letters": request.no_uppercase_letters,
171+
}
172+
173+
156174
def marshal_AddSecretOwnerRequest(
157175
request: AddSecretOwnerRequest,
158176
defaults: ProfileDefaults,
@@ -179,6 +197,18 @@ def marshal_CreateSecretVersionRequest(
179197
defaults: ProfileDefaults,
180198
) -> Dict[str, Any]:
181199
return {
200+
**resolve_one_of(
201+
[
202+
OneOfPossibility(
203+
"password_generation",
204+
marshal_PasswordGenerationParams(
205+
request.password_generation, defaults
206+
)
207+
if request.password_generation is not None
208+
else None,
209+
),
210+
]
211+
),
182212
"data": request.data,
183213
"data_crc32": request.data_crc32,
184214
"description": request.description,

scaleway/scaleway/secret/v1alpha1/types.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -434,6 +434,15 @@ class CreateSecretVersionRequest:
434434
(Optional.) If there is no previous version or if the previous version was already disabled, does nothing.
435435
"""
436436

437+
password_generation: Optional[PasswordGenerationParams]
438+
"""
439+
Options to generate a password.
440+
(Optional.) If specified, a random password will be generated. The `data` and `data_crc32` fields must be empty. By default, the generator will use upper and lower case letters, and digits. This behavior can be tuned using the generation parameters.
441+
442+
One-of ('_password_generation'): at most one of 'password_generation' could be set.
443+
:deprecated
444+
"""
445+
437446
data_crc32: Optional[int]
438447
"""
439448
(Optional.) The CRC32 checksum of the data as a base-10 integer.

0 commit comments

Comments
 (0)