strongdm 8.3.0 → 9.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.git/ORIG_HEAD +1 -1
- data/.git/index +0 -0
- data/.git/logs/HEAD +3 -3
- data/.git/logs/refs/heads/master +2 -2
- data/.git/logs/refs/remotes/origin/HEAD +1 -1
- data/.git/objects/pack/{pack-4261676cf40d688329aa296e253a717a48298b9c.idx → pack-585dae52e145926574c317ae9b4a8c7204dd11f8.idx} +0 -0
- data/.git/objects/pack/{pack-4261676cf40d688329aa296e253a717a48298b9c.pack → pack-585dae52e145926574c317ae9b4a8c7204dd11f8.pack} +0 -0
- data/.git/packed-refs +4 -2
- data/.git/refs/heads/master +1 -1
- data/lib/grpc/drivers_pb.rb +22 -24
- data/lib/grpc/identity_aliases_history_pb.rb +49 -0
- data/lib/grpc/identity_aliases_history_services_pb.rb +37 -0
- data/lib/grpc/identity_aliases_pb.rb +91 -0
- data/lib/grpc/identity_aliases_services_pb.rb +46 -0
- data/lib/grpc/identity_sets_history_pb.rb +49 -0
- data/lib/grpc/identity_sets_history_services_pb.rb +37 -0
- data/lib/grpc/identity_sets_pb.rb +56 -0
- data/lib/grpc/identity_sets_services_pb.rb +58 -0
- data/lib/grpc/plumbing.rb +488 -48
- data/lib/grpc/secret_store_types_pb.rb +18 -0
- data/lib/models/porcelain.rb +424 -96
- data/lib/strongdm.rb +39 -1
- data/lib/svc.rb +449 -0
- data/lib/version +1 -1
- data/lib/version.rb +1 -1
- metadata +12 -4
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/
|
32
|
+
USER_AGENT = "strongdm-sdk-ruby/9.0.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,10 @@ 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
|
+
@identity_aliases = IdentityAliases.new(@channel, self)
|
79
|
+
@identity_aliases_history = IdentityAliasesHistory.new(@channel, self)
|
80
|
+
@identity_sets = IdentitySets.new(@channel, self)
|
81
|
+
@identity_sets_history = IdentitySetsHistory.new(@channel, self)
|
78
82
|
@nodes = Nodes.new(@channel, self)
|
79
83
|
@nodes_history = NodesHistory.new(@channel, self)
|
80
84
|
@organization_history = OrganizationHistory.new(@channel, self)
|
@@ -283,6 +287,24 @@ module SDM #:nodoc:
|
|
283
287
|
#
|
284
288
|
# See {ControlPanel}.
|
285
289
|
attr_reader :control_panel
|
290
|
+
# IdentityAliases assign an alias to an account within an IdentitySet.
|
291
|
+
# The alias is used as the username when connecting to a identity supported resource.
|
292
|
+
#
|
293
|
+
# See {IdentityAliases}.
|
294
|
+
attr_reader :identity_aliases
|
295
|
+
# IdentityAliasesHistory records all changes to the state of a IdentityAlias.
|
296
|
+
#
|
297
|
+
# See {IdentityAliasesHistory}.
|
298
|
+
attr_reader :identity_aliases_history
|
299
|
+
# A IdentitySet is a named grouping of Identity Aliases for Accounts.
|
300
|
+
# An Account's relationship to a IdentitySet is defined via IdentityAlias objects.
|
301
|
+
#
|
302
|
+
# See {IdentitySets}.
|
303
|
+
attr_reader :identity_sets
|
304
|
+
# IdentitySetsHistory records all changes to the state of a IdentitySet.
|
305
|
+
#
|
306
|
+
# See {IdentitySetsHistory}.
|
307
|
+
attr_reader :identity_sets_history
|
286
308
|
# Nodes make up the strongDM network, and allow your users to connect securely to your resources. There are two types of nodes:
|
287
309
|
# - **Gateways** are the entry points into network. They listen for connection from the strongDM client, and provide access to databases and servers.
|
288
310
|
# - **Relays** are used to extend the strongDM network into segmented subnets. They provide access to databases and servers but do not listen for incoming connections.
|
@@ -445,6 +467,10 @@ module SDM #:nodoc:
|
|
445
467
|
@approval_workflows = ApprovalWorkflows.new(@channel, self)
|
446
468
|
@approval_workflows_history = ApprovalWorkflowsHistory.new(@channel, self)
|
447
469
|
@control_panel = ControlPanel.new(@channel, self)
|
470
|
+
@identity_aliases = IdentityAliases.new(@channel, self)
|
471
|
+
@identity_aliases_history = IdentityAliasesHistory.new(@channel, self)
|
472
|
+
@identity_sets = IdentitySets.new(@channel, self)
|
473
|
+
@identity_sets_history = IdentitySetsHistory.new(@channel, self)
|
448
474
|
@nodes = Nodes.new(@channel, self)
|
449
475
|
@nodes_history = NodesHistory.new(@channel, self)
|
450
476
|
@organization_history = OrganizationHistory.new(@channel, self)
|
@@ -490,6 +516,8 @@ module SDM #:nodoc:
|
|
490
516
|
@approval_workflow_approvers = SnapshotApprovalWorkflowApprovers.new(client.approval_workflow_approvers)
|
491
517
|
@approval_workflow_steps = SnapshotApprovalWorkflowSteps.new(client.approval_workflow_steps)
|
492
518
|
@approval_workflows = SnapshotApprovalWorkflows.new(client.approval_workflows)
|
519
|
+
@identity_aliases = SnapshotIdentityAliases.new(client.identity_aliases)
|
520
|
+
@identity_sets = SnapshotIdentitySets.new(client.identity_sets)
|
493
521
|
@nodes = SnapshotNodes.new(client.nodes)
|
494
522
|
@remote_identities = SnapshotRemoteIdentities.new(client.remote_identities)
|
495
523
|
@remote_identity_groups = SnapshotRemoteIdentityGroups.new(client.remote_identity_groups)
|
@@ -545,6 +573,16 @@ module SDM #:nodoc:
|
|
545
573
|
#
|
546
574
|
# See {SnapshotApprovalWorkflows}.
|
547
575
|
attr_reader :approval_workflows
|
576
|
+
# IdentityAliases assign an alias to an account within an IdentitySet.
|
577
|
+
# The alias is used as the username when connecting to a identity supported resource.
|
578
|
+
#
|
579
|
+
# See {SnapshotIdentityAliases}.
|
580
|
+
attr_reader :identity_aliases
|
581
|
+
# A IdentitySet is a named grouping of Identity Aliases for Accounts.
|
582
|
+
# An Account's relationship to a IdentitySet is defined via IdentityAlias objects.
|
583
|
+
#
|
584
|
+
# See {SnapshotIdentitySets}.
|
585
|
+
attr_reader :identity_sets
|
548
586
|
# Nodes make up the strongDM network, and allow your users to connect securely to your resources. There are two types of nodes:
|
549
587
|
# - **Gateways** are the entry points into network. They listen for connection from the strongDM client, and provide access to databases and servers.
|
550
588
|
# - **Relays** are used to extend the strongDM network into segmented subnets. They provide access to databases and servers but do not listen for incoming connections.
|
data/lib/svc.rb
CHANGED
@@ -2107,6 +2107,453 @@ module SDM #:nodoc:
|
|
2107
2107
|
end
|
2108
2108
|
end
|
2109
2109
|
|
2110
|
+
# IdentityAliases assign an alias to an account within an IdentitySet.
|
2111
|
+
# The alias is used as the username when connecting to a identity supported resource.
|
2112
|
+
#
|
2113
|
+
# See {IdentityAlias}.
|
2114
|
+
class IdentityAliases
|
2115
|
+
extend Gem::Deprecate
|
2116
|
+
|
2117
|
+
def initialize(channel, parent)
|
2118
|
+
begin
|
2119
|
+
@stub = V1::IdentityAliases::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
|
+
# Create registers a new IdentityAlias.
|
2127
|
+
def create(
|
2128
|
+
identity_alias,
|
2129
|
+
deadline: nil
|
2130
|
+
)
|
2131
|
+
req = V1::IdentityAliasCreateRequest.new()
|
2132
|
+
|
2133
|
+
req.identity_alias = Plumbing::convert_identity_alias_to_plumbing(identity_alias)
|
2134
|
+
tries = 0
|
2135
|
+
plumbing_response = nil
|
2136
|
+
loop do
|
2137
|
+
begin
|
2138
|
+
plumbing_response = @stub.create(req, metadata: @parent.get_metadata("IdentityAliases.Create", req), deadline: deadline)
|
2139
|
+
rescue => exception
|
2140
|
+
if (@parent.shouldRetry(tries, exception))
|
2141
|
+
tries + +@parent.jitterSleep(tries)
|
2142
|
+
next
|
2143
|
+
end
|
2144
|
+
raise Plumbing::convert_error_to_porcelain(exception)
|
2145
|
+
end
|
2146
|
+
break
|
2147
|
+
end
|
2148
|
+
|
2149
|
+
resp = IdentityAliasCreateResponse.new()
|
2150
|
+
resp.identity_alias = Plumbing::convert_identity_alias_to_porcelain(plumbing_response.identity_alias)
|
2151
|
+
resp.meta = Plumbing::convert_create_response_metadata_to_porcelain(plumbing_response.meta)
|
2152
|
+
resp.rate_limit = Plumbing::convert_rate_limit_metadata_to_porcelain(plumbing_response.rate_limit)
|
2153
|
+
resp
|
2154
|
+
end
|
2155
|
+
|
2156
|
+
# Get reads one IdentityAlias by ID.
|
2157
|
+
def get(
|
2158
|
+
id,
|
2159
|
+
deadline: nil
|
2160
|
+
)
|
2161
|
+
req = V1::IdentityAliasGetRequest.new()
|
2162
|
+
if not @parent.snapshot_time.nil?
|
2163
|
+
req.meta = V1::GetRequestMetadata.new()
|
2164
|
+
req.meta.snapshot_at = @parent.snapshot_time
|
2165
|
+
end
|
2166
|
+
|
2167
|
+
req.id = (id)
|
2168
|
+
tries = 0
|
2169
|
+
plumbing_response = nil
|
2170
|
+
loop do
|
2171
|
+
begin
|
2172
|
+
plumbing_response = @stub.get(req, metadata: @parent.get_metadata("IdentityAliases.Get", req), deadline: deadline)
|
2173
|
+
rescue => exception
|
2174
|
+
if (@parent.shouldRetry(tries, exception))
|
2175
|
+
tries + +@parent.jitterSleep(tries)
|
2176
|
+
next
|
2177
|
+
end
|
2178
|
+
raise Plumbing::convert_error_to_porcelain(exception)
|
2179
|
+
end
|
2180
|
+
break
|
2181
|
+
end
|
2182
|
+
|
2183
|
+
resp = IdentityAliasGetResponse.new()
|
2184
|
+
resp.identity_alias = Plumbing::convert_identity_alias_to_porcelain(plumbing_response.identity_alias)
|
2185
|
+
resp.meta = Plumbing::convert_get_response_metadata_to_porcelain(plumbing_response.meta)
|
2186
|
+
resp.rate_limit = Plumbing::convert_rate_limit_metadata_to_porcelain(plumbing_response.rate_limit)
|
2187
|
+
resp
|
2188
|
+
end
|
2189
|
+
|
2190
|
+
# Update replaces all the fields of a IdentityAlias by ID.
|
2191
|
+
def update(
|
2192
|
+
identity_alias,
|
2193
|
+
deadline: nil
|
2194
|
+
)
|
2195
|
+
req = V1::IdentityAliasUpdateRequest.new()
|
2196
|
+
|
2197
|
+
req.identity_alias = Plumbing::convert_identity_alias_to_plumbing(identity_alias)
|
2198
|
+
tries = 0
|
2199
|
+
plumbing_response = nil
|
2200
|
+
loop do
|
2201
|
+
begin
|
2202
|
+
plumbing_response = @stub.update(req, metadata: @parent.get_metadata("IdentityAliases.Update", req), deadline: deadline)
|
2203
|
+
rescue => exception
|
2204
|
+
if (@parent.shouldRetry(tries, exception))
|
2205
|
+
tries + +@parent.jitterSleep(tries)
|
2206
|
+
next
|
2207
|
+
end
|
2208
|
+
raise Plumbing::convert_error_to_porcelain(exception)
|
2209
|
+
end
|
2210
|
+
break
|
2211
|
+
end
|
2212
|
+
|
2213
|
+
resp = IdentityAliasUpdateResponse.new()
|
2214
|
+
resp.identity_alias = Plumbing::convert_identity_alias_to_porcelain(plumbing_response.identity_alias)
|
2215
|
+
resp.meta = Plumbing::convert_update_response_metadata_to_porcelain(plumbing_response.meta)
|
2216
|
+
resp.rate_limit = Plumbing::convert_rate_limit_metadata_to_porcelain(plumbing_response.rate_limit)
|
2217
|
+
resp
|
2218
|
+
end
|
2219
|
+
|
2220
|
+
# Delete removes a IdentityAlias by ID.
|
2221
|
+
def delete(
|
2222
|
+
id,
|
2223
|
+
deadline: nil
|
2224
|
+
)
|
2225
|
+
req = V1::IdentityAliasDeleteRequest.new()
|
2226
|
+
|
2227
|
+
req.id = (id)
|
2228
|
+
tries = 0
|
2229
|
+
plumbing_response = nil
|
2230
|
+
loop do
|
2231
|
+
begin
|
2232
|
+
plumbing_response = @stub.delete(req, metadata: @parent.get_metadata("IdentityAliases.Delete", req), deadline: deadline)
|
2233
|
+
rescue => exception
|
2234
|
+
if (@parent.shouldRetry(tries, exception))
|
2235
|
+
tries + +@parent.jitterSleep(tries)
|
2236
|
+
next
|
2237
|
+
end
|
2238
|
+
raise Plumbing::convert_error_to_porcelain(exception)
|
2239
|
+
end
|
2240
|
+
break
|
2241
|
+
end
|
2242
|
+
|
2243
|
+
resp = IdentityAliasDeleteResponse.new()
|
2244
|
+
resp.meta = Plumbing::convert_delete_response_metadata_to_porcelain(plumbing_response.meta)
|
2245
|
+
resp.rate_limit = Plumbing::convert_rate_limit_metadata_to_porcelain(plumbing_response.rate_limit)
|
2246
|
+
resp
|
2247
|
+
end
|
2248
|
+
|
2249
|
+
# List gets a list of IdentityAliases matching a given set of criteria.
|
2250
|
+
def list(
|
2251
|
+
filter,
|
2252
|
+
*args,
|
2253
|
+
deadline: nil
|
2254
|
+
)
|
2255
|
+
req = V1::IdentityAliasListRequest.new()
|
2256
|
+
req.meta = V1::ListRequestMetadata.new()
|
2257
|
+
if @parent.page_limit > 0
|
2258
|
+
req.meta.limit = @parent.page_limit
|
2259
|
+
end
|
2260
|
+
if not @parent.snapshot_time.nil?
|
2261
|
+
req.meta.snapshot_at = @parent.snapshot_time
|
2262
|
+
end
|
2263
|
+
|
2264
|
+
req.filter = Plumbing::quote_filter_args(filter, *args)
|
2265
|
+
resp = Enumerator::Generator.new { |g|
|
2266
|
+
tries = 0
|
2267
|
+
loop do
|
2268
|
+
begin
|
2269
|
+
plumbing_response = @stub.list(req, metadata: @parent.get_metadata("IdentityAliases.List", req), deadline: deadline)
|
2270
|
+
rescue => exception
|
2271
|
+
if (@parent.shouldRetry(tries, exception))
|
2272
|
+
tries + +@parent.jitterSleep(tries)
|
2273
|
+
next
|
2274
|
+
end
|
2275
|
+
raise Plumbing::convert_error_to_porcelain(exception)
|
2276
|
+
end
|
2277
|
+
tries = 0
|
2278
|
+
plumbing_response.identity_aliases.each do |plumbing_item|
|
2279
|
+
g.yield Plumbing::convert_identity_alias_to_porcelain(plumbing_item)
|
2280
|
+
end
|
2281
|
+
break if plumbing_response.meta.next_cursor == ""
|
2282
|
+
req.meta.cursor = plumbing_response.meta.next_cursor
|
2283
|
+
end
|
2284
|
+
}
|
2285
|
+
resp
|
2286
|
+
end
|
2287
|
+
end
|
2288
|
+
|
2289
|
+
# SnapshotIdentityAliases exposes the read only methods of the IdentityAliases
|
2290
|
+
# service for historical queries.
|
2291
|
+
class SnapshotIdentityAliases
|
2292
|
+
extend Gem::Deprecate
|
2293
|
+
|
2294
|
+
def initialize(identity_aliases)
|
2295
|
+
@identity_aliases = identity_aliases
|
2296
|
+
end
|
2297
|
+
|
2298
|
+
# Get reads one IdentityAlias by ID.
|
2299
|
+
def get(
|
2300
|
+
id,
|
2301
|
+
deadline: nil
|
2302
|
+
)
|
2303
|
+
return @identity_aliases.get(
|
2304
|
+
id,
|
2305
|
+
deadline: deadline,
|
2306
|
+
)
|
2307
|
+
end
|
2308
|
+
|
2309
|
+
# List gets a list of IdentityAliases matching a given set of criteria.
|
2310
|
+
def list(
|
2311
|
+
filter,
|
2312
|
+
*args,
|
2313
|
+
deadline: nil
|
2314
|
+
)
|
2315
|
+
return @identity_aliases.list(
|
2316
|
+
filter,
|
2317
|
+
*args,
|
2318
|
+
deadline: deadline,
|
2319
|
+
)
|
2320
|
+
end
|
2321
|
+
end
|
2322
|
+
|
2323
|
+
# IdentityAliasesHistory records all changes to the state of a IdentityAlias.
|
2324
|
+
#
|
2325
|
+
# See {IdentityAliasHistory}.
|
2326
|
+
class IdentityAliasesHistory
|
2327
|
+
extend Gem::Deprecate
|
2328
|
+
|
2329
|
+
def initialize(channel, parent)
|
2330
|
+
begin
|
2331
|
+
@stub = V1::IdentityAliasesHistory::Stub.new(nil, nil, channel_override: channel)
|
2332
|
+
rescue => exception
|
2333
|
+
raise Plumbing::convert_error_to_porcelain(exception)
|
2334
|
+
end
|
2335
|
+
@parent = parent
|
2336
|
+
end
|
2337
|
+
|
2338
|
+
# List gets a list of IdentityAliasHistory records matching a given set of criteria.
|
2339
|
+
def list(
|
2340
|
+
filter,
|
2341
|
+
*args,
|
2342
|
+
deadline: nil
|
2343
|
+
)
|
2344
|
+
req = V1::IdentityAliasHistoryListRequest.new()
|
2345
|
+
req.meta = V1::ListRequestMetadata.new()
|
2346
|
+
if @parent.page_limit > 0
|
2347
|
+
req.meta.limit = @parent.page_limit
|
2348
|
+
end
|
2349
|
+
if not @parent.snapshot_time.nil?
|
2350
|
+
req.meta.snapshot_at = @parent.snapshot_time
|
2351
|
+
end
|
2352
|
+
|
2353
|
+
req.filter = Plumbing::quote_filter_args(filter, *args)
|
2354
|
+
resp = Enumerator::Generator.new { |g|
|
2355
|
+
tries = 0
|
2356
|
+
loop do
|
2357
|
+
begin
|
2358
|
+
plumbing_response = @stub.list(req, metadata: @parent.get_metadata("IdentityAliasesHistory.List", req), deadline: deadline)
|
2359
|
+
rescue => exception
|
2360
|
+
if (@parent.shouldRetry(tries, exception))
|
2361
|
+
tries + +@parent.jitterSleep(tries)
|
2362
|
+
next
|
2363
|
+
end
|
2364
|
+
raise Plumbing::convert_error_to_porcelain(exception)
|
2365
|
+
end
|
2366
|
+
tries = 0
|
2367
|
+
plumbing_response.history.each do |plumbing_item|
|
2368
|
+
g.yield Plumbing::convert_identity_alias_history_to_porcelain(plumbing_item)
|
2369
|
+
end
|
2370
|
+
break if plumbing_response.meta.next_cursor == ""
|
2371
|
+
req.meta.cursor = plumbing_response.meta.next_cursor
|
2372
|
+
end
|
2373
|
+
}
|
2374
|
+
resp
|
2375
|
+
end
|
2376
|
+
end
|
2377
|
+
|
2378
|
+
# A IdentitySet is a named grouping of Identity Aliases for Accounts.
|
2379
|
+
# An Account's relationship to a IdentitySet is defined via IdentityAlias objects.
|
2380
|
+
#
|
2381
|
+
# See {IdentitySet}.
|
2382
|
+
class IdentitySets
|
2383
|
+
extend Gem::Deprecate
|
2384
|
+
|
2385
|
+
def initialize(channel, parent)
|
2386
|
+
begin
|
2387
|
+
@stub = V1::IdentitySets::Stub.new(nil, nil, channel_override: channel)
|
2388
|
+
rescue => exception
|
2389
|
+
raise Plumbing::convert_error_to_porcelain(exception)
|
2390
|
+
end
|
2391
|
+
@parent = parent
|
2392
|
+
end
|
2393
|
+
|
2394
|
+
# Get reads one IdentitySet by ID.
|
2395
|
+
def get(
|
2396
|
+
id,
|
2397
|
+
deadline: nil
|
2398
|
+
)
|
2399
|
+
req = V1::IdentitySetGetRequest.new()
|
2400
|
+
if not @parent.snapshot_time.nil?
|
2401
|
+
req.meta = V1::GetRequestMetadata.new()
|
2402
|
+
req.meta.snapshot_at = @parent.snapshot_time
|
2403
|
+
end
|
2404
|
+
|
2405
|
+
req.id = (id)
|
2406
|
+
tries = 0
|
2407
|
+
plumbing_response = nil
|
2408
|
+
loop do
|
2409
|
+
begin
|
2410
|
+
plumbing_response = @stub.get(req, metadata: @parent.get_metadata("IdentitySets.Get", req), deadline: deadline)
|
2411
|
+
rescue => exception
|
2412
|
+
if (@parent.shouldRetry(tries, exception))
|
2413
|
+
tries + +@parent.jitterSleep(tries)
|
2414
|
+
next
|
2415
|
+
end
|
2416
|
+
raise Plumbing::convert_error_to_porcelain(exception)
|
2417
|
+
end
|
2418
|
+
break
|
2419
|
+
end
|
2420
|
+
|
2421
|
+
resp = IdentitySetGetResponse.new()
|
2422
|
+
resp.identity_set = Plumbing::convert_identity_set_to_porcelain(plumbing_response.identity_set)
|
2423
|
+
resp.meta = Plumbing::convert_get_response_metadata_to_porcelain(plumbing_response.meta)
|
2424
|
+
resp.rate_limit = Plumbing::convert_rate_limit_metadata_to_porcelain(plumbing_response.rate_limit)
|
2425
|
+
resp
|
2426
|
+
end
|
2427
|
+
|
2428
|
+
# List gets a list of IdentitySets matching a given set of criteria.
|
2429
|
+
def list(
|
2430
|
+
filter,
|
2431
|
+
*args,
|
2432
|
+
deadline: nil
|
2433
|
+
)
|
2434
|
+
req = V1::IdentitySetListRequest.new()
|
2435
|
+
req.meta = V1::ListRequestMetadata.new()
|
2436
|
+
if @parent.page_limit > 0
|
2437
|
+
req.meta.limit = @parent.page_limit
|
2438
|
+
end
|
2439
|
+
if not @parent.snapshot_time.nil?
|
2440
|
+
req.meta.snapshot_at = @parent.snapshot_time
|
2441
|
+
end
|
2442
|
+
|
2443
|
+
req.filter = Plumbing::quote_filter_args(filter, *args)
|
2444
|
+
resp = Enumerator::Generator.new { |g|
|
2445
|
+
tries = 0
|
2446
|
+
loop do
|
2447
|
+
begin
|
2448
|
+
plumbing_response = @stub.list(req, metadata: @parent.get_metadata("IdentitySets.List", req), deadline: deadline)
|
2449
|
+
rescue => exception
|
2450
|
+
if (@parent.shouldRetry(tries, exception))
|
2451
|
+
tries + +@parent.jitterSleep(tries)
|
2452
|
+
next
|
2453
|
+
end
|
2454
|
+
raise Plumbing::convert_error_to_porcelain(exception)
|
2455
|
+
end
|
2456
|
+
tries = 0
|
2457
|
+
plumbing_response.identity_sets.each do |plumbing_item|
|
2458
|
+
g.yield Plumbing::convert_identity_set_to_porcelain(plumbing_item)
|
2459
|
+
end
|
2460
|
+
break if plumbing_response.meta.next_cursor == ""
|
2461
|
+
req.meta.cursor = plumbing_response.meta.next_cursor
|
2462
|
+
end
|
2463
|
+
}
|
2464
|
+
resp
|
2465
|
+
end
|
2466
|
+
end
|
2467
|
+
|
2468
|
+
# SnapshotIdentitySets exposes the read only methods of the IdentitySets
|
2469
|
+
# service for historical queries.
|
2470
|
+
class SnapshotIdentitySets
|
2471
|
+
extend Gem::Deprecate
|
2472
|
+
|
2473
|
+
def initialize(identity_sets)
|
2474
|
+
@identity_sets = identity_sets
|
2475
|
+
end
|
2476
|
+
|
2477
|
+
# Get reads one IdentitySet by ID.
|
2478
|
+
def get(
|
2479
|
+
id,
|
2480
|
+
deadline: nil
|
2481
|
+
)
|
2482
|
+
return @identity_sets.get(
|
2483
|
+
id,
|
2484
|
+
deadline: deadline,
|
2485
|
+
)
|
2486
|
+
end
|
2487
|
+
|
2488
|
+
# List gets a list of IdentitySets matching a given set of criteria.
|
2489
|
+
def list(
|
2490
|
+
filter,
|
2491
|
+
*args,
|
2492
|
+
deadline: nil
|
2493
|
+
)
|
2494
|
+
return @identity_sets.list(
|
2495
|
+
filter,
|
2496
|
+
*args,
|
2497
|
+
deadline: deadline,
|
2498
|
+
)
|
2499
|
+
end
|
2500
|
+
end
|
2501
|
+
|
2502
|
+
# IdentitySetsHistory records all changes to the state of a IdentitySet.
|
2503
|
+
#
|
2504
|
+
# See {IdentitySetHistory}.
|
2505
|
+
class IdentitySetsHistory
|
2506
|
+
extend Gem::Deprecate
|
2507
|
+
|
2508
|
+
def initialize(channel, parent)
|
2509
|
+
begin
|
2510
|
+
@stub = V1::IdentitySetsHistory::Stub.new(nil, nil, channel_override: channel)
|
2511
|
+
rescue => exception
|
2512
|
+
raise Plumbing::convert_error_to_porcelain(exception)
|
2513
|
+
end
|
2514
|
+
@parent = parent
|
2515
|
+
end
|
2516
|
+
|
2517
|
+
# List gets a list of IdentitySetHistory records matching a given set of criteria.
|
2518
|
+
def list(
|
2519
|
+
filter,
|
2520
|
+
*args,
|
2521
|
+
deadline: nil
|
2522
|
+
)
|
2523
|
+
req = V1::IdentitySetHistoryListRequest.new()
|
2524
|
+
req.meta = V1::ListRequestMetadata.new()
|
2525
|
+
if @parent.page_limit > 0
|
2526
|
+
req.meta.limit = @parent.page_limit
|
2527
|
+
end
|
2528
|
+
if not @parent.snapshot_time.nil?
|
2529
|
+
req.meta.snapshot_at = @parent.snapshot_time
|
2530
|
+
end
|
2531
|
+
|
2532
|
+
req.filter = Plumbing::quote_filter_args(filter, *args)
|
2533
|
+
resp = Enumerator::Generator.new { |g|
|
2534
|
+
tries = 0
|
2535
|
+
loop do
|
2536
|
+
begin
|
2537
|
+
plumbing_response = @stub.list(req, metadata: @parent.get_metadata("IdentitySetsHistory.List", req), deadline: deadline)
|
2538
|
+
rescue => exception
|
2539
|
+
if (@parent.shouldRetry(tries, exception))
|
2540
|
+
tries + +@parent.jitterSleep(tries)
|
2541
|
+
next
|
2542
|
+
end
|
2543
|
+
raise Plumbing::convert_error_to_porcelain(exception)
|
2544
|
+
end
|
2545
|
+
tries = 0
|
2546
|
+
plumbing_response.history.each do |plumbing_item|
|
2547
|
+
g.yield Plumbing::convert_identity_set_history_to_porcelain(plumbing_item)
|
2548
|
+
end
|
2549
|
+
break if plumbing_response.meta.next_cursor == ""
|
2550
|
+
req.meta.cursor = plumbing_response.meta.next_cursor
|
2551
|
+
end
|
2552
|
+
}
|
2553
|
+
resp
|
2554
|
+
end
|
2555
|
+
end
|
2556
|
+
|
2110
2557
|
# Nodes make up the strongDM network, and allow your users to connect securely to your resources. There are two types of nodes:
|
2111
2558
|
# - **Gateways** are the entry points into network. They listen for connection from the strongDM client, and provide access to databases and servers.
|
2112
2559
|
# - **Relays** are used to extend the strongDM network into segmented subnets. They provide access to databases and servers but do not listen for incoming connections.
|
@@ -4513,6 +4960,8 @@ module SDM #:nodoc:
|
|
4513
4960
|
# {VaultAppRoleStore}
|
4514
4961
|
# {VaultAppRoleCertSSHStore}
|
4515
4962
|
# {VaultAppRoleCertX509Store}
|
4963
|
+
# {VaultAWSEC2Store}
|
4964
|
+
# {VaultAWSIAMStore}
|
4516
4965
|
# {VaultTLSStore}
|
4517
4966
|
# {VaultTLSCertSSHStore}
|
4518
4967
|
# {VaultTLSCertX509Store}
|
data/lib/version
CHANGED
data/lib/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: strongdm
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 9.0.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-05-
|
11
|
+
date: 2024-05-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: grpc
|
@@ -81,8 +81,8 @@ files:
|
|
81
81
|
- "./.git/logs/HEAD"
|
82
82
|
- "./.git/logs/refs/heads/master"
|
83
83
|
- "./.git/logs/refs/remotes/origin/HEAD"
|
84
|
-
- "./.git/objects/pack/pack-
|
85
|
-
- "./.git/objects/pack/pack-
|
84
|
+
- "./.git/objects/pack/pack-585dae52e145926574c317ae9b4a8c7204dd11f8.idx"
|
85
|
+
- "./.git/objects/pack/pack-585dae52e145926574c317ae9b4a8c7204dd11f8.pack"
|
86
86
|
- "./.git/packed-refs"
|
87
87
|
- "./.git/refs/heads/master"
|
88
88
|
- "./.git/refs/remotes/origin/HEAD"
|
@@ -133,6 +133,14 @@ 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/identity_aliases_history_pb.rb"
|
137
|
+
- "./lib/grpc/identity_aliases_history_services_pb.rb"
|
138
|
+
- "./lib/grpc/identity_aliases_pb.rb"
|
139
|
+
- "./lib/grpc/identity_aliases_services_pb.rb"
|
140
|
+
- "./lib/grpc/identity_sets_history_pb.rb"
|
141
|
+
- "./lib/grpc/identity_sets_history_services_pb.rb"
|
142
|
+
- "./lib/grpc/identity_sets_pb.rb"
|
143
|
+
- "./lib/grpc/identity_sets_services_pb.rb"
|
136
144
|
- "./lib/grpc/nodes_history_pb.rb"
|
137
145
|
- "./lib/grpc/nodes_history_services_pb.rb"
|
138
146
|
- "./lib/grpc/nodes_pb.rb"
|