[docs]classSecretClient(ServiceClient):""" Methods for interacting with Beaker `Secrets <https://beaker-docs.apps.allenai.org/concept/secrets.html>`_. Accessed via the :data:`Beaker.secret <beaker.Beaker.secret>` property. .. warning:: Do not instantiate this class directly! The :class:`~beaker.Beaker` client will create one automatically which you can access through the corresponding property. """
[docs]defget(self,name:str,*,workspace:pb2.Workspace|None=None)->pb2.Secret:""" :examples: >>> with Beaker.from_env() as beaker: ... secret = beaker.secret.get(secret_name) :returns: A :class:`~beaker.types.BeakerSecret` protobuf object. :raises ~beaker.exceptions.BeakerSecretNotFound: If the secret doesn't exist. """returnself.rpc_request(RpcMethod[pb2.GetSecretResponse](self.service.GetSecret),pb2.GetSecretRequest(workspace_id=self.resolve_workspace_id(workspace),secret_name=name,),exceptions_for_status={grpc.StatusCode.NOT_FOUND:BeakerSecretNotFound(name)},).secret
[docs]deflist(self,*,workspace:pb2.Workspace|None=None,sort_order:BeakerSortOrder|None=None,sort_field:Literal["created","name"]="name",limit:int|None=None,)->Iterable[pb2.Secret]:iflimitisnotNoneandlimit<=0:raiseValueError("'limit' must be a positive integer")count=0forresponseinself.rpc_paged_request(RpcMethod[pb2.ListSecretsResponse](self.service.ListSecrets),pb2.ListSecretsRequest(options=pb2.ListSecretsRequest.Opts(sort_clause=pb2.ListSecretsRequest.Opts.SortClause(sort_order=Noneifsort_orderisNoneelsesort_order.as_pb2(),created={}ifsort_field=="created"elseNone,name={}ifsort_field=="name"elseNone,),workspace_id=self.resolve_workspace_id(workspace),page_size=self.MAX_PAGE_SIZEiflimitisNoneelsemin(self.MAX_PAGE_SIZE,limit),)),):forsecretinresponse.secrets:count+=1yieldsecretiflimitisnotNoneandcount>=limit:return