class Google::Apis::PolicysimulatorV1beta1::GoogleCloudPolicysimulatorV1beta1BindingExplanation

Details about how a binding in a policy affects a member's ability to use a permission.

Attributes

access[RW]

Required. Indicates whether _this binding_ provides the specified permission to the specified member for the specified resource. This field does not indicate whether the member actually has the permission for the resource. There might be another binding that overrides this binding. To determine whether the member actually has the permission, use the `access` field in the TroubleshootIamPolicyResponse. Corresponds to the JSON property `access` @return [String]

condition[RW]

Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at github.com/google/cel-spec. Example (Comparison): title: “Summary size limit” description: “Determines if a summary is less than 100 chars” expression: “document.summary.size() < 100” Example (Equality): title: “ Requestor is owner” description: “Determines if requestor is the document owner” expression: “document.owner == request.auth.claims.email” Example ( Logic): title: “Public documents” description: “Determine whether the document should be publicly visible” expression: “document.type != 'private' && document.type != 'internal'” Example (Data Manipulation): title: “Notification string” description: “Create a notification string with a timestamp.” expression: “'New message received at ' + string(document.create_time)” The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. Corresponds to the JSON property `condition` @return [Google::Apis::PolicysimulatorV1beta1::GoogleTypeExpr]

memberships[RW]

Indicates whether each member in the binding includes the member specified in the request, either directly or indirectly. Each key identifies a member in the binding, and each value indicates whether the member in the binding includes the member in the request. For example, suppose that a binding includes the following members: * `user:alice@example.com` * `group:product- eng@example.com` The member in the replayed access tuple is `user:bob@example. com`. This user is a member of the group `group:product-eng@example.com`. For the first member in the binding, the key is `user:alice@example.com`, and the ` membership` field in the value is set to `MEMBERSHIP_NOT_INCLUDED`. For the second member in the binding, the key is `group:product-eng@example.com`, and the `membership` field in the value is set to `MEMBERSHIP_INCLUDED`. Corresponds to the JSON property `memberships` @return [Hash<String,Google::Apis::PolicysimulatorV1beta1::GoogleCloudPolicysimulatorV1beta1BindingExplanationAnnotatedMembership>]

relevance[RW]

The relevance of this binding to the overall determination for the entire policy. Corresponds to the JSON property `relevance` @return [String]

role[RW]

The role that this binding grants. For example, `roles/compute.serviceAgent`. For a complete list of predefined IAM roles, as well as the permissions in each role, see cloud.google.com/iam/help/roles/reference. Corresponds to the JSON property `role` @return [String]

role_permission[RW]

Indicates whether the role granted by this binding contains the specified permission. Corresponds to the JSON property `rolePermission` @return [String]

role_permission_relevance[RW]

The relevance of the permission's existence, or nonexistence, in the role to the overall determination for the entire policy. Corresponds to the JSON property `rolePermissionRelevance` @return [String]

Public Class Methods

new(**args) click to toggle source
# File lib/google/apis/policysimulator_v1beta1/classes.rb, line 334
def initialize(**args)
   update!(**args)
end

Public Instance Methods

update!(**args) click to toggle source

Update properties of this object

# File lib/google/apis/policysimulator_v1beta1/classes.rb, line 339
def update!(**args)
  @access = args[:access] if args.key?(:access)
  @condition = args[:condition] if args.key?(:condition)
  @memberships = args[:memberships] if args.key?(:memberships)
  @relevance = args[:relevance] if args.key?(:relevance)
  @role = args[:role] if args.key?(:role)
  @role_permission = args[:role_permission] if args.key?(:role_permission)
  @role_permission_relevance = args[:role_permission_relevance] if args.key?(:role_permission_relevance)
end