-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathgoogle-workspace.sgnl.yaml
282 lines (272 loc) · 10.5 KB
/
google-workspace.sgnl.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
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
displayName: "Google Workspace"
icon: |
PHN2ZyB3aWR0aD0iNjQiIGhlaWdodD0iNjQiIHZpZXdCb3g9IjAgMCA2NCA2NCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHJlY3Qgd2lkdGg9IjY0IiBoZWlnaHQ9IjY0IiBmaWxsPSJ3aGl0ZSIvPgo8cGF0aCBkPSJNNTUuNTMzMiAyNy4yOTk2SDUzLjZWMjcuMkgzMlYzNi44SDQ1LjU2MzZDNDMuNTg0OCA0Mi4zODg0IDM4LjI2NzYgNDYuNCAzMiA0Ni40QzI0LjA0NzYgNDYuNCAxNy42IDM5Ljk1MjQgMTcuNiAzMkMxNy42IDI0LjA0NzYgMjQuMDQ3NiAxNy42IDMyIDE3LjZDMzUuNjcwOCAxNy42IDM5LjAxMDQgMTguOTg0OCA0MS41NTMyIDIxLjI0NjhMNDguMzQxNiAxNC40NTg0QzQ0LjA1NTIgMTAuNDYzNiAzOC4zMjE2IDggMzIgOEMxOC43NDYgOCA4IDE4Ljc0NiA4IDMyQzggNDUuMjU0IDE4Ljc0NiA1NiAzMiA1NkM0NS4yNTQgNTYgNTYgNDUuMjU0IDU2IDMyQzU2IDMwLjM5MDggNTUuODM0NCAyOC44MiA1NS41MzMyIDI3LjI5OTZaIiBmaWxsPSIjRkZDMTA3Ii8+CjxwYXRoIGQ9Ik0xMC43NjcyIDIwLjgyOTJMMTguNjUyNCAyNi42MTJDMjAuNzg2IDIxLjMyOTYgMjUuOTUzMiAxNy42IDMyIDE3LjZDMzUuNjcwOCAxNy42IDM5LjAxMDQgMTguOTg0OCA0MS41NTMyIDIxLjI0NjhMNDguMzQxNiAxNC40NTg0QzQ0LjA1NTIgMTAuNDYzNiAzOC4zMjE2IDggMzIgOEMyMi43ODE2IDggMTQuNzg3MiAxMy4yMDQ0IDEwLjc2NzIgMjAuODI5MloiIGZpbGw9IiNGRjNEMDAiLz4KPHBhdGggZD0iTTMyIDU2QzM4LjE5OTIgNTYgNDMuODMyIDUzLjYyNzYgNDguMDkwOCA0OS43Njk2TDQwLjY2MjggNDMuNDg0QzM4LjI1MzIgNDUuMzA5MiAzNS4yNTggNDYuNCAzMiA0Ni40QzI1Ljc1NzYgNDYuNCAyMC40NTcyIDQyLjQxOTYgMTguNDYwNCAzNi44NjQ4TDEwLjYzNCA0Mi44OTQ4QzE0LjYwNiA1MC42NjcyIDIyLjY3MjQgNTYgMzIgNTZaIiBmaWxsPSIjNENBRjUwIi8+CjxwYXRoIGQ9Ik01NS41MzMyIDI3LjI5OTZINTMuNlYyNy4ySDMyVjM2LjhINDUuNTYzNkM0NC42MTMyIDM5LjQ4NDQgNDIuODg2NCA0MS43OTkyIDQwLjY1OTIgNDMuNDg1Mkw0MC42NjI4IDQzLjQ4MjhMNDguMDkwOCA0OS43Njg0QzQ3LjU2NTIgNTAuMjQ2IDU2IDQ0IDU2IDMyQzU2IDMwLjM5MDggNTUuODM0NCAyOC44MiA1NS41MzMyIDI3LjI5OTZaIiBmaWxsPSIjMTk3NkQyIi8+Cjwvc3ZnPg==
description: "Google Workspace as a System of Record"
address: "admin.googleapis.com"
defaultSyncFrequency: HOURLY
defaultSyncMinInterval: 1
defaultApiCallFrequency: SECONDLY
defaultApiCallMinInterval: 1
type: "GoogleWorkspace-1.0.0"
# Example Config:
# {
# "apiVersion": "v1",
# "domain": "sgnldemos.com",
# "filters": {
# "user": {
# "showDeleted": true,
# "query": "isAdmin=false"
# },
# "group": {
# "query": "adminCreated=true"
# },
# "member": {
# "includeDerivedMembership": false,
# "roles": "MEMBER"
# }
# }
# }
# Adapter Config Field Info:
# [Required] apiVersion (String): The version of the Google Workspace API to use. Currently, only v1 is supported.
# DISCLAIMER: Exactly one of either 'customer' or 'domain' must be set in the adapter config.
# Read more about the 'customer' and 'domain' parameters here: https://developers.google.com/admin-sdk/directory/v1/guides
# [Required/Optional] customer (String): The unique ID for the customer's Google Workspace account. In case of a multi-domain account,
# to fetch all entities for a customer, use this field instead of domain.
# [Required/Optional] domain (String): Use this field to get entities from only one domain.
# [Optional] filters (Object): These filters can be applied to the endpoints that are used to retrieve each entity.
# For more information on the User endpoint: https://developers.google.com/admin-sdk/directory/reference/rest/v1/users/list
# [Optional] filters.user (Object): These filters can be applied to the User endpoint.
# [Optional] filters.user.showDeleted (Bool): If set to true, retrieves the list of deleted users. (Default: false)
# [Optional] filters.user.query (String): Query is a string for searching entity fields.
# For more information on constructing user queries: https://developers.google.com/admin-sdk/directory/v1/guides/search-users
# For more information on the Group endpoint: https://developers.google.com/admin-sdk/directory/reference/rest/v1/groups/list
# [Optional] filters.group (Object): These filters can be applied to the Group endpoint.
# [Optional] filters.group.query (String): Query is a string for searching entity fields.
# For more information on constructing group queries: https://developers.google.com/admin-sdk/directory/v1/guides/search-groups
# For more information on the member endpoint: https://developers.google.com/admin-sdk/directory/reference/rest/v1/members/list
# [Optional] filters.member (Object): These filters can be applied to the Member endpoint.
# [Optional] filters.member.includeDerivedMembership (Bool): If set to true, includes lists of indirect memberships. (Default: false)
# [Optional] filters.member.roles (String): The roles query parameter allows you to retrieve group members by role.
# Roles is an ENUM with possible values of ["MEMBER", "MANAGER", "OWNER"]
adapterConfig: ewogICJhcGlWZXJzaW9uIjogInYxIiwKICAiZG9tYWluIjogInt7SW5wdXQgUmVxdWlyZWR9fSIsCiAgImZpbHRlcnMiOiB7CiAgICAidXNlciI6IHsKICAgICAgInNob3dEZWxldGVkIjogZmFsc2UsCiAgICAgICJxdWVyeSI6ICJ7e0lucHV0IE9wdGlvbmFsfX0iCiAgICB9LAogICAgImdyb3VwIjogewogICAgICAicXVlcnkiOiAie3tJbnB1dCBPcHRpb25hbH19IgogICAgfSwKICAgICJtZW1iZXIiOiB7CiAgICAgICJpbmNsdWRlRGVyaXZlZE1lbWJlcnNoaXAiOiBmYWxzZSwKICAgICAgInJvbGVzIjogInt7SW5wdXQgT3B0aW9uYWx9fSIKICAgIH0KICB9Cn0=
auth:
- bearer:
authToken: "Bearer {{Input Required}}" # Access token
entities:
# https://developers.google.com/admin-sdk/directory/reference/rest/v1/users#User
User:
displayName: User
externalId: User
description: Entity representing a Google Workspace User
pageSize: 100
pagesOrderedById: false
attributes:
- name: primaryEmail
externalId: primaryEmail
type: String
indexed: true
uniqueId: true
- name: id
externalId: id
type: String
indexed: true
attributeAlias: userId
- name: kind
externalId: kind
type: String
- name: etag
externalId: etag
type: String
- name: givenName
externalId: $.name.givenName
type: String
- name: familyName
externalId: $.name.familyName
type: String
- name: fullName
externalId: $.name.fullName
type: String
- name: isAdmin
externalId: isAdmin
type: Bool
- name: isDelegatedAdmin
externalId: isDelegatedAdmin
type: Bool
- name: lastLoginTime
externalId: lastLoginTime
type: DateTime
indexed: true
- name: creationTime
externalId: creationTime
type: DateTime
- name: agreedToTerms
externalId: agreedToTerms
type: Bool
- name: suspended
externalId: suspended
type: Bool
indexed: true
- name: archived
externalId: archived
type: Bool
- name: changePasswordAtNextLogin
externalId: changePasswordAtNextLogin
type: Bool
- name: ipWhitelisted
externalId: ipWhitelisted
type: Bool
- name: nonEditableAliases
externalId: nonEditableAliases
type: String
list: true
- name: customerId
externalId: customerId
type: String
indexed: true
- name: orgUnitPath
externalId: orgUnitPath
type: String
- name: isMailboxSetup
externalId: isMailboxSetup
type: Bool
- name: isEnrolledIn2Sv
externalId: isEnrolledIn2Sv
type: Bool
- name: isEnforcedIn2Sv
externalId: isEnforcedIn2Sv
type: Bool
- name: includeInGlobalAddressList
externalId: includeInGlobalAddressList
type: Bool
- name: recoveryEmail
externalId: recoveryEmail
type: String
UserEmail:
parent: User
displayName: UserEmail
externalId: emails
description: Entity representing an email object for a Google Workspace User
pageSize: 100
pagesOrderedById: false
attributes:
- name: address
externalId: address
type: String
indexed: true
uniqueId: true
- name: type
externalId: type
type: String
- name: primary
externalId: primary
type: Bool
# https://developers.google.com/admin-sdk/directory/reference/rest/v1/groups#Group
Group:
displayName: Group
externalId: Group
description: Entity representing a Google Workspace Group
pageSize: 100
pagesOrderedById: false
attributes:
- name: email
externalId: email
type: String
indexed: true
uniqueId: true
- name: id
externalId: id
type: String
indexed: true
attributeAlias: groupId
- name: kind
externalId: kind
type: String
- name: etag
externalId: etag
type: String
- name: name
externalId: name
type: String
indexed: true
- name: directMembersCount
externalId: directMembersCount
type: String
- name: adminCreated
externalId: adminCreated
type: Bool
- name: nonEditableAliases
externalId: nonEditableAliases
type: String
list: true
# https://developers.google.com/admin-sdk/directory/reference/rest/v1/members#Member
# In Google Workspace, a member can be a user (GroupMember) or a group (SubGroup).
Member:
displayName: Member
externalId: Member
description: Entity representing a Google Workspace Member
pageSize: 100
pagesOrderedById: false
attributes:
- name: id
externalId: uniqueId
type: String
indexed: true
uniqueId: true
- name: memberId
externalId: id
type: String
indexed: true
attributeAlias: memberId
- name: groupId
externalId: groupId
type: String
indexed: true
attributeAlias: memberGroupId
- name: kind
externalId: kind
type: String
- name: etag
externalId: etag
type: String
- name: memberEmail
externalId: email
type: String
indexed: true
- name: role
externalId: role
type: String
- name: type
externalId: type
type: String
- name: status
externalId: status
type: String
relationships:
UserToMember:
name: UserMember
fromAttribute: userId
toAttribute: memberId
GroupToMember:
name: GroupMember
fromAttribute: groupId
toAttribute: memberId
MemberToGroup:
name: MemberGroup
fromAttribute: memberGroupId
toAttribute: groupId
UserGroupMember:
name: UserGroupMember
displayName: UserGroupMember
path:
- relationship: UserToMember
direction: Forward
- relationship: MemberToGroup
direction: Forward
SubGroupMember:
name: SubGroupMember
displayName: SubGroupMember
path:
- relationship: GroupToMember
direction: Forward
- relationship: MemberToGroup
direction: Forward