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