strongdm 3.14.0 → 3.14.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8ee97b35ed860436b1247e10befd5d6d5afafe1c99027723c3958ae419edc3ea
4
- data.tar.gz: dc6f136185dcc34d3af06981fec3fdf075cd9698caae83c09e85a7e06cd4d828
3
+ metadata.gz: fe1eb3c3aa22616dac5338ef8f34e056a4c2e6aea87a0bf539a10826a7cd94b5
4
+ data.tar.gz: deaa92e64ec8bdc16f3f5ccc48c0722a65a9d7f0b7bb68bc1438c43e997e82a7
5
5
  SHA512:
6
- metadata.gz: 55f50cc570d236b85aec187417d342ad060e4242ce7241dd668fd99f5cbd9eacbbb53e3cc638923995f61109819c6f19a93877d80ab68b9e220b1b4a89b6b464
7
- data.tar.gz: 41081651f26734e92cfa6981da629904ac9a02e3d51673026c4dcc808169fdb615d545cd7b08e3395c707a50cc8f89a6cfaa397739b7fbd801656014dbd995d0
6
+ metadata.gz: edc9487ce2c96b315e2d567fde08a65624996446e76e71a80a4f1c02a22a039b2c95da5803b6ff986df72f4b6bfd3f83eae4cd18d3147f430c19c09d0599462a
7
+ data.tar.gz: fe7875d383db94f5f5536a9835dab38c4b1dc2db7b10f7b936b2a27e069c362169b2236368836dfdfa2a06c1eef241548fa7ce55c4abb550cbe9e06819f4f797
data/.git/ORIG_HEAD CHANGED
@@ -1 +1 @@
1
- 9010771bf3315cb08f6421f7fd8290741d029f79
1
+ 8192d0d63f6b0357b343ee32a9e436bcaad28ebe
data/.git/index CHANGED
Binary file
data/.git/logs/HEAD CHANGED
@@ -1,3 +1,3 @@
1
- 0000000000000000000000000000000000000000 9010771bf3315cb08f6421f7fd8290741d029f79 root <root@364a6e61d4e6.(none)> 1683054420 +0000 clone: from github.com:strongdm/strongdm-sdk-ruby.git
2
- 9010771bf3315cb08f6421f7fd8290741d029f79 9010771bf3315cb08f6421f7fd8290741d029f79 root <root@364a6e61d4e6.(none)> 1683054420 +0000 checkout: moving from master to master
3
- 9010771bf3315cb08f6421f7fd8290741d029f79 8192d0d63f6b0357b343ee32a9e436bcaad28ebe root <root@364a6e61d4e6.(none)> 1683054420 +0000 merge origin/development: Fast-forward
1
+ 0000000000000000000000000000000000000000 8192d0d63f6b0357b343ee32a9e436bcaad28ebe root <root@bff24e1ba370.(none)> 1683929108 +0000 clone: from github.com:strongdm/strongdm-sdk-ruby.git
2
+ 8192d0d63f6b0357b343ee32a9e436bcaad28ebe 8192d0d63f6b0357b343ee32a9e436bcaad28ebe root <root@bff24e1ba370.(none)> 1683929108 +0000 checkout: moving from master to master
3
+ 8192d0d63f6b0357b343ee32a9e436bcaad28ebe 6cd69f8e98657b0aa1c55786add9519085361ef2 root <root@bff24e1ba370.(none)> 1683929108 +0000 merge origin/development: Fast-forward
@@ -1,2 +1,2 @@
1
- 0000000000000000000000000000000000000000 9010771bf3315cb08f6421f7fd8290741d029f79 root <root@364a6e61d4e6.(none)> 1683054420 +0000 clone: from github.com:strongdm/strongdm-sdk-ruby.git
2
- 9010771bf3315cb08f6421f7fd8290741d029f79 8192d0d63f6b0357b343ee32a9e436bcaad28ebe root <root@364a6e61d4e6.(none)> 1683054420 +0000 merge origin/development: Fast-forward
1
+ 0000000000000000000000000000000000000000 8192d0d63f6b0357b343ee32a9e436bcaad28ebe root <root@bff24e1ba370.(none)> 1683929108 +0000 clone: from github.com:strongdm/strongdm-sdk-ruby.git
2
+ 8192d0d63f6b0357b343ee32a9e436bcaad28ebe 6cd69f8e98657b0aa1c55786add9519085361ef2 root <root@bff24e1ba370.(none)> 1683929108 +0000 merge origin/development: Fast-forward
@@ -1 +1 @@
1
- 0000000000000000000000000000000000000000 9010771bf3315cb08f6421f7fd8290741d029f79 root <root@364a6e61d4e6.(none)> 1683054420 +0000 clone: from github.com:strongdm/strongdm-sdk-ruby.git
1
+ 0000000000000000000000000000000000000000 8192d0d63f6b0357b343ee32a9e436bcaad28ebe root <root@bff24e1ba370.(none)> 1683929108 +0000 clone: from github.com:strongdm/strongdm-sdk-ruby.git
data/.git/packed-refs CHANGED
@@ -1,6 +1,6 @@
1
1
  # pack-refs with: peeled fully-peeled sorted
2
- 8192d0d63f6b0357b343ee32a9e436bcaad28ebe refs/remotes/origin/development
3
- 9010771bf3315cb08f6421f7fd8290741d029f79 refs/remotes/origin/master
2
+ 6cd69f8e98657b0aa1c55786add9519085361ef2 refs/remotes/origin/development
3
+ 8192d0d63f6b0357b343ee32a9e436bcaad28ebe refs/remotes/origin/master
4
4
  2e4fe8087177ddea9b3991ca499f758384839c89 refs/tags/untagged-84fd83a4484c785cce63
5
5
  04f604866214fab4d5663b5171a3e596331577bd refs/tags/v0.9.4
6
6
  6f9a7b75b345c65fb554884907b7060680c807b7 refs/tags/v0.9.5
@@ -46,6 +46,7 @@ fb276eee8a0b2cc1415c25962410309b645373ed refs/tags/v3.10.0
46
46
  a77792a22449d0029bebb3f66fc23f63e54a8e90 refs/tags/v3.11.0
47
47
  f880c51210aa33186d71d9b463ddbd587ef3e4fd refs/tags/v3.12.0
48
48
  9010771bf3315cb08f6421f7fd8290741d029f79 refs/tags/v3.13.0
49
+ 8192d0d63f6b0357b343ee32a9e436bcaad28ebe refs/tags/v3.14.0
49
50
  40d185ce8d4f4375411706886f6fbbaa5493bef6 refs/tags/v3.2.0
50
51
  dd6a8a74ad5675831f42e3a820208e96f7361f80 refs/tags/v3.2.1
51
52
  09ee1a3be370a7b5e21709a7857d0f189f23da8b refs/tags/v3.2.2
@@ -1 +1 @@
1
- 8192d0d63f6b0357b343ee32a9e436bcaad28ebe
1
+ 6cd69f8e98657b0aa1c55786add9519085361ef2
data/lib/constants.rb CHANGED
@@ -209,7 +209,7 @@ module SDM
209
209
  ORG_SELF_REGISTRATION_DEACTIVATED = "self-registration deactivated"
210
210
  ORG_NAME_UPDATED = "organization name updated"
211
211
  ORG_SETTING_UPDATED = "organization setting updated"
212
- ORG_LOG_SYNC_SETTING_UPDATED = "organization log sync setting updated"
212
+ ORG_LOG_SYNC_SETTING_UPDATED = "organization log stream setting updated"
213
213
  ORG_CREATED = "organization created"
214
214
  ORG_SCIM_PROVISIONING_UPDATED = "SCIM provider set"
215
215
  ORG_SCIM_PROVISIONING_DELETED = "SCIM provider deleted"
@@ -237,10 +237,11 @@ module SDM
237
237
  REMOTE_IDENTITY_UPDATED = "remote identity updated"
238
238
  REMOTE_IDENTITY_DELETED = "remote identity deleted"
239
239
  ACCESS_REQUESTED_TO_RESOURCE = "access requested to resource"
240
- ACCESS_REQUEST_TO_RESOURCE_APPROVED = "access request to resource approved"
240
+ ACCESS_REQUEST_TO_RESOURCE_APPROVAL_ADDED = "access request to resource approval added"
241
241
  ACCESS_REQUEST_TO_RESOURCE_CANCELED = "access request to resource canceled"
242
242
  ACCESS_REQUEST_TO_RESOURCE_DENIED = "access request to resource denied"
243
243
  ACCESS_REQUEST_TO_RESOURCE_TIMED_OUT = "access request to resource timed out"
244
+ ACCESS_REQUEST_TO_RESOURCE_GRANTED = "access request to resource granted"
244
245
  WORKFLOW_ADDED = "access workflow added"
245
246
  WORKFLOW_DELETED = "access workflow deleted"
246
247
  WORKFLOW_RESOURCE_ASSIGNED = "resource assigned to workflow"
@@ -250,9 +251,11 @@ module SDM
250
251
  WORKFLOW_ROLES_UPDATED = "workflow roles updated"
251
252
  WORKFLOW_NOTIFICATION_OPTION_ADDED = "workflow notification type added"
252
253
  WORKFLOW_NOTIFICATION_OPTION_REMOVED = "workflow notification type removed"
253
- WORKFLOW_NOTIFICATION_OPTIONS_UPDATED = "workflow notification settings updated"
254
+ WORKFLOW_NOTIFICATION_OPTIONS_UPDATED = "workflow approvers updated"
254
255
  WORKFLOW_NAME_UPDATED = "workflow name updated"
255
256
  WORKFLOW_DESCRIPTION_UPDATED = "workflow description updated"
257
+ WORKFLOW_AUTO_GRANT_UPDATED = "workflow auto grant updated"
258
+ WORKFLOW_REQUIRES_REASON_UPDATED = "workflow requires reason updated"
256
259
  ORG_VNM_SUBNET_UPDATED = "organization VNM subnet updated"
257
260
  ORG_VNM_RESOURCES_ALLOCATED = "organization resources allocated within VNM subnet"
258
261
  DEPRECATED_ORG_ACTIVATE_DEVICE_APPROVAL = "activate device approval"
@@ -260,6 +263,9 @@ module SDM
260
263
  EMULATION_MIGRATION_COMPLETED = "emulation migration completed"
261
264
  ACCESS_OVERHAUL_MIGRATION_COMPLETED = "access overhaul migration completed"
262
265
  ACTIVATED_SSH_PORT_FORWARDING_ALL_SERVER = "enabled SSH port forwarding on all servers"
266
+ TOTP_ENROLLMENT_ADDED = "user enrolled a totp device"
267
+ TOTP_ENROLLMENT_DELETED = "user reset their totp enrollment"
268
+ SUSPENDED_USER_ENROLL_ATTEMPT_FROM_THE_UI = "attempt to enroll by a suspended user from the Admin UI"
263
269
  end
264
270
 
265
271
  # Permissions, all permissions that may be granted to an account.
@@ -254,6 +254,7 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
254
254
  optional :cluster_name, :string, 7
255
255
  optional :endpoint, :string, 1
256
256
  optional :healthcheck_namespace, :string, 9
257
+ optional :port_override, :int32, 15
257
258
  optional :region, :string, 6
258
259
  optional :remote_identity_group_id, :string, 11
259
260
  optional :remote_identity_healthcheck_username, :string, 12
@@ -274,6 +275,7 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
274
275
  optional :cluster_name, :string, 5
275
276
  optional :endpoint, :string, 1
276
277
  optional :healthcheck_namespace, :string, 8
278
+ optional :port_override, :int32, 15
277
279
  optional :region, :string, 4
278
280
  optional :remote_identity_group_id, :string, 9
279
281
  optional :remote_identity_healthcheck_username, :string, 10
@@ -293,6 +295,7 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
293
295
  optional :cluster_name, :string, 5
294
296
  optional :endpoint, :string, 1
295
297
  optional :healthcheck_namespace, :string, 8
298
+ optional :port_override, :int32, 15
296
299
  optional :region, :string, 4
297
300
  optional :remote_identity_group_id, :string, 9
298
301
  optional :remote_identity_healthcheck_username, :string, 10
@@ -313,6 +316,7 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
313
316
  optional :cluster_name, :string, 7
314
317
  optional :endpoint, :string, 1
315
318
  optional :healthcheck_namespace, :string, 9
319
+ optional :port_override, :int32, 15
316
320
  optional :region, :string, 6
317
321
  optional :role_arn, :string, 8
318
322
  optional :role_external_id, :string, 10
data/lib/grpc/plumbing.rb CHANGED
@@ -1611,6 +1611,7 @@ module SDM
1611
1611
  porcelain.healthy = (plumbing.healthy)
1612
1612
  porcelain.id = (plumbing.id)
1613
1613
  porcelain.name = (plumbing.name)
1614
+ porcelain.port_override = (plumbing.port_override)
1614
1615
  porcelain.region = (plumbing.region)
1615
1616
  porcelain.remote_identity_group_id = (plumbing.remote_identity_group_id)
1616
1617
  porcelain.remote_identity_healthcheck_username = (plumbing.remote_identity_healthcheck_username)
@@ -1638,6 +1639,7 @@ module SDM
1638
1639
  plumbing.healthy = (porcelain.healthy)
1639
1640
  plumbing.id = (porcelain.id)
1640
1641
  plumbing.name = (porcelain.name)
1642
+ plumbing.port_override = (porcelain.port_override)
1641
1643
  plumbing.region = (porcelain.region)
1642
1644
  plumbing.remote_identity_group_id = (porcelain.remote_identity_group_id)
1643
1645
  plumbing.remote_identity_healthcheck_username = (porcelain.remote_identity_healthcheck_username)
@@ -1680,6 +1682,7 @@ module SDM
1680
1682
  porcelain.healthy = (plumbing.healthy)
1681
1683
  porcelain.id = (plumbing.id)
1682
1684
  porcelain.name = (plumbing.name)
1685
+ porcelain.port_override = (plumbing.port_override)
1683
1686
  porcelain.region = (plumbing.region)
1684
1687
  porcelain.remote_identity_group_id = (plumbing.remote_identity_group_id)
1685
1688
  porcelain.remote_identity_healthcheck_username = (plumbing.remote_identity_healthcheck_username)
@@ -1705,6 +1708,7 @@ module SDM
1705
1708
  plumbing.healthy = (porcelain.healthy)
1706
1709
  plumbing.id = (porcelain.id)
1707
1710
  plumbing.name = (porcelain.name)
1711
+ plumbing.port_override = (porcelain.port_override)
1708
1712
  plumbing.region = (porcelain.region)
1709
1713
  plumbing.remote_identity_group_id = (porcelain.remote_identity_group_id)
1710
1714
  plumbing.remote_identity_healthcheck_username = (porcelain.remote_identity_healthcheck_username)
@@ -1746,6 +1750,7 @@ module SDM
1746
1750
  porcelain.healthy = (plumbing.healthy)
1747
1751
  porcelain.id = (plumbing.id)
1748
1752
  porcelain.name = (plumbing.name)
1753
+ porcelain.port_override = (plumbing.port_override)
1749
1754
  porcelain.region = (plumbing.region)
1750
1755
  porcelain.remote_identity_group_id = (plumbing.remote_identity_group_id)
1751
1756
  porcelain.remote_identity_healthcheck_username = (plumbing.remote_identity_healthcheck_username)
@@ -1771,6 +1776,7 @@ module SDM
1771
1776
  plumbing.healthy = (porcelain.healthy)
1772
1777
  plumbing.id = (porcelain.id)
1773
1778
  plumbing.name = (porcelain.name)
1779
+ plumbing.port_override = (porcelain.port_override)
1774
1780
  plumbing.region = (porcelain.region)
1775
1781
  plumbing.remote_identity_group_id = (porcelain.remote_identity_group_id)
1776
1782
  plumbing.remote_identity_healthcheck_username = (porcelain.remote_identity_healthcheck_username)
@@ -1813,6 +1819,7 @@ module SDM
1813
1819
  porcelain.healthy = (plumbing.healthy)
1814
1820
  porcelain.id = (plumbing.id)
1815
1821
  porcelain.name = (plumbing.name)
1822
+ porcelain.port_override = (plumbing.port_override)
1816
1823
  porcelain.region = (plumbing.region)
1817
1824
  porcelain.role_arn = (plumbing.role_arn)
1818
1825
  porcelain.role_external_id = (plumbing.role_external_id)
@@ -1838,6 +1845,7 @@ module SDM
1838
1845
  plumbing.healthy = (porcelain.healthy)
1839
1846
  plumbing.id = (porcelain.id)
1840
1847
  plumbing.name = (porcelain.name)
1848
+ plumbing.port_override = (porcelain.port_override)
1841
1849
  plumbing.region = (porcelain.region)
1842
1850
  plumbing.role_arn = (porcelain.role_arn)
1843
1851
  plumbing.role_external_id = (porcelain.role_external_id)
@@ -1388,6 +1388,8 @@ module SDM
1388
1388
  # Unique human-readable name of the Resource.
1389
1389
  attr_accessor :name
1390
1390
 
1391
+ attr_accessor :port_override
1392
+
1391
1393
  attr_accessor :region
1392
1394
 
1393
1395
  attr_accessor :remote_identity_group_id
@@ -1417,6 +1419,7 @@ module SDM
1417
1419
  healthy: nil,
1418
1420
  id: nil,
1419
1421
  name: nil,
1422
+ port_override: nil,
1420
1423
  region: nil,
1421
1424
  remote_identity_group_id: nil,
1422
1425
  remote_identity_healthcheck_username: nil,
@@ -1437,6 +1440,7 @@ module SDM
1437
1440
  @healthy = healthy == nil ? false : healthy
1438
1441
  @id = id == nil ? "" : id
1439
1442
  @name = name == nil ? "" : name
1443
+ @port_override = port_override == nil ? 0 : port_override
1440
1444
  @region = region == nil ? "" : region
1441
1445
  @remote_identity_group_id = remote_identity_group_id == nil ? "" : remote_identity_group_id
1442
1446
  @remote_identity_healthcheck_username = remote_identity_healthcheck_username == nil ? "" : remote_identity_healthcheck_username
@@ -1477,6 +1481,8 @@ module SDM
1477
1481
  # Unique human-readable name of the Resource.
1478
1482
  attr_accessor :name
1479
1483
 
1484
+ attr_accessor :port_override
1485
+
1480
1486
  attr_accessor :region
1481
1487
 
1482
1488
  attr_accessor :remote_identity_group_id
@@ -1503,6 +1509,7 @@ module SDM
1503
1509
  healthy: nil,
1504
1510
  id: nil,
1505
1511
  name: nil,
1512
+ port_override: nil,
1506
1513
  region: nil,
1507
1514
  remote_identity_group_id: nil,
1508
1515
  remote_identity_healthcheck_username: nil,
@@ -1521,6 +1528,7 @@ module SDM
1521
1528
  @healthy = healthy == nil ? false : healthy
1522
1529
  @id = id == nil ? "" : id
1523
1530
  @name = name == nil ? "" : name
1531
+ @port_override = port_override == nil ? 0 : port_override
1524
1532
  @region = region == nil ? "" : region
1525
1533
  @remote_identity_group_id = remote_identity_group_id == nil ? "" : remote_identity_group_id
1526
1534
  @remote_identity_healthcheck_username = remote_identity_healthcheck_username == nil ? "" : remote_identity_healthcheck_username
@@ -1560,6 +1568,8 @@ module SDM
1560
1568
  # Unique human-readable name of the Resource.
1561
1569
  attr_accessor :name
1562
1570
 
1571
+ attr_accessor :port_override
1572
+
1563
1573
  attr_accessor :region
1564
1574
 
1565
1575
  attr_accessor :remote_identity_group_id
@@ -1586,6 +1596,7 @@ module SDM
1586
1596
  healthy: nil,
1587
1597
  id: nil,
1588
1598
  name: nil,
1599
+ port_override: nil,
1589
1600
  region: nil,
1590
1601
  remote_identity_group_id: nil,
1591
1602
  remote_identity_healthcheck_username: nil,
@@ -1604,6 +1615,7 @@ module SDM
1604
1615
  @healthy = healthy == nil ? false : healthy
1605
1616
  @id = id == nil ? "" : id
1606
1617
  @name = name == nil ? "" : name
1618
+ @port_override = port_override == nil ? 0 : port_override
1607
1619
  @region = region == nil ? "" : region
1608
1620
  @remote_identity_group_id = remote_identity_group_id == nil ? "" : remote_identity_group_id
1609
1621
  @remote_identity_healthcheck_username = remote_identity_healthcheck_username == nil ? "" : remote_identity_healthcheck_username
@@ -1644,6 +1656,8 @@ module SDM
1644
1656
  # Unique human-readable name of the Resource.
1645
1657
  attr_accessor :name
1646
1658
 
1659
+ attr_accessor :port_override
1660
+
1647
1661
  attr_accessor :region
1648
1662
 
1649
1663
  attr_accessor :role_arn
@@ -1669,6 +1683,7 @@ module SDM
1669
1683
  healthy: nil,
1670
1684
  id: nil,
1671
1685
  name: nil,
1686
+ port_override: nil,
1672
1687
  region: nil,
1673
1688
  role_arn: nil,
1674
1689
  role_external_id: nil,
@@ -1687,6 +1702,7 @@ module SDM
1687
1702
  @healthy = healthy == nil ? false : healthy
1688
1703
  @id = id == nil ? "" : id
1689
1704
  @name = name == nil ? "" : name
1705
+ @port_override = port_override == nil ? 0 : port_override
1690
1706
  @region = region == nil ? "" : region
1691
1707
  @role_arn = role_arn == nil ? "" : role_arn
1692
1708
  @role_external_id = role_external_id == nil ? "" : role_external_id
data/lib/strongdm.rb CHANGED
@@ -29,7 +29,7 @@ module SDM #:nodoc:
29
29
  DEFAULT_BASE_RETRY_DELAY = 0.0030 # 30 ms
30
30
  DEFAULT_MAX_RETRY_DELAY = 300 # 300 seconds
31
31
  API_VERSION = "2021-08-23"
32
- USER_AGENT = "strongdm-sdk-ruby/3.14.0"
32
+ USER_AGENT = "strongdm-sdk-ruby/3.14.2"
33
33
  private_constant :DEFAULT_MAX_RETRIES, :DEFAULT_BASE_RETRY_DELAY, :DEFAULT_MAX_RETRY_DELAY, :API_VERSION, :USER_AGENT
34
34
 
35
35
  # Creates a new strongDM API client.
data/lib/version CHANGED
@@ -13,5 +13,5 @@
13
13
  # limitations under the License.
14
14
  #
15
15
  module SDM
16
- VERSION = "3.14.0"
16
+ VERSION = "3.14.2"
17
17
  end
data/lib/version.rb CHANGED
@@ -13,5 +13,5 @@
13
13
  # limitations under the License.
14
14
  #
15
15
  module SDM
16
- VERSION = "3.14.0"
16
+ VERSION = "3.14.2"
17
17
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: strongdm
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.14.0
4
+ version: 3.14.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - strongDM Team
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-05-02 00:00:00.000000000 Z
11
+ date: 2023-05-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: grpc
@@ -81,8 +81,8 @@ files:
81
81
  - "./.git/logs/HEAD"
82
82
  - "./.git/logs/refs/heads/master"
83
83
  - "./.git/logs/refs/remotes/origin/HEAD"
84
- - "./.git/objects/pack/pack-41513a3360ce19248cdf32fd4d2a9cf28ab0caa8.idx"
85
- - "./.git/objects/pack/pack-41513a3360ce19248cdf32fd4d2a9cf28ab0caa8.pack"
84
+ - "./.git/objects/pack/pack-f99e555c6751778a5cf0b0e68445bab0425bb5c1.idx"
85
+ - "./.git/objects/pack/pack-f99e555c6751778a5cf0b0e68445bab0425bb5c1.pack"
86
86
  - "./.git/packed-refs"
87
87
  - "./.git/refs/heads/master"
88
88
  - "./.git/refs/remotes/origin/HEAD"