Class Policy

  • All Implemented Interfaces:
    Serializable

    public final class Policy
    extends Object
    implements Serializable
    Class for Identity and Access Management (IAM) policies. IAM policies are used to specify access settings for Cloud Platform resources. A policy is a list of bindings. A binding assigns a set of identities to a role, where the identities can be user accounts, Google groups, Google domains, and service accounts. A role is a named list of permissions defined by IAM.
    See Also:
    Policy, Serialized Form
    • Method Detail

      • toBuilder

        public Policy.Builder toBuilder()
        Returns a builder containing the properties of this IAM Policy.
      • getBindings

        public Map<Role,​Set<Identity>> getBindings()
        Returns the map of bindings that comprises the policy.
        Throws:
        IllegalArgumentException - if policy version is equal to 3 or has conditional bindings
      • getBindingsList

        public com.google.common.collect.ImmutableList<Binding> getBindingsList()
        Returns the list of bindings that comprises the policy for version 3.
      • getEtag

        public String getEtag()
        Returns the policy's etag.

        Etags are used for optimistic concurrency control as a way to help prevent simultaneous updates of a policy from overwriting each other. It is strongly suggested that systems make use of the etag in the read-modify-write cycle to perform policy updates in order to avoid race conditions. An etag is returned in the response to getIamPolicy, and systems are expected to put that etag in the request to setIamPolicy to ensure that their change will be applied to the same version of the policy. If no etag is provided in the call to setIamPolicy, then the existing policy is overwritten blindly.

      • getVersion

        public int getVersion()
        Returns the version of the policy. The default version is 0, meaning only the "owner", "editor", and "viewer" roles are permitted. If the version is 1, you may also use other roles.
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class Object
      • newBuilder

        public static Policy.Builder newBuilder()
        Returns a builder for Policy objects.