Policy

com.google.iam.v1.policy.Policy
See thePolicy companion object
final case class Policy(version: Int, bindings: Seq[Binding], etag: ByteString, unknownFields: UnknownFieldSet) extends GeneratedMessage with Updatable[Policy]

Defines an Identity and Access Management (IAM) policy. It is used to specify access control policies for Cloud Platform resources.

A Policy is a collection of bindings. A binding binds one or more members to a single role. Members can be user accounts, service accounts, Google groups, and domains (such as G Suite). A role is a named list of permissions (defined by IAM or configured by users). A binding can optionally specify a condition, which is a logic expression that further constrains the role binding based on attributes about the request and/or target resource.

JSON Example

{ "bindings": [ { "role": "roles/resourcemanager.organizationAdmin", "members": [ "user:[email protected]", "group:[email protected]", "domain:google.com", "serviceAccount:[email protected]" ] }, { "role": "roles/resourcemanager.organizationViewer", "members": ["user:[email protected]"], "condition": { "title": "expirable access", "description": "Does not grant access after Sep 2020", "expression": "request.time < timestamp('2020-10-01T00:00:00.000Z')", } } ] }

YAML Example

bindings:

  • members:
  • members:
    • user:[email protected] role: roles/resourcemanager.organizationViewer condition: title: expirable access description: Does not grant access after Sep 2020 expression: request.time < timestamp('2020-10-01T00:00:00.000Z')

For a description of IAM and its features, see the IAM developer's guide.

Attributes

bindings

Associates a list of members to a role. Optionally may specify a condition that determines when binding is in effect. bindings with no members will result in an error.

etag

etag is 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. Due to blind-set semantics of an etag-less policy, 'setIamPolicy' will not fail even if either of incoming or stored policy does not meet the version requirements.

version

Specifies the format of the policy. Valid values are 0, 1, and 3. Requests specifying an invalid value will be rejected. Operations affecting conditional bindings must specify version 3. This can be either setting a conditional policy, modifying a conditional binding, or removing a conditional binding from the stored conditional policy. Operations on non-conditional policies may specify any valid value or leave the field unset. If no etag is provided in the call to setIamPolicy, any version compliance checks on the incoming and/or stored policy is skipped.

Companion:
object
Source:
Policy.scala
Graph
Supertypes
trait Updatable[Policy]
trait GeneratedMessage
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any

Members list

Concise view

Value members

Concrete methods

Attributes

Source:
Policy.scala
def addBindings(`__vs`: Binding*): Policy

Attributes

Source:
Policy.scala

Attributes

Source:
Policy.scala
def companion: Policy.type

Attributes

Source:
Policy.scala
def getField(`__field`: FieldDescriptor): PValue

Attributes

Source:
Policy.scala
def getFieldByNumber(`__fieldNumber`: Int): Any

Attributes

Source:
Policy.scala
override def serializedSize: Int

Attributes

Definition Classes
GeneratedMessage
Source:
Policy.scala

Returns a human-readable ASCII format representation of this message.

Returns a human-readable ASCII format representation of this message.

The original message can be decoded from this format by using fromAscii on the companion object.

Attributes

Returns:

human-readable representation of this message.

Source:
Policy.scala

Attributes

Source:
Policy.scala
def withEtag(`__v`: ByteString): Policy

Attributes

Source:
Policy.scala
def withUnknownFields(`__v`: UnknownFieldSet): Policy

Attributes

Source:
Policy.scala
def withVersion(`__v`: Int): Policy

Attributes

Source:
Policy.scala
def writeTo(`_output__`: CodedOutputStream): Unit

Serializes the message into the given coded output stream

Serializes the message into the given coded output stream

Attributes

Source:
Policy.scala

Inherited methods

Attributes

Inherited from:
Product

Attributes

Inherited from:
Product
final def toByteArray: Array[Byte]

Serializes the message and returns a byte array containing its raw bytes

Serializes the message and returns a byte array containing its raw bytes

Attributes

Inherited from:
GeneratedMessage
Source:
GeneratedMessageCompanion.scala
final def toByteString: ByteString

Serializes the message and returns a ByteString containing its raw bytes

Serializes the message and returns a ByteString containing its raw bytes

Attributes

Inherited from:
GeneratedMessage
Source:
GeneratedMessageCompanion.scala
final def toPMessage: PMessage

Attributes

Inherited from:
GeneratedMessage
Source:
GeneratedMessageCompanion.scala
def update(ms: Lens[Policy, Policy] => () => Policy*): A

Attributes

Inherited from:
Updatable
Source:
Lenses.scala
final def writeDelimitedTo(output: OutputStream): Unit

Attributes

Inherited from:
GeneratedMessage
Source:
GeneratedMessageCompanion.scala
final def writeTo(output: OutputStream): Unit

Serializes the message into the given output stream

Serializes the message into the given output stream

Attributes

Inherited from:
GeneratedMessage
Source:
GeneratedMessageCompanion.scala