strongdm 6.2.1 → 6.3.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.git/ORIG_HEAD +1 -1
- data/.git/index +0 -0
- data/.git/logs/HEAD +3 -3
- data/.git/logs/refs/heads/master +2 -2
- data/.git/logs/refs/remotes/origin/HEAD +1 -1
- data/.git/objects/pack/{pack-9c15c03926d0fe38935c66657f11971674d15cb4.idx → pack-a7478d78e4c6471c95cbeb49374ac04dffb1510e.idx} +0 -0
- data/.git/objects/pack/{pack-9c15c03926d0fe38935c66657f11971674d15cb4.pack → pack-a7478d78e4c6471c95cbeb49374ac04dffb1510e.pack} +0 -0
- data/.git/packed-refs +4 -2
- data/.git/refs/heads/master +1 -1
- data/lib/grpc/options_pb.rb +1 -0
- data/lib/grpc/plumbing.rb +447 -0
- data/lib/grpc/secret_store_healths_pb.rb +72 -0
- data/lib/grpc/secret_store_healths_services_pb.rb +44 -0
- data/lib/grpc/secret_store_types_pb.rb +72 -0
- data/lib/models/porcelain.rb +376 -0
- data/lib/strongdm.rb +7 -1
- data/lib/svc.rb +91 -0
- data/lib/version +1 -1
- data/lib/version.rb +1 -1
- metadata +6 -4
@@ -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
|
data/lib/models/porcelain.rb
CHANGED
@@ -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.
|
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
|
|