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 +4 -4
- data/.git/ORIG_HEAD +1 -1
- data/.git/index +0 -0
- data/.git/logs/HEAD +3 -3
- data/.git/logs/refs/heads/master +2 -2
- data/.git/logs/refs/remotes/origin/HEAD +1 -1
- data/.git/objects/pack/{pack-f2b15914b2f3a34011acabdc2fa8ca0c4058ef77.idx → pack-4eb0d24ffce2f2f85af8f38bad16b738c3ff5ae6.idx} +0 -0
- data/.git/objects/pack/{pack-f2b15914b2f3a34011acabdc2fa8ca0c4058ef77.pack → pack-4eb0d24ffce2f2f85af8f38bad16b738c3ff5ae6.pack} +0 -0
- data/.git/packed-refs +4 -2
- data/.git/refs/heads/master +1 -1
- data/lib/constants.rb +7 -0
- data/lib/grpc/account_resources_history_pb.rb +48 -0
- data/lib/grpc/account_resources_history_services_pb.rb +37 -0
- data/lib/grpc/drivers_pb.rb +39 -0
- data/lib/grpc/plumbing.rb +181 -0
- data/lib/grpc/queries_pb.rb +1 -0
- data/lib/grpc/queries_services_pb.rb +1 -1
- data/lib/models/porcelain.rb +201 -3
- data/lib/strongdm.rb +8 -2
- data/lib/svc.rb +59 -1
- data/lib/version +1 -1
- data/lib/version.rb +1 -1
- metadata +6 -4
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 05d015d4f19aaf6ab38e9215d9f4012099b40c9749b58051ee3c907833eaeef5
|
|
4
|
+
data.tar.gz: a750ed1f27766b71aa28f38eb781fe9d7d8af82897443d1b04c0d9f3a2e64891
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 82d005454840630dfc91a4e5f890f92a1471285fae855a263f7d2974252a10f8ebb11ff609126ce7832c65cbf93d3c32815ace8dd07a8eed29805001f27d0fa3
|
|
7
|
+
data.tar.gz: 83cf7a434781fe5e190ecd30bad6b302a9942123f4d1d799f168fa018beff24110bff89d061ec8813d81326e5b0e096c3bb5b1d47ead74dc73a0c124d2bee925
|
data/.git/ORIG_HEAD
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
fb276eee8a0b2cc1415c25962410309b645373ed
|
data/.git/index
CHANGED
|
Binary file
|
data/.git/logs/HEAD
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
0000000000000000000000000000000000000000
|
|
2
|
-
|
|
3
|
-
|
|
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
|
data/.git/logs/refs/heads/master
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
0000000000000000000000000000000000000000
|
|
2
|
-
|
|
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
|
|
1
|
+
0000000000000000000000000000000000000000 fb276eee8a0b2cc1415c25962410309b645373ed root <root@8ff708ee8c17.(none)> 1681499499 +0000 clone: from github.com:strongdm/strongdm-sdk-ruby.git
|
|
Binary file
|
|
Binary file
|
data/.git/packed-refs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# pack-refs with: peeled fully-peeled sorted
|
|
2
|
-
|
|
3
|
-
|
|
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
|
data/.git/refs/heads/master
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
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
|
data/lib/grpc/drivers_pb.rb
CHANGED
|
@@ -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
|
data/lib/grpc/queries_pb.rb
CHANGED
|
@@ -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
|
|
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
|
data/lib/models/porcelain.rb
CHANGED
|
@@ -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
|
|
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
|
|
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.
|
|
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
|
|
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
|
|
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
data/lib/version.rb
CHANGED
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.
|
|
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-
|
|
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-
|
|
85
|
-
- "./.git/objects/pack/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"
|