@@ -622,3 +622,58 @@ func (c *TokenizerClient) DeleteTransformer(ctx context.Context, id uuid.UUID) e
622622
623623 return nil
624624}
625+
626+ // ListSecretsResponse is the paginated response from listing secrets
627+ type ListSecretsResponse struct {
628+ Data []policy.Secret `json:"data"`
629+ pagination.ResponseFields
630+ }
631+
632+ // ListSecrets lists secrets that can be referenced in access policy templates and transformers
633+ func (c * TokenizerClient ) ListSecrets (ctx context.Context , opts ... Option ) (* ListSecretsResponse , error ) {
634+ options := c .options
635+ for _ , opt := range opts {
636+ opt .apply (& options )
637+ }
638+
639+ var res ListSecretsResponse
640+
641+ pager , err := pagination .ApplyOptions (options .paginationOptions ... )
642+ if err != nil {
643+ return nil , ucerr .Wrap (err )
644+ }
645+
646+ url := url.URL {
647+ Path : paths .ListSecrets ,
648+ RawQuery : pager .Query ().Encode (),
649+ }
650+ if err := c .client .Get (ctx , url .String (), & res ); err != nil {
651+ return nil , ucerr .Wrap (err )
652+ }
653+
654+ return & res , nil
655+ }
656+
657+ // CreateSecret creates a secret
658+ func (c * TokenizerClient ) CreateSecret (ctx context.Context , secret policy.Secret ) (* policy.Secret , error ) {
659+
660+ req := tokenizer.CreateSecretRequest {
661+ Secret : secret ,
662+ }
663+
664+ var resp policy.Secret
665+ if err := c .client .Post (ctx , paths .CreateSecret , req , & resp ); err != nil {
666+ return nil , ucerr .Wrap (err )
667+ }
668+
669+ return & resp , nil
670+ }
671+
672+ // DeleteSecret deletes a secret
673+ func (c * TokenizerClient ) DeleteSecret (ctx context.Context , id uuid.UUID ) error {
674+ if err := c .client .Delete (ctx , paths .DeleteSecret (id ), nil ); err != nil {
675+ return ucerr .Wrap (err )
676+ }
677+
678+ return nil
679+ }
0 commit comments