strongdm 3.9.0 → 3.11.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 86a8357bf019f835f2205d750fd911fecc1ab7df0a2f44f51e00f2e814a4593f
4
- data.tar.gz: 3f2bec142d40f6ebd1923043094a324ca55d0efc939f850aa46197cb142baa8d
3
+ metadata.gz: 05d015d4f19aaf6ab38e9215d9f4012099b40c9749b58051ee3c907833eaeef5
4
+ data.tar.gz: a750ed1f27766b71aa28f38eb781fe9d7d8af82897443d1b04c0d9f3a2e64891
5
5
  SHA512:
6
- metadata.gz: 152b41187b3b89f90a6d059fe009bb278b71fe6fad96502341bc8ecd42096c1706e6cd54d5b6c2f574bf1848e752340a23b967233676d81d261508ae832a5ebb
7
- data.tar.gz: 20820ef6a06f97aef35dda453dbd784171cfc764d5e2a6b00f741971e57da52486179509fe92845e86fb2910b844fe2b0f1d022531e833ef756f25c6c9442e18
6
+ metadata.gz: 82d005454840630dfc91a4e5f890f92a1471285fae855a263f7d2974252a10f8ebb11ff609126ce7832c65cbf93d3c32815ace8dd07a8eed29805001f27d0fa3
7
+ data.tar.gz: 83cf7a434781fe5e190ecd30bad6b302a9942123f4d1d799f168fa018beff24110bff89d061ec8813d81326e5b0e096c3bb5b1d47ead74dc73a0c124d2bee925
data/.git/ORIG_HEAD CHANGED
@@ -1 +1 @@
1
- 07687e72efc8785eb9de64ef2d27056c6f9e3413
1
+ fb276eee8a0b2cc1415c25962410309b645373ed
data/.git/index CHANGED
Binary file
data/.git/logs/HEAD CHANGED
@@ -1,3 +1,3 @@
1
- 0000000000000000000000000000000000000000 07687e72efc8785eb9de64ef2d27056c6f9e3413 root <root@c8bf43e8bd19.(none)> 1679529693 +0000 clone: from github.com:strongdm/strongdm-sdk-ruby.git
2
- 07687e72efc8785eb9de64ef2d27056c6f9e3413 07687e72efc8785eb9de64ef2d27056c6f9e3413 root <root@c8bf43e8bd19.(none)> 1679529693 +0000 checkout: moving from master to master
3
- 07687e72efc8785eb9de64ef2d27056c6f9e3413 996c2591e6d895f404e977133bda196e723e1dd9 root <root@c8bf43e8bd19.(none)> 1679529693 +0000 merge origin/development: Fast-forward
1
+ 0000000000000000000000000000000000000000 fb276eee8a0b2cc1415c25962410309b645373ed root <root@8ff708ee8c17.(none)> 1681499499 +0000 clone: from github.com:strongdm/strongdm-sdk-ruby.git
2
+ fb276eee8a0b2cc1415c25962410309b645373ed fb276eee8a0b2cc1415c25962410309b645373ed root <root@8ff708ee8c17.(none)> 1681499499 +0000 checkout: moving from master to master
3
+ fb276eee8a0b2cc1415c25962410309b645373ed a77792a22449d0029bebb3f66fc23f63e54a8e90 root <root@8ff708ee8c17.(none)> 1681499499 +0000 merge origin/development: Fast-forward
@@ -1,2 +1,2 @@
1
- 0000000000000000000000000000000000000000 07687e72efc8785eb9de64ef2d27056c6f9e3413 root <root@c8bf43e8bd19.(none)> 1679529693 +0000 clone: from github.com:strongdm/strongdm-sdk-ruby.git
2
- 07687e72efc8785eb9de64ef2d27056c6f9e3413 996c2591e6d895f404e977133bda196e723e1dd9 root <root@c8bf43e8bd19.(none)> 1679529693 +0000 merge origin/development: Fast-forward
1
+ 0000000000000000000000000000000000000000 fb276eee8a0b2cc1415c25962410309b645373ed root <root@8ff708ee8c17.(none)> 1681499499 +0000 clone: from github.com:strongdm/strongdm-sdk-ruby.git
2
+ fb276eee8a0b2cc1415c25962410309b645373ed a77792a22449d0029bebb3f66fc23f63e54a8e90 root <root@8ff708ee8c17.(none)> 1681499499 +0000 merge origin/development: Fast-forward
@@ -1 +1 @@
1
- 0000000000000000000000000000000000000000 07687e72efc8785eb9de64ef2d27056c6f9e3413 root <root@c8bf43e8bd19.(none)> 1679529693 +0000 clone: from github.com:strongdm/strongdm-sdk-ruby.git
1
+ 0000000000000000000000000000000000000000 fb276eee8a0b2cc1415c25962410309b645373ed root <root@8ff708ee8c17.(none)> 1681499499 +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
- 996c2591e6d895f404e977133bda196e723e1dd9 refs/remotes/origin/development
3
- 07687e72efc8785eb9de64ef2d27056c6f9e3413 refs/remotes/origin/master
2
+ a77792a22449d0029bebb3f66fc23f63e54a8e90 refs/remotes/origin/development
3
+ fb276eee8a0b2cc1415c25962410309b645373ed 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
@@ -42,6 +42,7 @@ ee164dbda02c66cd898f0357884c58f822b486dc refs/tags/v2.6.0
42
42
  be1460e0ed022801549a84a12897334b7064f1a7 refs/tags/v2.6.3
43
43
  ebc33c297839fbbcfa70f855e599630c0a6c880c refs/tags/v2.6.4
44
44
  0fbd2ab317197f8aff986524b40fb96d7aa05547 refs/tags/v3.0.0
45
+ fb276eee8a0b2cc1415c25962410309b645373ed refs/tags/v3.10.0
45
46
  40d185ce8d4f4375411706886f6fbbaa5493bef6 refs/tags/v3.2.0
46
47
  dd6a8a74ad5675831f42e3a820208e96f7361f80 refs/tags/v3.2.1
47
48
  09ee1a3be370a7b5e21709a7857d0f189f23da8b refs/tags/v3.2.2
@@ -58,3 +59,4 @@ ed61eaceb77e62a0c1a0bb8d36fc0bda7b242af4 refs/tags/v3.5.5
58
59
  ffd4706f2b64466550868d42ee2a5a4b88b3a372 refs/tags/v3.6.1
59
60
  10a9195bd9e91e5d6047500b92d08df567d60f78 refs/tags/v3.7.0
60
61
  07687e72efc8785eb9de64ef2d27056c6f9e3413 refs/tags/v3.8.0
62
+ 996c2591e6d895f404e977133bda196e723e1dd9 refs/tags/v3.9.0
@@ -1 +1 @@
1
- 996c2591e6d895f404e977133bda196e723e1dd9
1
+ a77792a22449d0029bebb3f66fc23f63e54a8e90
data/lib/constants.rb CHANGED
@@ -90,6 +90,7 @@ module SDM
90
90
  module MFAProvider
91
91
  NONE = ""
92
92
  DUO = "duo"
93
+ TOTP = "totp"
93
94
  end
94
95
 
95
96
  # Activity Entities, all entity types that can be part of an activity.
@@ -105,6 +106,7 @@ module SDM
105
106
  REMOTE_IDENTITY = "remote_identity"
106
107
  ACCESS_REQUEST = "access_request"
107
108
  WORKFLOW = "workflow"
109
+ NODE = "node"
108
110
  end
109
111
 
110
112
  # Activity Verbs, describe which kind of activity has taken place.
@@ -238,6 +240,8 @@ module SDM
238
240
  ACCESS_REQUEST_TO_RESOURCE_CANCELED = "access request to resource canceled"
239
241
  ACCESS_REQUEST_TO_RESOURCE_DENIED = "access request to resource denied"
240
242
  ACCESS_REQUEST_TO_RESOURCE_TIMED_OUT = "access request to resource timed out"
243
+ WORKFLOW_ADDED = "access workflow added"
244
+ WORKFLOW_DELETED = "access workflow deleted"
241
245
  WORKFLOW_RESOURCE_ASSIGNED = "resource assigned to workflow"
242
246
  WORKFLOW_RESOURCE_UNASSIGNED = "resource unassigned from workflow"
243
247
  WORKFLOW_RESOURCE_MULTIPLE_ASSIGNED = "multiple resources assigned to workflow"
@@ -245,7 +249,10 @@ module SDM
245
249
  WORKFLOW_NOTIFICATION_OPTION_ADDED = "workflow notification type added"
246
250
  WORKFLOW_NOTIFICATION_OPTION_REMOVED = "workflow notification type removed"
247
251
  WORKFLOW_NOTIFICATION_OPTIONS_UPDATED = "workflow notification settings updated"
252
+ WORKFLOW_NAME_UPDATED = "workflow name updated"
253
+ WORKFLOW_DESCRIPTION_UPDATED = "workflow description updated"
248
254
  ORG_VNM_SUBNET_UPDATED = "organization VNM subnet updated"
255
+ ORG_VNM_RESOURCES_ALLOCATED = "organization resources allocated within VNM subnet"
249
256
  DEPRECATED_ORG_ACTIVATE_DEVICE_APPROVAL = "activate device approval"
250
257
  DEPRECATED_ORG_DEACTIVATE_DEVICE_APPROVAL = "deactivate device approval"
251
258
  EMULATION_MIGRATION_COMPLETED = "emulation migration completed"
@@ -0,0 +1,48 @@
1
+ # Copyright 2020 StrongDM Inc
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+ #
15
+ # Generated by the protocol buffer compiler. DO NOT EDIT!
16
+ # source: account_resources_history.proto
17
+
18
+ require "google/protobuf"
19
+
20
+ require "google/protobuf/timestamp_pb"
21
+ require "account_resources_pb"
22
+ require "options_pb"
23
+ require "spec_pb"
24
+ Google::Protobuf::DescriptorPool.generated_pool.build do
25
+ add_file("account_resources_history.proto", :syntax => :proto3) do
26
+ add_message "v1.AccountResourceHistoryListRequest" do
27
+ optional :meta, :message, 1, "v1.ListRequestMetadata"
28
+ optional :filter, :string, 2
29
+ end
30
+ add_message "v1.AccountResourceHistoryListResponse" do
31
+ optional :meta, :message, 1, "v1.ListResponseMetadata"
32
+ repeated :history, :message, 2, "v1.AccountResourceHistory"
33
+ optional :rate_limit, :message, 3, "v1.RateLimitMetadata"
34
+ end
35
+ add_message "v1.AccountResourceHistory" do
36
+ optional :activity_id, :string, 1
37
+ optional :timestamp, :message, 2, "google.protobuf.Timestamp"
38
+ optional :account_resource, :message, 3, "v1.AccountResource"
39
+ optional :deleted_at, :message, 4, "google.protobuf.Timestamp"
40
+ end
41
+ end
42
+ end
43
+
44
+ module V1
45
+ AccountResourceHistoryListRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.AccountResourceHistoryListRequest").msgclass
46
+ AccountResourceHistoryListResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.AccountResourceHistoryListResponse").msgclass
47
+ AccountResourceHistory = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.AccountResourceHistory").msgclass
48
+ end
@@ -0,0 +1,37 @@
1
+ # Copyright 2020 StrongDM Inc
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+ #
15
+ # Generated by the protocol buffer compiler. DO NOT EDIT!
16
+ # Source: account_resources_history.proto for package 'v1'
17
+
18
+ require "grpc"
19
+ require "account_resources_history_pb"
20
+
21
+ module V1
22
+ module AccountResourcesHistory
23
+ # AccountResourcesHistory records all changes to the state of a AccountResource.
24
+ class Service
25
+ include GRPC::GenericService
26
+
27
+ self.marshal_class_method = :encode
28
+ self.unmarshal_class_method = :decode
29
+ self.service_name = "v1.AccountResourcesHistory"
30
+
31
+ # List gets a list of AccountResourceHistory records matching a given set of criteria.
32
+ rpc :List, V1::AccountResourceHistoryListRequest, V1::AccountResourceHistoryListResponse
33
+ end
34
+
35
+ Stub = Service.rpc_stub_class
36
+ end
37
+ end
@@ -33,6 +33,7 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
33
33
  optional :aws_console_static_key_pair, :message, 3001, "v1.AWSConsoleStaticKeyPair"
34
34
  optional :amazon_eks, :message, 802, "v1.AmazonEKS"
35
35
  optional :amazon_eks_instance_profile, :message, 809, "v1.AmazonEKSInstanceProfile"
36
+ optional :amazon_eks_instance_profile_user_impersonation, :message, 813, "v1.AmazonEKSInstanceProfileUserImpersonation"
36
37
  optional :amazon_eks_user_impersonation, :message, 818, "v1.AmazonEKSUserImpersonation"
37
38
  optional :amazon_es, :message, 600, "v1.AmazonES"
38
39
  optional :amazon_mqamqp_091, :message, 2501, "v1.AmazonMQAMQP091"
@@ -99,6 +100,7 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
99
100
  optional :sybase, :message, 2000, "v1.Sybase"
100
101
  optional :sybase_iq, :message, 2001, "v1.SybaseIQ"
101
102
  optional :teradata, :message, 2100, "v1.Teradata"
103
+ optional :trino, :message, 1401, "v1.Trino"
102
104
  end
103
105
  end
104
106
  add_message "v1.AKS" do
@@ -276,6 +278,25 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
276
278
  optional :role_arn, :string, 6
277
279
  optional :role_external_id, :string, 7
278
280
  end
281
+ add_message "v1.AmazonEKSInstanceProfileUserImpersonation" do
282
+ optional :id, :string, 32768
283
+ optional :name, :string, 32769
284
+ optional :healthy, :bool, 32770
285
+ optional :tags, :message, 32771, "v1.Tags"
286
+ optional :secret_store_id, :string, 32772
287
+ optional :egress_filter, :string, 32773
288
+ optional :bind_interface, :string, 32774
289
+ optional :subdomain, :string, 32775
290
+ optional :certificate_authority, :string, 2
291
+ optional :cluster_name, :string, 5
292
+ optional :endpoint, :string, 1
293
+ optional :healthcheck_namespace, :string, 8
294
+ optional :region, :string, 4
295
+ optional :remote_identity_group_id, :string, 9
296
+ optional :remote_identity_healthcheck_username, :string, 10
297
+ optional :role_arn, :string, 6
298
+ optional :role_external_id, :string, 7
299
+ end
279
300
  add_message "v1.AmazonEKSUserImpersonation" do
280
301
  optional :id, :string, 32768
281
302
  optional :name, :string, 32769
@@ -1348,6 +1369,22 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
1348
1369
  optional :port_override, :int32, 4
1349
1370
  optional :username, :string, 2
1350
1371
  end
1372
+ add_message "v1.Trino" do
1373
+ optional :id, :string, 32768
1374
+ optional :name, :string, 32769
1375
+ optional :healthy, :bool, 32770
1376
+ optional :tags, :message, 32771, "v1.Tags"
1377
+ optional :secret_store_id, :string, 32772
1378
+ optional :egress_filter, :string, 32773
1379
+ optional :bind_interface, :string, 32774
1380
+ optional :subdomain, :string, 32775
1381
+ optional :database, :string, 3
1382
+ optional :hostname, :string, 1
1383
+ optional :password, :string, 2
1384
+ optional :port, :int32, 5
1385
+ optional :port_override, :int32, 4
1386
+ optional :username, :string, 6
1387
+ end
1351
1388
  end
1352
1389
  end
1353
1390
 
@@ -1363,6 +1400,7 @@ module V1
1363
1400
  AWSConsoleStaticKeyPair = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.AWSConsoleStaticKeyPair").msgclass
1364
1401
  AmazonEKS = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.AmazonEKS").msgclass
1365
1402
  AmazonEKSInstanceProfile = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.AmazonEKSInstanceProfile").msgclass
1403
+ AmazonEKSInstanceProfileUserImpersonation = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.AmazonEKSInstanceProfileUserImpersonation").msgclass
1366
1404
  AmazonEKSUserImpersonation = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.AmazonEKSUserImpersonation").msgclass
1367
1405
  AmazonES = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.AmazonES").msgclass
1368
1406
  AmazonMQAMQP091 = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.AmazonMQAMQP091").msgclass
@@ -1429,4 +1467,5 @@ module V1
1429
1467
  Sybase = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.Sybase").msgclass
1430
1468
  SybaseIQ = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.SybaseIQ").msgclass
1431
1469
  Teradata = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.Teradata").msgclass
1470
+ Trino = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.Trino").msgclass
1432
1471
  end
data/lib/grpc/plumbing.rb CHANGED
@@ -26,6 +26,7 @@ require_relative "./account_grants_pb"
26
26
  require_relative "./account_grants_history_pb"
27
27
  require_relative "./account_permissions_pb"
28
28
  require_relative "./account_resources_pb"
29
+ require_relative "./account_resources_history_pb"
29
30
  require_relative "./tags_pb"
30
31
  require_relative "./accounts_pb"
31
32
  require_relative "./accounts_history_pb"
@@ -1343,6 +1344,46 @@ module SDM
1343
1344
  end
1344
1345
  items
1345
1346
  end
1347
+ def self.convert_account_resource_history_to_porcelain(plumbing)
1348
+ if plumbing == nil
1349
+ return nil
1350
+ end
1351
+ porcelain = AccountResourceHistory.new()
1352
+ porcelain.account_resource = convert_account_resource_to_porcelain(plumbing.account_resource)
1353
+ porcelain.activity_id = (plumbing.activity_id)
1354
+ porcelain.deleted_at = convert_timestamp_to_porcelain(plumbing.deleted_at)
1355
+ porcelain.timestamp = convert_timestamp_to_porcelain(plumbing.timestamp)
1356
+ porcelain
1357
+ end
1358
+
1359
+ def self.convert_account_resource_history_to_plumbing(porcelain)
1360
+ if porcelain == nil
1361
+ return nil
1362
+ end
1363
+ plumbing = V1::AccountResourceHistory.new()
1364
+ plumbing.account_resource = convert_account_resource_to_plumbing(porcelain.account_resource)
1365
+ plumbing.activity_id = (porcelain.activity_id)
1366
+ plumbing.deleted_at = convert_timestamp_to_plumbing(porcelain.deleted_at)
1367
+ plumbing.timestamp = convert_timestamp_to_plumbing(porcelain.timestamp)
1368
+ plumbing
1369
+ end
1370
+ def self.convert_repeated_account_resource_history_to_plumbing(porcelains)
1371
+ items = Array.new
1372
+ porcelains.each do |porcelain|
1373
+ plumbing = convert_account_resource_history_to_plumbing(porcelain)
1374
+ items.append(plumbing)
1375
+ end
1376
+ items
1377
+ end
1378
+
1379
+ def self.convert_repeated_account_resource_history_to_porcelain(plumbings)
1380
+ items = Array.new
1381
+ plumbings.each do |plumbing|
1382
+ porcelain = convert_account_resource_history_to_porcelain(plumbing)
1383
+ items.append(porcelain)
1384
+ end
1385
+ items
1386
+ end
1346
1387
  def self.convert_account_update_response_to_porcelain(plumbing)
1347
1388
  if plumbing == nil
1348
1389
  return nil
@@ -1685,6 +1726,72 @@ module SDM
1685
1726
  end
1686
1727
  items
1687
1728
  end
1729
+ def self.convert_amazon_eks_instance_profile_user_impersonation_to_porcelain(plumbing)
1730
+ if plumbing == nil
1731
+ return nil
1732
+ end
1733
+ porcelain = AmazonEKSInstanceProfileUserImpersonation.new()
1734
+ porcelain.bind_interface = (plumbing.bind_interface)
1735
+ porcelain.certificate_authority = (plumbing.certificate_authority)
1736
+ porcelain.cluster_name = (plumbing.cluster_name)
1737
+ porcelain.egress_filter = (plumbing.egress_filter)
1738
+ porcelain.endpoint = (plumbing.endpoint)
1739
+ porcelain.healthcheck_namespace = (plumbing.healthcheck_namespace)
1740
+ porcelain.healthy = (plumbing.healthy)
1741
+ porcelain.id = (plumbing.id)
1742
+ porcelain.name = (plumbing.name)
1743
+ porcelain.region = (plumbing.region)
1744
+ porcelain.remote_identity_group_id = (plumbing.remote_identity_group_id)
1745
+ porcelain.remote_identity_healthcheck_username = (plumbing.remote_identity_healthcheck_username)
1746
+ porcelain.role_arn = (plumbing.role_arn)
1747
+ porcelain.role_external_id = (plumbing.role_external_id)
1748
+ porcelain.secret_store_id = (plumbing.secret_store_id)
1749
+ porcelain.subdomain = (plumbing.subdomain)
1750
+ porcelain.tags = convert_tags_to_porcelain(plumbing.tags)
1751
+ porcelain
1752
+ end
1753
+
1754
+ def self.convert_amazon_eks_instance_profile_user_impersonation_to_plumbing(porcelain)
1755
+ if porcelain == nil
1756
+ return nil
1757
+ end
1758
+ plumbing = V1::AmazonEKSInstanceProfileUserImpersonation.new()
1759
+ plumbing.bind_interface = (porcelain.bind_interface)
1760
+ plumbing.certificate_authority = (porcelain.certificate_authority)
1761
+ plumbing.cluster_name = (porcelain.cluster_name)
1762
+ plumbing.egress_filter = (porcelain.egress_filter)
1763
+ plumbing.endpoint = (porcelain.endpoint)
1764
+ plumbing.healthcheck_namespace = (porcelain.healthcheck_namespace)
1765
+ plumbing.healthy = (porcelain.healthy)
1766
+ plumbing.id = (porcelain.id)
1767
+ plumbing.name = (porcelain.name)
1768
+ plumbing.region = (porcelain.region)
1769
+ plumbing.remote_identity_group_id = (porcelain.remote_identity_group_id)
1770
+ plumbing.remote_identity_healthcheck_username = (porcelain.remote_identity_healthcheck_username)
1771
+ plumbing.role_arn = (porcelain.role_arn)
1772
+ plumbing.role_external_id = (porcelain.role_external_id)
1773
+ plumbing.secret_store_id = (porcelain.secret_store_id)
1774
+ plumbing.subdomain = (porcelain.subdomain)
1775
+ plumbing.tags = convert_tags_to_plumbing(porcelain.tags)
1776
+ plumbing
1777
+ end
1778
+ def self.convert_repeated_amazon_eks_instance_profile_user_impersonation_to_plumbing(porcelains)
1779
+ items = Array.new
1780
+ porcelains.each do |porcelain|
1781
+ plumbing = convert_amazon_eks_instance_profile_user_impersonation_to_plumbing(porcelain)
1782
+ items.append(plumbing)
1783
+ end
1784
+ items
1785
+ end
1786
+
1787
+ def self.convert_repeated_amazon_eks_instance_profile_user_impersonation_to_porcelain(plumbings)
1788
+ items = Array.new
1789
+ plumbings.each do |plumbing|
1790
+ porcelain = convert_amazon_eks_instance_profile_user_impersonation_to_porcelain(plumbing)
1791
+ items.append(porcelain)
1792
+ end
1793
+ items
1794
+ end
1688
1795
  def self.convert_amazon_eks_user_impersonation_to_porcelain(plumbing)
1689
1796
  if plumbing == nil
1690
1797
  return nil
@@ -5606,6 +5713,7 @@ module SDM
5606
5713
  porcelain.account_id = (plumbing.account_id)
5607
5714
  porcelain.account_last_name = (plumbing.account_last_name)
5608
5715
  porcelain.account_tags = convert_tags_to_porcelain(plumbing.account_tags)
5716
+ porcelain.completed_at = convert_timestamp_to_porcelain(plumbing.completed_at)
5609
5717
  porcelain.duration = convert_duration_to_porcelain(plumbing.duration)
5610
5718
  porcelain.egress_node_id = (plumbing.egress_node_id)
5611
5719
  porcelain.encrypted = (plumbing.encrypted)
@@ -5635,6 +5743,7 @@ module SDM
5635
5743
  plumbing.account_id = (porcelain.account_id)
5636
5744
  plumbing.account_last_name = (porcelain.account_last_name)
5637
5745
  plumbing.account_tags = convert_tags_to_plumbing(porcelain.account_tags)
5746
+ plumbing.completed_at = convert_timestamp_to_plumbing(porcelain.completed_at)
5638
5747
  plumbing.duration = convert_duration_to_plumbing(porcelain.duration)
5639
5748
  plumbing.egress_node_id = (porcelain.egress_node_id)
5640
5749
  plumbing.encrypted = (porcelain.encrypted)
@@ -6496,6 +6605,9 @@ module SDM
6496
6605
  if porcelain.instance_of? AmazonEKSInstanceProfile
6497
6606
  plumbing.amazon_eks_instance_profile = convert_amazon_eks_instance_profile_to_plumbing(porcelain)
6498
6607
  end
6608
+ if porcelain.instance_of? AmazonEKSInstanceProfileUserImpersonation
6609
+ plumbing.amazon_eks_instance_profile_user_impersonation = convert_amazon_eks_instance_profile_user_impersonation_to_plumbing(porcelain)
6610
+ end
6499
6611
  if porcelain.instance_of? AmazonEKSUserImpersonation
6500
6612
  plumbing.amazon_eks_user_impersonation = convert_amazon_eks_user_impersonation_to_plumbing(porcelain)
6501
6613
  end
@@ -6703,6 +6815,9 @@ module SDM
6703
6815
  if porcelain.instance_of? Teradata
6704
6816
  plumbing.teradata = convert_teradata_to_plumbing(porcelain)
6705
6817
  end
6818
+ if porcelain.instance_of? Trino
6819
+ plumbing.trino = convert_trino_to_plumbing(porcelain)
6820
+ end
6706
6821
  plumbing
6707
6822
  end
6708
6823
 
@@ -6731,6 +6846,9 @@ module SDM
6731
6846
  if plumbing.amazon_eks_instance_profile != nil
6732
6847
  return convert_amazon_eks_instance_profile_to_porcelain(plumbing.amazon_eks_instance_profile)
6733
6848
  end
6849
+ if plumbing.amazon_eks_instance_profile_user_impersonation != nil
6850
+ return convert_amazon_eks_instance_profile_user_impersonation_to_porcelain(plumbing.amazon_eks_instance_profile_user_impersonation)
6851
+ end
6734
6852
  if plumbing.amazon_eks_user_impersonation != nil
6735
6853
  return convert_amazon_eks_user_impersonation_to_porcelain(plumbing.amazon_eks_user_impersonation)
6736
6854
  end
@@ -6938,6 +7056,9 @@ module SDM
6938
7056
  if plumbing.teradata != nil
6939
7057
  return convert_teradata_to_porcelain(plumbing.teradata)
6940
7058
  end
7059
+ if plumbing.trino != nil
7060
+ return convert_trino_to_porcelain(plumbing.trino)
7061
+ end
6941
7062
  raise UnknownError.new("unknown polymorphic type, please upgrade your SDK")
6942
7063
  end
6943
7064
  def self.convert_repeated_resource_to_plumbing(porcelains)
@@ -8418,6 +8539,66 @@ module SDM
8418
8539
  end
8419
8540
  items
8420
8541
  end
8542
+ def self.convert_trino_to_porcelain(plumbing)
8543
+ if plumbing == nil
8544
+ return nil
8545
+ end
8546
+ porcelain = Trino.new()
8547
+ porcelain.bind_interface = (plumbing.bind_interface)
8548
+ porcelain.database = (plumbing.database)
8549
+ porcelain.egress_filter = (plumbing.egress_filter)
8550
+ porcelain.healthy = (plumbing.healthy)
8551
+ porcelain.hostname = (plumbing.hostname)
8552
+ porcelain.id = (plumbing.id)
8553
+ porcelain.name = (plumbing.name)
8554
+ porcelain.password = (plumbing.password)
8555
+ porcelain.port = (plumbing.port)
8556
+ porcelain.port_override = (plumbing.port_override)
8557
+ porcelain.secret_store_id = (plumbing.secret_store_id)
8558
+ porcelain.subdomain = (plumbing.subdomain)
8559
+ porcelain.tags = convert_tags_to_porcelain(plumbing.tags)
8560
+ porcelain.username = (plumbing.username)
8561
+ porcelain
8562
+ end
8563
+
8564
+ def self.convert_trino_to_plumbing(porcelain)
8565
+ if porcelain == nil
8566
+ return nil
8567
+ end
8568
+ plumbing = V1::Trino.new()
8569
+ plumbing.bind_interface = (porcelain.bind_interface)
8570
+ plumbing.database = (porcelain.database)
8571
+ plumbing.egress_filter = (porcelain.egress_filter)
8572
+ plumbing.healthy = (porcelain.healthy)
8573
+ plumbing.hostname = (porcelain.hostname)
8574
+ plumbing.id = (porcelain.id)
8575
+ plumbing.name = (porcelain.name)
8576
+ plumbing.password = (porcelain.password)
8577
+ plumbing.port = (porcelain.port)
8578
+ plumbing.port_override = (porcelain.port_override)
8579
+ plumbing.secret_store_id = (porcelain.secret_store_id)
8580
+ plumbing.subdomain = (porcelain.subdomain)
8581
+ plumbing.tags = convert_tags_to_plumbing(porcelain.tags)
8582
+ plumbing.username = (porcelain.username)
8583
+ plumbing
8584
+ end
8585
+ def self.convert_repeated_trino_to_plumbing(porcelains)
8586
+ items = Array.new
8587
+ porcelains.each do |porcelain|
8588
+ plumbing = convert_trino_to_plumbing(porcelain)
8589
+ items.append(plumbing)
8590
+ end
8591
+ items
8592
+ end
8593
+
8594
+ def self.convert_repeated_trino_to_porcelain(plumbings)
8595
+ items = Array.new
8596
+ plumbings.each do |plumbing|
8597
+ porcelain = convert_trino_to_porcelain(plumbing)
8598
+ items.append(porcelain)
8599
+ end
8600
+ items
8601
+ end
8421
8602
  def self.convert_update_response_metadata_to_porcelain(plumbing)
8422
8603
  if plumbing == nil
8423
8604
  return nil
@@ -56,6 +56,7 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
56
56
  optional :account_email, :string, 20
57
57
  optional :account_tags, :message, 21, "v1.Tags"
58
58
  optional :query_key_id, :string, 22
59
+ optional :completed_at, :message, 23, "google.protobuf.Timestamp"
59
60
  end
60
61
  end
61
62
  end
@@ -20,7 +20,7 @@ require "queries_pb"
20
20
 
21
21
  module V1
22
22
  module Queries
23
- # A Query is a record of a single client request to a resource, such as an SQL query.
23
+ # A Query is a record of a single client request to a resource, such as a SQL query.
24
24
  # Long-running SSH, RDP, or Kubernetes interactive sessions also count as queries.
25
25
  # The Queries service is read-only.
26
26
  class Service
@@ -1143,6 +1143,41 @@ module SDM
1143
1143
  end
1144
1144
  end
1145
1145
 
1146
+ # AccountResourceHistory records the state of a AccountResource at a given point in time,
1147
+ # where every change (create or delete) to a AccountResource produces an
1148
+ # AccountResourceHistory record.
1149
+ class AccountResourceHistory
1150
+ # The complete AccountResource state at this time.
1151
+ attr_accessor :account_resource
1152
+ # The unique identifier of the Activity that produced this change to the AccountResource.
1153
+ # May be empty for some system-initiated updates.
1154
+ attr_accessor :activity_id
1155
+ # If this AccountResource was deleted, the time it was deleted.
1156
+ attr_accessor :deleted_at
1157
+ # The time at which the AccountResource state was recorded.
1158
+ attr_accessor :timestamp
1159
+
1160
+ def initialize(
1161
+ account_resource: nil,
1162
+ activity_id: nil,
1163
+ deleted_at: nil,
1164
+ timestamp: nil
1165
+ )
1166
+ @account_resource = account_resource == nil ? nil : account_resource
1167
+ @activity_id = activity_id == nil ? "" : activity_id
1168
+ @deleted_at = deleted_at == nil ? nil : deleted_at
1169
+ @timestamp = timestamp == nil ? nil : timestamp
1170
+ end
1171
+
1172
+ def to_json(options = {})
1173
+ hash = {}
1174
+ self.instance_variables.each do |var|
1175
+ hash[var.id2name.delete_prefix("@")] = self.instance_variable_get var
1176
+ end
1177
+ hash.to_json
1178
+ end
1179
+ end
1180
+
1146
1181
  # AccountUpdateResponse returns the fields of a Account after it has been updated by
1147
1182
  # a AccountUpdateRequest.
1148
1183
  class AccountUpdateResponse
@@ -1492,6 +1527,89 @@ module SDM
1492
1527
  end
1493
1528
  end
1494
1529
 
1530
+ class AmazonEKSInstanceProfileUserImpersonation
1531
+ # Bind interface
1532
+ attr_accessor :bind_interface
1533
+
1534
+ attr_accessor :certificate_authority
1535
+
1536
+ attr_accessor :cluster_name
1537
+ # A filter applied to the routing logic to pin datasource to nodes.
1538
+ attr_accessor :egress_filter
1539
+
1540
+ attr_accessor :endpoint
1541
+ # The path used to check the health of your connection. Defaults to `default`.
1542
+ attr_accessor :healthcheck_namespace
1543
+ # True if the datasource is reachable and the credentials are valid.
1544
+ attr_accessor :healthy
1545
+ # Unique identifier of the Resource.
1546
+ attr_accessor :id
1547
+ # Unique human-readable name of the Resource.
1548
+ attr_accessor :name
1549
+
1550
+ attr_accessor :region
1551
+
1552
+ attr_accessor :remote_identity_group_id
1553
+
1554
+ attr_accessor :remote_identity_healthcheck_username
1555
+
1556
+ attr_accessor :role_arn
1557
+
1558
+ attr_accessor :role_external_id
1559
+ # ID of the secret store containing credentials for this resource, if any.
1560
+ attr_accessor :secret_store_id
1561
+ # Subdomain is the local DNS address. (e.g. app-prod1 turns into app-prod1.your-org-name.sdm.network)
1562
+ attr_accessor :subdomain
1563
+ # Tags is a map of key, value pairs.
1564
+ attr_accessor :tags
1565
+
1566
+ def initialize(
1567
+ bind_interface: nil,
1568
+ certificate_authority: nil,
1569
+ cluster_name: nil,
1570
+ egress_filter: nil,
1571
+ endpoint: nil,
1572
+ healthcheck_namespace: nil,
1573
+ healthy: nil,
1574
+ id: nil,
1575
+ name: nil,
1576
+ region: nil,
1577
+ remote_identity_group_id: nil,
1578
+ remote_identity_healthcheck_username: nil,
1579
+ role_arn: nil,
1580
+ role_external_id: nil,
1581
+ secret_store_id: nil,
1582
+ subdomain: nil,
1583
+ tags: nil
1584
+ )
1585
+ @bind_interface = bind_interface == nil ? "" : bind_interface
1586
+ @certificate_authority = certificate_authority == nil ? "" : certificate_authority
1587
+ @cluster_name = cluster_name == nil ? "" : cluster_name
1588
+ @egress_filter = egress_filter == nil ? "" : egress_filter
1589
+ @endpoint = endpoint == nil ? "" : endpoint
1590
+ @healthcheck_namespace = healthcheck_namespace == nil ? "" : healthcheck_namespace
1591
+ @healthy = healthy == nil ? false : healthy
1592
+ @id = id == nil ? "" : id
1593
+ @name = name == nil ? "" : name
1594
+ @region = region == nil ? "" : region
1595
+ @remote_identity_group_id = remote_identity_group_id == nil ? "" : remote_identity_group_id
1596
+ @remote_identity_healthcheck_username = remote_identity_healthcheck_username == nil ? "" : remote_identity_healthcheck_username
1597
+ @role_arn = role_arn == nil ? "" : role_arn
1598
+ @role_external_id = role_external_id == nil ? "" : role_external_id
1599
+ @secret_store_id = secret_store_id == nil ? "" : secret_store_id
1600
+ @subdomain = subdomain == nil ? "" : subdomain
1601
+ @tags = tags == nil ? SDM::_porcelain_zero_value_tags() : tags
1602
+ end
1603
+
1604
+ def to_json(options = {})
1605
+ hash = {}
1606
+ self.instance_variables.each do |var|
1607
+ hash[var.id2name.delete_prefix("@")] = self.instance_variable_get var
1608
+ end
1609
+ hash.to_json
1610
+ end
1611
+ end
1612
+
1495
1613
  class AmazonEKSUserImpersonation
1496
1614
  attr_accessor :access_key
1497
1615
  # Bind interface
@@ -2047,7 +2165,6 @@ module SDM
2047
2165
  end
2048
2166
  end
2049
2167
 
2050
- # AzureMysql is currently unstable, and its API may change, or it may be removed, without a major version bump.
2051
2168
  class AzureMysql
2052
2169
  # Bind interface
2053
2170
  attr_accessor :bind_interface
@@ -5807,7 +5924,11 @@ module SDM
5807
5924
  end
5808
5925
  end
5809
5926
 
5810
- # A Query is a record of a single client request to a resource, such as an SQL query.
5927
+ # A Query is a record of a single client request to a resource, such as a SQL query.
5928
+ # Longer-running queries including long-running SSH commands and SSH, RDP, or Kubernetes
5929
+ # interactive sessions will return two Query records with the same identifier, one record
5930
+ # at the start of the query and a second record upon the completion of the query with
5931
+ # additional detail.
5811
5932
  class Query
5812
5933
  # The email of the account performing this query, at the time the query was executed.
5813
5934
  # If the account email is later changed, that change will not be reflected via this field.
@@ -5823,6 +5944,9 @@ module SDM
5823
5944
  # The tags of the account accessed, at the time the query was executed. If the account
5824
5945
  # tags are later changed, that change will not be reflected via this field.
5825
5946
  attr_accessor :account_tags
5947
+ # The time at which the Query was completed.
5948
+ # Empty if this record indicates the start of a long-running query.
5949
+ attr_accessor :completed_at
5826
5950
  # The duration of the Query.
5827
5951
  attr_accessor :duration
5828
5952
  # The unique ID of the node through which the Resource was accessed.
@@ -5858,7 +5982,7 @@ module SDM
5858
5982
  attr_accessor :resource_tags
5859
5983
  # The specific type of Resource against which the Query was performed, e.g. "ssh" or "postgres".
5860
5984
  attr_accessor :resource_type
5861
- # The time at which the Query was performed.
5985
+ # The time at which the Query was started.
5862
5986
  attr_accessor :timestamp
5863
5987
 
5864
5988
  def initialize(
@@ -5867,6 +5991,7 @@ module SDM
5867
5991
  account_id: nil,
5868
5992
  account_last_name: nil,
5869
5993
  account_tags: nil,
5994
+ completed_at: nil,
5870
5995
  duration: nil,
5871
5996
  egress_node_id: nil,
5872
5997
  encrypted: nil,
@@ -5889,6 +6014,7 @@ module SDM
5889
6014
  @account_id = account_id == nil ? "" : account_id
5890
6015
  @account_last_name = account_last_name == nil ? "" : account_last_name
5891
6016
  @account_tags = account_tags == nil ? SDM::_porcelain_zero_value_tags() : account_tags
6017
+ @completed_at = completed_at == nil ? nil : completed_at
5892
6018
  @duration = duration == nil ? nil : duration
5893
6019
  @egress_node_id = egress_node_id == nil ? "" : egress_node_id
5894
6020
  @encrypted = encrypted == nil ? false : encrypted
@@ -7972,6 +8098,78 @@ module SDM
7972
8098
  end
7973
8099
  end
7974
8100
 
8101
+ # Trino is currently unstable, and its API may change, or it may be removed, without a major version bump.
8102
+ class Trino
8103
+ # Bind interface
8104
+ attr_accessor :bind_interface
8105
+
8106
+ attr_accessor :database
8107
+ # A filter applied to the routing logic to pin datasource to nodes.
8108
+ attr_accessor :egress_filter
8109
+ # True if the datasource is reachable and the credentials are valid.
8110
+ attr_accessor :healthy
8111
+
8112
+ attr_accessor :hostname
8113
+ # Unique identifier of the Resource.
8114
+ attr_accessor :id
8115
+ # Unique human-readable name of the Resource.
8116
+ attr_accessor :name
8117
+
8118
+ attr_accessor :password
8119
+
8120
+ attr_accessor :port
8121
+
8122
+ attr_accessor :port_override
8123
+ # ID of the secret store containing credentials for this resource, if any.
8124
+ attr_accessor :secret_store_id
8125
+ # Subdomain is the local DNS address. (e.g. app-prod1 turns into app-prod1.your-org-name.sdm.network)
8126
+ attr_accessor :subdomain
8127
+ # Tags is a map of key, value pairs.
8128
+ attr_accessor :tags
8129
+
8130
+ attr_accessor :username
8131
+
8132
+ def initialize(
8133
+ bind_interface: nil,
8134
+ database: nil,
8135
+ egress_filter: nil,
8136
+ healthy: nil,
8137
+ hostname: nil,
8138
+ id: nil,
8139
+ name: nil,
8140
+ password: nil,
8141
+ port: nil,
8142
+ port_override: nil,
8143
+ secret_store_id: nil,
8144
+ subdomain: nil,
8145
+ tags: nil,
8146
+ username: nil
8147
+ )
8148
+ @bind_interface = bind_interface == nil ? "" : bind_interface
8149
+ @database = database == nil ? "" : database
8150
+ @egress_filter = egress_filter == nil ? "" : egress_filter
8151
+ @healthy = healthy == nil ? false : healthy
8152
+ @hostname = hostname == nil ? "" : hostname
8153
+ @id = id == nil ? "" : id
8154
+ @name = name == nil ? "" : name
8155
+ @password = password == nil ? "" : password
8156
+ @port = port == nil ? 0 : port
8157
+ @port_override = port_override == nil ? 0 : port_override
8158
+ @secret_store_id = secret_store_id == nil ? "" : secret_store_id
8159
+ @subdomain = subdomain == nil ? "" : subdomain
8160
+ @tags = tags == nil ? SDM::_porcelain_zero_value_tags() : tags
8161
+ @username = username == nil ? "" : username
8162
+ end
8163
+
8164
+ def to_json(options = {})
8165
+ hash = {}
8166
+ self.instance_variables.each do |var|
8167
+ hash[var.id2name.delete_prefix("@")] = self.instance_variable_get var
8168
+ end
8169
+ hash.to_json
8170
+ end
8171
+ end
8172
+
7975
8173
  # UpdateResponseMetadata is reserved for future use.
7976
8174
  class UpdateResponseMetadata
7977
8175
  def initialize()
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.9.0"
32
+ USER_AGENT = "strongdm-sdk-ruby/3.11.0"
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.
@@ -60,6 +60,7 @@ module SDM #:nodoc:
60
60
  @account_grants_history = AccountGrantsHistory.new(@channel, self)
61
61
  @account_permissions = AccountPermissions.new(@channel, self)
62
62
  @account_resources = AccountResources.new(@channel, self)
63
+ @account_resources_history = AccountResourcesHistory.new(@channel, self)
63
64
  @accounts = Accounts.new(@channel, self)
64
65
  @accounts_history = AccountsHistory.new(@channel, self)
65
66
  @activities = Activities.new(@channel, self)
@@ -197,6 +198,10 @@ module SDM #:nodoc:
197
198
  #
198
199
  # See {AccountResources}.
199
200
  attr_reader :account_resources
201
+ # AccountResourcesHistory records all changes to the state of a AccountResource.
202
+ #
203
+ # See {AccountResourcesHistory}.
204
+ attr_reader :account_resources_history
200
205
  # Accounts are users that have access to strongDM. There are two types of accounts:
201
206
  # 1. **Users:** humans who are authenticated through username and password or SSO.
202
207
  # 2. **Service Accounts:** machines that are authenticated using a service token.
@@ -231,7 +236,7 @@ module SDM #:nodoc:
231
236
  #
232
237
  # See {OrganizationHistory}.
233
238
  attr_reader :organization_history
234
- # A Query is a record of a single client request to a resource, such as an SQL query.
239
+ # A Query is a record of a single client request to a resource, such as a SQL query.
235
240
  # Long-running SSH, RDP, or Kubernetes interactive sessions also count as queries.
236
241
  # The Queries service is read-only.
237
242
  #
@@ -311,6 +316,7 @@ module SDM #:nodoc:
311
316
  @account_grants_history = AccountGrantsHistory.new(@channel, self)
312
317
  @account_permissions = AccountPermissions.new(@channel, self)
313
318
  @account_resources = AccountResources.new(@channel, self)
319
+ @account_resources_history = AccountResourcesHistory.new(@channel, self)
314
320
  @accounts = Accounts.new(@channel, self)
315
321
  @accounts_history = AccountsHistory.new(@channel, self)
316
322
  @activities = Activities.new(@channel, self)
data/lib/svc.rb CHANGED
@@ -662,6 +662,62 @@ module SDM #:nodoc:
662
662
  end
663
663
  end
664
664
 
665
+ # AccountResourcesHistory records all changes to the state of a AccountResource.
666
+ #
667
+ # See {AccountResourceHistory}.
668
+ class AccountResourcesHistory
669
+ extend Gem::Deprecate
670
+
671
+ def initialize(channel, parent)
672
+ begin
673
+ @stub = V1::AccountResourcesHistory::Stub.new(nil, nil, channel_override: channel)
674
+ rescue => exception
675
+ raise Plumbing::convert_error_to_porcelain(exception)
676
+ end
677
+ @parent = parent
678
+ end
679
+
680
+ # List gets a list of AccountResourceHistory records matching a given set of criteria.
681
+ def list(
682
+ filter,
683
+ *args,
684
+ deadline: nil
685
+ )
686
+ req = V1::AccountResourceHistoryListRequest.new()
687
+ req.meta = V1::ListRequestMetadata.new()
688
+ page_size_option = @parent._test_options["PageSize"]
689
+ if page_size_option.is_a? Integer
690
+ req.meta.limit = page_size_option
691
+ end
692
+ if not @parent.snapshot_time.nil?
693
+ req.meta.snapshot_at = @parent.snapshot_time
694
+ end
695
+
696
+ req.filter = Plumbing::quote_filter_args(filter, *args)
697
+ resp = Enumerator::Generator.new { |g|
698
+ tries = 0
699
+ loop do
700
+ begin
701
+ plumbing_response = @stub.list(req, metadata: @parent.get_metadata("AccountResourcesHistory.List", req), deadline: deadline)
702
+ rescue => exception
703
+ if (@parent.shouldRetry(tries, exception))
704
+ tries + +@parent.jitterSleep(tries)
705
+ next
706
+ end
707
+ raise Plumbing::convert_error_to_porcelain(exception)
708
+ end
709
+ tries = 0
710
+ plumbing_response.history.each do |plumbing_item|
711
+ g.yield Plumbing::convert_account_resource_history_to_porcelain(plumbing_item)
712
+ end
713
+ break if plumbing_response.meta.next_cursor == ""
714
+ req.meta.cursor = plumbing_response.meta.next_cursor
715
+ end
716
+ }
717
+ resp
718
+ end
719
+ end
720
+
665
721
  # Accounts are users that have access to strongDM. There are two types of accounts:
666
722
  # 1. **Users:** humans who are authenticated through username and password or SSO.
667
723
  # 2. **Service Accounts:** machines that are authenticated using a service token.
@@ -1430,7 +1486,7 @@ module SDM #:nodoc:
1430
1486
  end
1431
1487
  end
1432
1488
 
1433
- # A Query is a record of a single client request to a resource, such as an SQL query.
1489
+ # A Query is a record of a single client request to a resource, such as a SQL query.
1434
1490
  # Long-running SSH, RDP, or Kubernetes interactive sessions also count as queries.
1435
1491
  # The Queries service is read-only.
1436
1492
  #
@@ -2006,6 +2062,7 @@ module SDM #:nodoc:
2006
2062
  # {AKSUserImpersonation}
2007
2063
  # {AmazonEKS}
2008
2064
  # {AmazonEKSInstanceProfile}
2065
+ # {AmazonEKSInstanceProfileUserImpersonation}
2009
2066
  # {AmazonEKSUserImpersonation}
2010
2067
  # {AmazonES}
2011
2068
  # {AmazonMQAMQP091}
@@ -2075,6 +2132,7 @@ module SDM #:nodoc:
2075
2132
  # {Sybase}
2076
2133
  # {SybaseIQ}
2077
2134
  # {Teradata}
2135
+ # {Trino}
2078
2136
  class Resources
2079
2137
  extend Gem::Deprecate
2080
2138
 
data/lib/version CHANGED
@@ -13,5 +13,5 @@
13
13
  # limitations under the License.
14
14
  #
15
15
  module SDM
16
- VERSION = "3.9.0"
16
+ VERSION = "3.11.0"
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.9.0"
16
+ VERSION = "3.11.0"
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.9.0
4
+ version: 3.11.0
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-03-23 00:00:00.000000000 Z
11
+ date: 2023-04-14 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-f2b15914b2f3a34011acabdc2fa8ca0c4058ef77.idx"
85
- - "./.git/objects/pack/pack-f2b15914b2f3a34011acabdc2fa8ca0c4058ef77.pack"
84
+ - "./.git/objects/pack/pack-4eb0d24ffce2f2f85af8f38bad16b738c3ff5ae6.idx"
85
+ - "./.git/objects/pack/pack-4eb0d24ffce2f2f85af8f38bad16b738c3ff5ae6.pack"
86
86
  - "./.git/packed-refs"
87
87
  - "./.git/refs/heads/master"
88
88
  - "./.git/refs/remotes/origin/HEAD"
@@ -102,6 +102,8 @@ files:
102
102
  - "./lib/grpc/account_grants_services_pb.rb"
103
103
  - "./lib/grpc/account_permissions_pb.rb"
104
104
  - "./lib/grpc/account_permissions_services_pb.rb"
105
+ - "./lib/grpc/account_resources_history_pb.rb"
106
+ - "./lib/grpc/account_resources_history_services_pb.rb"
105
107
  - "./lib/grpc/account_resources_pb.rb"
106
108
  - "./lib/grpc/account_resources_services_pb.rb"
107
109
  - "./lib/grpc/accounts_history_pb.rb"