workos 2.2.1 → 2.3.0

Sign up to get free protection for your applications and to get access to all the features.
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