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