This commit is contained in:
Lizandro Guarnizo
2026-05-11 22:13:43 -05:00
parent f923e43515
commit 93568c95c3
2 changed files with 71 additions and 33 deletions
+31
View File
@@ -182,6 +182,28 @@ type CFTokenVerify struct {
ExpiresOn string `json:"expires_on"`
}
// CFTokenPolicy representa una política de permisos del token.
type CFTokenPolicy struct {
ID string `json:"id"`
Effect string `json:"effect"`
Resources map[string]string `json:"resources"`
PermGroups []CFTokenPermGroup `json:"permission_groups"`
}
// CFTokenPermGroup un grupo de permisos.
type CFTokenPermGroup struct {
ID string `json:"id"`
Name string `json:"name"`
}
// CFTokenDetail detalle completo de un token incluyendo sus políticas.
type CFTokenDetail struct {
ID string `json:"id"`
Name string `json:"name"`
Status string `json:"status"`
Policies []CFTokenPolicy `json:"policies"`
}
// VerifyToken verifica la validez del API token usando /user/tokens/verify.
func (c *CloudflareClient) VerifyToken() (*CFTokenVerify, error) {
var result CFTokenVerify
@@ -191,6 +213,15 @@ func (c *CloudflareClient) VerifyToken() (*CFTokenVerify, error) {
return &result, nil
}
// GetTokenDetail obtiene el detalle completo de un token (permisos y recursos).
func (c *CloudflareClient) GetTokenDetail(tokenID string) (*CFTokenDetail, error) {
var detail CFTokenDetail
if err := c.get("/user/tokens/"+tokenID, &detail); err != nil {
return nil, err
}
return &detail, nil
}
// GetZones lista todas las zonas de la cuenta.
func (c *CloudflareClient) GetZones() ([]CFZone, error) {
var zones []CFZone