google.iam.v1.Policy
*/
class Policy extends \Google\Protobuf\Internal\Message
{
/**
* Version of the `Policy`. The default version is 0.
*
* Generated from protobuf field int32 version = 1;
*/
private $version = 0;
/**
* Associates a list of `members` to a `role`.
* Multiple `bindings` must not be specified for the same `role`.
* `bindings` with no members will result in an error.
*
* Generated from protobuf field repeated .google.iam.v1.Binding bindings = 4;
*/
private $bindings;
/**
* `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 blindly.
*
* Generated from protobuf field bytes etag = 3;
*/
private $etag = '';
/**
* Constructor.
*
* @param array $data {
* Optional. Data for populating the Message object.
*
* @type int $version
* Version of the `Policy`. The default version is 0.
* @type \Google\Cloud\Iam\V1\Binding[]|\Google\Protobuf\Internal\RepeatedField $bindings
* Associates a list of `members` to a `role`.
* Multiple `bindings` must not be specified for the same `role`.
* `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 blindly.
* }
*/
public function __construct($data = NULL) {
\GPBMetadata\Google\Iam\V1\Policy::initOnce();
parent::__construct($data);
}
/**
* Version of the `Policy`. The default version is 0.
*
* Generated from protobuf field int32 version = 1;
* @return int
*/
public function getVersion()
{
return $this->version;
}
/**
* Version of the `Policy`. The default version is 0.
*
* Generated from protobuf field int32 version = 1;
* @param int $var
* @return $this
*/
public function setVersion($var)
{
GPBUtil::checkInt32($var);
$this->version = $var;
return $this;
}
/**
* Associates a list of `members` to a `role`.
* Multiple `bindings` must not be specified for the same `role`.
* `bindings` with no members will result in an error.
*
* Generated from protobuf field repeated .google.iam.v1.Binding bindings = 4;
* @return \Google\Protobuf\Internal\RepeatedField
*/
public function getBindings()
{
return $this->bindings;
}
/**
* Associates a list of `members` to a `role`.
* Multiple `bindings` must not be specified for the same `role`.
* `bindings` with no members will result in an error.
*
* Generated from protobuf field repeated .google.iam.v1.Binding bindings = 4;
* @param \Google\Cloud\Iam\V1\Binding[]|\Google\Protobuf\Internal\RepeatedField $var
* @return $this
*/
public function setBindings($var)
{
$arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Iam\V1\Binding::class);
$this->bindings = $arr;
return $this;
}
/**
* `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 blindly.
*
* Generated from protobuf field bytes etag = 3;
* @return string
*/
public function getEtag()
{
return $this->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 blindly.
*
* Generated from protobuf field bytes etag = 3;
* @param string $var
* @return $this
*/
public function setEtag($var)
{
GPBUtil::checkString($var, False);
$this->etag = $var;
return $this;
}
}