// List tokens (returns metadata, not the secret)
tokens, _ := client.AccessTokens.List(ctx, nil)
// Issue a token scoped to streams under "users/1234/"
expires := time.Date(2027, 1, 1, 0, 0, 0, 0, time.UTC)
result, _ := client.AccessTokens.Issue(ctx, s2.IssueAccessTokenArgs{
ID: "user-1234-rw-token",
Scope: s2.AccessTokenScope{
Basins: &s2.ResourceSet{Prefix: s2.String("")}, // all basins
Streams: &s2.ResourceSet{Prefix: s2.String("users/1234/")},
OpGroups: &s2.PermittedOperationGroups{
Stream: &s2.ReadWritePermissions{Read: true, Write: true},
},
},
ExpiresAt: &expires,
})
// Revoke a token
client.AccessTokens.Revoke(ctx, s2.RevokeAccessTokenArgs{ID: "user-1234-rw-token"})