strongdm 11.15.0 → 11.17.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-4f2968bd20a0045494b845027aca2efe999a68c0.idx → pack-69c1a45cd1d71a0a1a6bf0981aa9e0ac28aad184.idx} +0 -0
- data/.git/objects/pack/{pack-4f2968bd20a0045494b845027aca2efe999a68c0.pack → pack-69c1a45cd1d71a0a1a6bf0981aa9e0ac28aad184.pack} +0 -0
- data/.git/packed-refs +4 -2
- data/.git/refs/heads/master +1 -1
- data/lib/grpc/drivers_pb.rb +18 -0
- data/lib/grpc/health_checks_pb.rb +52 -0
- data/lib/grpc/health_checks_services_pb.rb +38 -0
- data/lib/grpc/plumbing.rb +149 -0
- data/lib/models/porcelain.rb +140 -0
- data/lib/strongdm.rb +8 -1
- data/lib/svc.rb +57 -0
- 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: 1ca44dffaac601860e6f5af54ff1cbfffc733cc52934c59fc66c16fd09dc695d
|
|
4
|
+
data.tar.gz: 6dcf82eaa5e6a2777084736685c8c3bf2b4ec29f1b93a4287f20ed0ea405becb
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 344b6e6fd9afe1b865adf23437b356430de15b24813b516d572d6ed34a079caced0ee3096dbea744fc0fd7476f5c8ced3633d08fbb2581fb8fcf7094b32ca533
|
|
7
|
+
data.tar.gz: 1a784eae70baf0accfff024800ec96297ab2b1d2259e5d2a0814f802bf21147a903d347766eeda4aebc4bf6255dc42ac36bfacc70da8c7d7d31524e33b75b33d
|
data/.git/ORIG_HEAD
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
5ea659281f2b7a99a04b52522551bce0625859eb
|
data/.git/index
CHANGED
|
Binary file
|
data/.git/logs/HEAD
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
0000000000000000000000000000000000000000
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
0000000000000000000000000000000000000000 5ea659281f2b7a99a04b52522551bce0625859eb root <root@216f1be888a4.(none)> 1730393736 +0000 clone: from github.com:strongdm/strongdm-sdk-ruby.git
|
|
2
|
+
5ea659281f2b7a99a04b52522551bce0625859eb 5ea659281f2b7a99a04b52522551bce0625859eb root <root@216f1be888a4.(none)> 1730393736 +0000 checkout: moving from master to master
|
|
3
|
+
5ea659281f2b7a99a04b52522551bce0625859eb 1e1852727f8fb5404f59461655b2b73fb270d925 root <root@216f1be888a4.(none)> 1730393736 +0000 merge origin/development: Fast-forward
|
data/.git/logs/refs/heads/master
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
0000000000000000000000000000000000000000
|
|
2
|
-
|
|
1
|
+
0000000000000000000000000000000000000000 5ea659281f2b7a99a04b52522551bce0625859eb root <root@216f1be888a4.(none)> 1730393736 +0000 clone: from github.com:strongdm/strongdm-sdk-ruby.git
|
|
2
|
+
5ea659281f2b7a99a04b52522551bce0625859eb 1e1852727f8fb5404f59461655b2b73fb270d925 root <root@216f1be888a4.(none)> 1730393736 +0000 merge origin/development: Fast-forward
|
|
@@ -1 +1 @@
|
|
|
1
|
-
0000000000000000000000000000000000000000
|
|
1
|
+
0000000000000000000000000000000000000000 5ea659281f2b7a99a04b52522551bce0625859eb root <root@216f1be888a4.(none)> 1730393736 +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
|
+
1e1852727f8fb5404f59461655b2b73fb270d925 refs/remotes/origin/development
|
|
3
|
+
5ea659281f2b7a99a04b52522551bce0625859eb 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,8 @@ bf1c418728ff5a8ff1ffb1c261dcffbca06612f6 refs/tags/v11.11.2
|
|
|
42
42
|
aca824df29f19d5db284f1b94a34f5a3f2d2cbc7 refs/tags/v11.12.0
|
|
43
43
|
323de62143b58142c1b49dba2ab9e120aa44926e refs/tags/v11.13.0
|
|
44
44
|
30dce70c61509dfd3e9f9b427dcb406e68985697 refs/tags/v11.14.0
|
|
45
|
+
76f5a2a075048c179bcabe4cad4f3e66e1f10b12 refs/tags/v11.15.0
|
|
46
|
+
5ea659281f2b7a99a04b52522551bce0625859eb refs/tags/v11.16.0
|
|
45
47
|
9103d7d0e3104e99edb3d9a188d231ae0ce3947f refs/tags/v11.3.0
|
|
46
48
|
8c7312bf4266bdfeff959667faba7f8ef1e58f27 refs/tags/v11.4.0
|
|
47
49
|
d181d0dc49250f81e47eea64cdd8e6a93f7a95da refs/tags/v11.5.0
|
data/.git/refs/heads/master
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
1e1852727f8fb5404f59461655b2b73fb270d925
|
data/lib/grpc/drivers_pb.rb
CHANGED
|
@@ -32,6 +32,7 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
|
|
|
32
32
|
optional :aws, :message, 2300, "v1.AWS"
|
|
33
33
|
optional :aws_console, :message, 3000, "v1.AWSConsole"
|
|
34
34
|
optional :aws_console_static_key_pair, :message, 3001, "v1.AWSConsoleStaticKeyPair"
|
|
35
|
+
optional :aws_instance_profile, :message, 2301, "v1.AWSInstanceProfile"
|
|
35
36
|
optional :amazon_eks, :message, 802, "v1.AmazonEKS"
|
|
36
37
|
optional :amazon_eks_instance_profile, :message, 809, "v1.AmazonEKSInstanceProfile"
|
|
37
38
|
optional :amazon_eks_instance_profile_user_impersonation, :message, 813, "v1.AmazonEKSInstanceProfileUserImpersonation"
|
|
@@ -264,6 +265,22 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
|
|
|
264
265
|
optional :session_expiry, :int32, 6
|
|
265
266
|
optional :subdomain, :string, 7
|
|
266
267
|
end
|
|
268
|
+
add_message "v1.AWSInstanceProfile" do
|
|
269
|
+
optional :id, :string, 32768
|
|
270
|
+
optional :name, :string, 32769
|
|
271
|
+
optional :healthy, :bool, 32770
|
|
272
|
+
optional :tags, :message, 32771, "v1.Tags"
|
|
273
|
+
optional :secret_store_id, :string, 32772
|
|
274
|
+
optional :egress_filter, :string, 32773
|
|
275
|
+
optional :bind_interface, :string, 32774
|
|
276
|
+
optional :proxy_cluster_id, :string, 32776
|
|
277
|
+
optional :subdomain, :string, 32775
|
|
278
|
+
optional :enable_env_variables, :bool, 1
|
|
279
|
+
optional :port_override, :int32, 8
|
|
280
|
+
optional :region, :string, 2
|
|
281
|
+
optional :role_arn, :string, 3
|
|
282
|
+
optional :role_external_id, :string, 4
|
|
283
|
+
end
|
|
267
284
|
add_message "v1.AmazonEKS" do
|
|
268
285
|
optional :id, :string, 32768
|
|
269
286
|
optional :name, :string, 32769
|
|
@@ -1705,6 +1722,7 @@ module V1
|
|
|
1705
1722
|
AWS = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.AWS").msgclass
|
|
1706
1723
|
AWSConsole = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.AWSConsole").msgclass
|
|
1707
1724
|
AWSConsoleStaticKeyPair = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.AWSConsoleStaticKeyPair").msgclass
|
|
1725
|
+
AWSInstanceProfile = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.AWSInstanceProfile").msgclass
|
|
1708
1726
|
AmazonEKS = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.AmazonEKS").msgclass
|
|
1709
1727
|
AmazonEKSInstanceProfile = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.AmazonEKSInstanceProfile").msgclass
|
|
1710
1728
|
AmazonEKSInstanceProfileUserImpersonation = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.AmazonEKSInstanceProfileUserImpersonation").msgclass
|
|
@@ -0,0 +1,52 @@
|
|
|
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: health_checks.proto
|
|
17
|
+
|
|
18
|
+
require "google/protobuf"
|
|
19
|
+
|
|
20
|
+
require "google/protobuf/timestamp_pb"
|
|
21
|
+
require "options_pb"
|
|
22
|
+
require "spec_pb"
|
|
23
|
+
|
|
24
|
+
Google::Protobuf::DescriptorPool.generated_pool.build do
|
|
25
|
+
add_file("health_checks.proto", :syntax => :proto3) do
|
|
26
|
+
add_message "v1.HealthcheckListRequest" do
|
|
27
|
+
optional :meta, :message, 1, "v1.ListRequestMetadata"
|
|
28
|
+
optional :filter, :string, 2
|
|
29
|
+
end
|
|
30
|
+
add_message "v1.HealthcheckListResponse" do
|
|
31
|
+
optional :meta, :message, 1, "v1.ListResponseMetadata"
|
|
32
|
+
repeated :healthchecks, :message, 2, "v1.Healthcheck"
|
|
33
|
+
optional :rate_limit, :message, 3, "v1.RateLimitMetadata"
|
|
34
|
+
end
|
|
35
|
+
add_message "v1.Healthcheck" do
|
|
36
|
+
optional :id, :string, 1
|
|
37
|
+
optional :resource_id, :string, 2
|
|
38
|
+
optional :resource_name, :string, 3
|
|
39
|
+
optional :node_id, :string, 4
|
|
40
|
+
optional :node_name, :string, 5
|
|
41
|
+
optional :healthy, :bool, 6
|
|
42
|
+
optional :error_msg, :string, 7
|
|
43
|
+
optional :timestamp, :message, 8, "google.protobuf.Timestamp"
|
|
44
|
+
end
|
|
45
|
+
end
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
module V1
|
|
49
|
+
HealthcheckListRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.HealthcheckListRequest").msgclass
|
|
50
|
+
HealthcheckListResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.HealthcheckListResponse").msgclass
|
|
51
|
+
Healthcheck = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.Healthcheck").msgclass
|
|
52
|
+
end
|
|
@@ -0,0 +1,38 @@
|
|
|
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: health_checks.proto for package 'v1'
|
|
17
|
+
|
|
18
|
+
require "grpc"
|
|
19
|
+
require "health_checks_pb"
|
|
20
|
+
|
|
21
|
+
module V1
|
|
22
|
+
module HealthChecks
|
|
23
|
+
# HealthChecks lists the last healthcheck between each node and resource.
|
|
24
|
+
# Note the unconventional capitalization here is to prevent having a collision with GRPC
|
|
25
|
+
class Service
|
|
26
|
+
include ::GRPC::GenericService
|
|
27
|
+
|
|
28
|
+
self.marshal_class_method = :encode
|
|
29
|
+
self.unmarshal_class_method = :decode
|
|
30
|
+
self.service_name = "v1.HealthChecks"
|
|
31
|
+
|
|
32
|
+
# List gets a list of Healthchecks matching a given set of criteria.
|
|
33
|
+
rpc :List, ::V1::HealthcheckListRequest, ::V1::HealthcheckListResponse
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
Stub = Service.rpc_stub_class
|
|
37
|
+
end
|
|
38
|
+
end
|
data/lib/grpc/plumbing.rb
CHANGED
|
@@ -42,6 +42,7 @@ require_relative "./approval_workflows_pb"
|
|
|
42
42
|
require_relative "./approval_workflows_history_pb"
|
|
43
43
|
require_relative "./control_panel_pb"
|
|
44
44
|
require_relative "./drivers_pb"
|
|
45
|
+
require_relative "./health_checks_pb"
|
|
45
46
|
require_relative "./identity_aliases_pb"
|
|
46
47
|
require_relative "./identity_aliases_history_pb"
|
|
47
48
|
require_relative "./identity_sets_pb"
|
|
@@ -746,6 +747,66 @@ module SDM
|
|
|
746
747
|
end
|
|
747
748
|
items
|
|
748
749
|
end
|
|
750
|
+
def self.convert_aws_instance_profile_to_porcelain(plumbing)
|
|
751
|
+
if plumbing == nil
|
|
752
|
+
return nil
|
|
753
|
+
end
|
|
754
|
+
porcelain = AWSInstanceProfile.new()
|
|
755
|
+
porcelain.bind_interface = (plumbing.bind_interface)
|
|
756
|
+
porcelain.egress_filter = (plumbing.egress_filter)
|
|
757
|
+
porcelain.enable_env_variables = (plumbing.enable_env_variables)
|
|
758
|
+
porcelain.healthy = (plumbing.healthy)
|
|
759
|
+
porcelain.id = (plumbing.id)
|
|
760
|
+
porcelain.name = (plumbing.name)
|
|
761
|
+
porcelain.port_override = (plumbing.port_override)
|
|
762
|
+
porcelain.proxy_cluster_id = (plumbing.proxy_cluster_id)
|
|
763
|
+
porcelain.region = (plumbing.region)
|
|
764
|
+
porcelain.role_arn = (plumbing.role_arn)
|
|
765
|
+
porcelain.role_external_id = (plumbing.role_external_id)
|
|
766
|
+
porcelain.secret_store_id = (plumbing.secret_store_id)
|
|
767
|
+
porcelain.subdomain = (plumbing.subdomain)
|
|
768
|
+
porcelain.tags = convert_tags_to_porcelain(plumbing.tags)
|
|
769
|
+
porcelain
|
|
770
|
+
end
|
|
771
|
+
|
|
772
|
+
def self.convert_aws_instance_profile_to_plumbing(porcelain)
|
|
773
|
+
if porcelain == nil
|
|
774
|
+
return nil
|
|
775
|
+
end
|
|
776
|
+
plumbing = V1::AWSInstanceProfile.new()
|
|
777
|
+
plumbing.bind_interface = (porcelain.bind_interface)
|
|
778
|
+
plumbing.egress_filter = (porcelain.egress_filter)
|
|
779
|
+
plumbing.enable_env_variables = (porcelain.enable_env_variables)
|
|
780
|
+
plumbing.healthy = (porcelain.healthy)
|
|
781
|
+
plumbing.id = (porcelain.id)
|
|
782
|
+
plumbing.name = (porcelain.name)
|
|
783
|
+
plumbing.port_override = (porcelain.port_override)
|
|
784
|
+
plumbing.proxy_cluster_id = (porcelain.proxy_cluster_id)
|
|
785
|
+
plumbing.region = (porcelain.region)
|
|
786
|
+
plumbing.role_arn = (porcelain.role_arn)
|
|
787
|
+
plumbing.role_external_id = (porcelain.role_external_id)
|
|
788
|
+
plumbing.secret_store_id = (porcelain.secret_store_id)
|
|
789
|
+
plumbing.subdomain = (porcelain.subdomain)
|
|
790
|
+
plumbing.tags = convert_tags_to_plumbing(porcelain.tags)
|
|
791
|
+
plumbing
|
|
792
|
+
end
|
|
793
|
+
def self.convert_repeated_aws_instance_profile_to_plumbing(porcelains)
|
|
794
|
+
items = Array.new
|
|
795
|
+
porcelains.each do |porcelain|
|
|
796
|
+
plumbing = convert_aws_instance_profile_to_plumbing(porcelain)
|
|
797
|
+
items.append(plumbing)
|
|
798
|
+
end
|
|
799
|
+
items
|
|
800
|
+
end
|
|
801
|
+
|
|
802
|
+
def self.convert_repeated_aws_instance_profile_to_porcelain(plumbings)
|
|
803
|
+
items = Array.new
|
|
804
|
+
plumbings.each do |plumbing|
|
|
805
|
+
porcelain = convert_aws_instance_profile_to_porcelain(plumbing)
|
|
806
|
+
items.append(porcelain)
|
|
807
|
+
end
|
|
808
|
+
items
|
|
809
|
+
end
|
|
749
810
|
def self.convert_aws_store_to_porcelain(plumbing)
|
|
750
811
|
if plumbing == nil
|
|
751
812
|
return nil
|
|
@@ -5691,6 +5752,88 @@ module SDM
|
|
|
5691
5752
|
end
|
|
5692
5753
|
items
|
|
5693
5754
|
end
|
|
5755
|
+
def self.convert_healthcheck_to_porcelain(plumbing)
|
|
5756
|
+
if plumbing == nil
|
|
5757
|
+
return nil
|
|
5758
|
+
end
|
|
5759
|
+
porcelain = Healthcheck.new()
|
|
5760
|
+
porcelain.error_msg = (plumbing.error_msg)
|
|
5761
|
+
porcelain.healthy = (plumbing.healthy)
|
|
5762
|
+
porcelain.id = (plumbing.id)
|
|
5763
|
+
porcelain.node_id = (plumbing.node_id)
|
|
5764
|
+
porcelain.node_name = (plumbing.node_name)
|
|
5765
|
+
porcelain.resource_id = (plumbing.resource_id)
|
|
5766
|
+
porcelain.resource_name = (plumbing.resource_name)
|
|
5767
|
+
porcelain.timestamp = convert_timestamp_to_porcelain(plumbing.timestamp)
|
|
5768
|
+
porcelain
|
|
5769
|
+
end
|
|
5770
|
+
|
|
5771
|
+
def self.convert_healthcheck_to_plumbing(porcelain)
|
|
5772
|
+
if porcelain == nil
|
|
5773
|
+
return nil
|
|
5774
|
+
end
|
|
5775
|
+
plumbing = V1::Healthcheck.new()
|
|
5776
|
+
plumbing.error_msg = (porcelain.error_msg)
|
|
5777
|
+
plumbing.healthy = (porcelain.healthy)
|
|
5778
|
+
plumbing.id = (porcelain.id)
|
|
5779
|
+
plumbing.node_id = (porcelain.node_id)
|
|
5780
|
+
plumbing.node_name = (porcelain.node_name)
|
|
5781
|
+
plumbing.resource_id = (porcelain.resource_id)
|
|
5782
|
+
plumbing.resource_name = (porcelain.resource_name)
|
|
5783
|
+
plumbing.timestamp = convert_timestamp_to_plumbing(porcelain.timestamp)
|
|
5784
|
+
plumbing
|
|
5785
|
+
end
|
|
5786
|
+
def self.convert_repeated_healthcheck_to_plumbing(porcelains)
|
|
5787
|
+
items = Array.new
|
|
5788
|
+
porcelains.each do |porcelain|
|
|
5789
|
+
plumbing = convert_healthcheck_to_plumbing(porcelain)
|
|
5790
|
+
items.append(plumbing)
|
|
5791
|
+
end
|
|
5792
|
+
items
|
|
5793
|
+
end
|
|
5794
|
+
|
|
5795
|
+
def self.convert_repeated_healthcheck_to_porcelain(plumbings)
|
|
5796
|
+
items = Array.new
|
|
5797
|
+
plumbings.each do |plumbing|
|
|
5798
|
+
porcelain = convert_healthcheck_to_porcelain(plumbing)
|
|
5799
|
+
items.append(porcelain)
|
|
5800
|
+
end
|
|
5801
|
+
items
|
|
5802
|
+
end
|
|
5803
|
+
def self.convert_healthcheck_list_response_to_porcelain(plumbing)
|
|
5804
|
+
if plumbing == nil
|
|
5805
|
+
return nil
|
|
5806
|
+
end
|
|
5807
|
+
porcelain = HealthcheckListResponse.new()
|
|
5808
|
+
porcelain.rate_limit = convert_rate_limit_metadata_to_porcelain(plumbing.rate_limit)
|
|
5809
|
+
porcelain
|
|
5810
|
+
end
|
|
5811
|
+
|
|
5812
|
+
def self.convert_healthcheck_list_response_to_plumbing(porcelain)
|
|
5813
|
+
if porcelain == nil
|
|
5814
|
+
return nil
|
|
5815
|
+
end
|
|
5816
|
+
plumbing = V1::HealthcheckListResponse.new()
|
|
5817
|
+
plumbing.rate_limit = convert_rate_limit_metadata_to_plumbing(porcelain.rate_limit)
|
|
5818
|
+
plumbing
|
|
5819
|
+
end
|
|
5820
|
+
def self.convert_repeated_healthcheck_list_response_to_plumbing(porcelains)
|
|
5821
|
+
items = Array.new
|
|
5822
|
+
porcelains.each do |porcelain|
|
|
5823
|
+
plumbing = convert_healthcheck_list_response_to_plumbing(porcelain)
|
|
5824
|
+
items.append(plumbing)
|
|
5825
|
+
end
|
|
5826
|
+
items
|
|
5827
|
+
end
|
|
5828
|
+
|
|
5829
|
+
def self.convert_repeated_healthcheck_list_response_to_porcelain(plumbings)
|
|
5830
|
+
items = Array.new
|
|
5831
|
+
plumbings.each do |plumbing|
|
|
5832
|
+
porcelain = convert_healthcheck_list_response_to_porcelain(plumbing)
|
|
5833
|
+
items.append(porcelain)
|
|
5834
|
+
end
|
|
5835
|
+
items
|
|
5836
|
+
end
|
|
5694
5837
|
def self.convert_identity_alias_to_porcelain(plumbing)
|
|
5695
5838
|
if plumbing == nil
|
|
5696
5839
|
return nil
|
|
@@ -10281,6 +10424,9 @@ module SDM
|
|
|
10281
10424
|
if porcelain.instance_of? AWSConsoleStaticKeyPair
|
|
10282
10425
|
plumbing.aws_console_static_key_pair = convert_aws_console_static_key_pair_to_plumbing(porcelain)
|
|
10283
10426
|
end
|
|
10427
|
+
if porcelain.instance_of? AWSInstanceProfile
|
|
10428
|
+
plumbing.aws_instance_profile = convert_aws_instance_profile_to_plumbing(porcelain)
|
|
10429
|
+
end
|
|
10284
10430
|
if porcelain.instance_of? Azure
|
|
10285
10431
|
plumbing.azure = convert_azure_to_plumbing(porcelain)
|
|
10286
10432
|
end
|
|
@@ -10549,6 +10695,9 @@ module SDM
|
|
|
10549
10695
|
if plumbing.aws_console_static_key_pair != nil
|
|
10550
10696
|
return convert_aws_console_static_key_pair_to_porcelain(plumbing.aws_console_static_key_pair)
|
|
10551
10697
|
end
|
|
10698
|
+
if plumbing.aws_instance_profile != nil
|
|
10699
|
+
return convert_aws_instance_profile_to_porcelain(plumbing.aws_instance_profile)
|
|
10700
|
+
end
|
|
10552
10701
|
if plumbing.azure != nil
|
|
10553
10702
|
return convert_azure_to_porcelain(plumbing.azure)
|
|
10554
10703
|
end
|
data/lib/models/porcelain.rb
CHANGED
|
@@ -728,6 +728,77 @@ module SDM
|
|
|
728
728
|
end
|
|
729
729
|
end
|
|
730
730
|
|
|
731
|
+
class AWSInstanceProfile
|
|
732
|
+
# The bind interface is the IP address to which the port override of a resource is bound (for example, 127.0.0.1). It is automatically generated if not provided.
|
|
733
|
+
attr_accessor :bind_interface
|
|
734
|
+
# A filter applied to the routing logic to pin datasource to nodes.
|
|
735
|
+
attr_accessor :egress_filter
|
|
736
|
+
# If true, prefer environment variables to authenticate connection even if EC2 roles are configured.
|
|
737
|
+
attr_accessor :enable_env_variables
|
|
738
|
+
# True if the datasource is reachable and the credentials are valid.
|
|
739
|
+
attr_accessor :healthy
|
|
740
|
+
# Unique identifier of the Resource.
|
|
741
|
+
attr_accessor :id
|
|
742
|
+
# Unique human-readable name of the Resource.
|
|
743
|
+
attr_accessor :name
|
|
744
|
+
# The local port used by clients to connect to this resource.
|
|
745
|
+
attr_accessor :port_override
|
|
746
|
+
# ID of the proxy cluster for this resource, if any.
|
|
747
|
+
attr_accessor :proxy_cluster_id
|
|
748
|
+
# The AWS region to connect to.
|
|
749
|
+
attr_accessor :region
|
|
750
|
+
# The role to assume after logging in.
|
|
751
|
+
attr_accessor :role_arn
|
|
752
|
+
# The external ID to associate with assume role requests. Does nothing if a role ARN is not provided.
|
|
753
|
+
attr_accessor :role_external_id
|
|
754
|
+
# ID of the secret store containing credentials for this resource, if any.
|
|
755
|
+
attr_accessor :secret_store_id
|
|
756
|
+
# Subdomain is the local DNS address. (e.g. app-prod1 turns into app-prod1.your-org-name.sdm.network)
|
|
757
|
+
attr_accessor :subdomain
|
|
758
|
+
# Tags is a map of key, value pairs.
|
|
759
|
+
attr_accessor :tags
|
|
760
|
+
|
|
761
|
+
def initialize(
|
|
762
|
+
bind_interface: nil,
|
|
763
|
+
egress_filter: nil,
|
|
764
|
+
enable_env_variables: nil,
|
|
765
|
+
healthy: nil,
|
|
766
|
+
id: nil,
|
|
767
|
+
name: nil,
|
|
768
|
+
port_override: nil,
|
|
769
|
+
proxy_cluster_id: nil,
|
|
770
|
+
region: nil,
|
|
771
|
+
role_arn: nil,
|
|
772
|
+
role_external_id: nil,
|
|
773
|
+
secret_store_id: nil,
|
|
774
|
+
subdomain: nil,
|
|
775
|
+
tags: nil
|
|
776
|
+
)
|
|
777
|
+
@bind_interface = bind_interface == nil ? "" : bind_interface
|
|
778
|
+
@egress_filter = egress_filter == nil ? "" : egress_filter
|
|
779
|
+
@enable_env_variables = enable_env_variables == nil ? false : enable_env_variables
|
|
780
|
+
@healthy = healthy == nil ? false : healthy
|
|
781
|
+
@id = id == nil ? "" : id
|
|
782
|
+
@name = name == nil ? "" : name
|
|
783
|
+
@port_override = port_override == nil ? 0 : port_override
|
|
784
|
+
@proxy_cluster_id = proxy_cluster_id == nil ? "" : proxy_cluster_id
|
|
785
|
+
@region = region == nil ? "" : region
|
|
786
|
+
@role_arn = role_arn == nil ? "" : role_arn
|
|
787
|
+
@role_external_id = role_external_id == nil ? "" : role_external_id
|
|
788
|
+
@secret_store_id = secret_store_id == nil ? "" : secret_store_id
|
|
789
|
+
@subdomain = subdomain == nil ? "" : subdomain
|
|
790
|
+
@tags = tags == nil ? SDM::_porcelain_zero_value_tags() : tags
|
|
791
|
+
end
|
|
792
|
+
|
|
793
|
+
def to_json(options = {})
|
|
794
|
+
hash = {}
|
|
795
|
+
self.instance_variables.each do |var|
|
|
796
|
+
hash[var.id2name.delete_prefix("@")] = self.instance_variable_get var
|
|
797
|
+
end
|
|
798
|
+
hash.to_json
|
|
799
|
+
end
|
|
800
|
+
end
|
|
801
|
+
|
|
731
802
|
class AWSStore
|
|
732
803
|
# Unique identifier of the SecretStore.
|
|
733
804
|
attr_accessor :id
|
|
@@ -5652,6 +5723,75 @@ module SDM
|
|
|
5652
5723
|
end
|
|
5653
5724
|
end
|
|
5654
5725
|
|
|
5726
|
+
# Healthcheck defines the status of the link between a node and a resource
|
|
5727
|
+
class Healthcheck
|
|
5728
|
+
# The error if unhealthy
|
|
5729
|
+
attr_accessor :error_msg
|
|
5730
|
+
# Whether the healthcheck succeeded.
|
|
5731
|
+
attr_accessor :healthy
|
|
5732
|
+
# Unique identifier of the healthcheck.
|
|
5733
|
+
attr_accessor :id
|
|
5734
|
+
# Unique identifier of the healthcheck node.
|
|
5735
|
+
attr_accessor :node_id
|
|
5736
|
+
# The name of the node.
|
|
5737
|
+
attr_accessor :node_name
|
|
5738
|
+
# Unique identifier of the healthcheck resource.
|
|
5739
|
+
attr_accessor :resource_id
|
|
5740
|
+
# The name of the resource.
|
|
5741
|
+
attr_accessor :resource_name
|
|
5742
|
+
# The time at which the healthcheck state was recorded.
|
|
5743
|
+
attr_accessor :timestamp
|
|
5744
|
+
|
|
5745
|
+
def initialize(
|
|
5746
|
+
error_msg: nil,
|
|
5747
|
+
healthy: nil,
|
|
5748
|
+
id: nil,
|
|
5749
|
+
node_id: nil,
|
|
5750
|
+
node_name: nil,
|
|
5751
|
+
resource_id: nil,
|
|
5752
|
+
resource_name: nil,
|
|
5753
|
+
timestamp: nil
|
|
5754
|
+
)
|
|
5755
|
+
@error_msg = error_msg == nil ? "" : error_msg
|
|
5756
|
+
@healthy = healthy == nil ? false : healthy
|
|
5757
|
+
@id = id == nil ? "" : id
|
|
5758
|
+
@node_id = node_id == nil ? "" : node_id
|
|
5759
|
+
@node_name = node_name == nil ? "" : node_name
|
|
5760
|
+
@resource_id = resource_id == nil ? "" : resource_id
|
|
5761
|
+
@resource_name = resource_name == nil ? "" : resource_name
|
|
5762
|
+
@timestamp = timestamp == nil ? nil : timestamp
|
|
5763
|
+
end
|
|
5764
|
+
|
|
5765
|
+
def to_json(options = {})
|
|
5766
|
+
hash = {}
|
|
5767
|
+
self.instance_variables.each do |var|
|
|
5768
|
+
hash[var.id2name.delete_prefix("@")] = self.instance_variable_get var
|
|
5769
|
+
end
|
|
5770
|
+
hash.to_json
|
|
5771
|
+
end
|
|
5772
|
+
end
|
|
5773
|
+
|
|
5774
|
+
# HealthcheckListResponse returns a list of Healthchecks that meet the criteria of a
|
|
5775
|
+
# HealthcheckListRequest.
|
|
5776
|
+
class HealthcheckListResponse
|
|
5777
|
+
# Rate limit information.
|
|
5778
|
+
attr_accessor :rate_limit
|
|
5779
|
+
|
|
5780
|
+
def initialize(
|
|
5781
|
+
rate_limit: nil
|
|
5782
|
+
)
|
|
5783
|
+
@rate_limit = rate_limit == nil ? nil : rate_limit
|
|
5784
|
+
end
|
|
5785
|
+
|
|
5786
|
+
def to_json(options = {})
|
|
5787
|
+
hash = {}
|
|
5788
|
+
self.instance_variables.each do |var|
|
|
5789
|
+
hash[var.id2name.delete_prefix("@")] = self.instance_variable_get var
|
|
5790
|
+
end
|
|
5791
|
+
hash.to_json
|
|
5792
|
+
end
|
|
5793
|
+
end
|
|
5794
|
+
|
|
5655
5795
|
# IdentityAliases define the username to be used for a specific account
|
|
5656
5796
|
# when connecting to a remote resource using that identity set.
|
|
5657
5797
|
class IdentityAlias
|
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 = "2024-03-28"
|
|
32
|
-
USER_AGENT = "strongdm-sdk-ruby/11.
|
|
32
|
+
USER_AGENT = "strongdm-sdk-ruby/11.17.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.
|
|
@@ -75,6 +75,7 @@ module SDM #:nodoc:
|
|
|
75
75
|
@approval_workflows = ApprovalWorkflows.new(@channel, self)
|
|
76
76
|
@approval_workflows_history = ApprovalWorkflowsHistory.new(@channel, self)
|
|
77
77
|
@control_panel = ControlPanel.new(@channel, self)
|
|
78
|
+
@health_checks = HealthChecks.new(@channel, self)
|
|
78
79
|
@identity_aliases = IdentityAliases.new(@channel, self)
|
|
79
80
|
@identity_aliases_history = IdentityAliasesHistory.new(@channel, self)
|
|
80
81
|
@identity_sets = IdentitySets.new(@channel, self)
|
|
@@ -290,6 +291,11 @@ module SDM #:nodoc:
|
|
|
290
291
|
#
|
|
291
292
|
# See {ControlPanel}.
|
|
292
293
|
attr_reader :control_panel
|
|
294
|
+
# HealthChecks lists the last healthcheck between each node and resource.
|
|
295
|
+
# Note the unconventional capitalization here is to prevent having a collision with GRPC
|
|
296
|
+
#
|
|
297
|
+
# See {HealthChecks}.
|
|
298
|
+
attr_reader :health_checks
|
|
293
299
|
# IdentityAliases assign an alias to an account within an IdentitySet.
|
|
294
300
|
# The alias is used as the username when connecting to a identity supported resource.
|
|
295
301
|
#
|
|
@@ -485,6 +491,7 @@ module SDM #:nodoc:
|
|
|
485
491
|
@approval_workflows = ApprovalWorkflows.new(@channel, self)
|
|
486
492
|
@approval_workflows_history = ApprovalWorkflowsHistory.new(@channel, self)
|
|
487
493
|
@control_panel = ControlPanel.new(@channel, self)
|
|
494
|
+
@health_checks = HealthChecks.new(@channel, self)
|
|
488
495
|
@identity_aliases = IdentityAliases.new(@channel, self)
|
|
489
496
|
@identity_aliases_history = IdentityAliasesHistory.new(@channel, self)
|
|
490
497
|
@identity_sets = IdentitySets.new(@channel, self)
|
data/lib/svc.rb
CHANGED
|
@@ -2107,6 +2107,62 @@ module SDM #:nodoc:
|
|
|
2107
2107
|
end
|
|
2108
2108
|
end
|
|
2109
2109
|
|
|
2110
|
+
# HealthChecks lists the last healthcheck between each node and resource.
|
|
2111
|
+
# Note the unconventional capitalization here is to prevent having a collision with GRPC
|
|
2112
|
+
#
|
|
2113
|
+
# See {Healthcheck}.
|
|
2114
|
+
class HealthChecks
|
|
2115
|
+
extend Gem::Deprecate
|
|
2116
|
+
|
|
2117
|
+
def initialize(channel, parent)
|
|
2118
|
+
begin
|
|
2119
|
+
@stub = V1::HealthChecks::Stub.new(nil, nil, channel_override: channel)
|
|
2120
|
+
rescue => exception
|
|
2121
|
+
raise Plumbing::convert_error_to_porcelain(exception)
|
|
2122
|
+
end
|
|
2123
|
+
@parent = parent
|
|
2124
|
+
end
|
|
2125
|
+
|
|
2126
|
+
# List gets a list of Healthchecks matching a given set of criteria.
|
|
2127
|
+
def list(
|
|
2128
|
+
filter,
|
|
2129
|
+
*args,
|
|
2130
|
+
deadline: nil
|
|
2131
|
+
)
|
|
2132
|
+
req = V1::HealthcheckListRequest.new()
|
|
2133
|
+
req.meta = V1::ListRequestMetadata.new()
|
|
2134
|
+
if @parent.page_limit > 0
|
|
2135
|
+
req.meta.limit = @parent.page_limit
|
|
2136
|
+
end
|
|
2137
|
+
if not @parent.snapshot_time.nil?
|
|
2138
|
+
req.meta.snapshot_at = @parent.snapshot_time
|
|
2139
|
+
end
|
|
2140
|
+
|
|
2141
|
+
req.filter = Plumbing::quote_filter_args(filter, *args)
|
|
2142
|
+
resp = Enumerator::Generator.new { |g|
|
|
2143
|
+
tries = 0
|
|
2144
|
+
loop do
|
|
2145
|
+
begin
|
|
2146
|
+
plumbing_response = @stub.list(req, metadata: @parent.get_metadata("HealthChecks.List", req), deadline: deadline)
|
|
2147
|
+
rescue => exception
|
|
2148
|
+
if (@parent.shouldRetry(tries, exception))
|
|
2149
|
+
tries + +@parent.jitterSleep(tries)
|
|
2150
|
+
next
|
|
2151
|
+
end
|
|
2152
|
+
raise Plumbing::convert_error_to_porcelain(exception)
|
|
2153
|
+
end
|
|
2154
|
+
tries = 0
|
|
2155
|
+
plumbing_response.healthchecks.each do |plumbing_item|
|
|
2156
|
+
g.yield Plumbing::convert_healthcheck_to_porcelain(plumbing_item)
|
|
2157
|
+
end
|
|
2158
|
+
break if plumbing_response.meta.next_cursor == ""
|
|
2159
|
+
req.meta.cursor = plumbing_response.meta.next_cursor
|
|
2160
|
+
end
|
|
2161
|
+
}
|
|
2162
|
+
resp
|
|
2163
|
+
end
|
|
2164
|
+
end
|
|
2165
|
+
|
|
2110
2166
|
# IdentityAliases assign an alias to an account within an IdentitySet.
|
|
2111
2167
|
# The alias is used as the username when connecting to a identity supported resource.
|
|
2112
2168
|
#
|
|
@@ -4594,6 +4650,7 @@ module SDM #:nodoc:
|
|
|
4594
4650
|
# {AWS}
|
|
4595
4651
|
# {AWSConsole}
|
|
4596
4652
|
# {AWSConsoleStaticKeyPair}
|
|
4653
|
+
# {AWSInstanceProfile}
|
|
4597
4654
|
# {Azure}
|
|
4598
4655
|
# {AzureCertificate}
|
|
4599
4656
|
# {AzureMysql}
|
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: 11.
|
|
4
|
+
version: 11.17.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: 2024-10-
|
|
11
|
+
date: 2024-10-31 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-69c1a45cd1d71a0a1a6bf0981aa9e0ac28aad184.idx"
|
|
85
|
+
- "./.git/objects/pack/pack-69c1a45cd1d71a0a1a6bf0981aa9e0ac28aad184.pack"
|
|
86
86
|
- "./.git/packed-refs"
|
|
87
87
|
- "./.git/refs/heads/master"
|
|
88
88
|
- "./.git/refs/remotes/origin/HEAD"
|
|
@@ -133,6 +133,8 @@ files:
|
|
|
133
133
|
- "./lib/grpc/control_panel_pb.rb"
|
|
134
134
|
- "./lib/grpc/control_panel_services_pb.rb"
|
|
135
135
|
- "./lib/grpc/drivers_pb.rb"
|
|
136
|
+
- "./lib/grpc/health_checks_pb.rb"
|
|
137
|
+
- "./lib/grpc/health_checks_services_pb.rb"
|
|
136
138
|
- "./lib/grpc/identity_aliases_history_pb.rb"
|
|
137
139
|
- "./lib/grpc/identity_aliases_history_services_pb.rb"
|
|
138
140
|
- "./lib/grpc/identity_aliases_pb.rb"
|