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; } }