strongdm 11.15.0 → 11.17.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ce9c97401ad24fa884267608c388af3c972c89a740283491d00c51c91dc56176
4
- data.tar.gz: 9f85d4e89bc22f4f83f264c465b90a82a5a1e3a0f70ef027b9f4a05f1e768c5b
3
+ metadata.gz: 1ca44dffaac601860e6f5af54ff1cbfffc733cc52934c59fc66c16fd09dc695d
4
+ data.tar.gz: 6dcf82eaa5e6a2777084736685c8c3bf2b4ec29f1b93a4287f20ed0ea405becb
5
5
  SHA512:
6
- metadata.gz: c91303d6ffca7579607a3cf78f7ad9e289c85b7afd230b5ac047b0fa584c7cde622217fba0ec05fa10c6e80e0e4cc44cef3eacb67cca009ddd3fde57225ec911
7
- data.tar.gz: ae8af37b0aa683175e972768283beba4d396c1e6cd7018d031fe49bc29cee7a4266d149b8d6af37b70a69e2855454fa60f3879cb7fc5626b566525e43a8b9db7
6
+ metadata.gz: 344b6e6fd9afe1b865adf23437b356430de15b24813b516d572d6ed34a079caced0ee3096dbea744fc0fd7476f5c8ced3633d08fbb2581fb8fcf7094b32ca533
7
+ data.tar.gz: 1a784eae70baf0accfff024800ec96297ab2b1d2259e5d2a0814f802bf21147a903d347766eeda4aebc4bf6255dc42ac36bfacc70da8c7d7d31524e33b75b33d
data/.git/ORIG_HEAD CHANGED
@@ -1 +1 @@
1
- 30dce70c61509dfd3e9f9b427dcb406e68985697
1
+ 5ea659281f2b7a99a04b52522551bce0625859eb
data/.git/index CHANGED
Binary file
data/.git/logs/HEAD CHANGED
@@ -1,3 +1,3 @@
1
- 0000000000000000000000000000000000000000 30dce70c61509dfd3e9f9b427dcb406e68985697 root <root@fa59e9c586c7.(none)> 1728921917 +0000 clone: from github.com:strongdm/strongdm-sdk-ruby.git
2
- 30dce70c61509dfd3e9f9b427dcb406e68985697 30dce70c61509dfd3e9f9b427dcb406e68985697 root <root@fa59e9c586c7.(none)> 1728921917 +0000 checkout: moving from master to master
3
- 30dce70c61509dfd3e9f9b427dcb406e68985697 76f5a2a075048c179bcabe4cad4f3e66e1f10b12 root <root@fa59e9c586c7.(none)> 1728921917 +0000 merge origin/development: Fast-forward
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
@@ -1,2 +1,2 @@
1
- 0000000000000000000000000000000000000000 30dce70c61509dfd3e9f9b427dcb406e68985697 root <root@fa59e9c586c7.(none)> 1728921917 +0000 clone: from github.com:strongdm/strongdm-sdk-ruby.git
2
- 30dce70c61509dfd3e9f9b427dcb406e68985697 76f5a2a075048c179bcabe4cad4f3e66e1f10b12 root <root@fa59e9c586c7.(none)> 1728921917 +0000 merge origin/development: Fast-forward
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 30dce70c61509dfd3e9f9b427dcb406e68985697 root <root@fa59e9c586c7.(none)> 1728921917 +0000 clone: from github.com:strongdm/strongdm-sdk-ruby.git
1
+ 0000000000000000000000000000000000000000 5ea659281f2b7a99a04b52522551bce0625859eb root <root@216f1be888a4.(none)> 1730393736 +0000 clone: from github.com:strongdm/strongdm-sdk-ruby.git
data/.git/packed-refs CHANGED
@@ -1,6 +1,6 @@
1
1
  # pack-refs with: peeled fully-peeled sorted
2
- 76f5a2a075048c179bcabe4cad4f3e66e1f10b12 refs/remotes/origin/development
3
- 30dce70c61509dfd3e9f9b427dcb406e68985697 refs/remotes/origin/master
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
@@ -1 +1 @@
1
- 76f5a2a075048c179bcabe4cad4f3e66e1f10b12
1
+ 1e1852727f8fb5404f59461655b2b73fb270d925
@@ -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
@@ -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.15.0"
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
@@ -13,5 +13,5 @@
13
13
  # limitations under the License.
14
14
  #
15
15
  module SDM
16
- VERSION = "11.15.0"
16
+ VERSION = "11.17.0"
17
17
  end
data/lib/version.rb CHANGED
@@ -13,5 +13,5 @@
13
13
  # limitations under the License.
14
14
  #
15
15
  module SDM
16
- VERSION = "11.15.0"
16
+ VERSION = "11.17.0"
17
17
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: strongdm
3
3
  version: !ruby/object:Gem::Version
4
- version: 11.15.0
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-14 00:00:00.000000000 Z
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-4f2968bd20a0045494b845027aca2efe999a68c0.idx"
85
- - "./.git/objects/pack/pack-4f2968bd20a0045494b845027aca2efe999a68c0.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"