-
Notifications
You must be signed in to change notification settings - Fork 4
/
extension.yaml
155 lines (139 loc) · 5.41 KB
/
extension.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
# Copyright 2023 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# https://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# Learn detailed information about the fields of an extension.yaml file in the docs:
# https://firebase.google.com/docs/extensions/alpha/ref-extension-yaml
name: bigquery-geocode-address # Identifier for your extension
version: 0.1.4 # Follow semver versioning
specVersion: v1beta # Version of the Firebase Extensions specification
author:
authorName: Google Maps Platform
url: https://mapsplatform.google.com
displayName: Geocode Address in BigQuery
description: Enables running geocoding functions directly in BigQuery queries using Geocoding API by Google Maps Platform.
license: Apache-2.0 # https://spdx.org/licenses/
icon: icon.png
tags: [utilities, google-maps, location, logistics]
contributors:
- authorName: Invertase
email: oss@invertase.io
url: https://github.com/invertase
sourceUrl: https://github.com/googlemaps/gmp-firebase-extensions/tree/main/bigquery-geocode-address
releaseNotesUrl: https://github.com/googlemaps/gmp-firebase-extensions/tree/main/bigquery-geocode-address/CHANGELOG.md
billingRequired: true
apis:
- apiName: bigquery.googleapis.com
reason: Powers all BigQuery tasks performed by the extension
- apiName: bigqueryconnection.googleapis.com
reason: Allows the extension to create a BigQuery connection
- apiName: geocoding-backend.googleapis.com
reason: Allows the extension to get information such as latiutude and longitue from addresses
- apiName: distance-matrix-backend.googleapis.com
reason: Allows the extension to calculate driving times between two addresses
roles:
- role: bigquery.jobUser
reason: Allows the extension to create BigQuery jobs
- role: bigquery.dataOwner
reason: Allows the extension to create BigQuery routines
- role: bigquery.connectionAdmin
reason: Allows the extension to create a BigQuery connection
resources:
- name: createBigQueryConnection
type: firebaseextensions.v1beta.function
description: Creates a BigQuery connection and creates BigQuery Remote Functions using the connection.
properties:
location: ${param:LOCATION}
runtime: nodejs18
taskQueueTrigger: {}
- name: getLatLong
type: firebaseextensions.v1beta.function
description: Remote Function to retrieve latitude and longitude of a given address.
properties:
location: ${param:LOCATION}
runtime: nodejs18
httpsTrigger: {}
- name: getDrivingTime
type: firebaseextensions.v1beta.function
description: Remote Function to calculate the driving time between two addresses.
properties:
location: ${param:LOCATION}
runtime: nodejs18
httpsTrigger: {}
params:
- param: DATASET_ID
label: BigQuery Dataset ID
description: >-
The ID of the dataset where the extension will create a connection.
type: string
required: true
immutable: true
- param: MAPS_API_KEY
label: Maps API key
description: >-
The key to use for the Maps API. You can get a key from the [Google Cloud](https://console.cloud.google.com/google/maps-apis/overview).
type: secret
required: true
- param: LOCATION
label: Cloud Functions location
description: >-
Where do you want to deploy the functions created for this extension? You
usually want a location close to your database. For help selecting a
location, refer to the [location selection
guide](https://firebase.google.com/docs/functions/locations).
type: select
options:
- label: Iowa (us-central1)
value: us-central1
- label: South Carolina (us-east1)
value: us-east1
- label: Northern Virginia (us-east4)
value: us-east4
- label: Los Angeles (us-west2)
value: us-west2
- label: Salt Lake City (us-west3)
value: us-west3
- label: Las Vegas (us-west4)
value: us-west4
- label: Belgium (europe-west1)
value: europe-west1
- label: London (europe-west2)
value: europe-west2
- label: Frankfurt (europe-west3)
value: europe-west3
- label: Zurich (europe-west6)
value: europe-west6
- label: Hong Kong (asia-east2)
value: asia-east2
- label: Tokyo (asia-northeast1)
value: asia-northeast1
- label: Osaka (asia-northeast2)
value: asia-northeast2
- label: Seoul (asia-northeast3)
value: asia-northeast3
- label: Mumbai (asia-south1)
value: asia-south1
- label: Jakarta (asia-southeast2)
value: asia-southeast2
- label: Montreal (northamerica-northeast1)
value: northamerica-northeast1
- label: Sao Paulo (southamerica-east1)
value: southamerica-east1
- label: Sydney (australia-southeast1)
value: australia-southeast1
default: us-central1
required: true
immutable: true
lifecycleEvents:
onInstall:
function: createBigQueryConnection
processingMessage: 'Creating BigQuery connections'