Condition
Value object accepting an attribute-based logic expression based on a subset of the Common Expression Language (CEL).
Inherits
- Object
Examples
require "google/cloud/storage" storage = Google::Cloud::Storage.new bucket = storage.bucket "my-bucket" policy = bucket.policy requested_policy_version: 3 policy.bindings.each do |binding| puts binding.condition.title if binding.condition end
Updating a Policy from version 1 to version 3 by adding a condition:
require "google/cloud/storage" storage = Google::Cloud::Storage.new bucket = storage.bucket "my-bucket" bucket.uniform_bucket_level_access = true bucket.policy requested_policy_version: 3 do |p| p.version # the value is 1 p.version = 3 # Must be explicitly set to opt-in to support for conditions. expr = "resource.name.startsWith(\"projects/_/buckets/bucket-name/objects/prefix-a-\")" p.bindings.insert({ role: "roles/storage.admin", members: ["user:owner@example.com"], condition: { title: "my-condition", description: "description of condition", expression: expr } }) end
Methods
#description
def description() -> String
Used to document the condition. Optional.
- (String) — the current value of description
#description=
def description=(new_description)
The description to document the condition. Optional.
#expression
def expression() -> String
Defines an attribute-based logic expression using a subset of the Common Expression Language (CEL). The condition expression can contain multiple statements, each uses one attributes, and statements are combined using logic operators, following CEL language specification. Required.
- (String) — the current value of expression
#expression=
def expression=(new_expression)
An attribute-based logic expression using a subset of the Common Expression Language (CEL). The condition expression can contain multiple statements, each uses one attributes, and statements are combined using logic operators, following CEL language specification. Required.
#initialize
def initialize(title:, expression:, description: nil) -> Condition
Creates a Condition object.
- title (String) — Used to identify the condition. Required.
- description (String) (defaults to: nil) — Used to document the condition. Optional.
- expression (String) — Defines an attribute-based logic expression using a subset of the Common Expression Language (CEL). The condition expression can contain multiple statements, each uses one attributes, and statements are combined using logic operators, following CEL language specification. Required.
- (Condition) — a new instance of Condition
#title
def title() -> String
Used to identify the condition. Required.
- (String) — the current value of title
#title=
def title=(new_title)
The title used to identify the condition. Required.
#to_gapi
def to_gapi()