/* Package acl provides primitives to perform handling basic ACL management in NeoFS. BasicACL type provides functionality for managing container basic access-control list. For example, setting public basic ACL that could not be extended with any eACL rules: import "github.com/nspcc-dev/neofs-sdk-go/container" ... c := container.New() c.SetBasicACL(acl.PublicBasicRule) Using package types in an application is recommended to potentially work with different protocol versions with which these types are compatible. Basic ACL bits meaning: ┌──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┐ │31│30│29│28│27│26│25│24│23│22│21│20│19│18│17│16│ <- Bit ├──┼──┼──┼──┼──┴──┴──┴──┼──┴──┴──┴──┼──┴──┴──┴──┤ │ │ │ │ │ RANGEHASH │ RANGE │ SEARCH │ <- Object service method │ │ │ │ ├──┬──┬──┬──┼──┬──┬──┬──┼──┬──┬──┬──┤ │ │ │ X│ F│ U│ S│ O│ B│ U│ S│ O│ B│ U│ S│ O│ B│ <- Rule ├──┼──┼──┼──┼──┼──┼──┼──┼──┼──┼──┼──┼──┼──┼──┼──┤ │15│14│13│12│11│10│09│08│07│06│05│04│03│02│01│00│ <- Bit ├──┴──┴──┴──┼──┴──┴──┴──┼──┴──┴──┴──┼──┴──┴──┴──┤ │ DELETE │ PUT │ HEAD │ GET │ <- Object service method ├──┬──┬──┬──┼──┬──┬──┬──┼──┬──┬──┬──┼──┬──┬──┬──┤ │ U│ S│ O│ B│ U│ S│ O│ B│ U│ S│ O│ B│ U│ S│ O│ B│ <- Rule └──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┘ U - Allows access to the owner of the container. S - Allows access to Inner Ring and container nodes in the current version of network map. O - Clients that do not match any of the categories above. B - Allows using Bear Token ACL rules to replace eACL rules. F - Flag denying Extended ACL. If set Extended ACL is ignored. X - Flag denying different owners of the request and the object. Remaining bits are reserved and are not used. */ package acl