Class: GoodData::DataSource::BigQueryConnectionInfo
Instance Attribute Summary
Attributes inherited from Rest::Object
#client, #json
Instance Method Summary
collapse
#connection_info, #connection_info=
#obj_id
client, default_client, #saved?
#data_property_reader
#data_property_writer
#metadata_property_reader
#metadata_property_writer
#meta
#data
#root_key
#content
Constructor Details
Returns a new instance of BigQueryConnectionInfo.
487
488
489
|
# File 'lib/gooddata/models/data_source.rb', line 487
def initialize(connection_info_json)
@json = connection_info_json[GoodData::DataSource::BIGQUERY]
end
|
Instance Method Details
#client_email ⇒ Object
491
492
493
|
# File 'lib/gooddata/models/data_source.rb', line 491
def client_email
@json['authentication']['serviceAccount']['clientEmail'] if @json && @json['authentication'] && @json['authentication']['serviceAccount']
end
|
#client_email=(new_client_email) ⇒ Object
495
496
497
|
# File 'lib/gooddata/models/data_source.rb', line 495
def client_email=(new_client_email)
@json['authentication']['serviceAccount']['clientEmail'] = new_client_email
end
|
#private_key ⇒ Object
499
500
501
|
# File 'lib/gooddata/models/data_source.rb', line 499
def private_key
@json['authentication']['serviceAccount']['privateKey'] if @json && @json['authentication'] && @json['authentication']['serviceAccount']
end
|
#private_key=(new_private_key) ⇒ Object
503
504
505
|
# File 'lib/gooddata/models/data_source.rb', line 503
def private_key=(new_private_key)
@json['authentication']['serviceAccount']['privateKey'] = new_private_key
end
|
507
508
509
|
# File 'lib/gooddata/models/data_source.rb', line 507
def project
@json['project']
end
|
#project=(new_project) ⇒ Object
511
512
513
|
# File 'lib/gooddata/models/data_source.rb', line 511
def project=(new_project)
@json['project'] = new_project
end
|
515
516
517
|
# File 'lib/gooddata/models/data_source.rb', line 515
def schema
@json['schema']
end
|
#schema=(new_schema) ⇒ Object
519
520
521
|
# File 'lib/gooddata/models/data_source.rb', line 519
def schema=(new_schema)
@json['schema'] = new_schema
end
|
#to_update_payload ⇒ Object
523
524
525
526
527
528
529
530
531
532
533
534
535
536
|
# File 'lib/gooddata/models/data_source.rb', line 523
def to_update_payload
{
'bigQuery' => {
'authentication' => {
'serviceAccount' => {
'clientEmail' => client_email,
'privateKey' => private_key
}
},
'project' => project,
'schema' => schema
}
}
end
|
538
539
540
541
542
|
# File 'lib/gooddata/models/data_source.rb', line 538
def validate
fail 'Data source client email has to be provided' if client_email.nil? || client_email.blank?
fail 'Data source project has to be provided' if project.nil? || project.blank?
fail ERROR_MESSAGE_NO_SCHEMA if schema.nil? || schema.blank?
end
|