strongdm 8.4.0 → 9.0.0
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-4ee1251da9ac4f762232f7c2302709c4007ce5db.idx → pack-585dae52e145926574c317ae9b4a8c7204dd11f8.idx} +0 -0
- data/.git/objects/pack/{pack-4ee1251da9ac4f762232f7c2302709c4007ce5db.pack → pack-585dae52e145926574c317ae9b4a8c7204dd11f8.pack} +0 -0
- data/.git/packed-refs +3 -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 +392 -48
- data/lib/models/porcelain.rb +352 -96
- data/lib/strongdm.rb +39 -1
- data/lib/svc.rb +447 -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.
|
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"
|