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, PolicyTags, RangeElementType

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(**args) ⇒ TableFieldSchema

Returns a new instance of TableFieldSchema.



10067
10068
10069
# File 'lib/google/apis/bigquery_v2/classes.rb', line 10067

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

Instance Attribute Details

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

Deprecated. Corresponds to the JSON property categories



9956
9957
9958
# File 'lib/google/apis/bigquery_v2/classes.rb', line 9956

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)


9963
9964
9965
# File 'lib/google/apis/bigquery_v2/classes.rb', line 9963

def collation
  @collation
end

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

Optional. Data policy options, will replace the data_policies. Corresponds to the JSON property dataPolicies



9968
9969
9970
# File 'lib/google/apis/bigquery_v2/classes.rb', line 9968

def data_policies
  @data_policies
end

#default_value_expressionString

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

Returns:

  • (String)


9974
9975
9976
# File 'lib/google/apis/bigquery_v2/classes.rb', line 9974

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)


9979
9980
9981
# File 'lib/google/apis/bigquery_v2/classes.rb', line 9979

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



9985
9986
9987
# File 'lib/google/apis/bigquery_v2/classes.rb', line 9985

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)


9991
9992
9993
# File 'lib/google/apis/bigquery_v2/classes.rb', line 9991

def foreign_type_definition
  @foreign_type_definition
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)


10001
10002
10003
# File 'lib/google/apis/bigquery_v2/classes.rb', line 10001

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)


10007
10008
10009
# File 'lib/google/apis/bigquery_v2/classes.rb', line 10007

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)


10014
10015
10016
# File 'lib/google/apis/bigquery_v2/classes.rb', line 10014

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



10020
10021
10022
# File 'lib/google/apis/bigquery_v2/classes.rb', line 10020

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)


10040
10041
10042
# File 'lib/google/apis/bigquery_v2/classes.rb', line 10040

def precision
  @precision
end

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

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



10045
10046
10047
# File 'lib/google/apis/bigquery_v2/classes.rb', line 10045

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)


10051
10052
10053
# File 'lib/google/apis/bigquery_v2/classes.rb', line 10051

def rounding_mode
  @rounding_mode
end

#scaleFixnum

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

Returns:

  • (Fixnum)


10056
10057
10058
# File 'lib/google/apis/bigquery_v2/classes.rb', line 10056

def scale
  @scale
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 (Preview) Use of RECORD/ STRUCT indicates that the field contains a nested schema. Corresponds to the JSON property type

Returns:

  • (String)


10065
10066
10067
# File 'lib/google/apis/bigquery_v2/classes.rb', line 10065

def type
  @type
end

Instance Method Details

#update!(**args) ⇒ Object

Update properties of this object



10072
10073
10074
10075
10076
10077
10078
10079
10080
10081
10082
10083
10084
10085
10086
10087
10088
10089
# File 'lib/google/apis/bigquery_v2/classes.rb', line 10072

def update!(**args)
  @categories = args[:categories] if args.key?(:categories)
  @collation = args[:collation] if args.key?(:collation)
  @data_policies = args[:data_policies] if args.key?(:data_policies)
  @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)
  @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)
  @type = args[:type] if args.key?(:type)
end