strongdm 6.2.1 → 6.3.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -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