permissions.go raw
1 package account
2
3 // PermissionsMap wraps a User's "permissions" attribute
4 type PermissionsMap struct {
5 DNS PermissionsDNS `json:"dns"`
6 Data PermissionsData `json:"data"`
7 Account PermissionsAccount `json:"account"`
8 Monitoring PermissionsMonitoring `json:"monitoring"`
9 Security *PermissionsSecurity `json:"security,omitempty"`
10 Redirects PermissionsRedirects `json:"redirects"`
11 }
12
13 // PermissionsDNS wraps a User's "permissions.dns" attribute
14 type PermissionsDNS struct {
15 ViewZones bool `json:"view_zones"`
16 ManageZones bool `json:"manage_zones"`
17 ZonesAllowByDefault bool `json:"zones_allow_by_default"`
18 ZonesDeny []string `json:"zones_deny"`
19 ZonesAllow []string `json:"zones_allow"`
20 RecordsAllow []PermissionsRecord `json:"records_allow"`
21 RecordsDeny []PermissionsRecord `json:"records_deny"`
22 }
23
24 // PermissionsData wraps a User's "permissions.data" attribute
25 type PermissionsData struct {
26 PushToDatafeeds bool `json:"push_to_datafeeds"`
27 ManageDatasources bool `json:"manage_datasources"`
28 ManageDatafeeds bool `json:"manage_datafeeds"`
29 }
30
31 // PermissionsAccount wraps a User's "permissions.account" attribute
32 type PermissionsAccount struct {
33 ManageUsers bool `json:"manage_users"`
34 ManagePaymentMethods bool `json:"manage_payment_methods"`
35 ManagePlan bool `json:"manage_plan"`
36 ManageTeams bool `json:"manage_teams"`
37 ManageApikeys bool `json:"manage_apikeys"`
38 ManageAccountSettings bool `json:"manage_account_settings"`
39 ViewActivityLog bool `json:"view_activity_log"`
40 ViewInvoices bool `json:"view_invoices"`
41 ManageIPWhitelist bool `json:"manage_ip_whitelist"`
42 }
43
44 // PermissionsSecurity wraps a User's "permissions.security" attribute.
45 type PermissionsSecurity struct {
46 ManageGlobal2FA bool `json:"manage_global_2fa"`
47
48 // This field is only relevant for DDI and should not be set to true for managed.
49 ManageActiveDirectory bool `json:"manage_active_directory,omitempty"`
50 }
51
52 // PermissionsMonitoring wraps a User's "permissions.monitoring" attribute
53 // Only relevant for the managed product.
54 type PermissionsMonitoring struct {
55 ManageLists bool `json:"manage_lists"`
56 ManageJobs bool `json:"manage_jobs"`
57 ViewJobs bool `json:"view_jobs"`
58 CreateJobs bool `json:"create_jobs"`
59 UpdateJobs bool `json:"update_jobs"`
60 DeleteJobs bool `json:"delete_jobs"`
61 }
62
63 // PermissionsRecord wraps a User's "permissions.record" attribute
64 type PermissionsRecord struct {
65 Domain string `json:"domain"`
66 Subdomains bool `json:"include_subdomains"`
67 Zone string `json:"zone"`
68 RecordType string `json:"type"`
69 }
70
71 // PermissionsRedirects wraps a User's "permissions.redirects" attribute
72 type PermissionsRedirects struct {
73 ManageRedirects bool `json:"manage_redirects"`
74 }
75