strongdm 6.2.1 → 6.3.1

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.
@@ -0,0 +1,44 @@
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: secret_store_healths.proto for package 'v1'
17
+
18
+ require "grpc"
19
+ require "secret_store_healths_pb"
20
+
21
+ module V1
22
+ module SecretStoreHealths
23
+ # SecretStoreHealths exposes health states for secret stores.
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.SecretStoreHealths"
30
+
31
+ # List reports the health status of node to secret store pairs.
32
+ rpc :List, ::V1::SecretStoreHealthListRequest, ::V1::SecretStoreHealthListResponse
33
+ # Check pushes a healthcheck request for a secret store
34
+ # Deprecated: use Healthcheck instead
35
+ rpc :Check, ::V1::SecretStoreHealthCheckRequest, ::V1::SecretStoreHealthCheckResponse
36
+ # Healthcheck triggers a remote healthcheck request for a secret store. It may take minutes
37
+ # to propagate across a large network of Nodes. The call will return immediately, and the
38
+ # updated health of the Secret Store can be retrieved via List.
39
+ rpc :Healthcheck, ::V1::SecretStoreHealthcheckRequest, ::V1::SecretStoreHealthcheckResponse
40
+ end
41
+
42
+ Stub = Service.rpc_stub_class
43
+ end
44
+ end
@@ -32,8 +32,14 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
32
32
  optional :delinea, :message, 2900, "v1.DelineaStore"
33
33
  optional :gcp, :message, 201, "v1.GCPStore"
34
34
  optional :vault_app_role, :message, 4, "v1.VaultAppRoleStore"
35
+ optional :vault_app_role_cert_ssh, :message, 94, "v1.VaultAppRoleCertSSHStore"
36
+ optional :vault_app_role_cert_x_509, :message, 95, "v1.VaultAppRoleCertX509Store"
35
37
  optional :vault_tls, :message, 1, "v1.VaultTLSStore"
38
+ optional :vault_tls_cert_ssh, :message, 92, "v1.VaultTLSCertSSHStore"
39
+ optional :vault_tls_cert_x_509, :message, 93, "v1.VaultTLSCertX509Store"
36
40
  optional :vault_token, :message, 2, "v1.VaultTokenStore"
41
+ optional :vault_token_cert_ssh, :message, 90, "v1.VaultTokenCertSSHStore"
42
+ optional :vault_token_cert_x_509, :message, 91, "v1.VaultTokenCertX509Store"
37
43
  end
38
44
  end
39
45
  add_message "v1.AWSStore" do
@@ -86,6 +92,24 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
86
92
  optional :server_address, :string, 3
87
93
  optional :tags, :message, 8, "v1.Tags"
88
94
  end
95
+ add_message "v1.VaultAppRoleCertSSHStore" do
96
+ optional :id, :string, 1
97
+ optional :name, :string, 2
98
+ optional :namespace, :string, 5
99
+ optional :server_address, :string, 3
100
+ optional :signing_role, :string, 7
101
+ optional :ssh_mount_point, :string, 6
102
+ optional :tags, :message, 8, "v1.Tags"
103
+ end
104
+ add_message "v1.VaultAppRoleCertX509Store" do
105
+ optional :id, :string, 1
106
+ optional :name, :string, 2
107
+ optional :namespace, :string, 5
108
+ optional :pki_mount_point, :string, 6
109
+ optional :server_address, :string, 3
110
+ optional :signing_role, :string, 7
111
+ optional :tags, :message, 8, "v1.Tags"
112
+ end
89
113
  add_message "v1.VaultTLSStore" do
90
114
  optional :id, :string, 1
91
115
  optional :name, :string, 2
@@ -96,6 +120,30 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
96
120
  optional :server_address, :string, 3
97
121
  optional :tags, :message, 7, "v1.Tags"
98
122
  end
123
+ add_message "v1.VaultTLSCertSSHStore" do
124
+ optional :id, :string, 1
125
+ optional :name, :string, 2
126
+ optional :CA_cert_path, :string, 4
127
+ optional :client_cert_path, :string, 5
128
+ optional :client_key_path, :string, 6
129
+ optional :namespace, :string, 8
130
+ optional :server_address, :string, 3
131
+ optional :signing_role, :string, 10
132
+ optional :ssh_mount_point, :string, 9
133
+ optional :tags, :message, 7, "v1.Tags"
134
+ end
135
+ add_message "v1.VaultTLSCertX509Store" do
136
+ optional :id, :string, 1
137
+ optional :name, :string, 2
138
+ optional :CA_cert_path, :string, 4
139
+ optional :client_cert_path, :string, 5
140
+ optional :client_key_path, :string, 6
141
+ optional :namespace, :string, 8
142
+ optional :pki_mount_point, :string, 9
143
+ optional :server_address, :string, 3
144
+ optional :signing_role, :string, 10
145
+ optional :tags, :message, 7, "v1.Tags"
146
+ end
99
147
  add_message "v1.VaultTokenStore" do
100
148
  optional :id, :string, 1
101
149
  optional :name, :string, 2
@@ -103,6 +151,24 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
103
151
  optional :server_address, :string, 3
104
152
  optional :tags, :message, 4, "v1.Tags"
105
153
  end
154
+ add_message "v1.VaultTokenCertSSHStore" do
155
+ optional :id, :string, 1
156
+ optional :name, :string, 2
157
+ optional :namespace, :string, 5
158
+ optional :server_address, :string, 3
159
+ optional :signing_role, :string, 7
160
+ optional :ssh_mount_point, :string, 6
161
+ optional :tags, :message, 4, "v1.Tags"
162
+ end
163
+ add_message "v1.VaultTokenCertX509Store" do
164
+ optional :id, :string, 1
165
+ optional :name, :string, 2
166
+ optional :namespace, :string, 5
167
+ optional :pki_mount_point, :string, 6
168
+ optional :server_address, :string, 3
169
+ optional :signing_role, :string, 7
170
+ optional :tags, :message, 4, "v1.Tags"
171
+ end
106
172
  end
107
173
  end
108
174
 
@@ -116,6 +182,12 @@ module V1
116
182
  DelineaStore = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.DelineaStore").msgclass
117
183
  GCPStore = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.GCPStore").msgclass
118
184
  VaultAppRoleStore = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.VaultAppRoleStore").msgclass
185
+ VaultAppRoleCertSSHStore = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.VaultAppRoleCertSSHStore").msgclass
186
+ VaultAppRoleCertX509Store = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.VaultAppRoleCertX509Store").msgclass
119
187
  VaultTLSStore = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.VaultTLSStore").msgclass
188
+ VaultTLSCertSSHStore = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.VaultTLSCertSSHStore").msgclass
189
+ VaultTLSCertX509Store = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.VaultTLSCertX509Store").msgclass
120
190
  VaultTokenStore = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.VaultTokenStore").msgclass
191
+ VaultTokenCertSSHStore = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.VaultTokenCertSSHStore").msgclass
192
+ VaultTokenCertX509Store = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.VaultTokenCertX509Store").msgclass
121
193
  end
@@ -9076,6 +9076,94 @@ module SDM
9076
9076
  end
9077
9077
  end
9078
9078
 
9079
+ # SecretStoreHealth denotes a secret store's health status. Note a secret store is not
9080
+ # healthy in terms of a simple boolean, but rather healthy with respect to a particular node
9081
+ # or set of nodes.
9082
+ class SecretStoreHealth
9083
+ # The time when the status last changed
9084
+ attr_accessor :changed_at
9085
+ # The time when the status was last checked by the node
9086
+ attr_accessor :checked_at
9087
+ # The error associated with this health check, if it occurred after reachability checks succeeded.
9088
+ attr_accessor :error
9089
+ # Any specific status or error flags associated with this health check.
9090
+ attr_accessor :flags
9091
+ # Associated node id for this health
9092
+ attr_accessor :node_id
9093
+ # The error associated with this health check, if it occurred during reachability checks.
9094
+ attr_accessor :reachability
9095
+ # Associated secret store for this health
9096
+ attr_accessor :secret_store_id
9097
+ # The status of the link between the node and secret store
9098
+ attr_accessor :status
9099
+
9100
+ def initialize(
9101
+ changed_at: nil,
9102
+ checked_at: nil,
9103
+ error: nil,
9104
+ flags: nil,
9105
+ node_id: nil,
9106
+ reachability: nil,
9107
+ secret_store_id: nil,
9108
+ status: nil
9109
+ )
9110
+ @changed_at = changed_at == nil ? nil : changed_at
9111
+ @checked_at = checked_at == nil ? nil : checked_at
9112
+ @error = error == nil ? "" : error
9113
+ @flags = flags == nil ? [] : flags
9114
+ @node_id = node_id == nil ? "" : node_id
9115
+ @reachability = reachability == nil ? "" : reachability
9116
+ @secret_store_id = secret_store_id == nil ? "" : secret_store_id
9117
+ @status = status == nil ? "" : status
9118
+ end
9119
+
9120
+ def to_json(options = {})
9121
+ hash = {}
9122
+ self.instance_variables.each do |var|
9123
+ hash[var.id2name.delete_prefix("@")] = self.instance_variable_get var
9124
+ end
9125
+ hash.to_json
9126
+ end
9127
+ end
9128
+
9129
+ class SecretStoreHealthListResponse
9130
+ # Rate limit information.
9131
+ attr_accessor :rate_limit
9132
+
9133
+ def initialize(
9134
+ rate_limit: nil
9135
+ )
9136
+ @rate_limit = rate_limit == nil ? nil : rate_limit
9137
+ end
9138
+
9139
+ def to_json(options = {})
9140
+ hash = {}
9141
+ self.instance_variables.each do |var|
9142
+ hash[var.id2name.delete_prefix("@")] = self.instance_variable_get var
9143
+ end
9144
+ hash.to_json
9145
+ end
9146
+ end
9147
+
9148
+ class SecretStoreHealthcheckResponse
9149
+ # Rate limit information.
9150
+ attr_accessor :rate_limit
9151
+
9152
+ def initialize(
9153
+ rate_limit: nil
9154
+ )
9155
+ @rate_limit = rate_limit == nil ? nil : rate_limit
9156
+ end
9157
+
9158
+ def to_json(options = {})
9159
+ hash = {}
9160
+ self.instance_variables.each do |var|
9161
+ hash[var.id2name.delete_prefix("@")] = self.instance_variable_get var
9162
+ end
9163
+ hash.to_json
9164
+ end
9165
+ end
9166
+
9079
9167
  # SecretStoreHistory records the state of a SecretStore at a given point in time,
9080
9168
  # where every change (create, update and delete) to a SecretStore produces an
9081
9169
  # SecretStoreHistory record.
@@ -9745,6 +9833,94 @@ module SDM
9745
9833
  end
9746
9834
  end
9747
9835
 
9836
+ # VaultAppRoleCertSSHStore is currently unstable, and its API may change, or it may be removed, without a major version bump.
9837
+ class VaultAppRoleCertSSHStore
9838
+ # Unique identifier of the SecretStore.
9839
+ attr_accessor :id
9840
+ # Unique human-readable name of the SecretStore.
9841
+ attr_accessor :name
9842
+ # The namespace to make requests within
9843
+ attr_accessor :namespace
9844
+ # The URL of the Vault to target
9845
+ attr_accessor :server_address
9846
+ # The signing role to be used for signing certificates
9847
+ attr_accessor :signing_role
9848
+ # The mount point of the SSH engine configured with the desired CA
9849
+ attr_accessor :ssh_mount_point
9850
+ # Tags is a map of key, value pairs.
9851
+ attr_accessor :tags
9852
+
9853
+ def initialize(
9854
+ id: nil,
9855
+ name: nil,
9856
+ namespace: nil,
9857
+ server_address: nil,
9858
+ signing_role: nil,
9859
+ ssh_mount_point: nil,
9860
+ tags: nil
9861
+ )
9862
+ @id = id == nil ? "" : id
9863
+ @name = name == nil ? "" : name
9864
+ @namespace = namespace == nil ? "" : namespace
9865
+ @server_address = server_address == nil ? "" : server_address
9866
+ @signing_role = signing_role == nil ? "" : signing_role
9867
+ @ssh_mount_point = ssh_mount_point == nil ? "" : ssh_mount_point
9868
+ @tags = tags == nil ? SDM::_porcelain_zero_value_tags() : tags
9869
+ end
9870
+
9871
+ def to_json(options = {})
9872
+ hash = {}
9873
+ self.instance_variables.each do |var|
9874
+ hash[var.id2name.delete_prefix("@")] = self.instance_variable_get var
9875
+ end
9876
+ hash.to_json
9877
+ end
9878
+ end
9879
+
9880
+ # VaultAppRoleCertX509Store is currently unstable, and its API may change, or it may be removed, without a major version bump.
9881
+ class VaultAppRoleCertX509Store
9882
+ # Unique identifier of the SecretStore.
9883
+ attr_accessor :id
9884
+ # Unique human-readable name of the SecretStore.
9885
+ attr_accessor :name
9886
+ # The namespace to make requests within
9887
+ attr_accessor :namespace
9888
+ # The mount point of the PKI engine configured with the desired CA
9889
+ attr_accessor :pki_mount_point
9890
+ # The URL of the Vault to target
9891
+ attr_accessor :server_address
9892
+ # The signing role to be used for signing certificates
9893
+ attr_accessor :signing_role
9894
+ # Tags is a map of key, value pairs.
9895
+ attr_accessor :tags
9896
+
9897
+ def initialize(
9898
+ id: nil,
9899
+ name: nil,
9900
+ namespace: nil,
9901
+ pki_mount_point: nil,
9902
+ server_address: nil,
9903
+ signing_role: nil,
9904
+ tags: nil
9905
+ )
9906
+ @id = id == nil ? "" : id
9907
+ @name = name == nil ? "" : name
9908
+ @namespace = namespace == nil ? "" : namespace
9909
+ @pki_mount_point = pki_mount_point == nil ? "" : pki_mount_point
9910
+ @server_address = server_address == nil ? "" : server_address
9911
+ @signing_role = signing_role == nil ? "" : signing_role
9912
+ @tags = tags == nil ? SDM::_porcelain_zero_value_tags() : tags
9913
+ end
9914
+
9915
+ def to_json(options = {})
9916
+ hash = {}
9917
+ self.instance_variables.each do |var|
9918
+ hash[var.id2name.delete_prefix("@")] = self.instance_variable_get var
9919
+ end
9920
+ hash.to_json
9921
+ end
9922
+ end
9923
+
9748
9924
  class VaultAppRoleStore
9749
9925
  # Unique identifier of the SecretStore.
9750
9926
  attr_accessor :id
@@ -9780,6 +9956,118 @@ module SDM
9780
9956
  end
9781
9957
  end
9782
9958
 
9959
+ # VaultTLSCertSSHStore is currently unstable, and its API may change, or it may be removed, without a major version bump.
9960
+ class VaultTLSCertSSHStore
9961
+ # A path to a CA file accessible by a Node
9962
+ attr_accessor :ca_cert_path
9963
+ # A path to a client certificate file accessible by a Node
9964
+ attr_accessor :client_cert_path
9965
+ # A path to a client key file accessible by a Node
9966
+ attr_accessor :client_key_path
9967
+ # Unique identifier of the SecretStore.
9968
+ attr_accessor :id
9969
+ # Unique human-readable name of the SecretStore.
9970
+ attr_accessor :name
9971
+ # The namespace to make requests within
9972
+ attr_accessor :namespace
9973
+ # The URL of the Vault to target
9974
+ attr_accessor :server_address
9975
+ # The signing role to be used for signing certificates
9976
+ attr_accessor :signing_role
9977
+ # The mount point of the SSH engine configured with the desired CA
9978
+ attr_accessor :ssh_mount_point
9979
+ # Tags is a map of key, value pairs.
9980
+ attr_accessor :tags
9981
+
9982
+ def initialize(
9983
+ ca_cert_path: nil,
9984
+ client_cert_path: nil,
9985
+ client_key_path: nil,
9986
+ id: nil,
9987
+ name: nil,
9988
+ namespace: nil,
9989
+ server_address: nil,
9990
+ signing_role: nil,
9991
+ ssh_mount_point: nil,
9992
+ tags: nil
9993
+ )
9994
+ @ca_cert_path = ca_cert_path == nil ? "" : ca_cert_path
9995
+ @client_cert_path = client_cert_path == nil ? "" : client_cert_path
9996
+ @client_key_path = client_key_path == nil ? "" : client_key_path
9997
+ @id = id == nil ? "" : id
9998
+ @name = name == nil ? "" : name
9999
+ @namespace = namespace == nil ? "" : namespace
10000
+ @server_address = server_address == nil ? "" : server_address
10001
+ @signing_role = signing_role == nil ? "" : signing_role
10002
+ @ssh_mount_point = ssh_mount_point == nil ? "" : ssh_mount_point
10003
+ @tags = tags == nil ? SDM::_porcelain_zero_value_tags() : tags
10004
+ end
10005
+
10006
+ def to_json(options = {})
10007
+ hash = {}
10008
+ self.instance_variables.each do |var|
10009
+ hash[var.id2name.delete_prefix("@")] = self.instance_variable_get var
10010
+ end
10011
+ hash.to_json
10012
+ end
10013
+ end
10014
+
10015
+ # VaultTLSCertX509Store is currently unstable, and its API may change, or it may be removed, without a major version bump.
10016
+ class VaultTLSCertX509Store
10017
+ # A path to a CA file accessible by a Node
10018
+ attr_accessor :ca_cert_path
10019
+ # A path to a client certificate file accessible by a Node
10020
+ attr_accessor :client_cert_path
10021
+ # A path to a client key file accessible by a Node
10022
+ attr_accessor :client_key_path
10023
+ # Unique identifier of the SecretStore.
10024
+ attr_accessor :id
10025
+ # Unique human-readable name of the SecretStore.
10026
+ attr_accessor :name
10027
+ # The namespace to make requests within
10028
+ attr_accessor :namespace
10029
+ # The mount point of the PKI engine configured with the desired CA
10030
+ attr_accessor :pki_mount_point
10031
+ # The URL of the Vault to target
10032
+ attr_accessor :server_address
10033
+ # The signing role to be used for signing certificates
10034
+ attr_accessor :signing_role
10035
+ # Tags is a map of key, value pairs.
10036
+ attr_accessor :tags
10037
+
10038
+ def initialize(
10039
+ ca_cert_path: nil,
10040
+ client_cert_path: nil,
10041
+ client_key_path: nil,
10042
+ id: nil,
10043
+ name: nil,
10044
+ namespace: nil,
10045
+ pki_mount_point: nil,
10046
+ server_address: nil,
10047
+ signing_role: nil,
10048
+ tags: nil
10049
+ )
10050
+ @ca_cert_path = ca_cert_path == nil ? "" : ca_cert_path
10051
+ @client_cert_path = client_cert_path == nil ? "" : client_cert_path
10052
+ @client_key_path = client_key_path == nil ? "" : client_key_path
10053
+ @id = id == nil ? "" : id
10054
+ @name = name == nil ? "" : name
10055
+ @namespace = namespace == nil ? "" : namespace
10056
+ @pki_mount_point = pki_mount_point == nil ? "" : pki_mount_point
10057
+ @server_address = server_address == nil ? "" : server_address
10058
+ @signing_role = signing_role == nil ? "" : signing_role
10059
+ @tags = tags == nil ? SDM::_porcelain_zero_value_tags() : tags
10060
+ end
10061
+
10062
+ def to_json(options = {})
10063
+ hash = {}
10064
+ self.instance_variables.each do |var|
10065
+ hash[var.id2name.delete_prefix("@")] = self.instance_variable_get var
10066
+ end
10067
+ hash.to_json
10068
+ end
10069
+ end
10070
+
9783
10071
  class VaultTLSStore
9784
10072
  # A path to a CA file accessible by a Node
9785
10073
  attr_accessor :ca_cert_path
@@ -9827,6 +10115,94 @@ module SDM
9827
10115
  end
9828
10116
  end
9829
10117
 
10118
+ # VaultTokenCertSSHStore is currently unstable, and its API may change, or it may be removed, without a major version bump.
10119
+ class VaultTokenCertSSHStore
10120
+ # Unique identifier of the SecretStore.
10121
+ attr_accessor :id
10122
+ # Unique human-readable name of the SecretStore.
10123
+ attr_accessor :name
10124
+ # The namespace to make requests within
10125
+ attr_accessor :namespace
10126
+ # The URL of the Vault to target
10127
+ attr_accessor :server_address
10128
+ # The signing role to be used for signing certificates
10129
+ attr_accessor :signing_role
10130
+ # The mount point of the SSH engine configured with the desired CA
10131
+ attr_accessor :ssh_mount_point
10132
+ # Tags is a map of key, value pairs.
10133
+ attr_accessor :tags
10134
+
10135
+ def initialize(
10136
+ id: nil,
10137
+ name: nil,
10138
+ namespace: nil,
10139
+ server_address: nil,
10140
+ signing_role: nil,
10141
+ ssh_mount_point: nil,
10142
+ tags: nil
10143
+ )
10144
+ @id = id == nil ? "" : id
10145
+ @name = name == nil ? "" : name
10146
+ @namespace = namespace == nil ? "" : namespace
10147
+ @server_address = server_address == nil ? "" : server_address
10148
+ @signing_role = signing_role == nil ? "" : signing_role
10149
+ @ssh_mount_point = ssh_mount_point == nil ? "" : ssh_mount_point
10150
+ @tags = tags == nil ? SDM::_porcelain_zero_value_tags() : tags
10151
+ end
10152
+
10153
+ def to_json(options = {})
10154
+ hash = {}
10155
+ self.instance_variables.each do |var|
10156
+ hash[var.id2name.delete_prefix("@")] = self.instance_variable_get var
10157
+ end
10158
+ hash.to_json
10159
+ end
10160
+ end
10161
+
10162
+ # VaultTokenCertX509Store is currently unstable, and its API may change, or it may be removed, without a major version bump.
10163
+ class VaultTokenCertX509Store
10164
+ # Unique identifier of the SecretStore.
10165
+ attr_accessor :id
10166
+ # Unique human-readable name of the SecretStore.
10167
+ attr_accessor :name
10168
+ # The namespace to make requests within
10169
+ attr_accessor :namespace
10170
+ # The mount point of the PKI engine configured with the desired CA
10171
+ attr_accessor :pki_mount_point
10172
+ # The URL of the Vault to target
10173
+ attr_accessor :server_address
10174
+ # The signing role to be used for signing certificates
10175
+ attr_accessor :signing_role
10176
+ # Tags is a map of key, value pairs.
10177
+ attr_accessor :tags
10178
+
10179
+ def initialize(
10180
+ id: nil,
10181
+ name: nil,
10182
+ namespace: nil,
10183
+ pki_mount_point: nil,
10184
+ server_address: nil,
10185
+ signing_role: nil,
10186
+ tags: nil
10187
+ )
10188
+ @id = id == nil ? "" : id
10189
+ @name = name == nil ? "" : name
10190
+ @namespace = namespace == nil ? "" : namespace
10191
+ @pki_mount_point = pki_mount_point == nil ? "" : pki_mount_point
10192
+ @server_address = server_address == nil ? "" : server_address
10193
+ @signing_role = signing_role == nil ? "" : signing_role
10194
+ @tags = tags == nil ? SDM::_porcelain_zero_value_tags() : tags
10195
+ end
10196
+
10197
+ def to_json(options = {})
10198
+ hash = {}
10199
+ self.instance_variables.each do |var|
10200
+ hash[var.id2name.delete_prefix("@")] = self.instance_variable_get var
10201
+ end
10202
+ hash.to_json
10203
+ end
10204
+ end
10205
+
9830
10206
  class VaultTokenStore
9831
10207
  # Unique identifier of the SecretStore.
9832
10208
  attr_accessor :id
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/6.2.1"
32
+ USER_AGENT = "strongdm-sdk-ruby/6.3.1"
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.
@@ -88,6 +88,7 @@ module SDM #:nodoc:
88
88
  @role_resources_history = RoleResourcesHistory.new(@channel, self)
89
89
  @roles = Roles.new(@channel, self)
90
90
  @roles_history = RolesHistory.new(@channel, self)
91
+ @secret_store_healths = SecretStoreHealths.new(@channel, self)
91
92
  @secret_stores = SecretStores.new(@channel, self)
92
93
  @secret_stores_history = SecretStoresHistory.new(@channel, self)
93
94
  @workflow_approvers = WorkflowApprovers.new(@channel, self)
@@ -336,6 +337,10 @@ module SDM #:nodoc:
336
337
  #
337
338
  # See {RolesHistory}.
338
339
  attr_reader :roles_history
340
+ # SecretStoreHealths exposes health states for secret stores.
341
+ #
342
+ # See {SecretStoreHealths}.
343
+ attr_reader :secret_store_healths
339
344
  # SecretStores are servers where resource secrets (passwords, keys) are stored.
340
345
  #
341
346
  # See {SecretStores}.
@@ -421,6 +426,7 @@ module SDM #:nodoc:
421
426
  @role_resources_history = RoleResourcesHistory.new(@channel, self)
422
427
  @roles = Roles.new(@channel, self)
423
428
  @roles_history = RolesHistory.new(@channel, self)
429
+ @secret_store_healths = SecretStoreHealths.new(@channel, self)
424
430
  @secret_stores = SecretStores.new(@channel, self)
425
431
  @secret_stores_history = SecretStoresHistory.new(@channel, self)
426
432
  @workflow_approvers = WorkflowApprovers.new(@channel, self)
data/lib/svc.rb CHANGED
@@ -3667,6 +3667,91 @@ module SDM #:nodoc:
3667
3667
  end
3668
3668
  end
3669
3669
 
3670
+ # SecretStoreHealths exposes health states for secret stores.
3671
+ #
3672
+ # See {SecretStoreHealth}.
3673
+ class SecretStoreHealths
3674
+ extend Gem::Deprecate
3675
+
3676
+ def initialize(channel, parent)
3677
+ begin
3678
+ @stub = V1::SecretStoreHealths::Stub.new(nil, nil, channel_override: channel)
3679
+ rescue => exception
3680
+ raise Plumbing::convert_error_to_porcelain(exception)
3681
+ end
3682
+ @parent = parent
3683
+ end
3684
+
3685
+ # List reports the health status of node to secret store pairs.
3686
+ def list(
3687
+ filter,
3688
+ *args,
3689
+ deadline: nil
3690
+ )
3691
+ req = V1::SecretStoreHealthListRequest.new()
3692
+ req.meta = V1::ListRequestMetadata.new()
3693
+ if @parent.page_limit > 0
3694
+ req.meta.limit = @parent.page_limit
3695
+ end
3696
+ if not @parent.snapshot_time.nil?
3697
+ req.meta.snapshot_at = @parent.snapshot_time
3698
+ end
3699
+
3700
+ req.filter = Plumbing::quote_filter_args(filter, *args)
3701
+ resp = Enumerator::Generator.new { |g|
3702
+ tries = 0
3703
+ loop do
3704
+ begin
3705
+ plumbing_response = @stub.list(req, metadata: @parent.get_metadata("SecretStoreHealths.List", req), deadline: deadline)
3706
+ rescue => exception
3707
+ if (@parent.shouldRetry(tries, exception))
3708
+ tries + +@parent.jitterSleep(tries)
3709
+ next
3710
+ end
3711
+ raise Plumbing::convert_error_to_porcelain(exception)
3712
+ end
3713
+ tries = 0
3714
+ plumbing_response.secret_store_healths.each do |plumbing_item|
3715
+ g.yield Plumbing::convert_secret_store_health_to_porcelain(plumbing_item)
3716
+ end
3717
+ break if plumbing_response.meta.next_cursor == ""
3718
+ req.meta.cursor = plumbing_response.meta.next_cursor
3719
+ end
3720
+ }
3721
+ resp
3722
+ end
3723
+
3724
+ # Healthcheck triggers a remote healthcheck request for a secret store. It may take minutes
3725
+ # to propagate across a large network of Nodes. The call will return immediately, and the
3726
+ # updated health of the Secret Store can be retrieved via List.
3727
+ def healthcheck(
3728
+ secret_store_id,
3729
+ deadline: nil
3730
+ )
3731
+ req = V1::SecretStoreHealthcheckRequest.new()
3732
+
3733
+ req.secret_store_id = (secret_store_id)
3734
+ tries = 0
3735
+ plumbing_response = nil
3736
+ loop do
3737
+ begin
3738
+ plumbing_response = @stub.healthcheck(req, metadata: @parent.get_metadata("SecretStoreHealths.Healthcheck", req), deadline: deadline)
3739
+ rescue => exception
3740
+ if (@parent.shouldRetry(tries, exception))
3741
+ tries + +@parent.jitterSleep(tries)
3742
+ next
3743
+ end
3744
+ raise Plumbing::convert_error_to_porcelain(exception)
3745
+ end
3746
+ break
3747
+ end
3748
+
3749
+ resp = SecretStoreHealthcheckResponse.new()
3750
+ resp.rate_limit = Plumbing::convert_rate_limit_metadata_to_porcelain(plumbing_response.rate_limit)
3751
+ resp
3752
+ end
3753
+ end
3754
+
3670
3755
  # SecretStores are servers where resource secrets (passwords, keys) are stored.
3671
3756
  #
3672
3757
  # See:
@@ -3678,8 +3763,14 @@ module SDM #:nodoc:
3678
3763
  # {DelineaStore}
3679
3764
  # {GCPStore}
3680
3765
  # {VaultAppRoleStore}
3766
+ # {VaultAppRoleCertSSHStore}
3767
+ # {VaultAppRoleCertX509Store}
3681
3768
  # {VaultTLSStore}
3769
+ # {VaultTLSCertSSHStore}
3770
+ # {VaultTLSCertX509Store}
3682
3771
  # {VaultTokenStore}
3772
+ # {VaultTokenCertSSHStore}
3773
+ # {VaultTokenCertX509Store}
3683
3774
  class SecretStores
3684
3775
  extend Gem::Deprecate
3685
3776