Class: Google::Apis::BigqueryV2::TableFieldSchema

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

Overview

A field in TableSchema

Defined Under Namespace

Classes: Categories, DataGovernanceTagsInfo, PolicyTags, RangeElementType

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(**args) ⇒ TableFieldSchema

Returns a new instance of TableFieldSchema.



11651
11652
11653
# File 'lib/google/apis/bigquery_v2/classes.rb', line 11651

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

Instance Attribute Details

#categoriesGoogle::Apis::BigqueryV2::TableFieldSchema::Categories

Deprecated. Corresponds to the JSON property categories



11503
11504
11505
# File 'lib/google/apis/bigquery_v2/classes.rb', line 11503

def categories
  @categories
end

#collationString

Optional. Field collation can be set only when the type of field is STRING. The following values are supported: * 'und:ci': undetermined locale, case insensitive. * '': empty string. Default to case-sensitive behavior. Corresponds to the JSON property collation

Returns:

  • (String)


11510
11511
11512
# File 'lib/google/apis/bigquery_v2/classes.rb', line 11510

def collation
  @collation
end

#data_governance_tags_infoGoogle::Apis::BigqueryV2::TableFieldSchema::DataGovernanceTagsInfo

Optional. Specifies the data governance tags on this field. This field works with other column-level security fields as follows: * Precedence: If a data governance tag is attached to a column, it takes precedence over the policy tag attached to the column. However, if a data policy is attached to a column, it takes precedence over the data governance tag. * Patching behavior: Describes how this field behaves during a Table.patch schema update: * Unset: If the data_governance_tags_info field is omitted from the update request, the existing tags on the column are preserved. * Empty Field: To clear data governance tags from a column, send the data_governance_tags_info field as an empty object. This removes all tags from the column. * Updating tags: To replace an existing tag, send the field with the new tag. Corresponds to the JSON property dataGovernanceTagsInfo



11526
11527
11528
# File 'lib/google/apis/bigquery_v2/classes.rb', line 11526

def data_governance_tags_info
  @data_governance_tags_info
end

#data_policiesArray<Google::Apis::BigqueryV2::DataPolicyOption>

Optional. Data policies attached to this field, used for field-level access control. Corresponds to the JSON property dataPolicies



11532
11533
11534
# File 'lib/google/apis/bigquery_v2/classes.rb', line 11532

def data_policies
  @data_policies
end

#data_policy_listGoogle::Apis::BigqueryV2::DataPolicyList

A list of data policy options. For more information, see Mask data by applying data policies to a column. Corresponds to the JSON property dataPolicyList



11539
11540
11541
# File 'lib/google/apis/bigquery_v2/classes.rb', line 11539

def data_policy_list
  @data_policy_list
end

#default_value_expressionString

Optional. A SQL expression to specify the default value for this field. Corresponds to the JSON property defaultValueExpression

Returns:

  • (String)


11545
11546
11547
# File 'lib/google/apis/bigquery_v2/classes.rb', line 11545

def default_value_expression
  @default_value_expression
end

#descriptionString

Optional. The field description. The maximum length is 1,024 characters. Corresponds to the JSON property description

Returns:

  • (String)


11550
11551
11552
# File 'lib/google/apis/bigquery_v2/classes.rb', line 11550

def description
  @description
end

#fieldsArray<Google::Apis::BigqueryV2::TableFieldSchema>

Optional. Describes the nested schema fields if the type property is set to RECORD. Corresponds to the JSON property fields



11556
11557
11558
# File 'lib/google/apis/bigquery_v2/classes.rb', line 11556

def fields
  @fields
end

#foreign_type_definitionString

Optional. Definition of the foreign data type. Only valid for top-level schema fields (not nested fields). If the type is FOREIGN, this field is required. Corresponds to the JSON property foreignTypeDefinition

Returns:

  • (String)


11562
11563
11564
# File 'lib/google/apis/bigquery_v2/classes.rb', line 11562

def foreign_type_definition
  @foreign_type_definition
end

#generated_columnGoogle::Apis::BigqueryV2::GeneratedColumn

Optional. Definition of how values are generated for the field. Only valid for top-level schema fields (not nested fields). Corresponds to the JSON property generatedColumn



11568
11569
11570
# File 'lib/google/apis/bigquery_v2/classes.rb', line 11568

def generated_column
  @generated_column
end

#max_lengthFixnum

Optional. Maximum length of values of this field for STRINGS or BYTES. If max_length is not specified, no maximum length constraint is imposed on this field. If type = "STRING", then max_length represents the maximum UTF-8 length of strings in this field. If type = "BYTES", then max_length represents the maximum number of bytes in this field. It is invalid to set this field if type ≠ "STRING" and ≠ "BYTES". Corresponds to the JSON property maxLength

Returns:

  • (Fixnum)


11578
11579
11580
# File 'lib/google/apis/bigquery_v2/classes.rb', line 11578

def max_length
  @max_length
end

#modeString

Optional. The field mode. Possible values include NULLABLE, REQUIRED and REPEATED. The default value is NULLABLE. Corresponds to the JSON property mode

Returns:

  • (String)


11584
11585
11586
# File 'lib/google/apis/bigquery_v2/classes.rb', line 11584

def mode
  @mode
end

#nameString

Required. The field name. The name must contain only letters (a-z, A-Z), numbers (0-9), or underscores (_), and must start with a letter or underscore. The maximum length is 300 characters. Corresponds to the JSON property name

Returns:

  • (String)


11591
11592
11593
# File 'lib/google/apis/bigquery_v2/classes.rb', line 11591

def name
  @name
end

#policy_tagsGoogle::Apis::BigqueryV2::TableFieldSchema::PolicyTags

Optional. The policy tags attached to this field, used for field-level access control. If not set, defaults to empty policy_tags. Corresponds to the JSON property policyTags



11597
11598
11599
# File 'lib/google/apis/bigquery_v2/classes.rb', line 11597

def policy_tags
  @policy_tags
end

#precisionFixnum

Optional. Precision (maximum number of total digits in base 10) and scale ( maximum number of digits in the fractional part in base 10) constraints for values of this field for NUMERIC or BIGNUMERIC. It is invalid to set precision or scale if type ≠ "NUMERIC" and ≠ "BIGNUMERIC". If precision and scale are not specified, no value range constraint is imposed on this field insofar as values are permitted by the type. Values of this NUMERIC or BIGNUMERIC field must be in this range when: * Precision (P) and scale (S) are specified: [-10P- S + 10-S, 10P-S - 10-S] * Precision (P) is specified but not scale (and thus scale is interpreted to be equal to zero): [-10P + 1, 10P - 1]. Acceptable values for precision and scale if both are specified: * If type = "NUMERIC": 1 ≤ precision - scale ≤ 29 and 0 ≤ scale ≤ 9. * If type = "BIGNUMERIC": 1 ≤ precision - scale ≤ 38 and 0 ≤ scale ≤ 38. Acceptable values for precision if only precision is specified but not scale (and thus scale is interpreted to be equal to zero): * If type = "NUMERIC": 1 ≤ precision ≤ 29. * If type = " BIGNUMERIC": 1 ≤ precision ≤ 38. If scale is specified but not precision, then it is invalid. Corresponds to the JSON property precision

Returns:

  • (Fixnum)


11617
11618
11619
# File 'lib/google/apis/bigquery_v2/classes.rb', line 11617

def precision
  @precision
end

#range_element_typeGoogle::Apis::BigqueryV2::TableFieldSchema::RangeElementType

Represents the type of a field element. Corresponds to the JSON property rangeElementType



11622
11623
11624
# File 'lib/google/apis/bigquery_v2/classes.rb', line 11622

def range_element_type
  @range_element_type
end

#rounding_modeString

Optional. Specifies the rounding mode to be used when storing values of NUMERIC and BIGNUMERIC type. Corresponds to the JSON property roundingMode

Returns:

  • (String)


11628
11629
11630
# File 'lib/google/apis/bigquery_v2/classes.rb', line 11628

def rounding_mode
  @rounding_mode
end

#scaleFixnum

Optional. See documentation for precision. Corresponds to the JSON property scale

Returns:

  • (Fixnum)


11633
11634
11635
# File 'lib/google/apis/bigquery_v2/classes.rb', line 11633

def scale
  @scale
end

#timestamp_precisionFixnum

Optional. Precision (maximum number of total digits in base 10) for seconds of TIMESTAMP type. Possible values include: * 6 (Default, for TIMESTAMP type with microsecond precision) * 12 (For TIMESTAMP type with picosecond precision) Corresponds to the JSON property timestampPrecision

Returns:

  • (Fixnum)


11640
11641
11642
# File 'lib/google/apis/bigquery_v2/classes.rb', line 11640

def timestamp_precision
  @timestamp_precision
end

#typeString

Required. The field data type. Possible values include: * STRING * BYTES * INTEGER (or INT64) * FLOAT (or FLOAT64) * BOOLEAN (or BOOL) * TIMESTAMP * DATE

  • TIME * DATETIME * GEOGRAPHY * NUMERIC * BIGNUMERIC * JSON * RECORD (or STRUCT) * RANGE Use of RECORD/STRUCT indicates that the field contains a nested schema. Corresponds to the JSON property type

Returns:

  • (String)


11649
11650
11651
# File 'lib/google/apis/bigquery_v2/classes.rb', line 11649

def type
  @type
end

Instance Method Details

#update!(**args) ⇒ Object

Update properties of this object



11656
11657
11658
11659
11660
11661
11662
11663
11664
11665
11666
11667
11668
11669
11670
11671
11672
11673
11674
11675
11676
11677
# File 'lib/google/apis/bigquery_v2/classes.rb', line 11656

def update!(**args)
  @categories = args[:categories] if args.key?(:categories)
  @collation = args[:collation] if args.key?(:collation)
  @data_governance_tags_info = args[:data_governance_tags_info] if args.key?(:data_governance_tags_info)
  @data_policies = args[:data_policies] if args.key?(:data_policies)
  @data_policy_list = args[:data_policy_list] if args.key?(:data_policy_list)
  @default_value_expression = args[:default_value_expression] if args.key?(:default_value_expression)
  @description = args[:description] if args.key?(:description)
  @fields = args[:fields] if args.key?(:fields)
  @foreign_type_definition = args[:foreign_type_definition] if args.key?(:foreign_type_definition)
  @generated_column = args[:generated_column] if args.key?(:generated_column)
  @max_length = args[:max_length] if args.key?(:max_length)
  @mode = args[:mode] if args.key?(:mode)
  @name = args[:name] if args.key?(:name)
  @policy_tags = args[:policy_tags] if args.key?(:policy_tags)
  @precision = args[:precision] if args.key?(:precision)
  @range_element_type = args[:range_element_type] if args.key?(:range_element_type)
  @rounding_mode = args[:rounding_mode] if args.key?(:rounding_mode)
  @scale = args[:scale] if args.key?(:scale)
  @timestamp_precision = args[:timestamp_precision] if args.key?(:timestamp_precision)
  @type = args[:type] if args.key?(:type)
end