google.iam.v1.Policy
*/
class Policy extends \DeliciousBrains\WP_Offload_Media\Gcp\Google\Protobuf\Internal\Message
{
/**
* Specifies the format of the policy.
* Valid values are `0`, `1`, and `3`. Requests that specify an invalid value
* are rejected.
* Any operation that affects conditional role bindings must specify version
* `3`. This requirement applies to the following operations:
* * Getting a policy that includes a conditional role binding
* * Adding a conditional role binding to a policy
* * Changing a conditional role binding in a policy
* * Removing any role binding, with or without a condition, from a policy
* that includes conditions
* **Important:** If you use IAM Conditions, you must include the `etag` field
* whenever you call `setIamPolicy`. If you omit this field, then IAM allows
* you to overwrite a version `3` policy with a version `1` policy, and all of
* the conditions in the version `3` policy are lost.
* If a policy does not include any conditions, operations on that policy may
* specify any valid version or leave the field unset.
* To learn which resources support conditions in their IAM policies, see the
* [IAM
* documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
*
* Generated from protobuf field int32 version = 1;
*/
protected $version = 0;
/**
* Associates a list of `members`, or principals, with a `role`. Optionally,
* may specify a `condition` that determines how and when the `bindings` are
* applied. Each of the `bindings` must contain at least one principal.
* The `bindings` in a `Policy` can refer to up to 1,500 principals; up to 250
* of these principals can be Google groups. Each occurrence of a principal
* counts towards these limits. For example, if the `bindings` grant 50
* different roles to `user:alice@example.com`, and not to any other
* principal, then you can add another 1,450 principals to the `bindings` in
* the `Policy`.
*
* Generated from protobuf field repeated .google.iam.v1.Binding bindings = 4;
*/
private $bindings;
/**
* Specifies cloud audit logging configuration for this policy.
*
* Generated from protobuf field repeated .google.iam.v1.AuditConfig audit_configs = 6;
*/
private $audit_configs;
/**
* `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.
* **Important:** If you use IAM Conditions, you must include the `etag` field
* whenever you call `setIamPolicy`. If you omit this field, then IAM allows
* you to overwrite a version `3` policy with a version `1` policy, and all of
* the conditions in the version `3` policy are lost.
*
* Generated from protobuf field bytes etag = 3;
*/
protected $etag = '';
/**
* Constructor.
*
* @param 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 that specify an invalid value
* are rejected.
* Any operation that affects conditional role bindings must specify version
* `3`. This requirement applies to the following operations:
* * Getting a policy that includes a conditional role binding
* * Adding a conditional role binding to a policy
* * Changing a conditional role binding in a policy
* * Removing any role binding, with or without a condition, from a policy
* that includes conditions
* **Important:** If you use IAM Conditions, you must include the `etag` field
* whenever you call `setIamPolicy`. If you omit this field, then IAM allows
* you to overwrite a version `3` policy with a version `1` policy, and all of
* the conditions in the version `3` policy are lost.
* If a policy does not include any conditions, operations on that policy may
* specify any valid version or leave the field unset.
* To learn which resources support conditions in their IAM policies, see the
* [IAM
* documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
* @type array<\Google\Cloud\Iam\V1\Binding>|\Google\Protobuf\Internal\RepeatedField $bindings
* Associates a list of `members`, or principals, with a `role`. Optionally,
* may specify a `condition` that determines how and when the `bindings` are
* applied. Each of the `bindings` must contain at least one principal.
* The `bindings` in a `Policy` can refer to up to 1,500 principals; up to 250
* of these principals can be Google groups. Each occurrence of a principal
* counts towards these limits. For example, if the `bindings` grant 50
* different roles to `user:alice@example.com`, and not to any other
* principal, then you can add another 1,450 principals to the `bindings` in
* the `Policy`.
* @type array<\Google\Cloud\Iam\V1\AuditConfig>|\Google\Protobuf\Internal\RepeatedField $audit_configs
* Specifies cloud audit logging configuration for this policy.
* @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.
* **Important:** If you use IAM Conditions, you must include the `etag` field
* whenever you call `setIamPolicy`. If you omit this field, then IAM allows
* you to overwrite a version `3` policy with a version `1` policy, and all of
* the conditions in the version `3` policy are lost.
* }
*/
public function __construct($data = NULL)
{
\DeliciousBrains\WP_Offload_Media\Gcp\GPBMetadata\Google\Iam\V1\Policy::initOnce();
parent::__construct($data);
}
/**
* Specifies the format of the policy.
* Valid values are `0`, `1`, and `3`. Requests that specify an invalid value
* are rejected.
* Any operation that affects conditional role bindings must specify version
* `3`. This requirement applies to the following operations:
* * Getting a policy that includes a conditional role binding
* * Adding a conditional role binding to a policy
* * Changing a conditional role binding in a policy
* * Removing any role binding, with or without a condition, from a policy
* that includes conditions
* **Important:** If you use IAM Conditions, you must include the `etag` field
* whenever you call `setIamPolicy`. If you omit this field, then IAM allows
* you to overwrite a version `3` policy with a version `1` policy, and all of
* the conditions in the version `3` policy are lost.
* If a policy does not include any conditions, operations on that policy may
* specify any valid version or leave the field unset.
* To learn which resources support conditions in their IAM policies, see the
* [IAM
* documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
*
* Generated from protobuf field int32 version = 1;
* @return int
*/
public function getVersion()
{
return $this->version;
}
/**
* Specifies the format of the policy.
* Valid values are `0`, `1`, and `3`. Requests that specify an invalid value
* are rejected.
* Any operation that affects conditional role bindings must specify version
* `3`. This requirement applies to the following operations:
* * Getting a policy that includes a conditional role binding
* * Adding a conditional role binding to a policy
* * Changing a conditional role binding in a policy
* * Removing any role binding, with or without a condition, from a policy
* that includes conditions
* **Important:** If you use IAM Conditions, you must include the `etag` field
* whenever you call `setIamPolicy`. If you omit this field, then IAM allows
* you to overwrite a version `3` policy with a version `1` policy, and all of
* the conditions in the version `3` policy are lost.
* If a policy does not include any conditions, operations on that policy may
* specify any valid version or leave the field unset.
* To learn which resources support conditions in their IAM policies, see the
* [IAM
* documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
*
* 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`, or principals, with a `role`. Optionally,
* may specify a `condition` that determines how and when the `bindings` are
* applied. Each of the `bindings` must contain at least one principal.
* The `bindings` in a `Policy` can refer to up to 1,500 principals; up to 250
* of these principals can be Google groups. Each occurrence of a principal
* counts towards these limits. For example, if the `bindings` grant 50
* different roles to `user:alice@example.com`, and not to any other
* principal, then you can add another 1,450 principals to the `bindings` in
* the `Policy`.
*
* 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`, or principals, with a `role`. Optionally,
* may specify a `condition` that determines how and when the `bindings` are
* applied. Each of the `bindings` must contain at least one principal.
* The `bindings` in a `Policy` can refer to up to 1,500 principals; up to 250
* of these principals can be Google groups. Each occurrence of a principal
* counts towards these limits. For example, if the `bindings` grant 50
* different roles to `user:alice@example.com`, and not to any other
* principal, then you can add another 1,450 principals to the `bindings` in
* the `Policy`.
*
* Generated from protobuf field repeated .google.iam.v1.Binding bindings = 4;
* @param array<\Google\Cloud\Iam\V1\Binding>|\Google\Protobuf\Internal\RepeatedField $var
* @return $this
*/
public function setBindings($var)
{
$arr = GPBUtil::checkRepeatedField($var, \DeliciousBrains\WP_Offload_Media\Gcp\Google\Protobuf\Internal\GPBType::MESSAGE, \DeliciousBrains\WP_Offload_Media\Gcp\Google\Cloud\Iam\V1\Binding::class);
$this->bindings = $arr;
return $this;
}
/**
* Specifies cloud audit logging configuration for this policy.
*
* Generated from protobuf field repeated .google.iam.v1.AuditConfig audit_configs = 6;
* @return \Google\Protobuf\Internal\RepeatedField
*/
public function getAuditConfigs()
{
return $this->audit_configs;
}
/**
* Specifies cloud audit logging configuration for this policy.
*
* Generated from protobuf field repeated .google.iam.v1.AuditConfig audit_configs = 6;
* @param array<\Google\Cloud\Iam\V1\AuditConfig>|\Google\Protobuf\Internal\RepeatedField $var
* @return $this
*/
public function setAuditConfigs($var)
{
$arr = GPBUtil::checkRepeatedField($var, \DeliciousBrains\WP_Offload_Media\Gcp\Google\Protobuf\Internal\GPBType::MESSAGE, \DeliciousBrains\WP_Offload_Media\Gcp\Google\Cloud\Iam\V1\AuditConfig::class);
$this->audit_configs = $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.
* **Important:** If you use IAM Conditions, you must include the `etag` field
* whenever you call `setIamPolicy`. If you omit this field, then IAM allows
* you to overwrite a version `3` policy with a version `1` policy, and all of
* the conditions in the version `3` policy are lost.
*
* 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.
* **Important:** If you use IAM Conditions, you must include the `etag` field
* whenever you call `setIamPolicy`. If you omit this field, then IAM allows
* you to overwrite a version `3` policy with a version `1` policy, and all of
* the conditions in the version `3` policy are lost.
*
* 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;
}
}