@@ -622,3 +622,58 @@ func (c *TokenizerClient) DeleteTransformer(ctx context.Context, id uuid.UUID) e
622
622
623
623
return nil
624
624
}
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