22
33from __future__ import annotations
44
5- from typing import Any , List , Type , Optional , cast
5+ from typing import Any , Dict , List , Type , Optional , cast
66from typing_extensions import Literal , overload
77
88import httpx
2020from ...._wrappers import ResultWrapper
2121from ....pagination import SyncSinglePage , AsyncSinglePage
2222from ...._base_client import AsyncPaginator , make_request_options
23- from ....types .workers .scripts import secret_get_params , secret_delete_params , secret_update_params
23+ from ....types .workers .scripts import (
24+ secret_get_params ,
25+ secret_delete_params ,
26+ secret_update_params ,
27+ secret_bulk_update_params ,
28+ )
2429from ....types .workers .scripts .secret_get_response import SecretGetResponse
2530from ....types .workers .scripts .secret_list_response import SecretListResponse
2631from ....types .workers .scripts .secret_update_response import SecretUpdateResponse
32+ from ....types .workers .scripts .secret_bulk_update_response import SecretBulkUpdateResponse
2733
2834__all__ = ["SecretsResource" , "AsyncSecretsResource" ]
2935
@@ -312,6 +318,79 @@ def delete(
312318 cast_to = cast (Type [object ], ResultWrapper [object ]),
313319 )
314320
321+ def bulk_update (
322+ self ,
323+ script_name : str ,
324+ * ,
325+ account_id : str ,
326+ secrets : Dict [str , Optional [secret_bulk_update_params .Secrets ]] | Omit = omit ,
327+ version_tags : Dict [str , object ] | Omit = omit ,
328+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
329+ # The extra values given here take precedence over values defined on the client or passed to this method.
330+ extra_headers : Headers | None = None ,
331+ extra_query : Query | None = None ,
332+ extra_body : Body | None = None ,
333+ timeout : float | httpx .Timeout | None | NotGiven = not_given ,
334+ ) -> Optional [SecretBulkUpdateResponse ]:
335+ """
336+ Create, update, or delete multiple secrets on a script in a single operation
337+ using JSON Merge Patch (RFC 7396).
338+
339+ Usage:
340+
341+ - To create or update a secret, set its value to a secret object.
342+ - To delete a secret, set its value to `null`.
343+ - Secrets not included in the request are left unchanged.
344+
345+ Args:
346+ account_id: Identifier.
347+
348+ script_name: Name of the script, used in URLs and route configuration.
349+
350+ secrets:
351+ Map of secret names to secret values:
352+
353+ - Set to a secret object to create or update.
354+ - Set to `null` to delete.
355+ - Omit to leave unchanged.
356+
357+ version_tags: Optional version tags to apply to the new script version.
358+
359+ extra_headers: Send extra headers
360+
361+ extra_query: Add additional query parameters to the request
362+
363+ extra_body: Add additional JSON properties to the request
364+
365+ timeout: Override the client-level default timeout for this request, in seconds
366+ """
367+ if not account_id :
368+ raise ValueError (f"Expected a non-empty value for `account_id` but received { account_id !r} " )
369+ if not script_name :
370+ raise ValueError (f"Expected a non-empty value for `script_name` but received { script_name !r} " )
371+ return self ._patch (
372+ path_template (
373+ "/accounts/{account_id}/workers/scripts/{script_name}/secrets-bulk" ,
374+ account_id = account_id ,
375+ script_name = script_name ,
376+ ),
377+ body = maybe_transform (
378+ {
379+ "secrets" : secrets ,
380+ "version_tags" : version_tags ,
381+ },
382+ secret_bulk_update_params .SecretBulkUpdateParams ,
383+ ),
384+ options = make_request_options (
385+ extra_headers = extra_headers ,
386+ extra_query = extra_query ,
387+ extra_body = extra_body ,
388+ timeout = timeout ,
389+ post_parser = ResultWrapper [Optional [SecretBulkUpdateResponse ]]._unwrapper ,
390+ ),
391+ cast_to = cast (Type [Optional [SecretBulkUpdateResponse ]], ResultWrapper [SecretBulkUpdateResponse ]),
392+ )
393+
315394 def get (
316395 self ,
317396 secret_name : str ,
@@ -662,6 +741,79 @@ async def delete(
662741 cast_to = cast (Type [object ], ResultWrapper [object ]),
663742 )
664743
744+ async def bulk_update (
745+ self ,
746+ script_name : str ,
747+ * ,
748+ account_id : str ,
749+ secrets : Dict [str , Optional [secret_bulk_update_params .Secrets ]] | Omit = omit ,
750+ version_tags : Dict [str , object ] | Omit = omit ,
751+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
752+ # The extra values given here take precedence over values defined on the client or passed to this method.
753+ extra_headers : Headers | None = None ,
754+ extra_query : Query | None = None ,
755+ extra_body : Body | None = None ,
756+ timeout : float | httpx .Timeout | None | NotGiven = not_given ,
757+ ) -> Optional [SecretBulkUpdateResponse ]:
758+ """
759+ Create, update, or delete multiple secrets on a script in a single operation
760+ using JSON Merge Patch (RFC 7396).
761+
762+ Usage:
763+
764+ - To create or update a secret, set its value to a secret object.
765+ - To delete a secret, set its value to `null`.
766+ - Secrets not included in the request are left unchanged.
767+
768+ Args:
769+ account_id: Identifier.
770+
771+ script_name: Name of the script, used in URLs and route configuration.
772+
773+ secrets:
774+ Map of secret names to secret values:
775+
776+ - Set to a secret object to create or update.
777+ - Set to `null` to delete.
778+ - Omit to leave unchanged.
779+
780+ version_tags: Optional version tags to apply to the new script version.
781+
782+ extra_headers: Send extra headers
783+
784+ extra_query: Add additional query parameters to the request
785+
786+ extra_body: Add additional JSON properties to the request
787+
788+ timeout: Override the client-level default timeout for this request, in seconds
789+ """
790+ if not account_id :
791+ raise ValueError (f"Expected a non-empty value for `account_id` but received { account_id !r} " )
792+ if not script_name :
793+ raise ValueError (f"Expected a non-empty value for `script_name` but received { script_name !r} " )
794+ return await self ._patch (
795+ path_template (
796+ "/accounts/{account_id}/workers/scripts/{script_name}/secrets-bulk" ,
797+ account_id = account_id ,
798+ script_name = script_name ,
799+ ),
800+ body = await async_maybe_transform (
801+ {
802+ "secrets" : secrets ,
803+ "version_tags" : version_tags ,
804+ },
805+ secret_bulk_update_params .SecretBulkUpdateParams ,
806+ ),
807+ options = make_request_options (
808+ extra_headers = extra_headers ,
809+ extra_query = extra_query ,
810+ extra_body = extra_body ,
811+ timeout = timeout ,
812+ post_parser = ResultWrapper [Optional [SecretBulkUpdateResponse ]]._unwrapper ,
813+ ),
814+ cast_to = cast (Type [Optional [SecretBulkUpdateResponse ]], ResultWrapper [SecretBulkUpdateResponse ]),
815+ )
816+
665817 async def get (
666818 self ,
667819 secret_name : str ,
@@ -739,6 +891,9 @@ def __init__(self, secrets: SecretsResource) -> None:
739891 self .delete = to_raw_response_wrapper (
740892 secrets .delete ,
741893 )
894+ self .bulk_update = to_raw_response_wrapper (
895+ secrets .bulk_update ,
896+ )
742897 self .get = to_raw_response_wrapper (
743898 secrets .get ,
744899 )
@@ -757,6 +912,9 @@ def __init__(self, secrets: AsyncSecretsResource) -> None:
757912 self .delete = async_to_raw_response_wrapper (
758913 secrets .delete ,
759914 )
915+ self .bulk_update = async_to_raw_response_wrapper (
916+ secrets .bulk_update ,
917+ )
760918 self .get = async_to_raw_response_wrapper (
761919 secrets .get ,
762920 )
@@ -775,6 +933,9 @@ def __init__(self, secrets: SecretsResource) -> None:
775933 self .delete = to_streamed_response_wrapper (
776934 secrets .delete ,
777935 )
936+ self .bulk_update = to_streamed_response_wrapper (
937+ secrets .bulk_update ,
938+ )
778939 self .get = to_streamed_response_wrapper (
779940 secrets .get ,
780941 )
@@ -793,6 +954,9 @@ def __init__(self, secrets: AsyncSecretsResource) -> None:
793954 self .delete = async_to_streamed_response_wrapper (
794955 secrets .delete ,
795956 )
957+ self .bulk_update = async_to_streamed_response_wrapper (
958+ secrets .bulk_update ,
959+ )
796960 self .get = async_to_streamed_response_wrapper (
797961 secrets .get ,
798962 )
0 commit comments