Class: Google::Apis::LoggingV2::ProjectedField

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

Overview

Represents a field selected in the query, analogous to an item in a SQL SELECT clause. It specifies the source field and optionally applies transformations like aggregation, casting, regex extraction, or assigns an alias. Use ProjectedField when you need more than just the raw source field name (for which you might use FieldSource directly in QueryBuilderConfig's field_sources list if no transformations or specific operation type are needed).

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(**args) ⇒ ProjectedField

Returns a new instance of ProjectedField.



3633
3634
3635
# File 'lib/google/apis/logging_v2/classes.rb', line 3633

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

Instance Attribute Details

#aliasString

The alias name for the field. Valid alias examples are: - single word alias: TestAlias - numbers in an alias: Alias123 - multi word alias should be enclosed in quotes: "Test Alias" Invalid alias examples are: - alias containing keywords: WHERE, SELECT, FROM, etc. - alias starting with a number: 1stAlias Corresponds to the JSON property alias

Returns:

  • (String)


3587
3588
3589
# File 'lib/google/apis/logging_v2/classes.rb', line 3587

def alias
  @alias
end

#castString

The cast for the field. This can any SQL cast type. Examples: - STRING - CHAR - DATE - TIMESTAMP - DATETIME - INT - FLOAT Corresponds to the JSON property cast

Returns:

  • (String)


3593
3594
3595
# File 'lib/google/apis/logging_v2/classes.rb', line 3593

def cast
  @cast
end

#fieldString

The field name. This will be the field that is selected using the dot notation to display the drill down value. Corresponds to the JSON property field

Returns:

  • (String)


3599
3600
3601
# File 'lib/google/apis/logging_v2/classes.rb', line 3599

def field
  @field
end

#operationString

Specifies the role of this field (direct selection, grouping, or aggregation). Corresponds to the JSON property operation

Returns:

  • (String)


3604
3605
3606
# File 'lib/google/apis/logging_v2/classes.rb', line 3604

def operation
  @operation
end

#regex_extractionString

The re2 extraction for the field. This will be used to extract the value from the field using REGEXP_EXTRACT. More information on re2 can be found here: https://github.com/google/re2/wiki/Syntax. Meta characters like +?()| will need to be escaped. Examples: - ".(autoscaler.)$" will be converted to REGEXP_EXTRACT(JSON_VALUE(field),"request(.(autoscaler.*)$)")in SQL. - "( test_value)$" will be converted to REGEXP_EXTRACT(JSON_VALUE(field),"request(\ (test_value)$)") in SQL. Corresponds to the JSON property regexExtraction

Returns:

  • (String)


3615
3616
3617
# File 'lib/google/apis/logging_v2/classes.rb', line 3615

def regex_extraction
  @regex_extraction
end

#sql_aggregation_functionGoogle::Apis::LoggingV2::FunctionApplication

Defines the aggregation function to apply to this field. This message is used only when operation is set to AGGREGATE. Corresponds to the JSON property sqlAggregationFunction



3621
3622
3623
# File 'lib/google/apis/logging_v2/classes.rb', line 3621

def sql_aggregation_function
  @sql_aggregation_function
end

#truncation_granularityString

The truncation granularity when grouping by a time/date field. This will be used to truncate the field to the granularity specified. This can be either a date or a time granularity found at https://cloud.google.com/bigquery/docs/ reference/standard-sql/timestamp_functions#timestamp_trunc_granularity_date and https://cloud.google.com/bigquery/docs/reference/standard-sql/ timestamp_functions#timestamp_trunc_granularity_time respectively. Corresponds to the JSON property truncationGranularity

Returns:

  • (String)


3631
3632
3633
# File 'lib/google/apis/logging_v2/classes.rb', line 3631

def truncation_granularity
  @truncation_granularity
end

Instance Method Details

#update!(**args) ⇒ Object

Update properties of this object



3638
3639
3640
3641
3642
3643
3644
3645
3646
# File 'lib/google/apis/logging_v2/classes.rb', line 3638

def update!(**args)
  @alias = args[:alias] if args.key?(:alias)
  @cast = args[:cast] if args.key?(:cast)
  @field = args[:field] if args.key?(:field)
  @operation = args[:operation] if args.key?(:operation)
  @regex_extraction = args[:regex_extraction] if args.key?(:regex_extraction)
  @sql_aggregation_function = args[:sql_aggregation_function] if args.key?(:sql_aggregation_function)
  @truncation_granularity = args[:truncation_granularity] if args.key?(:truncation_granularity)
end