Cloud Storage API - Class Google::Cloud::Storage::Policy::Condition (v1.37.0)

Reference documentation and code samples for the Cloud Storage API class Google::Cloud::Storage::Policy::Condition.

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.

Returns
  • (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.

Returns
  • (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.

Parameters
  • 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.
Returns
  • (Condition) — a new instance of Condition

#title

def title() -> String

Used to identify the condition. Required.

Returns
  • (String) — the current value of title

#title=

def title=(new_title)

The title used to identify the condition. Required.

#to_gapi

def to_gapi()