embulk-output-bigquery 0.5.0 → 0.6.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/CHANGELOG.md +29 -4
- data/README.md +71 -42
- data/embulk-output-bigquery.gemspec +10 -3
- data/lib/embulk/output/bigquery.rb +11 -20
- data/lib/embulk/output/bigquery/auth.rb +35 -0
- data/lib/embulk/output/bigquery/google_client.rb +3 -34
- data/lib/embulk/output/bigquery/value_converter_factory.rb +31 -0
- data/test/test_bigquery_client.rb +1 -5
- data/test/test_configure.rb +4 -12
- data/test/test_helper.rb +7 -1
- data/test/test_transaction.rb +5 -6
- data/test/test_value_converter_factory.rb +86 -0
- metadata +29 -51
- data/example/config_append_direct_schema_update_options.yml +0 -31
- data/example/config_client_options.yml +0 -33
- data/example/config_csv.yml +0 -30
- data/example/config_delete_in_advance.yml +0 -29
- data/example/config_delete_in_advance_field_partitioned_table.yml +0 -33
- data/example/config_delete_in_advance_partitioned_table.yml +0 -33
- data/example/config_expose_errors.yml +0 -30
- data/example/config_gcs.yml +0 -32
- data/example/config_guess_from_embulk_schema.yml +0 -29
- data/example/config_guess_with_column_options.yml +0 -40
- data/example/config_gzip.yml +0 -1
- data/example/config_jsonl.yml +0 -1
- data/example/config_max_threads.yml +0 -34
- data/example/config_min_ouput_tasks.yml +0 -34
- data/example/config_mode_append.yml +0 -30
- data/example/config_mode_append_direct.yml +0 -30
- data/example/config_nested_record.yml +0 -1
- data/example/config_payload_column.yml +0 -20
- data/example/config_payload_column_index.yml +0 -20
- data/example/config_progress_log_interval.yml +0 -31
- data/example/config_replace.yml +0 -30
- data/example/config_replace_backup.yml +0 -32
- data/example/config_replace_backup_field_partitioned_table.yml +0 -34
- data/example/config_replace_backup_partitioned_table.yml +0 -34
- data/example/config_replace_field_partitioned_table.yml +0 -33
- data/example/config_replace_partitioned_table.yml +0 -33
- data/example/config_replace_schema_update_options.yml +0 -33
- data/example/config_skip_file_generation.yml +0 -32
- data/example/config_table_strftime.yml +0 -30
- data/example/config_template_table.yml +0 -21
- data/example/config_uncompressed.yml +0 -1
- data/example/config_with_rehearsal.yml +0 -33
- data/example/example.csv +0 -17
- data/example/example.yml +0 -1
- data/example/example2_1.csv +0 -1
- data/example/example2_2.csv +0 -1
- data/example/example4_1.csv +0 -1
- data/example/example4_2.csv +0 -1
- data/example/example4_3.csv +0 -1
- data/example/example4_4.csv +0 -1
- data/example/json_key.json +0 -12
- data/example/nested_example.jsonl +0 -16
- data/example/schema.json +0 -30
- data/example/schema_expose_errors.json +0 -30
@@ -1,31 +0,0 @@
|
|
1
|
-
in:
|
2
|
-
type: file
|
3
|
-
path_prefix: example/example.csv
|
4
|
-
parser:
|
5
|
-
type: csv
|
6
|
-
charset: UTF-8
|
7
|
-
newline: CRLF
|
8
|
-
null_string: 'NULL'
|
9
|
-
skip_header_lines: 1
|
10
|
-
comment_line_marker: '#'
|
11
|
-
columns:
|
12
|
-
- {name: date, type: string}
|
13
|
-
- {name: timestamp, type: timestamp, format: "%Y-%m-%d %H:%M:%S.%N", timezone: "+09:00"}
|
14
|
-
- {name: "null", type: string}
|
15
|
-
- {name: long, type: long}
|
16
|
-
- {name: string, type: string}
|
17
|
-
- {name: double, type: double}
|
18
|
-
- {name: boolean, type: boolean}
|
19
|
-
out:
|
20
|
-
type: bigquery
|
21
|
-
mode: replace
|
22
|
-
auth_method: json_key
|
23
|
-
json_keyfile: example/your-project-000.json
|
24
|
-
dataset: your_dataset_name
|
25
|
-
table: your_table_name
|
26
|
-
source_format: NEWLINE_DELIMITED_JSON
|
27
|
-
compression: NONE
|
28
|
-
auto_create_dataset: true
|
29
|
-
auto_create_table: true
|
30
|
-
schema_file: example/schema.json
|
31
|
-
progress_log_interval: 0.1
|
data/example/config_replace.yml
DELETED
@@ -1,30 +0,0 @@
|
|
1
|
-
in:
|
2
|
-
type: file
|
3
|
-
path_prefix: example/example.csv
|
4
|
-
parser:
|
5
|
-
type: csv
|
6
|
-
charset: UTF-8
|
7
|
-
newline: CRLF
|
8
|
-
null_string: 'NULL'
|
9
|
-
skip_header_lines: 1
|
10
|
-
comment_line_marker: '#'
|
11
|
-
columns:
|
12
|
-
- {name: date, type: string}
|
13
|
-
- {name: timestamp, type: timestamp, format: "%Y-%m-%d %H:%M:%S.%N", timezone: "+09:00"}
|
14
|
-
- {name: "null", type: string}
|
15
|
-
- {name: long, type: long}
|
16
|
-
- {name: string, type: string}
|
17
|
-
- {name: double, type: double}
|
18
|
-
- {name: boolean, type: boolean}
|
19
|
-
out:
|
20
|
-
type: bigquery
|
21
|
-
mode: replace
|
22
|
-
auth_method: json_key
|
23
|
-
json_keyfile: example/your-project-000.json
|
24
|
-
dataset: your_dataset_name
|
25
|
-
table: your_table_name
|
26
|
-
source_format: NEWLINE_DELIMITED_JSON
|
27
|
-
compression: NONE
|
28
|
-
auto_create_dataset: true
|
29
|
-
auto_create_table: true
|
30
|
-
schema_file: example/schema.json
|
@@ -1,32 +0,0 @@
|
|
1
|
-
in:
|
2
|
-
type: file
|
3
|
-
path_prefix: example/example.csv
|
4
|
-
parser:
|
5
|
-
type: csv
|
6
|
-
charset: UTF-8
|
7
|
-
newline: CRLF
|
8
|
-
null_string: 'NULL'
|
9
|
-
skip_header_lines: 1
|
10
|
-
comment_line_marker: '#'
|
11
|
-
columns:
|
12
|
-
- {name: date, type: string}
|
13
|
-
- {name: timestamp, type: timestamp, format: "%Y-%m-%d %H:%M:%S.%N", timezone: "+09:00"}
|
14
|
-
- {name: "null", type: string}
|
15
|
-
- {name: long, type: long}
|
16
|
-
- {name: string, type: string}
|
17
|
-
- {name: double, type: double}
|
18
|
-
- {name: boolean, type: boolean}
|
19
|
-
out:
|
20
|
-
type: bigquery
|
21
|
-
mode: replace_backup
|
22
|
-
auth_method: json_key
|
23
|
-
json_keyfile: example/your-project-000.json
|
24
|
-
dataset: your_dataset_name
|
25
|
-
table: your_table_name
|
26
|
-
dataset_old: your_dataset_name_old
|
27
|
-
table_old: your_table_name_old
|
28
|
-
source_format: NEWLINE_DELIMITED_JSON
|
29
|
-
auto_create_dataset: true
|
30
|
-
auto_create_table: true
|
31
|
-
schema_file: example/schema.json
|
32
|
-
skip_load: true # for debug
|
@@ -1,34 +0,0 @@
|
|
1
|
-
in:
|
2
|
-
type: file
|
3
|
-
path_prefix: example/example.csv
|
4
|
-
parser:
|
5
|
-
type: csv
|
6
|
-
charset: UTF-8
|
7
|
-
newline: CRLF
|
8
|
-
null_string: 'NULL'
|
9
|
-
skip_header_lines: 1
|
10
|
-
comment_line_marker: '#'
|
11
|
-
columns:
|
12
|
-
- {name: date, type: string}
|
13
|
-
- {name: timestamp, type: timestamp, format: "%Y-%m-%d %H:%M:%S.%N", timezone: "+09:00"}
|
14
|
-
- {name: "null", type: string}
|
15
|
-
- {name: long, type: long}
|
16
|
-
- {name: string, type: string}
|
17
|
-
- {name: double, type: double}
|
18
|
-
- {name: boolean, type: boolean}
|
19
|
-
out:
|
20
|
-
type: bigquery
|
21
|
-
mode: replace_backup
|
22
|
-
auth_method: json_key
|
23
|
-
json_keyfile: example/your-project-000.json
|
24
|
-
dataset: your_dataset_name
|
25
|
-
table: your_field_partitioned_table_name
|
26
|
-
table_old: your_field_partitioned_table_name_old
|
27
|
-
source_format: NEWLINE_DELIMITED_JSON
|
28
|
-
compression: NONE
|
29
|
-
auto_create_dataset: true
|
30
|
-
auto_create_table: true
|
31
|
-
schema_file: example/schema.json
|
32
|
-
time_partitioning:
|
33
|
-
type: 'DAY'
|
34
|
-
field: 'timestamp'
|
@@ -1,34 +0,0 @@
|
|
1
|
-
in:
|
2
|
-
type: file
|
3
|
-
path_prefix: example/example.csv
|
4
|
-
parser:
|
5
|
-
type: csv
|
6
|
-
charset: UTF-8
|
7
|
-
newline: CRLF
|
8
|
-
null_string: 'NULL'
|
9
|
-
skip_header_lines: 1
|
10
|
-
comment_line_marker: '#'
|
11
|
-
columns:
|
12
|
-
- {name: date, type: string}
|
13
|
-
- {name: timestamp, type: timestamp, format: "%Y-%m-%d %H:%M:%S.%N", timezone: "+09:00"}
|
14
|
-
- {name: "null", type: string}
|
15
|
-
- {name: long, type: long}
|
16
|
-
- {name: string, type: string}
|
17
|
-
- {name: double, type: double}
|
18
|
-
- {name: boolean, type: boolean}
|
19
|
-
out:
|
20
|
-
type: bigquery
|
21
|
-
mode: replace_backup
|
22
|
-
auth_method: json_key
|
23
|
-
json_keyfile: example/your-project-000.json
|
24
|
-
dataset: your_dataset_name
|
25
|
-
table: your_partitioned_table_name$20160929
|
26
|
-
table_old: your_partitioned_table_name_old$20160929
|
27
|
-
source_format: NEWLINE_DELIMITED_JSON
|
28
|
-
compression: NONE
|
29
|
-
auto_create_dataset: true
|
30
|
-
auto_create_table: true
|
31
|
-
schema_file: example/schema.json
|
32
|
-
time_partitioning:
|
33
|
-
type: 'DAY'
|
34
|
-
expiration_ms: 100
|
@@ -1,33 +0,0 @@
|
|
1
|
-
in:
|
2
|
-
type: file
|
3
|
-
path_prefix: example/example.csv
|
4
|
-
parser:
|
5
|
-
type: csv
|
6
|
-
charset: UTF-8
|
7
|
-
newline: CRLF
|
8
|
-
null_string: 'NULL'
|
9
|
-
skip_header_lines: 1
|
10
|
-
comment_line_marker: '#'
|
11
|
-
columns:
|
12
|
-
- {name: date, type: string}
|
13
|
-
- {name: timestamp, type: timestamp, format: "%Y-%m-%d %H:%M:%S.%N", timezone: "+09:00"}
|
14
|
-
- {name: "null", type: string}
|
15
|
-
- {name: long, type: long}
|
16
|
-
- {name: string, type: string}
|
17
|
-
- {name: double, type: double}
|
18
|
-
- {name: boolean, type: boolean}
|
19
|
-
out:
|
20
|
-
type: bigquery
|
21
|
-
mode: replace
|
22
|
-
auth_method: json_key
|
23
|
-
json_keyfile: example/your-project-000.json
|
24
|
-
dataset: your_dataset_name
|
25
|
-
table: your_field_partitioned_table_name
|
26
|
-
source_format: NEWLINE_DELIMITED_JSON
|
27
|
-
compression: NONE
|
28
|
-
auto_create_dataset: true
|
29
|
-
auto_create_table: true
|
30
|
-
schema_file: example/schema.json
|
31
|
-
time_partitioning:
|
32
|
-
type: 'DAY'
|
33
|
-
field: 'timestamp'
|
@@ -1,33 +0,0 @@
|
|
1
|
-
in:
|
2
|
-
type: file
|
3
|
-
path_prefix: example/example.csv
|
4
|
-
parser:
|
5
|
-
type: csv
|
6
|
-
charset: UTF-8
|
7
|
-
newline: CRLF
|
8
|
-
null_string: 'NULL'
|
9
|
-
skip_header_lines: 1
|
10
|
-
comment_line_marker: '#'
|
11
|
-
columns:
|
12
|
-
- {name: date, type: string}
|
13
|
-
- {name: timestamp, type: timestamp, format: "%Y-%m-%d %H:%M:%S.%N", timezone: "+09:00"}
|
14
|
-
- {name: "null", type: string}
|
15
|
-
- {name: long, type: long}
|
16
|
-
- {name: string, type: string}
|
17
|
-
- {name: double, type: double}
|
18
|
-
- {name: boolean, type: boolean}
|
19
|
-
out:
|
20
|
-
type: bigquery
|
21
|
-
mode: replace
|
22
|
-
auth_method: json_key
|
23
|
-
json_keyfile: example/your-project-000.json
|
24
|
-
dataset: your_dataset_name
|
25
|
-
table: your_partitioned_table_name$20160929
|
26
|
-
source_format: NEWLINE_DELIMITED_JSON
|
27
|
-
compression: NONE
|
28
|
-
auto_create_dataset: true
|
29
|
-
auto_create_table: true
|
30
|
-
schema_file: example/schema.json
|
31
|
-
time_partitioning:
|
32
|
-
type: 'DAY'
|
33
|
-
expiration_ms: 100
|
@@ -1,33 +0,0 @@
|
|
1
|
-
in:
|
2
|
-
type: file
|
3
|
-
path_prefix: example/example.csv
|
4
|
-
parser:
|
5
|
-
type: csv
|
6
|
-
charset: UTF-8
|
7
|
-
newline: CRLF
|
8
|
-
null_string: 'NULL'
|
9
|
-
skip_header_lines: 1
|
10
|
-
comment_line_marker: '#'
|
11
|
-
columns:
|
12
|
-
- {name: date, type: string}
|
13
|
-
- {name: timestamp, type: timestamp, format: "%Y-%m-%d %H:%M:%S.%N", timezone: "+09:00"}
|
14
|
-
- {name: "null", type: string}
|
15
|
-
- {name: long, type: long}
|
16
|
-
- {name: string, type: string}
|
17
|
-
- {name: double, type: double}
|
18
|
-
- {name: boolean, type: boolean}
|
19
|
-
out:
|
20
|
-
type: bigquery
|
21
|
-
mode: replace
|
22
|
-
auth_method: json_key
|
23
|
-
json_keyfile: example/your-project-000.json
|
24
|
-
dataset: your_dataset_name
|
25
|
-
table: your_partitioned_table_name$20160929
|
26
|
-
source_format: NEWLINE_DELIMITED_JSON
|
27
|
-
compression: NONE
|
28
|
-
auto_create_dataset: true
|
29
|
-
auto_create_table: true
|
30
|
-
schema_file: example/schema.json
|
31
|
-
time_partitioning:
|
32
|
-
type: 'DAY'
|
33
|
-
expiration_ms: 100
|
@@ -1,32 +0,0 @@
|
|
1
|
-
in:
|
2
|
-
type: file
|
3
|
-
path_prefix: example/example.csv
|
4
|
-
parser:
|
5
|
-
type: csv
|
6
|
-
charset: UTF-8
|
7
|
-
newline: CRLF
|
8
|
-
null_string: 'NULL'
|
9
|
-
skip_header_lines: 1
|
10
|
-
comment_line_marker: '#'
|
11
|
-
columns:
|
12
|
-
- {name: date, type: string}
|
13
|
-
- {name: timestamp, type: timestamp, format: "%Y-%m-%d %H:%M:%S.%N", timezone: "+09:00"}
|
14
|
-
- {name: "null", type: string}
|
15
|
-
- {name: long, type: long}
|
16
|
-
- {name: string, type: string}
|
17
|
-
- {name: double, type: double}
|
18
|
-
- {name: boolean, type: boolean}
|
19
|
-
out:
|
20
|
-
type: bigquery
|
21
|
-
mode: replace
|
22
|
-
auth_method: json_key
|
23
|
-
json_keyfile: example/your-project-000.json
|
24
|
-
dataset: your_dataset_name
|
25
|
-
table: your_table_name
|
26
|
-
source_format: NEWLINE_DELIMITED_JSON
|
27
|
-
auto_create_dataset: true
|
28
|
-
auto_create_table: true
|
29
|
-
schema_file: example/schema.json
|
30
|
-
path_prefix: example/example
|
31
|
-
file_ext: .jsonl
|
32
|
-
skip_file_generation: true
|
@@ -1,30 +0,0 @@
|
|
1
|
-
in:
|
2
|
-
type: file
|
3
|
-
path_prefix: example/example.csv
|
4
|
-
parser:
|
5
|
-
type: csv
|
6
|
-
charset: UTF-8
|
7
|
-
newline: CRLF
|
8
|
-
null_string: 'NULL'
|
9
|
-
skip_header_lines: 1
|
10
|
-
comment_line_marker: '#'
|
11
|
-
columns:
|
12
|
-
- {name: date, type: string}
|
13
|
-
- {name: timestamp, type: timestamp, format: "%Y-%m-%d %H:%M:%S.%N", timezone: "+09:00"}
|
14
|
-
- {name: "null", type: string}
|
15
|
-
- {name: long, type: long}
|
16
|
-
- {name: string, type: string}
|
17
|
-
- {name: double, type: double}
|
18
|
-
- {name: boolean, type: boolean}
|
19
|
-
out:
|
20
|
-
type: bigquery
|
21
|
-
mode: replace
|
22
|
-
auth_method: json_key
|
23
|
-
json_keyfile: example/your-project-000.json
|
24
|
-
dataset: your_dataset_name
|
25
|
-
table: your_table_name_%Y%m%d
|
26
|
-
source_format: NEWLINE_DELIMITED_JSON
|
27
|
-
auto_create_dataset: true
|
28
|
-
auto_create_table: true
|
29
|
-
schema_file: example/schema.json
|
30
|
-
skip_load: true # for debug
|
@@ -1,21 +0,0 @@
|
|
1
|
-
# embulk gem install embulk-parser-none
|
2
|
-
in:
|
3
|
-
type: file
|
4
|
-
path_prefix: example/example.jsonl
|
5
|
-
parser:
|
6
|
-
type: none
|
7
|
-
column_name: payload
|
8
|
-
out:
|
9
|
-
type: bigquery
|
10
|
-
mode: replace
|
11
|
-
auth_method: json_key
|
12
|
-
json_keyfile: example/your-project-000.json
|
13
|
-
dataset: your_dataset_name
|
14
|
-
table: your_table_name_%Y%m%d
|
15
|
-
compression: GZIP
|
16
|
-
source_format: NEWLINE_DELIMITED_JSON
|
17
|
-
auto_create_dataset: true
|
18
|
-
auto_create_table: true
|
19
|
-
template_table: your_table_name
|
20
|
-
payload_column: payload
|
21
|
-
skip_load: true # for debug
|
@@ -1 +0,0 @@
|
|
1
|
-
example/config_replace.yml
|
@@ -1,33 +0,0 @@
|
|
1
|
-
in:
|
2
|
-
type: file
|
3
|
-
path_prefix: example/example.csv
|
4
|
-
parser:
|
5
|
-
type: csv
|
6
|
-
charset: UTF-8
|
7
|
-
newline: CRLF
|
8
|
-
null_string: 'NULL'
|
9
|
-
skip_header_lines: 1
|
10
|
-
comment_line_marker: '#'
|
11
|
-
columns:
|
12
|
-
- {name: date, type: string}
|
13
|
-
- {name: timestamp, type: timestamp, format: "%Y-%m-%d %H:%M:%S.%N", timezone: "+09:00"}
|
14
|
-
- {name: "null", type: string}
|
15
|
-
- {name: long, type: long}
|
16
|
-
- {name: string, type: string}
|
17
|
-
- {name: double, type: double}
|
18
|
-
- {name: boolean, type: boolean}
|
19
|
-
out:
|
20
|
-
type: bigquery
|
21
|
-
mode: replace
|
22
|
-
auth_method: json_key
|
23
|
-
json_keyfile: example/your-project-000.json
|
24
|
-
dataset: your_dataset_name
|
25
|
-
table: your_table_name
|
26
|
-
source_format: NEWLINE_DELIMITED_JSON
|
27
|
-
auto_create_dataset: true
|
28
|
-
auto_create_table: true
|
29
|
-
schema_file: example/schema.json
|
30
|
-
with_rehearsal: true
|
31
|
-
rehearsal_counts: 1
|
32
|
-
skip_load: true # for debug
|
33
|
-
compression: GZIP
|
data/example/example.csv
DELETED
@@ -1,17 +0,0 @@
|
|
1
|
-
date,timestamp,null,long,string,double,boolean
|
2
|
-
2015-07-13,2015-07-13 00:00:00.100000,,90,l6lTsvxd,903.4,true
|
3
|
-
2015-07-13,2015-07-13 00:00:00.100000,,91,XoALSEQg,394.5,true
|
4
|
-
2015-07-13,2015-07-13 00:00:00.100000,,92,0hgDRI_m,810.9,true
|
5
|
-
2015-07-13,2015-07-13 00:00:00.100000,,93,KjCRAc-A,477.4,true
|
6
|
-
2015-07-13,2015-07-13 00:00:00.100000,,94,fyQVGlT8,725.3,true
|
7
|
-
2015-07-13,2015-07-13 00:00:00.100000,,95,FpBYRPWK,316.6,true
|
8
|
-
2015-07-13,2015-07-13 00:00:00.100000,,96,9ikvnUqp,369.5,true
|
9
|
-
2015-07-13,2015-07-13 00:00:00.100000,,97,RRNYDAzK,506.5,true
|
10
|
-
2015-07-13,2015-07-13 00:00:00.100000,,90,l6lTsvxd,903.4,false
|
11
|
-
2015-07-13,2015-07-13 00:00:00.100000,,91,XoALSEQg,394.5,false
|
12
|
-
2015-07-13,2015-07-13 00:00:00.100000,,92,0hgDRI_m,810.9,false
|
13
|
-
2015-07-13,2015-07-13 00:00:00.100000,,93,KjCRAc-A,477.4,false
|
14
|
-
2015-07-13,2015-07-13 00:00:00.100000,,94,fyQVGlT8,725.3,false
|
15
|
-
2015-07-13,2015-07-13 00:00:00.100000,,95,FpBYRPWK,316.6,false
|
16
|
-
2015-07-13,2015-07-13 00:00:00.100000,,96,9ikvnUqp,369.5,false
|
17
|
-
2015-07-13,2015-07-13 00:00:00.100000,,97,RRNYDAzK,506.5,false
|
data/example/example.yml
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
example/config_replace.yml
|
data/example/example2_1.csv
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
example/example.csv
|
data/example/example2_2.csv
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
example/example.csv
|
data/example/example4_1.csv
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
example/example.csv
|
data/example/example4_2.csv
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
example/example.csv
|
data/example/example4_3.csv
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
example/example.csv
|
data/example/example4_4.csv
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
example/example.csv
|
data/example/json_key.json
DELETED
@@ -1,12 +0,0 @@
|
|
1
|
-
{
|
2
|
-
"type": "service_account",
|
3
|
-
"project_id": "your_project_name",
|
4
|
-
"private_key_id": "your_private_key_id",
|
5
|
-
"private_key": "-----BEGIN PRIVATE KEY-----\n\n-----END PRIVATE KEY-----\n",
|
6
|
-
"client_email": "your_service_account_email",
|
7
|
-
"client_id": "your_client_id",
|
8
|
-
"auth_uri": "https://accounts.google.com/o/oauth2/auth",
|
9
|
-
"token_uri": "https://accounts.google.com/o/oauth2/token",
|
10
|
-
"auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
|
11
|
-
"client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/account-3%40your_project_name.iam.gserviceaccount.com"
|
12
|
-
}
|