workos 2.2.1 → 2.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (29) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +2 -2
  3. data/lib/workos/audit_trail.rb +1 -0
  4. data/lib/workos/challenge.rb +1 -1
  5. data/lib/workos/directory_group.rb +18 -1
  6. data/lib/workos/directory_sync.rb +3 -0
  7. data/lib/workos/directory_user.rb +5 -0
  8. data/lib/workos/factor.rb +1 -6
  9. data/lib/workos/organizations.rb +1 -0
  10. data/lib/workos/sso.rb +1 -0
  11. data/lib/workos/types/challenge_struct.rb +1 -1
  12. data/lib/workos/types/directory_group_struct.rb +5 -0
  13. data/lib/workos/types/factor_struct.rb +0 -1
  14. data/lib/workos/version.rb +1 -1
  15. data/spec/lib/workos/directory_sync_spec.rb +23 -19
  16. data/spec/lib/workos/directory_user_spec.rb +36 -0
  17. data/spec/support/fixtures/vcr_cassettes/directory_sync/get_group.yml +48 -28
  18. data/spec/support/fixtures/vcr_cassettes/directory_sync/list_groups/with_after.yml +46 -32
  19. data/spec/support/fixtures/vcr_cassettes/directory_sync/list_groups/with_before.yml +47 -31
  20. data/spec/support/fixtures/vcr_cassettes/directory_sync/list_groups/with_directory.yml +46 -34
  21. data/spec/support/fixtures/vcr_cassettes/directory_sync/list_groups/with_limit.yml +41 -31
  22. data/spec/support/fixtures/vcr_cassettes/directory_sync/list_groups/with_no_options.yml +36 -26
  23. data/spec/support/fixtures/vcr_cassettes/directory_sync/list_groups/with_user.yml +38 -28
  24. data/spec/support/fixtures/vcr_cassettes/mfa/challenge_factor_totp_valid.yml +1 -1
  25. data/spec/support/fixtures/vcr_cassettes/mfa/enroll_factor_generic_valid.yml +1 -1
  26. data/spec/support/fixtures/vcr_cassettes/mfa/enroll_factor_sms_valid.yml +1 -1
  27. data/spec/support/fixtures/vcr_cassettes/mfa/enroll_factor_totp_valid.yml +1 -1
  28. data/spec/support/fixtures/vcr_cassettes/mfa/get_factor_valid.yml +1 -1
  29. metadata +5 -3
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 286a2f14af16bfc7b9c77e7938c2b8d7366f4a03f9fca4c7892f85f60562e433
4
- data.tar.gz: 8970807084e7022beb9bb1523c270e645c340e42e452d7f0d7ea0d64958cf1ea
3
+ metadata.gz: f7abb4f1d075ea976bbc8577247d36ff763a21dd1b18335daac39a8c80d6acea
4
+ data.tar.gz: 4c8e6326e7b80773a292754a7030033773470dc12228571cad8b0198a3c8342b
5
5
  SHA512:
6
- metadata.gz: e4d3af795ee51a5cb807fda2bdffc2217e0150ec2f4ffe51fb86daab6e376ecd240f03f1b204db2a72265ebc61d5a9c227a13924a262bb6cf7011ce9c87df177
7
- data.tar.gz: a8977f9bff244978c9c1935e46a411e4e564a86ed51d7523780feab31212857771813190c523f64d5640f13b393ba5f5a3df3ced5729a7ad34df0cdfa3b6014e
6
+ metadata.gz: 7d4c51f21848cb44e0f0326deab050040989811f829b4bbf1c317aca9d08e113c47bd4dbd822faac3f195d8695204fd3acb9a797638a0d9c4f951100964a53e7
7
+ data.tar.gz: 2b25fd19c5008c27d03a9ab73f6dcb02ba2cd7f133d0726ce46ccadb4928e2805dca1f63dbefd9552ea7ee8ea9acf122a7641dabf48e5199f4f607dcb8754c46
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- workos (2.2.1)
4
+ workos (2.3.0)
5
5
  sorbet-runtime (~> 0.5)
6
6
 
7
7
  GEM
@@ -60,7 +60,7 @@ GEM
60
60
  simplecov_json_formatter (0.1.2)
61
61
  sorbet (0.5.6388)
62
62
  sorbet-static (= 0.5.6388)
63
- sorbet-runtime (0.5.9944)
63
+ sorbet-runtime (0.5.10090)
64
64
  sorbet-static (0.5.6388-universal-darwin-14)
65
65
  sorbet-static (0.5.6388-universal-darwin-15)
66
66
  sorbet-static (0.5.6388-universal-darwin-16)
@@ -65,6 +65,7 @@ module WorkOS
65
65
  # @option options [String] before Event ID to look before
66
66
  # @option options [String] after Event ID to look after
67
67
  # @option options [Integer] limit Number of Events to return
68
+ # @option options [String] order The order in which to paginate records
68
69
  # @option options [Array<String>] group List of Groups to filter for
69
70
  # @option options [Array<String>] action List of Actions to filter for
70
71
  # @option options [Array<String>] action_type List of Action Types to
@@ -16,7 +16,7 @@ module WorkOS
16
16
  raw = parse_json(json)
17
17
  @id = T.let(raw.id, String)
18
18
  @object = T.let(raw.object, String)
19
- @expires_at = raw.expires_at
19
+ @expires_at = T.let(raw.expires_at, String)
20
20
  @code = raw.code
21
21
  @authentication_factor_id = T.let(raw.authentication_factor_id, String)
22
22
  @created_at = T.let(raw.created_at, String)
@@ -9,22 +9,34 @@ module WorkOS
9
9
  include HashProvider
10
10
  extend T::Sig
11
11
 
12
- attr_accessor :id, :name, :custom_attributes, :raw_attributes
12
+ attr_accessor :id, :directory_id, :idp_id, :name, :created_at, :updated_at, :raw_attributes
13
13
 
14
+ # rubocop:disable Metrics/AbcSize
14
15
  sig { params(json: String).void }
15
16
  def initialize(json)
16
17
  raw = parse_json(json)
17
18
 
18
19
  @id = T.let(raw.id, String)
20
+ @directory_id = T.let(raw.directory_id, String)
21
+ @idp_id = T.let(raw.idp_id, String)
19
22
  @name = T.let(raw.name, String)
23
+ @created_at = T.let(raw.created_at, String)
24
+ @updated_at = T.let(raw.updated_at, String)
25
+ @raw_attributes = raw.raw_attributes
20
26
 
21
27
  replace_without_warning(to_json)
22
28
  end
29
+ # rubocop:enable Metrics/AbcSize
23
30
 
24
31
  def to_json(*)
25
32
  {
26
33
  id: id,
34
+ directory_id: directory_id,
35
+ idp_id: idp_id,
27
36
  name: name,
37
+ created_at: created_at,
38
+ updated_at: updated_at,
39
+ raw_attributes: raw_attributes,
28
40
  }
29
41
  end
30
42
 
@@ -40,7 +52,12 @@ module WorkOS
40
52
 
41
53
  WorkOS::Types::DirectoryGroupStruct.new(
42
54
  id: hash[:id],
55
+ directory_id: hash[:directory_id],
56
+ idp_id: hash[:idp_id],
43
57
  name: hash[:name],
58
+ created_at: hash[:created_at],
59
+ updated_at: hash[:updated_at],
60
+ raw_attributes: hash[:raw_attributes],
44
61
  )
45
62
  end
46
63
  end
@@ -22,6 +22,7 @@ module WorkOS
22
22
  # retrieved.
23
23
  # @option options [String] search A search term for direcory names.
24
24
  # @option options [String] limit Maximum number of records to return.
25
+ # @option options [String] order The order in which to paginate records
25
26
  # @option options [String] before Pagination cursor to receive records
26
27
  # before a provided Directory ID.
27
28
  # @option options [String] after Pagination cursor to receive records
@@ -91,6 +92,7 @@ module WorkOS
91
92
  # @option options [String] user The ID of the directory user whose
92
93
  # directory groups will be retrieved.
93
94
  # @option options [String] limit Maximum number of records to return.
95
+ # @option options [String] order The order in which to paginate records
94
96
  # @option options [String] before Pagination cursor to receive records
95
97
  # before a provided Directory Group ID.
96
98
  # @option options [String] after Pagination cursor to receive records
@@ -130,6 +132,7 @@ module WorkOS
130
132
  # @option options [String] user The ID of the directory group whose
131
133
  # directory users will be retrieved.
132
134
  # @option options [String] limit Maximum number of records to return.
135
+ # @option options [String] order The order in which to paginate records
133
136
  # @option options [String] before Pagination cursor to receive records
134
137
  # before a provided Directory User ID.
135
138
  # @option options [String] after Pagination cursor to receive records
@@ -47,6 +47,11 @@ module WorkOS
47
47
  }
48
48
  end
49
49
 
50
+ def primary_email
51
+ primary_email = (emails || []).find { |email| email[:primary] }
52
+ return primary_email[:value] if primary_email
53
+ end
54
+
50
55
  private
51
56
 
52
57
  sig do
data/lib/workos/factor.rb CHANGED
@@ -7,15 +7,13 @@ module WorkOS
7
7
  # in DirectoryUser space, and is instantiated internally but exposed.
8
8
  class Factor
9
9
  include HashProvider
10
- # rubocop:disable Metrics/AbcSize
11
10
  extend T::Sig
12
- attr_accessor :id, :environment_id, :object, :type, :sms, :totp, :updated_at, :created_at
11
+ attr_accessor :id, :object, :type, :sms, :totp, :updated_at, :created_at
13
12
 
14
13
  sig { params(json: String).void }
15
14
  def initialize(json)
16
15
  raw = parse_json(json)
17
16
  @id = T.let(raw.id, String)
18
- @environment_id = T.let(raw.environment_id, String)
19
17
  @object = T.let(raw.object, String)
20
18
  @type = T.let(raw.type, String)
21
19
  @created_at = T.let(raw.created_at, String)
@@ -27,7 +25,6 @@ module WorkOS
27
25
  def to_json(*)
28
26
  {
29
27
  id: id,
30
- environment_id: environment_id,
31
28
  object: object,
32
29
  type: type,
33
30
  totp: totp,
@@ -45,7 +42,6 @@ module WorkOS
45
42
 
46
43
  WorkOS::Types::FactorStruct.new(
47
44
  id: hash[:id],
48
- environment_id: hash[:environment_id],
49
45
  object: hash[:object],
50
46
  type: hash[:type],
51
47
  totp: hash[:totp],
@@ -54,6 +50,5 @@ module WorkOS
54
50
  updated_at: hash[:updated_at],
55
51
  )
56
52
  end
57
- # rubocop:enable Metrics/AbcSize
58
53
  end
59
54
  end
@@ -21,6 +21,7 @@ module WorkOS
21
21
  # @param [String] after A pagination argument used to request
22
22
  # organizations after the provided Organization ID.
23
23
  # @param [Integer] limit A pagination argument used to limit the number
24
+ # @param [String] order The order in which to paginate records
24
25
  # of listed Organizations that are returned.
25
26
  sig do
26
27
  params(
data/lib/workos/sso.rb CHANGED
@@ -163,6 +163,7 @@ module WorkOS
163
163
  # @option options [String] organization_id The id of the organization
164
164
  # of the connections to be retrieved.
165
165
  # @option options [String] limit Maximum number of records to return.
166
+ # @option options [String] order The order in which to paginate records
166
167
  # @option options [String] before Pagination cursor to receive records
167
168
  # before a provided Connection ID.
168
169
  # @option options [String] after Pagination cursor to receive records
@@ -8,7 +8,7 @@ module WorkOS
8
8
  class ChallengeStruct < T::Struct
9
9
  const :id, String
10
10
  const :object, String
11
- const :expires_at, T.nilable(String)
11
+ const :expires_at, String
12
12
  const :code, T.nilable(String)
13
13
  const :authentication_factor_id, String
14
14
  const :created_at, String
@@ -7,7 +7,12 @@ module WorkOS
7
7
  # for the DirectoryGroup class
8
8
  class DirectoryGroupStruct < T::Struct
9
9
  const :id, String
10
+ const :directory_id, String
11
+ const :idp_id, String
10
12
  const :name, String
13
+ const :created_at, String
14
+ const :updated_at, String
15
+ const :raw_attributes, T::Hash[Symbol, Object]
11
16
  end
12
17
  end
13
18
  end
@@ -7,7 +7,6 @@ module WorkOS
7
7
  # for the Factor class
8
8
  class FactorStruct < T::Struct
9
9
  const :id, String
10
- const :environment_id, String
11
10
  const :object, String
12
11
  const :type, String
13
12
  const :totp, T.nilable(T::Hash[Symbol, Object])
@@ -2,5 +2,5 @@
2
2
  # typed: strong
3
3
 
4
4
  module WorkOS
5
- VERSION = '2.2.1'
5
+ VERSION = '2.3.0'
6
6
  end
@@ -189,7 +189,7 @@ describe WorkOS::DirectorySync do
189
189
  context 'with directory option' do
190
190
  it 'forms the proper request to the API' do
191
191
  request_args = [
192
- '/directory_groups?directory=directory_01EK2YEMVTWGX27STRDR0N3MP9',
192
+ '/directory_groups?directory=directory_01G2Z8ADK5NPMVTWF48MVVE4HT',
193
193
  'Content-Type' => 'application/json'
194
194
  ]
195
195
 
@@ -200,7 +200,7 @@ describe WorkOS::DirectorySync do
200
200
 
201
201
  VCR.use_cassette 'directory_sync/list_groups/with_directory' do
202
202
  groups = described_class.list_groups(
203
- directory: 'directory_01EK2YEMVTWGX27STRDR0N3MP9',
203
+ directory: 'directory_01G2Z8ADK5NPMVTWF48MVVE4HT',
204
204
  )
205
205
 
206
206
  expect(groups.data.size).to eq(10)
@@ -212,7 +212,7 @@ describe WorkOS::DirectorySync do
212
212
  context 'with user option' do
213
213
  it 'forms the proper request to the API' do
214
214
  request_args = [
215
- '/directory_groups?user=directory_user_01EK2YFBC3R10MPB4W49G5QDXG',
215
+ '/directory_groups?user=directory_user_01G2Z8D4FDB28ZNSRRBVCF2E0P',
216
216
  'Content-Type' => 'application/json'
217
217
  ]
218
218
 
@@ -223,7 +223,7 @@ describe WorkOS::DirectorySync do
223
223
 
224
224
  VCR.use_cassette 'directory_sync/list_groups/with_user' do
225
225
  groups = described_class.list_groups(
226
- user: 'directory_user_01EK2YFBC3R10MPB4W49G5QDXG',
226
+ user: 'directory_user_01G2Z8D4FDB28ZNSRRBVCF2E0P',
227
227
  )
228
228
 
229
229
  expect(groups.data.size).to eq(3)
@@ -234,8 +234,8 @@ describe WorkOS::DirectorySync do
234
234
  context 'with the before option' do
235
235
  it 'forms the proper request to the API' do
236
236
  request_args = [
237
- '/directory_groups?before=before-id&' \
238
- 'directory=directory_01EK2YEMVTWGX27STRDR0N3MP9',
237
+ '/directory_groups?before=directory_group_01G2Z8D4ZR8RJ03Y1W7P9K8NMG&' \
238
+ 'directory=directory_01G2Z8ADK5NPMVTWF48MVVE4HT',
239
239
  'Content-Type' => 'application/json'
240
240
  ]
241
241
 
@@ -246,11 +246,11 @@ describe WorkOS::DirectorySync do
246
246
 
247
247
  VCR.use_cassette 'directory_sync/list_groups/with_before' do
248
248
  groups = described_class.list_groups(
249
- before: 'before-id',
250
- directory: 'directory_01EK2YEMVTWGX27STRDR0N3MP9',
249
+ before: 'directory_group_01G2Z8D4ZR8RJ03Y1W7P9K8NMG',
250
+ directory: 'directory_01G2Z8ADK5NPMVTWF48MVVE4HT',
251
251
  )
252
252
 
253
- expect(groups.data.size).to eq(2)
253
+ expect(groups.data.size).to eq(10)
254
254
  end
255
255
  end
256
256
  end
@@ -258,8 +258,8 @@ describe WorkOS::DirectorySync do
258
258
  context 'with the after option' do
259
259
  it 'forms the proper request to the API' do
260
260
  request_args = [
261
- '/directory_groups?after=after-id&' \
262
- 'directory=directory_01EK2YEMVTWGX27STRDR0N3MP9',
261
+ '/directory_groups?after=directory_group_01G2Z8D4ZR8RJ03Y1W7P9K8NMG&' \
262
+ 'directory=directory_01G2Z8ADK5NPMVTWF48MVVE4HT',
263
263
  'Content-Type' => 'application/json'
264
264
  ]
265
265
 
@@ -270,11 +270,11 @@ describe WorkOS::DirectorySync do
270
270
 
271
271
  VCR.use_cassette 'directory_sync/list_groups/with_after' do
272
272
  groups = described_class.list_groups(
273
- after: 'after-id',
274
- directory: 'directory_01EK2YEMVTWGX27STRDR0N3MP9',
273
+ after: 'directory_group_01G2Z8D4ZR8RJ03Y1W7P9K8NMG',
274
+ directory: 'directory_01G2Z8ADK5NPMVTWF48MVVE4HT',
275
275
  )
276
276
 
277
- expect(groups.data.size).to eq(10)
277
+ expect(groups.data.size).to eq(9)
278
278
  end
279
279
  end
280
280
  end
@@ -283,7 +283,7 @@ describe WorkOS::DirectorySync do
283
283
  it 'forms the proper request to the API' do
284
284
  request_args = [
285
285
  '/directory_groups?limit=2&' \
286
- 'directory=directory_01EK2YEMVTWGX27STRDR0N3MP9',
286
+ 'directory=directory_01G2Z8ADK5NPMVTWF48MVVE4HT',
287
287
  'Content-Type' => 'application/json'
288
288
  ]
289
289
 
@@ -295,7 +295,7 @@ describe WorkOS::DirectorySync do
295
295
  VCR.use_cassette 'directory_sync/list_groups/with_limit' do
296
296
  groups = described_class.list_groups(
297
297
  limit: 2,
298
- directory: 'directory_01EK2YEMVTWGX27STRDR0N3MP9',
298
+ directory: 'directory_01G2Z8ADK5NPMVTWF48MVVE4HT',
299
299
  )
300
300
 
301
301
  expect(groups.data.size).to eq(2)
@@ -438,11 +438,15 @@ describe WorkOS::DirectorySync do
438
438
  it 'returns a group' do
439
439
  VCR.use_cassette('directory_sync/get_group') do
440
440
  group = WorkOS::DirectorySync.get_group(
441
- 'directory_grp_01E64QTDNS0EGJ0FMCVY9BWGZT',
441
+ 'directory_group_01G2Z8D4ZR8RJ03Y1W7P9K8NMG',
442
442
  )
443
443
 
444
- expect(group['name']).to eq('Walrus')
445
- expect(group.name).to eq('Walrus')
444
+ expect(group['directory_id']).to eq('directory_01G2Z8ADK5NPMVTWF48MVVE4HT')
445
+ expect(group['idp_id']).to eq('01jlao4614two3d')
446
+ expect(group['name']).to eq('Sales')
447
+ expect(group.name).to eq('Sales')
448
+ expect(group['created_at']).to eq('2022-05-13T17:45:31.732Z')
449
+ expect(group['updated_at']).to eq('2022-06-07T17:45:35.739Z')
446
450
  end
447
451
  end
448
452
  end
@@ -0,0 +1,36 @@
1
+ # frozen_string_literal: true
2
+ # typed: false
3
+
4
+ describe WorkOS::DirectoryUser do
5
+ # rubocop:disable Layout/LineLength
6
+ describe '.get_primary_email' do
7
+ context 'with one primary email' do
8
+ it 'returns the primary email' do
9
+ user = WorkOS::DirectoryUser.new('{"object":"directory_user","id":"directory_user_01FAZYNPC8M0HRYTKFP2GNX852","directory_id":"directory_01FAZYMST676QMTFN1DDJZZX87","idp_id":"6092c280a3f1e19ef6d8cef8","username":"logan@workos.com","emails":[{"primary":true,"value":"logan@workos.com"}, {"primary":false,"value":"logan@gmail.com"}],"first_name":"Logan","last_name":"Gingerich","state":"active","raw_attributes":{},"custom_attributes":{},"groups":[]}')
10
+ expect(user.primary_email).to eq('logan@workos.com')
11
+ end
12
+ end
13
+
14
+ context 'with multiple primary emails' do
15
+ it 'returns the first email marked as primary' do
16
+ user = WorkOS::DirectoryUser.new('{"object":"directory_user","id":"directory_user_01FAZYNPC8M0HRYTKFP2GNX852","directory_id":"directory_01FAZYMST676QMTFN1DDJZZX87","idp_id":"6092c280a3f1e19ef6d8cef8","username":"logan@workos.com","emails":[{"primary":true,"value":"logan@workos.com"}, {"primary":true,"value":"logan@gmail.com"}],"first_name":"Logan","last_name":"Gingerich","state":"active","raw_attributes":{},"custom_attributes":{},"groups":[]}')
17
+ expect(user.primary_email).to eq('logan@workos.com')
18
+ end
19
+ end
20
+
21
+ context 'with no primary emails' do
22
+ it 'returns nil' do
23
+ user = WorkOS::DirectoryUser.new('{"object":"directory_user","id":"directory_user_01FAZYNPC8M0HRYTKFP2GNX852","directory_id":"directory_01FAZYMST676QMTFN1DDJZZX87","idp_id":"6092c280a3f1e19ef6d8cef8","username":"logan@workos.com","emails":[{"primary":false,"value":"logan@gmail.com"}],"first_name":"Logan","last_name":"Gingerich","state":"active","raw_attributes":{},"custom_attributes":{},"groups":[]}')
24
+ expect(user.primary_email).to eq(nil)
25
+ end
26
+ end
27
+
28
+ context 'with an empty email array' do
29
+ it 'returns nil' do
30
+ user = WorkOS::DirectoryUser.new('{"object":"directory_user","id":"directory_user_01FAZYNPC8M0HRYTKFP2GNX852","directory_id":"directory_01FAZYMST676QMTFN1DDJZZX87","idp_id":"6092c280a3f1e19ef6d8cef8","username":"logan@workos.com","emails":[],"first_name":"Logan","last_name":"Gingerich","state":"active","raw_attributes":{},"custom_attributes":{},"groups":[]}')
31
+ expect(user.primary_email).to eq(nil)
32
+ end
33
+ end
34
+ end
35
+ # rubocop:enable Layout/LineLength
36
+ end
@@ -2,7 +2,7 @@
2
2
  http_interactions:
3
3
  - request:
4
4
  method: get
5
- uri: https://api.workos.com/directory_groups/directory_grp_01E64QTDNS0EGJ0FMCVY9BWGZT
5
+ uri: https://api.workos.com/directory_groups/directory_group_01G2Z8D4ZR8RJ03Y1W7P9K8NMG
6
6
  body:
7
7
  encoding: US-ASCII
8
8
  string: ''
@@ -14,7 +14,7 @@ http_interactions:
14
14
  Accept:
15
15
  - "*/*"
16
16
  User-Agent:
17
- - WorkOS; ruby/2.7.1; x86_64-darwin19; v0.2.3
17
+ - WorkOS; ruby/3.0.2; x86_64-darwin19; v2.1.1
18
18
  Authorization:
19
19
  - Bearer <API_KEY>
20
20
  response:
@@ -22,41 +22,61 @@ http_interactions:
22
22
  code: 200
23
23
  message: OK
24
24
  headers:
25
- Server:
26
- - Cowboy
25
+ Date:
26
+ - Tue, 07 Jun 2022 22:28:37 GMT
27
+ Content-Type:
28
+ - application/json; charset=utf-8
29
+ Transfer-Encoding:
30
+ - chunked
27
31
  Connection:
28
32
  - keep-alive
29
- Vary:
30
- - Origin, Accept-Encoding
31
33
  Access-Control-Allow-Credentials:
32
34
  - 'true'
33
- X-Dns-Prefetch-Control:
34
- - 'off'
35
- X-Frame-Options:
36
- - SAMEORIGIN
35
+ Content-Security-Policy:
36
+ - 'default-src ''self'';base-uri ''self'';block-all-mixed-content;font-src ''self''
37
+ https: data:;frame-ancestors ''self'';img-src ''self'' data:;object-src ''none'';script-src
38
+ ''self'';script-src-attr ''none'';style-src ''self'' https: ''unsafe-inline'';upgrade-insecure-requests'
39
+ Etag:
40
+ - W/"244-4TugYfq6OLpdb2GYu9NN0Z83S0g"
41
+ Expect-Ct:
42
+ - max-age=0
43
+ Referrer-Policy:
44
+ - no-referrer
37
45
  Strict-Transport-Security:
38
46
  - max-age=15552000; includeSubDomains
39
- X-Download-Options:
40
- - noopen
47
+ Vary:
48
+ - Origin, Accept-Encoding
49
+ Via:
50
+ - 1.1 spaces-router (664a92218d61)
41
51
  X-Content-Type-Options:
42
52
  - nosniff
43
- X-Xss-Protection:
44
- - 1; mode=block
53
+ X-Dns-Prefetch-Control:
54
+ - 'off'
55
+ X-Download-Options:
56
+ - noopen
57
+ X-Frame-Options:
58
+ - SAMEORIGIN
59
+ X-Permitted-Cross-Domain-Policies:
60
+ - none
45
61
  X-Request-Id:
46
- - 4fb94ab3-ecff-4cea-b0b7-d4d1b3ffad3a
47
- Content-Type:
48
- - application/json; charset=utf-8
49
- Content-Length:
50
- - '65'
51
- Etag:
52
- - W/"41-QrnAKhorJuUwAsR1OyMpfB8q1Kc"
53
- Date:
54
- - Thu, 30 Apr 2020 04:47:49 GMT
55
- Via:
56
- - 1.1 vegur
62
+ - 4a7bfd77-da6c-b1ae-bc39-35a1c175ecf2
63
+ X-Xss-Protection:
64
+ - '0'
65
+ Cf-Cache-Status:
66
+ - DYNAMIC
67
+ Report-To:
68
+ - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v3?s=9nQ%2FpfKZE%2BT1W4WrbQGusRS%2FxZHEG7sB0Ps3PUXt4lmPSmC%2FZHLV6KW90D74Y9VQ0QT7q3OIF47yVIwX5fwPKOHMwcOYQv0eyKUrFYxKkNf6QALpJE7%2BVNSUBiEmv3cZ1zOXUFCiuMl2MYygsw%3D%3D"}],"group":"cf-nel","max_age":604800}'
69
+ Nel:
70
+ - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}'
71
+ Server:
72
+ - cloudflare
73
+ Cf-Ray:
74
+ - 717cd26458fd671d-DFW
75
+ Alt-Svc:
76
+ - h3=":443"; ma=86400, h3-29=":443"; ma=86400
57
77
  body:
58
- encoding: UTF-8
59
- string: '{"id":"directory_grp_01E64QTDNS0EGJ0FMCVY9BWGZT","name":"Walrus"}'
78
+ encoding: ASCII-8BIT
79
+ string: '{"object":"directory_group","id":"directory_group_01G2Z8D4ZR8RJ03Y1W7P9K8NMG","idp_id":"01jlao4614two3d","directory_id":"directory_01G2Z8ADK5NPMVTWF48MVVE4HT","name":"Sales","created_at":"2022-05-13T17:45:31.732Z","updated_at":"2022-06-07T17:45:35.739Z","raw_attributes":{"id":"01jlao4614two3d","etag":"\"DaDAXuEwpvygu_Ul-89tlT4iVJBEvO3LZpQ0lrbYRrc/uLYJ0Hrx1gXXVg9z-zGLBZET2Wo\"","kind":"admin#directory#group","name":"Sales","email":"sales@foo-corp.com","description":"","adminCreated":true,"directMembersCount":"1","nonEditableAliases":["sales@foo-corp.com.test-google-a.com"]}}'
60
80
  http_version:
61
- recorded_at: Thu, 30 Apr 2020 04:47:49 GMT
81
+ recorded_at: Tue, 07 Jun 2022 22:28:37 GMT
62
82
  recorded_with: VCR 5.0.0