Class: Google::Apis::TrafficdirectorV3::StructMatcher

Inherits:
Object
  • Object
show all
Includes:
Core::Hashable, Core::JsonObjectSupport
Defined in:
lib/google/apis/trafficdirector_v3/classes.rb,
lib/google/apis/trafficdirector_v3/representations.rb,
lib/google/apis/trafficdirector_v3/representations.rb

Overview

StructMatcher provides a general interface to check if a given value is matched in google.protobuf.Struct. It uses path to retrieve the value from the struct and then check if it's matched to the specified value. For example, for the following Struct: .. code-block:: yaml fields: a: struct_value: fields: b: struct_value: fields: c: string_value: pro t: list_value: values: - string_value: m - string_value: n The following MetadataMatcher is matched as the path [a, b, c] will retrieve a string value "pro" from the Metadata which is matched to the specified prefix match. .. code-block:: yaml path: - key: a - key: b - key: c value: string_match: prefix: pr The following StructMatcher is matched as the code will match one of the string values in the list at the path [a, t]. .. code-block:: yaml path: - key: a - key: t value: list_match: one_of: string_match: exact: m An example use of StructMatcher is to match metadata in envoy.v*.core.Node.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(**args) ⇒ StructMatcher

Returns a new instance of StructMatcher.



1630
1631
1632
# File 'lib/google/apis/trafficdirector_v3/classes.rb', line 1630

def initialize(**args)
   update!(**args)
end

Instance Attribute Details

#pathArray<Google::Apis::TrafficdirectorV3::PathSegment>

The path to retrieve the Value from the Struct. Corresponds to the JSON property path



1621
1622
1623
# File 'lib/google/apis/trafficdirector_v3/classes.rb', line 1621

def path
  @path
end

#valueGoogle::Apis::TrafficdirectorV3::ValueMatcher

Specifies the way to match a ProtobufWkt::Value. Primitive values and ListValue are supported. StructValue is not supported and is always not matched. [#next-free-field: 8] Corresponds to the JSON property value



1628
1629
1630
# File 'lib/google/apis/trafficdirector_v3/classes.rb', line 1628

def value
  @value
end

Instance Method Details

#update!(**args) ⇒ Object

Update properties of this object



1635
1636
1637
1638
# File 'lib/google/apis/trafficdirector_v3/classes.rb', line 1635

def update!(**args)
  @path = args[:path] if args.key?(:path)
  @value = args[:value] if args.key?(:value)
end