class Policy extends Message

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:mike@example.com", "group:admins@example.com", "domain:google.com", "serviceAccount:my-project-id@appspot.gserviceaccount.com" ] }, { "role": "roles/resourcemanager.organizationViewer", "members": ["user:eve@example.com"], "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: - user:mike@example.com - group:admins@example.com - domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.com 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.

Generated from protobuf message google.iam.v1.Policy

Methods

__construct(array $data = NULL)

Constructor.

int
getVersion()

Specifies the format of the policy.

$this
setVersion(int $var)

Specifies the format of the policy.

RepeatedField
getBindings()

Associates a list of members to a role. Optionally may specify a condition that determines when binding is in effect.

$this
setBindings(Binding[]|RepeatedField $var)

Associates a list of members to a role. Optionally may specify a condition that determines when binding is in effect.

string
getEtag()

etag is used for optimistic concurrency control as a way to help prevent simultaneous updates of a policy from overwriting each other.

$this
setEtag(string $var)

etag is used for optimistic concurrency control as a way to help prevent simultaneous updates of a policy from overwriting each other.

Details

at line 144
__construct(array $data = NULL)

Constructor.

Parameters

array $data { Optional. Data for populating the Message object.

@type int $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 binding (conditional or unconditional) 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`, version compliance
      checks against the stored policy is skipped.
@type \Google\Cloud\Iam\V1\Binding[]|\Google\Protobuf\Internal\RepeatedField $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.
@type string $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 the incoming policy version does not
      meet the requirements for modifying the stored policy.

}

at line 165
int getVersion()

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 binding (conditional or unconditional) 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, version compliance checks against the stored policy is skipped.

Generated from protobuf field int32 version = 1;

Return Value

int

at line 187
$this setVersion(int $var)

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 binding (conditional or unconditional) 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, version compliance checks against the stored policy is skipped.

Generated from protobuf field int32 version = 1;

Parameters

int $var

Return Value

$this

at line 203
RepeatedField getBindings()

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.

Generated from protobuf field repeated .google.iam.v1.Binding bindings = 4;

Return Value

RepeatedField

at line 217
$this setBindings(Binding[]|RepeatedField $var)

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.

Generated from protobuf field repeated .google.iam.v1.Binding bindings = 4;

Parameters

Binding[]|RepeatedField $var

Return Value

$this

at line 241
string getEtag()

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 the incoming policy version does not meet the requirements for modifying the stored policy.

Generated from protobuf field bytes etag = 3;

Return Value

string

at line 263
$this setEtag(string $var)

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 the incoming policy version does not meet the requirements for modifying the stored policy.

Generated from protobuf field bytes etag = 3;

Parameters

string $var

Return Value

$this