Class: Google::Apis::TrafficdirectorV3::Node

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

Identifies a specific Envoy instance. The node identifier is presented to the management server, which may use this identifier to distinguish per Envoy configuration for serving. [#next-free-field: 13]

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(**args) ⇒ Node

Returns a new instance of Node.



1028
1029
1030
# File 'lib/google/apis/trafficdirector_v3/classes.rb', line 1028

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

Instance Attribute Details

#client_featuresArray<String>

Client feature support list. These are well known features described in the Envoy API repository for a given major version of an API. Client features use reverse DNS naming scheme, for example com.acme.feature. See :ref:the list of features that xDS client may support. Corresponds to the JSON property clientFeatures

Returns:

  • (Array<String>)


956
957
958
# File 'lib/google/apis/trafficdirector_v3/classes.rb', line 956

def client_features
  @client_features
end

#clusterString

Defines the local service cluster name where Envoy is running. Though optional, it should be set if any of the following features are used: :ref:statsd, : ref:health check cluster verification, :ref:runtime override directory, : ref:user agent addition, :ref:HTTP global rate limiting, :ref:CDS, and :ref:HTTP tracing, either in this message or via :option:--service- cluster. Corresponds to the JSON property cluster

Returns:

  • (String)


966
967
968
# File 'lib/google/apis/trafficdirector_v3/classes.rb', line 966

def cluster
  @cluster
end

#dynamic_parametersHash<String,Google::Apis::TrafficdirectorV3::ContextParams>

Map from xDS resource type URL to dynamic context parameters. These may vary at runtime (unlike other fields in this message). For example, the xDS client may have a shard identifier that changes during the lifetime of the xDS client. In Envoy, this would be achieved by updating the dynamic context on the Server::Instance's LocalInfo context provider. The shard ID dynamic parameter then appears in this field during future discovery requests. Corresponds to the JSON property dynamicParameters



976
977
978
# File 'lib/google/apis/trafficdirector_v3/classes.rb', line 976

def dynamic_parameters
  @dynamic_parameters
end

#extensionsArray<Google::Apis::TrafficdirectorV3::Extension>

List of extensions and their versions supported by the node. Corresponds to the JSON property extensions



981
982
983
# File 'lib/google/apis/trafficdirector_v3/classes.rb', line 981

def extensions
  @extensions
end

#idString

An opaque node identifier for the Envoy node. This also provides the local service node name. It should be set if any of the following features are used: :ref:statsd, :ref:CDS, and :ref:HTTP tracing, either in this message or via :option:--service-node. Corresponds to the JSON property id

Returns:

  • (String)


989
990
991
# File 'lib/google/apis/trafficdirector_v3/classes.rb', line 989

def id
  @id
end

#listening_addressesArray<Google::Apis::TrafficdirectorV3::Address>

Known listening ports on the node as a generic hint to the management server for filtering :ref:listeners to be returned. For example, if there is a listener bound to port 80, the list can optionally contain the SocketAddress (0.0.0.0,80). The field is optional and just a hint. Corresponds to the JSON property listeningAddresses



997
998
999
# File 'lib/google/apis/trafficdirector_v3/classes.rb', line 997

def listening_addresses
  @listening_addresses
end

#localityGoogle::Apis::TrafficdirectorV3::Locality

Identifies location of where either Envoy runs or where upstream hosts run. Corresponds to the JSON property locality



1002
1003
1004
# File 'lib/google/apis/trafficdirector_v3/classes.rb', line 1002

def locality
  @locality
end

#metadataHash<String,Object>

Opaque metadata extending the node identifier. Envoy will pass this directly to the management server. Corresponds to the JSON property metadata

Returns:

  • (Hash<String,Object>)


1008
1009
1010
# File 'lib/google/apis/trafficdirector_v3/classes.rb', line 1008

def 
  @metadata
end

#user_agent_build_versionGoogle::Apis::TrafficdirectorV3::BuildVersion

BuildVersion combines SemVer version of extension with free-form build information (i.e. 'alpha', 'private-build') as a set of strings. Corresponds to the JSON property userAgentBuildVersion



1014
1015
1016
# File 'lib/google/apis/trafficdirector_v3/classes.rb', line 1014

def user_agent_build_version
  @user_agent_build_version
end

#user_agent_nameString

Free-form string that identifies the entity requesting config. E.g. "envoy" or "grpc" Corresponds to the JSON property userAgentName

Returns:

  • (String)


1020
1021
1022
# File 'lib/google/apis/trafficdirector_v3/classes.rb', line 1020

def user_agent_name
  @user_agent_name
end

#user_agent_versionString

Free-form string that identifies the version of the entity requesting config. E.g. "1.12.2" or "abcd1234", or "SpecialEnvoyBuild" Corresponds to the JSON property userAgentVersion

Returns:

  • (String)


1026
1027
1028
# File 'lib/google/apis/trafficdirector_v3/classes.rb', line 1026

def user_agent_version
  @user_agent_version
end

Instance Method Details

#update!(**args) ⇒ Object

Update properties of this object



1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
# File 'lib/google/apis/trafficdirector_v3/classes.rb', line 1033

def update!(**args)
  @client_features = args[:client_features] if args.key?(:client_features)
  @cluster = args[:cluster] if args.key?(:cluster)
  @dynamic_parameters = args[:dynamic_parameters] if args.key?(:dynamic_parameters)
  @extensions = args[:extensions] if args.key?(:extensions)
  @id = args[:id] if args.key?(:id)
  @listening_addresses = args[:listening_addresses] if args.key?(:listening_addresses)
  @locality = args[:locality] if args.key?(:locality)
  @metadata = args[:metadata] if args.key?(:metadata)
  @user_agent_build_version = args[:user_agent_build_version] if args.key?(:user_agent_build_version)
  @user_agent_name = args[:user_agent_name] if args.key?(:user_agent_name)
  @user_agent_version = args[:user_agent_version] if args.key?(:user_agent_version)
end