Documentation ¶
Index ¶
- Constants
- type AccessControlList
- type AppResource
- type AppsCollection
- func (col *AppsCollection) Create(entryName string, params *url.Values) (*entry[T], error)
- func (col *AppsCollection) CreateNS(ns *Namespace, entryName string, params *url.Values) (*entry[T], error)
- func (col *AppsCollection) Delete(entryName string) error
- func (col *AppsCollection) DeleteEntry(e *entry[T]) error
- func (col *AppsCollection) Exists(entryName string) bool
- func (col *AppsCollection) Get(entryName string) (*entry[T], error)
- func (col *AppsCollection) List() ([]entry[T], error)
- func (col *AppsCollection) Search(filter string) ([]entry[T], error)
- func (col *AppsCollection) Update(entryName string, params *url.Values) error
- func (col *AppsCollection) UpdateACL(entryName string, acl AccessControlList) error
- type Client
- func (ss *Client) AuthContext() (*ContextResource, error)
- func (ss *Client) Can(capability string) (bool, error)
- func (ss *Client) GetCredentials() *CredentialsCollection
- func (ss *Client) GetKVStore() *KVStoreCollCollection
- func (ss *Client) GetSessionKey() string
- func (ss *Client) GetSplunkdURI() string
- func (ss *Client) GetUsers() *UsersCollection
- func (ss *Client) Has(role string) (bool, error)
- func (ss *Client) Info() (*InfoResource, error)
- func (ss *Client) Login(username, password, passcode2FA string) error
- func (ss *Client) LoginWithSessionKey(sessionKey string) error
- func (ss *Client) LoginWithToken(authToken string) error
- func (ss *Client) NewLogger(name string, flag int, index, host, source, sourcetype string) *log.Logger
- func (ss *Client) SetNamespace(owner, app string, sharing SplunkSharing) error
- func (ss *Client) SetNamespaceFromNS(ns Namespace)
- func (ss *Client) Username() (string, error)
- type ConfigResource
- type ConfigsCollection
- func (col *ConfigsCollection) Create(entryName string, params *url.Values) (*entry[T], error)
- func (col *ConfigsCollection) CreateNS(ns *Namespace, entryName string, params *url.Values) (*entry[T], error)
- func (col *ConfigsCollection) CreateStanza(name string, params *url.Values) (*entry[ConfigResource], error)
- func (col *ConfigsCollection) Delete(entryName string) error
- func (col *ConfigsCollection) DeleteEntry(e *entry[T]) error
- func (col *ConfigsCollection) Exists(entryName string) bool
- func (col *ConfigsCollection) Get(entryName string) (*entry[T], error)
- func (col *ConfigsCollection) GetConfigAsFloat(stanza, configName string) (float32, error)
- func (col *ConfigsCollection) GetConfigAsInt(stanza, configName string) (int, error)
- func (col *ConfigsCollection) GetConfigAsString(stanza, configName string) (string, error)
- func (col *ConfigsCollection) GetStanza(name string) (*ConfigResource, error)
- func (col *ConfigsCollection) List() ([]entry[T], error)
- func (col *ConfigsCollection) Search(filter string) ([]entry[T], error)
- func (col *ConfigsCollection) Update(entryName string, params *url.Values) error
- func (col *ConfigsCollection) UpdateACL(entryName string, acl AccessControlList) error
- type ContextResource
- type CredentialResource
- type CredentialsCollection
- func (col *CredentialsCollection) Create(entryName string, params *url.Values) (*entry[T], error)
- func (col *CredentialsCollection) CreateCred(user, realm, password string) (*entry[CredentialResource], error)
- func (col *CredentialsCollection) CreateNS(ns *Namespace, entryName string, params *url.Values) (*entry[T], error)
- func (col *CredentialsCollection) Delete(entryName string) error
- func (col *CredentialsCollection) DeleteEntry(e *entry[T]) error
- func (col *CredentialsCollection) Exists(entryName string) bool
- func (col *CredentialsCollection) Get(entryName string) (*entry[T], error)
- func (col *CredentialsCollection) GetCred(user, realm string) (*entry[CredentialResource], error)
- func (col *CredentialsCollection) List() ([]entry[T], error)
- func (col *CredentialsCollection) Search(filter string) ([]entry[T], error)
- func (col *CredentialsCollection) Update(entryName string, params *url.Values) error
- func (col *CredentialsCollection) UpdateACL(entryName string, acl AccessControlList) error
- func (col *CredentialsCollection) UpdateCred(user, realm, newPassword string) error
- func (col *CredentialsCollection) UpdateCredACL(user, realm string, acl AccessControlList) error
- type InfoResource
- type KVStoreCollCollection
- func (col *KVStoreCollCollection) Create(entryName string, params *url.Values) (*entry[T], error)
- func (col *KVStoreCollCollection) CreateKVStoreColl(ns *Namespace, entryName string, fields map[string]string, ...) (*entry[KVStoreCollResource], error)
- func (col *KVStoreCollCollection) CreateNS(ns *Namespace, entryName string, params *url.Values) (*entry[T], error)
- func (col *KVStoreCollCollection) Delete(entryName string) error
- func (col *KVStoreCollCollection) DeleteEntry(e *entry[T]) error
- func (col *KVStoreCollCollection) Exists(entryName string) bool
- func (col *KVStoreCollCollection) Get(entryName string) (*entry[T], error)
- func (col *KVStoreCollCollection) List() ([]entry[T], error)
- func (col *KVStoreCollCollection) Search(filter string) ([]entry[T], error)
- func (col *KVStoreCollCollection) Update(entryName string, params *url.Values) error
- func (col *KVStoreCollCollection) UpdateACL(entryName string, acl AccessControlList) error
- type KVStoreCollResource
- type KVStoreFieldDefinition
- type LoginResponse
- type Namespace
- type PropertiesCollection
- func (col *PropertiesCollection) Create(name string, properties *url.Values) error
- func (col *PropertiesCollection) CreateNS(ns *Namespace, entryName string, params *url.Values) (*entry[T], error)
- func (col *PropertiesCollection) CreateStanza(name string, properties *url.Values) error
- func (col *PropertiesCollection) Delete(entryName string) error
- func (col *PropertiesCollection) DeleteEntry(e *entry[T]) error
- func (col *PropertiesCollection) DeleteStanza(stanza string) error
- func (col *PropertiesCollection) Exists(entryName string) bool
- func (col *PropertiesCollection) Get(entryName string) (*entry[T], error)
- func (col *PropertiesCollection) GetProperty(stanza, propertyName string) (string, error)
- func (col *PropertiesCollection) GetStanza(name string) (map[string]string, error)
- func (col *PropertiesCollection) List() ([]entry[T], error)
- func (col *PropertiesCollection) Search(filter string) ([]entry[T], error)
- func (col *PropertiesCollection) SetProperties(stanza string, properties *url.Values) error
- func (col *PropertiesCollection) SetProperty(stanza, propertyName, value string) error
- func (col *PropertiesCollection) Update(entryName string, params *url.Values) error
- func (col *PropertiesCollection) UpdateACL(entryName string, acl AccessControlList) error
- type PropertyResource
- type SplunkSharing
- type UserResource
- type UsersCollection
- func (col *UsersCollection) Create(entryName string, params *url.Values) (*entry[T], error)
- func (col *UsersCollection) CreateNS(ns *Namespace, entryName string, params *url.Values) (*entry[T], error)
- func (col *UsersCollection) CreateUser(name string, details UserResource) (*entry[UserResource], error)
- func (col *UsersCollection) Delete(entryName string) error
- func (col *UsersCollection) DeleteEntry(e *entry[T]) error
- func (col *UsersCollection) Exists(entryName string) bool
- func (col *UsersCollection) Get(entryName string) (*entry[T], error)
- func (col *UsersCollection) List() ([]entry[T], error)
- func (col *UsersCollection) Search(filter string) ([]entry[T], error)
- func (col *UsersCollection) Update(entryName string, params *url.Values) error
- func (col *UsersCollection) UpdateACL(entryName string, acl AccessControlList) error
Constants ¶
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type AccessControlList ¶
type AccessControlList struct { App string `json:"app" url:"app"` Owner string `json:"owner" url:"owner"` Sharing string `json:"sharing" url:"sharing"` Perms struct { Read []string `json:"read" url:"perms.read"` Write []string `json:"write" url:"perms.write"` } // CanWrite Indicates whether or not the current user can edit this item CanWrite bool `json:"can_write" url:"-"` CanShareGlobal bool `json:"can_share_global" url:"-"` CanShareApp bool `json:"can_share_app" url:"-"` CanShareUser bool `json:"can_share_user" url:"-"` }
func (*AccessControlList) ServicesNSPath ¶
func (acl *AccessControlList) ServicesNSPath() string
ServicesNSPath returns the user/app path which needs be added after ../servcesNS/ in an API call to splunkd Returns a url-fragment in the form '<user>/app/'. The fragment DOES NOT start with a slash and ENDS with a slash. See: https://docs.splunk.com/Documentation/Splunk/9.0.5/RESTUM/RESTusing#Namespace
func (*AccessControlList) ToURL ¶
func (acl *AccessControlList) ToURL() *url.Values
ToURL encodes the ACL information into URL values which can be used to set properties on the splunkd API
type AppResource ¶
type AppResource struct { Label string `json:"label"` Description string `json:"description"` Author string `json:"author"` Version string `json:"username"` Configured bool `json:"configured"` Core bool `json:"core"` StateChangeRequiresRestart bool `json:"state_change_requires_restart"` Disabled bool `json:"disabled"` Visible bool `json:"visible"` ManagedByDeploymentClient bool `json:"managed_by_deployment_client"` CheckForUpdates bool `json:"check_for_updates"` }
type AppsCollection ¶
type AppsCollection struct {
// contains filtered or unexported fields
}
func (*AppsCollection) DeleteEntry ¶
func (col *AppsCollection) DeleteEntry(e *entry[T]) error
func (*AppsCollection) List ¶
func (col *AppsCollection) List() ([]entry[T], error)
List provides a list of all entres of the collection
func (*AppsCollection) Search ¶
Search provides a list of all entres of the collection filtered by 'filter'. 'filter' can be just a value, or a fieldname=value tuple
func (*AppsCollection) UpdateACL ¶
func (col *AppsCollection) UpdateACL(entryName string, acl AccessControlList) error
https://docs.splunk.com/Documentation/Splunk/9.0.5/RESTUM/RESTusing#Access_Control_List
type Client ¶
type Client struct {
// contains filtered or unexported fields
}
func NewFromDefaults ¶
NewFromDefaults instantiates a client using splunkd's default API endpoint: https://localhost:8089
func NewInteractive ¶
NewInteractive interactively asks the end-user for necessary configuration parameters to instantiate a splunkd client and login into the API
func (*Client) AuthContext ¶
func (ss *Client) AuthContext() (*ContextResource, error)
Info retrieves generic information about the Splunk instance the client is connected to It caches such information locally, as this is not something which regularly varies
func (*Client) GetCredentials ¶
func (ss *Client) GetCredentials() *CredentialsCollection
func (*Client) GetKVStore ¶
func (ss *Client) GetKVStore() *KVStoreCollCollection
func (*Client) GetSessionKey ¶
func (*Client) GetSplunkdURI ¶
func (*Client) GetUsers ¶
func (ss *Client) GetUsers() *UsersCollection
func (*Client) Info ¶
func (ss *Client) Info() (*InfoResource, error)
Info retrieves generic information about the Splunk instance the client is connected to It caches such information locally, as this is not something which regularly varies
func (*Client) LoginWithSessionKey ¶
func (*Client) LoginWithToken ¶
func (*Client) SetNamespace ¶
func (ss *Client) SetNamespace(owner, app string, sharing SplunkSharing) error
SetNamespace updates the NameSpace configurations for the session
func (*Client) SetNamespaceFromNS ¶
SetNamespaceFromNS updates the NameSpace configurations for the session using an existing NameSpace
type ConfigResource ¶
type ConfigResource map[string]interface{}
ConfigResource represents the contents of a configuration file stanza.
type ConfigsCollection ¶
type ConfigsCollection struct {
// contains filtered or unexported fields
}
ConfigsCollection represents a generic configuration file as managed by the /services/configs/conf-<confFileName> endpoint. You can manage config file stanzas through this endpoint. This also supports custom configuration files defined with a custom SPEC file within etc/apps/<someapp>/README/<somefile>.conf.spec. See: https://docs.splunk.com/Documentation/Splunk/9.0.5/RESTTUT/RESTconfigurations#Updating_Configuration_Files See:https://docs.splunk.com/Documentation/Splunk/9.0.5/RESTREF/RESTconf#configs.2Fconf-.7Bfile.7D
func NewConfigsCollection ¶
func NewConfigsCollection(ss *Client, configFileName string) *ConfigsCollection
func NewConfigsCollectionNS ¶
func NewConfigsCollectionNS(ss *Client, configFileName, owner, app string) *ConfigsCollection
func (*ConfigsCollection) CreateStanza ¶
func (col *ConfigsCollection) CreateStanza(name string, params *url.Values) (*entry[ConfigResource], error)
func (*ConfigsCollection) DeleteEntry ¶
func (col *ConfigsCollection) DeleteEntry(e *entry[T]) error
func (*ConfigsCollection) GetConfigAsFloat ¶
func (col *ConfigsCollection) GetConfigAsFloat(stanza, configName string) (float32, error)
GetConfigAsFloat retrieves the value of configuration configName of the selected stanza
func (*ConfigsCollection) GetConfigAsInt ¶
func (col *ConfigsCollection) GetConfigAsInt(stanza, configName string) (int, error)
GetConfigAsInt retrieves the value of configuration configName of the selected stanza
func (*ConfigsCollection) GetConfigAsString ¶
func (col *ConfigsCollection) GetConfigAsString(stanza, configName string) (string, error)
GetConfigAsString retrieves the value of configuration configName of the selected stanza
func (*ConfigsCollection) GetStanza ¶
func (col *ConfigsCollection) GetStanza(name string) (*ConfigResource, error)
func (*ConfigsCollection) List ¶
func (col *ConfigsCollection) List() ([]entry[T], error)
List provides a list of all entres of the collection
func (*ConfigsCollection) Search ¶
Search provides a list of all entres of the collection filtered by 'filter'. 'filter' can be just a value, or a fieldname=value tuple
func (*ConfigsCollection) UpdateACL ¶
func (col *ConfigsCollection) UpdateACL(entryName string, acl AccessControlList) error
https://docs.splunk.com/Documentation/Splunk/9.0.5/RESTUM/RESTusing#Access_Control_List
type ContextResource ¶
type ContextResource struct { Capabilities []string `json:"capabilities"` Version string `json:"version"` DefaultApp string `json:"defaultApp"` Email string `json:"email"` LockedOut bool `json:"locked-out"` Realname string `json:"realname"` Roles []string `json:"roles"` Username string `json:"username"` LastLoginEpoch int64 `json:"last_successful_login"` LastLogin time.Time }
ContextResource is the structure containing the data returned by the current-contex URL
type CredentialResource ¶
type CredentialsCollection ¶
type CredentialsCollection struct {
// contains filtered or unexported fields
}
func NewCredentialsCollection ¶
func NewCredentialsCollection(ss *Client) *CredentialsCollection
func (*CredentialsCollection) CreateCred ¶
func (col *CredentialsCollection) CreateCred(user, realm, password string) (*entry[CredentialResource], error)
func (*CredentialsCollection) DeleteEntry ¶
func (col *CredentialsCollection) DeleteEntry(e *entry[T]) error
func (*CredentialsCollection) GetCred ¶
func (col *CredentialsCollection) GetCred(user, realm string) (*entry[CredentialResource], error)
func (*CredentialsCollection) List ¶
func (col *CredentialsCollection) List() ([]entry[T], error)
List provides a list of all entres of the collection
func (*CredentialsCollection) Search ¶
Search provides a list of all entres of the collection filtered by 'filter'. 'filter' can be just a value, or a fieldname=value tuple
func (*CredentialsCollection) UpdateACL ¶
func (col *CredentialsCollection) UpdateACL(entryName string, acl AccessControlList) error
https://docs.splunk.com/Documentation/Splunk/9.0.5/RESTUM/RESTusing#Access_Control_List
func (*CredentialsCollection) UpdateCred ¶
func (col *CredentialsCollection) UpdateCred(user, realm, newPassword string) error
func (*CredentialsCollection) UpdateCredACL ¶
func (col *CredentialsCollection) UpdateCredACL(user, realm string, acl AccessControlList) error
https://docs.splunk.com/Documentation/Splunk/9.0.5/RESTUM/RESTusing#Access_Control_List
type InfoResource ¶
type InfoResource struct { Version string `json:"version"` Build string `json:"build"` CpuArch string `json:"cpu_arch"` Guid string `json:"guid"` HealthInfo string `json:"health_info"` ServerName string `json:"serverName"` NumberOfCores int `json:"numberOfCores"` NumberOfVirtualCores int `json:"numberOfVirtualCores"` PhysicalMemoryMB int `json:"physicalMemoryMB"` OsBuild string `json:"os_build"` OsName string `json:"os_name"` OsVersion string `json:"os_version"` }
InfoResource is the structure containing the data returned by the pathInfo URL
type KVStoreCollCollection ¶
type KVStoreCollCollection struct {
// contains filtered or unexported fields
}
KVStoreCollCollection represents a collection of definitions of KV Store collections as managed by the /services/storage/collections/config endpoint. This also supports custom configuration files defined with a custom SPEC file within etc/apps/<someapp>/README/<somefile>.conf.spec. See: https://docs.splunk.com/Documentation/Splunk/9.0.5/RESTREF/RESTkvstore#storage.2Fcollections.2Fconfig.2F.7Bcollection.7D
func NewKVStoreCollCollection ¶
func NewKVStoreCollCollection(ss *Client) *KVStoreCollCollection
func (*KVStoreCollCollection) CreateKVStoreColl ¶
func (*KVStoreCollCollection) DeleteEntry ¶
func (col *KVStoreCollCollection) DeleteEntry(e *entry[T]) error
func (*KVStoreCollCollection) List ¶
func (col *KVStoreCollCollection) List() ([]entry[T], error)
List provides a list of all entres of the collection
func (*KVStoreCollCollection) Search ¶
Search provides a list of all entres of the collection filtered by 'filter'. 'filter' can be just a value, or a fieldname=value tuple
func (*KVStoreCollCollection) UpdateACL ¶
func (col *KVStoreCollCollection) UpdateACL(entryName string, acl AccessControlList) error
https://docs.splunk.com/Documentation/Splunk/9.0.5/RESTUM/RESTusing#Access_Control_List
type KVStoreCollResource ¶
type KVStoreCollResource struct { Disabled bool `json:"disabled"` EnforceTypes bool `json:"enforceTypes"` Replicate bool `json:"replicate"` Fields map[string]string AcceleratedFields map[string]string }
KVStoreCollResource represents the definition of a KVStore collection
func (*KVStoreCollResource) UnmarshalJSON ¶
func (kvcr *KVStoreCollResource) UnmarshalJSON(data []byte) error
UnmarshalJSON implements the JSON custom unmarshaller interface to properly convert from the API JSON based results to the internal data structure
type KVStoreFieldDefinition ¶
type LoginResponse ¶
type LoginResponse struct { // LoginResponse manages the results of a login attempt // Splunk responds either // With HTTP 401 // {"messages":[{"type":"WARN","code":"incorrect_username_or_password","text":"Login failed"}]} // or HTTP 200 // {"sessionKey":"FKPT2miFNvbSStAl68_IywfGIMQSN5hreU^ss....", // "message":"","code":""} SessionKey string `json:"sessionKey"` Message string `json:"message"` Code string `json:"code"` }
LoginResponse is the structure containing the data returned by the pathLogin URL
type Namespace ¶
type Namespace struct {
// contains filtered or unexported fields
}
func NewNamespace ¶
func NewNamespace(owner, app string, sharing SplunkSharing) (*Namespace, error)
GetNamespace instantiates a new Splunk namespace
func (*Namespace) GetServicesNSUrl ¶
type PropertiesCollection ¶
type PropertiesCollection struct {
// contains filtered or unexported fields
}
ConfigsCollection represents a generic configuration file as managed by the /services/configs/conf-<confFileName> endpoint. You can manage config file stanzas through this endpoint. This also supports custom configuration files defined with a custom SPEC file within etc/apps/<someapp>/README/<somefile>.conf.spec. See: https://docs.splunk.com/Documentation/Splunk/9.0.5/RESTTUT/RESTconfigurations#Updating_Configuration_Files See:https://docs.splunk.com/Documentation/Splunk/9.0.5/RESTREF/RESTconf#configs.2Fconf-.7Bfile.7D
func NewPropertiesCollection ¶
func NewPropertiesCollection(ss *Client, configFileName string) *PropertiesCollection
func NewPropertiesCollectionNS ¶
func NewPropertiesCollectionNS(ss *Client, configFileName, owner, app string) *PropertiesCollection
func (*PropertiesCollection) Create ¶
func (col *PropertiesCollection) Create(name string, properties *url.Values) error
func (*PropertiesCollection) CreateStanza ¶
func (col *PropertiesCollection) CreateStanza(name string, properties *url.Values) error
func (*PropertiesCollection) DeleteEntry ¶
func (col *PropertiesCollection) DeleteEntry(e *entry[T]) error
func (*PropertiesCollection) DeleteStanza ¶
func (col *PropertiesCollection) DeleteStanza(stanza string) error
func (*PropertiesCollection) GetProperty ¶
func (col *PropertiesCollection) GetProperty(stanza, propertyName string) (string, error)
func (*PropertiesCollection) GetStanza ¶
func (col *PropertiesCollection) GetStanza(name string) (map[string]string, error)
func (*PropertiesCollection) List ¶
func (col *PropertiesCollection) List() ([]entry[T], error)
List provides a list of all entres of the collection
func (*PropertiesCollection) Search ¶
Search provides a list of all entres of the collection filtered by 'filter'. 'filter' can be just a value, or a fieldname=value tuple
func (*PropertiesCollection) SetProperties ¶
func (col *PropertiesCollection) SetProperties(stanza string, properties *url.Values) error
func (*PropertiesCollection) SetProperty ¶
func (col *PropertiesCollection) SetProperty(stanza, propertyName, value string) error
func (*PropertiesCollection) UpdateACL ¶
func (col *PropertiesCollection) UpdateACL(entryName string, acl AccessControlList) error
https://docs.splunk.com/Documentation/Splunk/9.0.5/RESTUM/RESTusing#Access_Control_List
type PropertyResource ¶
type PropertyResource string
ConfigResource represents the contents of a configuration file stanza.
type SplunkSharing ¶
type SplunkSharing string
const ( SplunkSharingUser SplunkSharing = "user" SplunkSharingApp SplunkSharing = "app" SplunkSharingSystem SplunkSharing = "system" SplunkSharingGlobal SplunkSharing = "global" )
type UserResource ¶
type UserResource struct { Realname string `json:"realname" url:"realname,omitempty"` Email string `json:"email" url:"email,omitempty"` DefaultApp string `json:"defaultApp" url:"defaultApp,omitempty"` // Password is only needed when creating a new user, or updating its password Password string `url:"password,omitempty"` // OldPassword is only needed when changing password of an existing user OldPassword string `url:"oldpassword,omitempty"` Roles []string `json:"roles" url:"roles,omitempty"` Lang string `json:"lang" url:"lang,omitempty"` Tz string `json:"tz" url:"tz,omitempty"` // Indicates whether to force user password change. ForceChangePass bool `url:"force-change-pass,omitempty"` //DefaultAppIsUserOverride bool `json:"defaultAppIsUserOverride",url:""` //DefaultAppSourceRole string `json:"defaultAppSourceRole",url:""` LastSuccessfulLogin int64 `json:"last_successful_login" url:"-"` LockedOut bool `json:"locked-out" url:"-"` Capabilities []string `json:"capabilities" url:"-"` UserType string `json:"type" url:"-"` }
type UsersCollection ¶
type UsersCollection struct {
// contains filtered or unexported fields
}
func NewUsersCollection ¶
func NewUsersCollection(ss *Client) *UsersCollection
func (*UsersCollection) CreateUser ¶
func (col *UsersCollection) CreateUser(name string, details UserResource) (*entry[UserResource], error)
func (*UsersCollection) DeleteEntry ¶
func (col *UsersCollection) DeleteEntry(e *entry[T]) error
func (*UsersCollection) List ¶
func (col *UsersCollection) List() ([]entry[T], error)
List provides a list of all entres of the collection
func (*UsersCollection) Search ¶
Search provides a list of all entres of the collection filtered by 'filter'. 'filter' can be just a value, or a fieldname=value tuple
func (*UsersCollection) UpdateACL ¶
func (col *UsersCollection) UpdateACL(entryName string, acl AccessControlList) error
https://docs.splunk.com/Documentation/Splunk/9.0.5/RESTUM/RESTusing#Access_Control_List