strongdm 15.2.0 → 15.4.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: cf5e06cc2d34ee461473d3da7efd0b252f5b99846ae91902314e27e7cbe80383
4
- data.tar.gz: 84b572982520141ef0dd5f5dfb8609c5dbf5705b1f3be25e7c792c1a82672925
3
+ metadata.gz: f276d1e777643cadd804787813f7c61a090461a6222f826afa129ec3e372c831
4
+ data.tar.gz: 667a1207967cee10cbd68a141a64afa17052d8e794aeed2983c8499350427d80
5
5
  SHA512:
6
- metadata.gz: 020c24727d69069ff1bebe967a70954d363d4401bcedb7624436a9576cf61566aeace9d94e34ee890b8ff901ce663cfeebb287d9db3a6cf191931ddff360b489
7
- data.tar.gz: 0c5ced4e1b381550f1d9214cd147fdd2ffb6308d4fcd07f71f38b3a912793f296767d23d9351f2af99fa18f90ec7759f6d9fb5a860452a1c419e2a28a85fec71
6
+ metadata.gz: 4342d222dda68d50df2d749e8978344b5c2996641a2daef2addf9d14bfeb27154864ef932bc9749cf9dbeeaf12fec636d728b070f66e94164865eb18980e59cc
7
+ data.tar.gz: 1e71bf2daf268cf89cd62de4442b7c594beee87bd8f5c5260804647014023cc182e1e94ed79e904fc1bc5acaaae6528051f1fb2192e6068188cd1cbdc2fa7926
data/.git/ORIG_HEAD CHANGED
@@ -1 +1 @@
1
- 28d4387142c309e532c47f809e4ef3c80150f523
1
+ 95ca84ab082b3f19fa3b0d1799ac55e4beebea64
data/.git/index CHANGED
Binary file
data/.git/logs/HEAD CHANGED
@@ -1,3 +1,3 @@
1
- 0000000000000000000000000000000000000000 28d4387142c309e532c47f809e4ef3c80150f523 root <root@359669c8de62.(none)> 1751298632 +0000 clone: from github.com:strongdm/strongdm-sdk-ruby.git
2
- 28d4387142c309e532c47f809e4ef3c80150f523 28d4387142c309e532c47f809e4ef3c80150f523 root <root@359669c8de62.(none)> 1751298632 +0000 checkout: moving from master to master
3
- 28d4387142c309e532c47f809e4ef3c80150f523 95ca84ab082b3f19fa3b0d1799ac55e4beebea64 root <root@359669c8de62.(none)> 1751298632 +0000 merge origin/development: Fast-forward
1
+ 0000000000000000000000000000000000000000 95ca84ab082b3f19fa3b0d1799ac55e4beebea64 root <root@95aba831521d.(none)> 1753950833 +0000 clone: from github.com:strongdm/strongdm-sdk-ruby.git
2
+ 95ca84ab082b3f19fa3b0d1799ac55e4beebea64 95ca84ab082b3f19fa3b0d1799ac55e4beebea64 root <root@95aba831521d.(none)> 1753950833 +0000 checkout: moving from master to master
3
+ 95ca84ab082b3f19fa3b0d1799ac55e4beebea64 cf3b15b82cb0c4229609c07c870c6cb4fd38ef75 root <root@95aba831521d.(none)> 1753950833 +0000 merge origin/development: Fast-forward
@@ -1,2 +1,2 @@
1
- 0000000000000000000000000000000000000000 28d4387142c309e532c47f809e4ef3c80150f523 root <root@359669c8de62.(none)> 1751298632 +0000 clone: from github.com:strongdm/strongdm-sdk-ruby.git
2
- 28d4387142c309e532c47f809e4ef3c80150f523 95ca84ab082b3f19fa3b0d1799ac55e4beebea64 root <root@359669c8de62.(none)> 1751298632 +0000 merge origin/development: Fast-forward
1
+ 0000000000000000000000000000000000000000 95ca84ab082b3f19fa3b0d1799ac55e4beebea64 root <root@95aba831521d.(none)> 1753950833 +0000 clone: from github.com:strongdm/strongdm-sdk-ruby.git
2
+ 95ca84ab082b3f19fa3b0d1799ac55e4beebea64 cf3b15b82cb0c4229609c07c870c6cb4fd38ef75 root <root@95aba831521d.(none)> 1753950833 +0000 merge origin/development: Fast-forward
@@ -1 +1 @@
1
- 0000000000000000000000000000000000000000 28d4387142c309e532c47f809e4ef3c80150f523 root <root@359669c8de62.(none)> 1751298632 +0000 clone: from github.com:strongdm/strongdm-sdk-ruby.git
1
+ 0000000000000000000000000000000000000000 95ca84ab082b3f19fa3b0d1799ac55e4beebea64 root <root@95aba831521d.(none)> 1753950833 +0000 clone: from github.com:strongdm/strongdm-sdk-ruby.git
data/.git/packed-refs CHANGED
@@ -1,6 +1,6 @@
1
1
  # pack-refs with: peeled fully-peeled sorted
2
- 95ca84ab082b3f19fa3b0d1799ac55e4beebea64 refs/remotes/origin/development
3
- 28d4387142c309e532c47f809e4ef3c80150f523 refs/remotes/origin/master
2
+ cf3b15b82cb0c4229609c07c870c6cb4fd38ef75 refs/remotes/origin/development
3
+ 95ca84ab082b3f19fa3b0d1799ac55e4beebea64 refs/remotes/origin/master
4
4
  2e4fe8087177ddea9b3991ca499f758384839c89 refs/tags/untagged-84fd83a4484c785cce63
5
5
  04f604866214fab4d5663b5171a3e596331577bd refs/tags/v0.9.4
6
6
  6f9a7b75b345c65fb554884907b7060680c807b7 refs/tags/v0.9.5
@@ -103,6 +103,7 @@ f5e3068d4f6c73c93d409699726cc9fb3c5cf482 refs/tags/v14.5.0
103
103
  5c3dad71c286baa1fed7056f23334ecfbf114abc refs/tags/v14.9.0
104
104
  08fd7fd2e52f2718155d68f541842535a3261ebd refs/tags/v15.0.0
105
105
  28d4387142c309e532c47f809e4ef3c80150f523 refs/tags/v15.1.0
106
+ 95ca84ab082b3f19fa3b0d1799ac55e4beebea64 refs/tags/v15.2.0
106
107
  e0b1ec0134c7015ccb8c14464cc713c20034159e refs/tags/v2.0.0
107
108
  62a146d9d56852b2ad14ec5d2796cad158d66e1c refs/tags/v2.1.0
108
109
  9de04e628082f4ad0eb9511311479a089d302008 refs/tags/v2.2.0
@@ -1 +1 @@
1
- 95ca84ab082b3f19fa3b0d1799ac55e4beebea64
1
+ cf3b15b82cb0c4229609c07c870c6cb4fd38ef75
@@ -65,6 +65,7 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
65
65
  optional :account_id, :string, 4
66
66
  optional :role_id, :string, 5
67
67
  optional :reference, :string, 6
68
+ optional :group_id, :string, 7
68
69
  end
69
70
  end
70
71
  end
@@ -84,6 +84,7 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
84
84
  optional :account_id, :string, 1
85
85
  optional :role_id, :string, 2
86
86
  optional :reference, :string, 3
87
+ optional :group_id, :string, 4
87
88
  end
88
89
  end
89
90
  end
@@ -29,6 +29,7 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
29
29
  optional :aks_service_account, :message, 807, "v1.AKSServiceAccount"
30
30
  optional :aks_service_account_user_impersonation, :message, 810, "v1.AKSServiceAccountUserImpersonation"
31
31
  optional :aks_user_impersonation, :message, 814, "v1.AKSUserImpersonation"
32
+ optional :amqp, :message, 2502, "v1.AMQP"
32
33
  optional :aws, :message, 2300, "v1.AWS"
33
34
  optional :aws_console, :message, 3000, "v1.AWSConsole"
34
35
  optional :aws_console_static_key_pair, :message, 3001, "v1.AWSConsoleStaticKeyPair"
@@ -51,6 +52,7 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
51
52
  optional :azure_certificate, :message, 2801, "v1.AzureCertificate"
52
53
  optional :azure_console, :message, 2803, "v1.AzureConsole"
53
54
  optional :azure_mysql, :message, 1107, "v1.AzureMysql"
55
+ optional :azure_mysql_managed_identity, :message, 1110, "v1.AzureMysqlManagedIdentity"
54
56
  optional :azure_postgres, :message, 1307, "v1.AzurePostgres"
55
57
  optional :azure_postgres_managed_identity, :message, 1308, "v1.AzurePostgresManagedIdentity"
56
58
  optional :big_query, :message, 200, "v1.BigQuery"
@@ -228,6 +230,23 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
228
230
  optional :port, :int32, 2
229
231
  optional :port_override, :int32, 10
230
232
  end
233
+ add_message "v1.AMQP" do
234
+ optional :id, :string, 32768
235
+ optional :name, :string, 32769
236
+ optional :healthy, :bool, 32770
237
+ optional :tags, :message, 32771, "v1.Tags"
238
+ optional :secret_store_id, :string, 32772
239
+ optional :egress_filter, :string, 32773
240
+ optional :bind_interface, :string, 32774
241
+ optional :proxy_cluster_id, :string, 32776
242
+ optional :subdomain, :string, 32775
243
+ optional :hostname, :string, 1
244
+ optional :password, :string, 5
245
+ optional :port, :int32, 3
246
+ optional :port_override, :int32, 2
247
+ optional :tls_required, :bool, 8
248
+ optional :username, :string, 4
249
+ end
231
250
  add_message "v1.AWS" do
232
251
  optional :id, :string, 32768
233
252
  optional :name, :string, 32769
@@ -632,6 +651,24 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
632
651
  optional :use_azure_single_server_usernames, :bool, 9
633
652
  optional :username, :string, 2
634
653
  end
654
+ add_message "v1.AzureMysqlManagedIdentity" do
655
+ optional :id, :string, 32768
656
+ optional :name, :string, 32769
657
+ optional :healthy, :bool, 32770
658
+ optional :tags, :message, 32771, "v1.Tags"
659
+ optional :secret_store_id, :string, 32772
660
+ optional :egress_filter, :string, 32773
661
+ optional :bind_interface, :string, 32774
662
+ optional :proxy_cluster_id, :string, 32776
663
+ optional :subdomain, :string, 32775
664
+ optional :database, :string, 4
665
+ optional :hostname, :string, 1
666
+ optional :password, :string, 3
667
+ optional :port, :int32, 6
668
+ optional :port_override, :int32, 5
669
+ optional :use_azure_single_server_usernames, :bool, 8
670
+ optional :username, :string, 2
671
+ end
635
672
  add_message "v1.AzurePostgres" do
636
673
  optional :id, :string, 32768
637
674
  optional :name, :string, 32769
@@ -2071,6 +2108,7 @@ module V1
2071
2108
  AKSServiceAccount = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.AKSServiceAccount").msgclass
2072
2109
  AKSServiceAccountUserImpersonation = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.AKSServiceAccountUserImpersonation").msgclass
2073
2110
  AKSUserImpersonation = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.AKSUserImpersonation").msgclass
2111
+ AMQP = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.AMQP").msgclass
2074
2112
  AWS = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.AWS").msgclass
2075
2113
  AWSConsole = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.AWSConsole").msgclass
2076
2114
  AWSConsoleStaticKeyPair = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.AWSConsoleStaticKeyPair").msgclass
@@ -2093,6 +2131,7 @@ module V1
2093
2131
  AzureCertificate = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.AzureCertificate").msgclass
2094
2132
  AzureConsole = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.AzureConsole").msgclass
2095
2133
  AzureMysql = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.AzureMysql").msgclass
2134
+ AzureMysqlManagedIdentity = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.AzureMysqlManagedIdentity").msgclass
2096
2135
  AzurePostgres = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.AzurePostgres").msgclass
2097
2136
  AzurePostgresManagedIdentity = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.AzurePostgresManagedIdentity").msgclass
2098
2137
  BigQuery = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.BigQuery").msgclass
data/lib/grpc/plumbing.rb CHANGED
@@ -42,6 +42,7 @@ require_relative "./approval_workflow_steps_history_pb"
42
42
  require_relative "./approval_workflows_pb"
43
43
  require_relative "./approval_workflows_history_pb"
44
44
  require_relative "./control_panel_pb"
45
+ require_relative "./roles_pb"
45
46
  require_relative "./health_checks_pb"
46
47
  require_relative "./identity_aliases_pb"
47
48
  require_relative "./identity_aliases_history_pb"
@@ -68,7 +69,6 @@ require_relative "./resources_pb"
68
69
  require_relative "./resources_history_pb"
69
70
  require_relative "./role_resources_pb"
70
71
  require_relative "./role_resources_history_pb"
71
- require_relative "./roles_pb"
72
72
  require_relative "./roles_history_pb"
73
73
  require_relative "./secret_engine_policy_pb"
74
74
  require_relative "./secret_engine_types_pb"
@@ -547,6 +547,68 @@ module SDM
547
547
  end
548
548
  items
549
549
  end
550
+ def self.convert_amqp_to_porcelain(plumbing)
551
+ if plumbing == nil
552
+ return nil
553
+ end
554
+ porcelain = AMQP.new()
555
+ porcelain.bind_interface = (plumbing.bind_interface)
556
+ porcelain.egress_filter = (plumbing.egress_filter)
557
+ porcelain.healthy = (plumbing.healthy)
558
+ porcelain.hostname = (plumbing.hostname)
559
+ porcelain.id = (plumbing.id)
560
+ porcelain.name = (plumbing.name)
561
+ porcelain.password = (plumbing.password)
562
+ porcelain.port = (plumbing.port)
563
+ porcelain.port_override = (plumbing.port_override)
564
+ porcelain.proxy_cluster_id = (plumbing.proxy_cluster_id)
565
+ porcelain.secret_store_id = (plumbing.secret_store_id)
566
+ porcelain.subdomain = (plumbing.subdomain)
567
+ porcelain.tags = convert_tags_to_porcelain(plumbing.tags)
568
+ porcelain.tls_required = (plumbing.tls_required)
569
+ porcelain.username = (plumbing.username)
570
+ porcelain
571
+ end
572
+
573
+ def self.convert_amqp_to_plumbing(porcelain)
574
+ if porcelain == nil
575
+ return nil
576
+ end
577
+ plumbing = V1::AMQP.new()
578
+ plumbing.bind_interface = (porcelain.bind_interface)
579
+ plumbing.egress_filter = (porcelain.egress_filter)
580
+ plumbing.healthy = (porcelain.healthy)
581
+ plumbing.hostname = (porcelain.hostname)
582
+ plumbing.id = (porcelain.id)
583
+ plumbing.name = (porcelain.name)
584
+ plumbing.password = (porcelain.password)
585
+ plumbing.port = (porcelain.port)
586
+ plumbing.port_override = (porcelain.port_override)
587
+ plumbing.proxy_cluster_id = (porcelain.proxy_cluster_id)
588
+ plumbing.secret_store_id = (porcelain.secret_store_id)
589
+ plumbing.subdomain = (porcelain.subdomain)
590
+ plumbing.tags = convert_tags_to_plumbing(porcelain.tags)
591
+ plumbing.tls_required = (porcelain.tls_required)
592
+ plumbing.username = (porcelain.username)
593
+ plumbing
594
+ end
595
+ def self.convert_repeated_amqp_to_plumbing(porcelains)
596
+ items = Array.new
597
+ porcelains.each do |porcelain|
598
+ plumbing = convert_amqp_to_plumbing(porcelain)
599
+ items.append(plumbing)
600
+ end
601
+ items
602
+ end
603
+
604
+ def self.convert_repeated_amqp_to_porcelain(plumbings)
605
+ items = Array.new
606
+ plumbings.each do |plumbing|
607
+ porcelain = convert_amqp_to_porcelain(plumbing)
608
+ items.append(porcelain)
609
+ end
610
+ items
611
+ end
550
612
  def self.convert_aws_to_porcelain(plumbing)
551
613
  if plumbing == nil
552
614
  return nil
@@ -4184,6 +4246,70 @@ module SDM
4184
4246
  end
4185
4247
  items
4186
4248
  end
4249
+ def self.convert_azure_mysql_managed_identity_to_porcelain(plumbing)
4250
+ if plumbing == nil
4251
+ return nil
4252
+ end
4253
+ porcelain = AzureMysqlManagedIdentity.new()
4254
+ porcelain.bind_interface = (plumbing.bind_interface)
4255
+ porcelain.database = (plumbing.database)
4256
+ porcelain.egress_filter = (plumbing.egress_filter)
4257
+ porcelain.healthy = (plumbing.healthy)
4258
+ porcelain.hostname = (plumbing.hostname)
4259
+ porcelain.id = (plumbing.id)
4260
+ porcelain.name = (plumbing.name)
4261
+ porcelain.password = (plumbing.password)
4262
+ porcelain.port = (plumbing.port)
4263
+ porcelain.port_override = (plumbing.port_override)
4264
+ porcelain.proxy_cluster_id = (plumbing.proxy_cluster_id)
4265
+ porcelain.secret_store_id = (plumbing.secret_store_id)
4266
+ porcelain.subdomain = (plumbing.subdomain)
4267
+ porcelain.tags = convert_tags_to_porcelain(plumbing.tags)
4268
+ porcelain.use_azure_single_server_usernames = (plumbing.use_azure_single_server_usernames)
4269
+ porcelain.username = (plumbing.username)
4270
+ porcelain
4271
+ end
4272
+
4273
+ def self.convert_azure_mysql_managed_identity_to_plumbing(porcelain)
4274
+ if porcelain == nil
4275
+ return nil
4276
+ end
4277
+ plumbing = V1::AzureMysqlManagedIdentity.new()
4278
+ plumbing.bind_interface = (porcelain.bind_interface)
4279
+ plumbing.database = (porcelain.database)
4280
+ plumbing.egress_filter = (porcelain.egress_filter)
4281
+ plumbing.healthy = (porcelain.healthy)
4282
+ plumbing.hostname = (porcelain.hostname)
4283
+ plumbing.id = (porcelain.id)
4284
+ plumbing.name = (porcelain.name)
4285
+ plumbing.password = (porcelain.password)
4286
+ plumbing.port = (porcelain.port)
4287
+ plumbing.port_override = (porcelain.port_override)
4288
+ plumbing.proxy_cluster_id = (porcelain.proxy_cluster_id)
4289
+ plumbing.secret_store_id = (porcelain.secret_store_id)
4290
+ plumbing.subdomain = (porcelain.subdomain)
4291
+ plumbing.tags = convert_tags_to_plumbing(porcelain.tags)
4292
+ plumbing.use_azure_single_server_usernames = (porcelain.use_azure_single_server_usernames)
4293
+ plumbing.username = (porcelain.username)
4294
+ plumbing
4295
+ end
4296
+ def self.convert_repeated_azure_mysql_managed_identity_to_plumbing(porcelains)
4297
+ items = Array.new
4298
+ porcelains.each do |porcelain|
4299
+ plumbing = convert_azure_mysql_managed_identity_to_plumbing(porcelain)
4300
+ items.append(plumbing)
4301
+ end
4302
+ items
4303
+ end
4304
+
4305
+ def self.convert_repeated_azure_mysql_managed_identity_to_porcelain(plumbings)
4306
+ items = Array.new
4307
+ plumbings.each do |plumbing|
4308
+ porcelain = convert_azure_mysql_managed_identity_to_porcelain(plumbing)
4309
+ items.append(porcelain)
4310
+ end
4311
+ items
4312
+ end
4187
4313
  def self.convert_azure_postgres_to_porcelain(plumbing)
4188
4314
  if plumbing == nil
4189
4315
  return nil
@@ -12913,6 +13039,9 @@ module SDM
12913
13039
  if porcelain.instance_of? AmazonMQAMQP091
12914
13040
  plumbing.amazon_mqamqp_091 = convert_amazon_mqamqp_091_to_plumbing(porcelain)
12915
13041
  end
13042
+ if porcelain.instance_of? AMQP
13043
+ plumbing.amqp = convert_amqp_to_plumbing(porcelain)
13044
+ end
12916
13045
  if porcelain.instance_of? Athena
12917
13046
  plumbing.athena = convert_athena_to_plumbing(porcelain)
12918
13047
  end
@@ -12955,6 +13084,9 @@ module SDM
12955
13084
  if porcelain.instance_of? AzureMysql
12956
13085
  plumbing.azure_mysql = convert_azure_mysql_to_plumbing(porcelain)
12957
13086
  end
13087
+ if porcelain.instance_of? AzureMysqlManagedIdentity
13088
+ plumbing.azure_mysql_managed_identity = convert_azure_mysql_managed_identity_to_plumbing(porcelain)
13089
+ end
12958
13090
  if porcelain.instance_of? AzurePostgres
12959
13091
  plumbing.azure_postgres = convert_azure_postgres_to_plumbing(porcelain)
12960
13092
  end
@@ -13241,6 +13373,9 @@ module SDM
13241
13373
  if plumbing.amazon_mqamqp_091 != nil
13242
13374
  return convert_amazon_mqamqp_091_to_porcelain(plumbing.amazon_mqamqp_091)
13243
13375
  end
13376
+ if plumbing.amqp != nil
13377
+ return convert_amqp_to_porcelain(plumbing.amqp)
13378
+ end
13244
13379
  if plumbing.athena != nil
13245
13380
  return convert_athena_to_porcelain(plumbing.athena)
13246
13381
  end
@@ -13283,6 +13418,9 @@ module SDM
13283
13418
  if plumbing.azure_mysql != nil
13284
13419
  return convert_azure_mysql_to_porcelain(plumbing.azure_mysql)
13285
13420
  end
13421
+ if plumbing.azure_mysql_managed_identity != nil
13422
+ return convert_azure_mysql_managed_identity_to_porcelain(plumbing.azure_mysql_managed_identity)
13423
+ end
13286
13424
  if plumbing.azure_postgres != nil
13287
13425
  return convert_azure_postgres_to_porcelain(plumbing.azure_postgres)
13288
13426
  end
@@ -286,6 +286,7 @@ module SDM
286
286
  end
287
287
  end
288
288
 
289
+ # AKSServiceAccountUserImpersonation is deprecated, see docs for more info.
289
290
  class AKSServiceAccountUserImpersonation
290
291
  # The bind interface is the IP address to which the port override of a resource is bound (for example, 127.0.0.1). It is automatically generated if not provided.
291
292
  attr_accessor :bind_interface
@@ -357,6 +358,7 @@ module SDM
357
358
  end
358
359
  end
359
360
 
361
+ # AKSUserImpersonation is deprecated, see docs for more info.
360
362
  class AKSUserImpersonation
361
363
  # The bind interface is the IP address to which the port override of a resource is bound (for example, 127.0.0.1). It is automatically generated if not provided.
362
364
  attr_accessor :bind_interface
@@ -436,6 +438,82 @@ module SDM
436
438
  end
437
439
  end
438
440
 
441
+ # AMQP is currently unstable, and its API may change, or it may be removed, without a major version bump.
442
+ class AMQP
443
+ # The bind interface is the IP address to which the port override of a resource is bound (for example, 127.0.0.1). It is automatically generated if not provided.
444
+ attr_accessor :bind_interface
445
+ # A filter applied to the routing logic to pin datasource to nodes.
446
+ attr_accessor :egress_filter
447
+ # True if the datasource is reachable and the credentials are valid.
448
+ attr_accessor :healthy
449
+ # The host to dial to initiate a connection from the egress node to this resource.
450
+ attr_accessor :hostname
451
+ # Unique identifier of the Resource.
452
+ attr_accessor :id
453
+ # Unique human-readable name of the Resource.
454
+ attr_accessor :name
455
+ # The password to authenticate with.
456
+ attr_accessor :password
457
+ # The port to dial to initiate a connection from the egress node to this resource.
458
+ attr_accessor :port
459
+ # The local port used by clients to connect to this resource.
460
+ attr_accessor :port_override
461
+ # ID of the proxy cluster for this resource, if any.
462
+ attr_accessor :proxy_cluster_id
463
+ # ID of the secret store containing credentials for this resource, if any.
464
+ attr_accessor :secret_store_id
465
+ # Subdomain is the local DNS address. (e.g. app-prod1 turns into app-prod1.your-org-name.sdm.network)
466
+ attr_accessor :subdomain
467
+ # Tags is a map of key, value pairs.
468
+ attr_accessor :tags
469
+ # If set, TLS must be used to connect to this resource.
470
+ attr_accessor :tls_required
471
+ # The username to authenticate with.
472
+ attr_accessor :username
473
+
474
+ def initialize(
475
+ bind_interface: nil,
476
+ egress_filter: nil,
477
+ healthy: nil,
478
+ hostname: nil,
479
+ id: nil,
480
+ name: nil,
481
+ password: nil,
482
+ port: nil,
483
+ port_override: nil,
484
+ proxy_cluster_id: nil,
485
+ secret_store_id: nil,
486
+ subdomain: nil,
487
+ tags: nil,
488
+ tls_required: nil,
489
+ username: nil
490
+ )
491
+ @bind_interface = bind_interface == nil ? "" : bind_interface
492
+ @egress_filter = egress_filter == nil ? "" : egress_filter
493
+ @healthy = healthy == nil ? false : healthy
494
+ @hostname = hostname == nil ? "" : hostname
495
+ @id = id == nil ? "" : id
496
+ @name = name == nil ? "" : name
497
+ @password = password == nil ? "" : password
498
+ @port = port == nil ? 0 : port
499
+ @port_override = port_override == nil ? 0 : port_override
500
+ @proxy_cluster_id = proxy_cluster_id == nil ? "" : proxy_cluster_id
501
+ @secret_store_id = secret_store_id == nil ? "" : secret_store_id
502
+ @subdomain = subdomain == nil ? "" : subdomain
503
+ @tags = tags == nil ? SDM::_porcelain_zero_value_tags() : tags
504
+ @tls_required = tls_required == nil ? false : tls_required
505
+ @username = username == nil ? "" : username
506
+ end
507
+
508
+ def to_json(options = {})
509
+ hash = {}
510
+ self.instance_variables.each do |var|
511
+ hash[var.id2name.delete_prefix("@")] = self.instance_variable_get var
512
+ end
513
+ hash.to_json
514
+ end
515
+ end
516
+
439
517
  class AWS
440
518
  # The Access Key ID to use to authenticate.
441
519
  attr_accessor :access_key
@@ -2243,6 +2321,7 @@ module SDM
2243
2321
  end
2244
2322
  end
2245
2323
 
2324
+ # AmazonEKSInstanceProfileUserImpersonation is deprecated, see docs for more info.
2246
2325
  class AmazonEKSInstanceProfileUserImpersonation
2247
2326
  # The bind interface is the IP address to which the port override of a resource is bound (for example, 127.0.0.1). It is automatically generated if not provided.
2248
2327
  attr_accessor :bind_interface
@@ -2326,6 +2405,7 @@ module SDM
2326
2405
  end
2327
2406
  end
2328
2407
 
2408
+ # AmazonEKSUserImpersonation is deprecated, see docs for more info.
2329
2409
  class AmazonEKSUserImpersonation
2330
2410
  # The Access Key ID to use to authenticate.
2331
2411
  attr_accessor :access_key
@@ -2741,6 +2821,7 @@ module SDM
2741
2821
  end
2742
2822
 
2743
2823
  # ApprovalWorkflowApprover links an approval workflow approver to an ApprovalWorkflowStep
2824
+ # ApprovalWorkflowApprover is deprecated, see docs for more info.
2744
2825
  class ApprovalWorkflowApprover
2745
2826
  # The approver account id.
2746
2827
  attr_accessor :account_id
@@ -3047,6 +3128,7 @@ module SDM
3047
3128
  end
3048
3129
 
3049
3130
  # ApprovalWorkflowStep links an approval workflow step to an ApprovalWorkflow
3131
+ # ApprovalWorkflowStep is deprecated, see docs for more info.
3050
3132
  class ApprovalWorkflowStep
3051
3133
  # The approval flow id specified the approval workflow that this step belongs to
3052
3134
  attr_accessor :approval_flow_id
@@ -4002,6 +4084,86 @@ module SDM
4002
4084
  end
4003
4085
  end
4004
4086
 
4087
+ # AzureMysqlManagedIdentity is currently unstable, and its API may change, or it may be removed, without a major version bump.
4088
+ class AzureMysqlManagedIdentity
4089
+ # The bind interface is the IP address to which the port override of a resource is bound (for example, 127.0.0.1). It is automatically generated if not provided.
4090
+ attr_accessor :bind_interface
4091
+ # The database for healthchecks. Does not affect client requests.
4092
+ attr_accessor :database
4093
+ # A filter applied to the routing logic to pin datasource to nodes.
4094
+ attr_accessor :egress_filter
4095
+ # True if the datasource is reachable and the credentials are valid.
4096
+ attr_accessor :healthy
4097
+ # The host to dial to initiate a connection from the egress node to this resource.
4098
+ attr_accessor :hostname
4099
+ # Unique identifier of the Resource.
4100
+ attr_accessor :id
4101
+ # Unique human-readable name of the Resource.
4102
+ attr_accessor :name
4103
+ # The password to authenticate with.
4104
+ attr_accessor :password
4105
+ # The port to dial to initiate a connection from the egress node to this resource.
4106
+ attr_accessor :port
4107
+ # The local port used by clients to connect to this resource.
4108
+ attr_accessor :port_override
4109
+ # ID of the proxy cluster for this resource, if any.
4110
+ attr_accessor :proxy_cluster_id
4111
+ # ID of the secret store containing credentials for this resource, if any.
4112
+ attr_accessor :secret_store_id
4113
+ # Subdomain is the local DNS address. (e.g. app-prod1 turns into app-prod1.your-org-name.sdm.network)
4114
+ attr_accessor :subdomain
4115
+ # Tags is a map of key, value pairs.
4116
+ attr_accessor :tags
4117
+ # If true, appends the hostname to the username when hitting a database.azure.com address
4118
+ attr_accessor :use_azure_single_server_usernames
4119
+ # The username to authenticate with.
4120
+ attr_accessor :username
4121
+
4122
+ def initialize(
4123
+ bind_interface: nil,
4124
+ database: nil,
4125
+ egress_filter: nil,
4126
+ healthy: nil,
4127
+ hostname: nil,
4128
+ id: nil,
4129
+ name: nil,
4130
+ password: nil,
4131
+ port: nil,
4132
+ port_override: nil,
4133
+ proxy_cluster_id: nil,
4134
+ secret_store_id: nil,
4135
+ subdomain: nil,
4136
+ tags: nil,
4137
+ use_azure_single_server_usernames: nil,
4138
+ username: nil
4139
+ )
4140
+ @bind_interface = bind_interface == nil ? "" : bind_interface
4141
+ @database = database == nil ? "" : database
4142
+ @egress_filter = egress_filter == nil ? "" : egress_filter
4143
+ @healthy = healthy == nil ? false : healthy
4144
+ @hostname = hostname == nil ? "" : hostname
4145
+ @id = id == nil ? "" : id
4146
+ @name = name == nil ? "" : name
4147
+ @password = password == nil ? "" : password
4148
+ @port = port == nil ? 0 : port
4149
+ @port_override = port_override == nil ? 0 : port_override
4150
+ @proxy_cluster_id = proxy_cluster_id == nil ? "" : proxy_cluster_id
4151
+ @secret_store_id = secret_store_id == nil ? "" : secret_store_id
4152
+ @subdomain = subdomain == nil ? "" : subdomain
4153
+ @tags = tags == nil ? SDM::_porcelain_zero_value_tags() : tags
4154
+ @use_azure_single_server_usernames = use_azure_single_server_usernames == nil ? false : use_azure_single_server_usernames
4155
+ @username = username == nil ? "" : username
4156
+ end
4157
+
4158
+ def to_json(options = {})
4159
+ hash = {}
4160
+ self.instance_variables.each do |var|
4161
+ hash[var.id2name.delete_prefix("@")] = self.instance_variable_get var
4162
+ end
4163
+ hash.to_json
4164
+ end
4165
+ end
4166
+
4005
4167
  class AzurePostgres
4006
4168
  # The bind interface is the IP address to which the port override of a resource is bound (for example, 127.0.0.1). It is automatically generated if not provided.
4007
4169
  attr_accessor :bind_interface
@@ -6548,6 +6710,7 @@ module SDM
6548
6710
  end
6549
6711
  end
6550
6712
 
6713
+ # GoogleGKEUserImpersonation is deprecated, see docs for more info.
6551
6714
  class GoogleGKEUserImpersonation
6552
6715
  # The bind interface is the IP address to which the port override of a resource is bound (for example, 127.0.0.1). It is automatically generated if not provided.
6553
6716
  attr_accessor :bind_interface
@@ -7953,6 +8116,7 @@ module SDM
7953
8116
  end
7954
8117
  end
7955
8118
 
8119
+ # KubernetesServiceAccountUserImpersonation is deprecated, see docs for more info.
7956
8120
  class KubernetesServiceAccountUserImpersonation
7957
8121
  # The bind interface is the IP address to which the port override of a resource is bound (for example, 127.0.0.1). It is automatically generated if not provided.
7958
8122
  attr_accessor :bind_interface
@@ -8024,6 +8188,7 @@ module SDM
8024
8188
  end
8025
8189
  end
8026
8190
 
8191
+ # KubernetesUserImpersonation is deprecated, see docs for more info.
8027
8192
  class KubernetesUserImpersonation
8028
8193
  # The bind interface is the IP address to which the port override of a resource is bound (for example, 127.0.0.1). It is automatically generated if not provided.
8029
8194
  attr_accessor :bind_interface
@@ -15699,6 +15864,7 @@ module SDM
15699
15864
  end
15700
15865
 
15701
15866
  # WorkflowApprover is an account or a role with the ability to approve requests bound to a workflow.
15867
+ # WorkflowApprover is deprecated, see docs for more info.
15702
15868
  class WorkflowApprover
15703
15869
  # The approver account id.
15704
15870
  attr_accessor :account_id
data/lib/strongdm.rb CHANGED
@@ -30,7 +30,7 @@ module SDM #:nodoc:
30
30
  DEFAULT_RETRY_FACTOR = 1.6
31
31
  DEFAULT_RETRY_JITTER = 0.2
32
32
  API_VERSION = "2025-04-14"
33
- USER_AGENT = "strongdm-sdk-ruby/15.2.0"
33
+ USER_AGENT = "strongdm-sdk-ruby/15.4.0"
34
34
  private_constant :DEFAULT_BASE_RETRY_DELAY, :DEFAULT_MAX_RETRY_DELAY, :DEFAULT_RETRY_FACTOR, :DEFAULT_RETRY_JITTER, :API_VERSION, :USER_AGENT
35
35
 
36
36
  # Creates a new strongDM API client.
@@ -77,6 +77,7 @@ module SDM #:nodoc:
77
77
  @approval_workflows = ApprovalWorkflows.new(@channel, self)
78
78
  @approval_workflows_history = ApprovalWorkflowsHistory.new(@channel, self)
79
79
  @control_panel = ControlPanel.new(@channel, self)
80
+ @roles = Roles.new(@channel, self)
80
81
  @health_checks = HealthChecks.new(@channel, self)
81
82
  @identity_aliases = IdentityAliases.new(@channel, self)
82
83
  @identity_aliases_history = IdentityAliasesHistory.new(@channel, self)
@@ -103,7 +104,6 @@ module SDM #:nodoc:
103
104
  @resources_history = ResourcesHistory.new(@channel, self)
104
105
  @role_resources = RoleResources.new(@channel, self)
105
106
  @role_resources_history = RoleResourcesHistory.new(@channel, self)
106
- @roles = Roles.new(@channel, self)
107
107
  @roles_history = RolesHistory.new(@channel, self)
108
108
  @secret_stores = SecretStores.new(@channel, self)
109
109
  @secret_engines = SecretEngines.new(@channel, self)
@@ -315,6 +315,12 @@ module SDM #:nodoc:
315
315
  #
316
316
  # See {ControlPanel}.
317
317
  attr_reader :control_panel
318
+ # A Role has a list of access rules which determine which Resources the members
319
+ # of the Role have access to. An Account can be a member of multiple Roles via
320
+ # AccountAttachments.
321
+ #
322
+ # See {Roles}.
323
+ attr_reader :roles
318
324
  # HealthChecks lists the last healthcheck between each node and resource.
319
325
  # Note the unconventional capitalization here is to prevent having a collision with GRPC
320
326
  #
@@ -435,12 +441,6 @@ module SDM #:nodoc:
435
441
  #
436
442
  # See {RoleResourcesHistory}.
437
443
  attr_reader :role_resources_history
438
- # A Role has a list of access rules which determine which Resources the members
439
- # of the Role have access to. An Account can be a member of multiple Roles via
440
- # AccountAttachments.
441
- #
442
- # See {Roles}.
443
- attr_reader :roles
444
444
  # RolesHistory records all changes to the state of a Role.
445
445
  #
446
446
  # See {RolesHistory}.
@@ -516,6 +516,7 @@ module SDM #:nodoc:
516
516
  @approval_workflows = ApprovalWorkflows.new(@channel, self)
517
517
  @approval_workflows_history = ApprovalWorkflowsHistory.new(@channel, self)
518
518
  @control_panel = ControlPanel.new(@channel, self)
519
+ @roles = Roles.new(@channel, self)
519
520
  @health_checks = HealthChecks.new(@channel, self)
520
521
  @identity_aliases = IdentityAliases.new(@channel, self)
521
522
  @identity_aliases_history = IdentityAliasesHistory.new(@channel, self)
@@ -542,7 +543,6 @@ module SDM #:nodoc:
542
543
  @resources_history = ResourcesHistory.new(@channel, self)
543
544
  @role_resources = RoleResources.new(@channel, self)
544
545
  @role_resources_history = RoleResourcesHistory.new(@channel, self)
545
- @roles = Roles.new(@channel, self)
546
546
  @roles_history = RolesHistory.new(@channel, self)
547
547
  @secret_stores = SecretStores.new(@channel, self)
548
548
  @secret_engines = SecretEngines.new(@channel, self)
@@ -569,6 +569,7 @@ module SDM #:nodoc:
569
569
  @approval_workflow_approvers = SnapshotApprovalWorkflowApprovers.new(client.approval_workflow_approvers)
570
570
  @approval_workflow_steps = SnapshotApprovalWorkflowSteps.new(client.approval_workflow_steps)
571
571
  @approval_workflows = SnapshotApprovalWorkflows.new(client.approval_workflows)
572
+ @roles = SnapshotRoles.new(client.roles)
572
573
  @identity_aliases = SnapshotIdentityAliases.new(client.identity_aliases)
573
574
  @identity_sets = SnapshotIdentitySets.new(client.identity_sets)
574
575
  @nodes = SnapshotNodes.new(client.nodes)
@@ -578,7 +579,6 @@ module SDM #:nodoc:
578
579
  @remote_identity_groups = SnapshotRemoteIdentityGroups.new(client.remote_identity_groups)
579
580
  @resources = SnapshotResources.new(client.resources)
580
581
  @role_resources = SnapshotRoleResources.new(client.role_resources)
581
- @roles = SnapshotRoles.new(client.roles)
582
582
  @secret_stores = SnapshotSecretStores.new(client.secret_stores)
583
583
  @workflow_approvers = SnapshotWorkflowApprovers.new(client.workflow_approvers)
584
584
  @workflow_roles = SnapshotWorkflowRoles.new(client.workflow_roles)
@@ -627,6 +627,12 @@ module SDM #:nodoc:
627
627
  #
628
628
  # See {SnapshotApprovalWorkflows}.
629
629
  attr_reader :approval_workflows
630
+ # A Role has a list of access rules which determine which Resources the members
631
+ # of the Role have access to. An Account can be a member of multiple Roles via
632
+ # AccountAttachments.
633
+ #
634
+ # See {SnapshotRoles}.
635
+ attr_reader :roles
630
636
  # IdentityAliases assign an alias to an account within an IdentitySet.
631
637
  # The alias is used as the username when connecting to a identity supported resource.
632
638
  #
@@ -673,12 +679,6 @@ module SDM #:nodoc:
673
679
  #
674
680
  # See {SnapshotRoleResources}.
675
681
  attr_reader :role_resources
676
- # A Role has a list of access rules which determine which Resources the members
677
- # of the Role have access to. An Account can be a member of multiple Roles via
678
- # AccountAttachments.
679
- #
680
- # See {SnapshotRoles}.
681
- attr_reader :roles
682
682
  # SecretStores are servers where resource secrets (passwords, keys) are stored.
683
683
  #
684
684
  # See {SnapshotSecretStores}.
data/lib/svc.rb CHANGED
@@ -2108,6 +2108,220 @@ module SDM #:nodoc:
2108
2108
  end
2109
2109
  end
2110
2110
 
2111
+ # A Role has a list of access rules which determine which Resources the members
2112
+ # of the Role have access to. An Account can be a member of multiple Roles via
2113
+ # AccountAttachments.
2114
+ #
2115
+ # See {Role}.
2116
+ class Roles
2117
+ extend Gem::Deprecate
2118
+
2119
+ def initialize(channel, parent)
2120
+ begin
2121
+ @stub = V1::Roles::Stub.new(nil, nil, channel_override: channel)
2122
+ rescue => exception
2123
+ raise Plumbing::convert_error_to_porcelain(exception)
2124
+ end
2125
+ @parent = parent
2126
+ end
2127
+
2128
+ # Create registers a new Role.
2129
+ def create(
2130
+ role,
2131
+ deadline: nil
2132
+ )
2133
+ req = V1::RoleCreateRequest.new()
2134
+
2135
+ req.role = Plumbing::convert_role_to_plumbing(role)
2136
+ tries = 0
2137
+ plumbing_response = nil
2138
+ loop do
2139
+ begin
2140
+ plumbing_response = @stub.create(req, metadata: @parent.get_metadata("Roles.Create", req), deadline: deadline)
2141
+ rescue => exception
2142
+ if (@parent.shouldRetry(tries, exception, deadline))
2143
+ tries + +sleep(@parent.exponentialBackoff(tries, deadline))
2144
+ next
2145
+ end
2146
+ raise Plumbing::convert_error_to_porcelain(exception)
2147
+ end
2148
+ break
2149
+ end
2150
+
2151
+ resp = RoleCreateResponse.new()
2152
+ resp.meta = Plumbing::convert_create_response_metadata_to_porcelain(plumbing_response.meta)
2153
+ resp.rate_limit = Plumbing::convert_rate_limit_metadata_to_porcelain(plumbing_response.rate_limit)
2154
+ resp.role = Plumbing::convert_role_to_porcelain(plumbing_response.role)
2155
+ resp
2156
+ end
2157
+
2158
+ # Get reads one Role by ID.
2159
+ def get(
2160
+ id,
2161
+ deadline: nil
2162
+ )
2163
+ req = V1::RoleGetRequest.new()
2164
+ if not @parent.snapshot_time.nil?
2165
+ req.meta = V1::GetRequestMetadata.new()
2166
+ req.meta.snapshot_at = @parent.snapshot_time
2167
+ end
2168
+
2169
+ req.id = (id)
2170
+ tries = 0
2171
+ plumbing_response = nil
2172
+ loop do
2173
+ begin
2174
+ plumbing_response = @stub.get(req, metadata: @parent.get_metadata("Roles.Get", req), deadline: deadline)
2175
+ rescue => exception
2176
+ if (@parent.shouldRetry(tries, exception, deadline))
2177
+ tries + +sleep(@parent.exponentialBackoff(tries, deadline))
2178
+ next
2179
+ end
2180
+ raise Plumbing::convert_error_to_porcelain(exception)
2181
+ end
2182
+ break
2183
+ end
2184
+
2185
+ resp = RoleGetResponse.new()
2186
+ resp.meta = Plumbing::convert_get_response_metadata_to_porcelain(plumbing_response.meta)
2187
+ resp.rate_limit = Plumbing::convert_rate_limit_metadata_to_porcelain(plumbing_response.rate_limit)
2188
+ resp.role = Plumbing::convert_role_to_porcelain(plumbing_response.role)
2189
+ resp
2190
+ end
2191
+
2192
+ # Update replaces all the fields of a Role by ID.
2193
+ def update(
2194
+ role,
2195
+ deadline: nil
2196
+ )
2197
+ req = V1::RoleUpdateRequest.new()
2198
+
2199
+ req.role = Plumbing::convert_role_to_plumbing(role)
2200
+ tries = 0
2201
+ plumbing_response = nil
2202
+ loop do
2203
+ begin
2204
+ plumbing_response = @stub.update(req, metadata: @parent.get_metadata("Roles.Update", req), deadline: deadline)
2205
+ rescue => exception
2206
+ if (@parent.shouldRetry(tries, exception, deadline))
2207
+ tries + +sleep(@parent.exponentialBackoff(tries, deadline))
2208
+ next
2209
+ end
2210
+ raise Plumbing::convert_error_to_porcelain(exception)
2211
+ end
2212
+ break
2213
+ end
2214
+
2215
+ resp = RoleUpdateResponse.new()
2216
+ resp.meta = Plumbing::convert_update_response_metadata_to_porcelain(plumbing_response.meta)
2217
+ resp.rate_limit = Plumbing::convert_rate_limit_metadata_to_porcelain(plumbing_response.rate_limit)
2218
+ resp.role = Plumbing::convert_role_to_porcelain(plumbing_response.role)
2219
+ resp
2220
+ end
2221
+
2222
+ # Delete removes a Role by ID.
2223
+ def delete(
2224
+ id,
2225
+ deadline: nil
2226
+ )
2227
+ req = V1::RoleDeleteRequest.new()
2228
+
2229
+ req.id = (id)
2230
+ tries = 0
2231
+ plumbing_response = nil
2232
+ loop do
2233
+ begin
2234
+ plumbing_response = @stub.delete(req, metadata: @parent.get_metadata("Roles.Delete", req), deadline: deadline)
2235
+ rescue => exception
2236
+ if (@parent.shouldRetry(tries, exception, deadline))
2237
+ tries + +sleep(@parent.exponentialBackoff(tries, deadline))
2238
+ next
2239
+ end
2240
+ raise Plumbing::convert_error_to_porcelain(exception)
2241
+ end
2242
+ break
2243
+ end
2244
+
2245
+ resp = RoleDeleteResponse.new()
2246
+ resp.meta = Plumbing::convert_delete_response_metadata_to_porcelain(plumbing_response.meta)
2247
+ resp.rate_limit = Plumbing::convert_rate_limit_metadata_to_porcelain(plumbing_response.rate_limit)
2248
+ resp
2249
+ end
2250
+
2251
+ # List gets a list of Roles matching a given set of criteria.
2252
+ def list(
2253
+ filter,
2254
+ *args,
2255
+ deadline: nil
2256
+ )
2257
+ req = V1::RoleListRequest.new()
2258
+ req.meta = V1::ListRequestMetadata.new()
2259
+ if not @parent.page_limit.nil?
2260
+ req.meta.limit = @parent.page_limit
2261
+ end
2262
+ if not @parent.snapshot_time.nil?
2263
+ req.meta.snapshot_at = @parent.snapshot_time
2264
+ end
2265
+
2266
+ req.filter = Plumbing::quote_filter_args(filter, *args)
2267
+ resp = Enumerator::Generator.new { |g|
2268
+ tries = 0
2269
+ loop do
2270
+ begin
2271
+ plumbing_response = @stub.list(req, metadata: @parent.get_metadata("Roles.List", req), deadline: deadline)
2272
+ rescue => exception
2273
+ if (@parent.shouldRetry(tries, exception, deadline))
2274
+ tries + +sleep(@parent.exponentialBackoff(tries, deadline))
2275
+ next
2276
+ end
2277
+ raise Plumbing::convert_error_to_porcelain(exception)
2278
+ end
2279
+ tries = 0
2280
+ plumbing_response.roles.each do |plumbing_item|
2281
+ g.yield Plumbing::convert_role_to_porcelain(plumbing_item)
2282
+ end
2283
+ break if plumbing_response.meta.next_cursor == ""
2284
+ req.meta.cursor = plumbing_response.meta.next_cursor
2285
+ end
2286
+ }
2287
+ resp
2288
+ end
2289
+ end
2290
+
2291
+ # SnapshotRoles exposes the read only methods of the Roles
2292
+ # service for historical queries.
2293
+ class SnapshotRoles
2294
+ extend Gem::Deprecate
2295
+
2296
+ def initialize(roles)
2297
+ @roles = roles
2298
+ end
2299
+
2300
+ # Get reads one Role by ID.
2301
+ def get(
2302
+ id,
2303
+ deadline: nil
2304
+ )
2305
+ return @roles.get(
2306
+ id,
2307
+ deadline: deadline,
2308
+ )
2309
+ end
2310
+
2311
+ # List gets a list of Roles matching a given set of criteria.
2312
+ def list(
2313
+ filter,
2314
+ *args,
2315
+ deadline: nil
2316
+ )
2317
+ return @roles.list(
2318
+ filter,
2319
+ *args,
2320
+ deadline: deadline,
2321
+ )
2322
+ end
2323
+ end
2324
+
2111
2325
  # HealthChecks lists the last healthcheck between each node and resource.
2112
2326
  # Note the unconventional capitalization here is to prevent having a collision with GRPC
2113
2327
  #
@@ -4997,6 +5211,7 @@ module SDM #:nodoc:
4997
5211
  # {AmazonES}
4998
5212
  # {AmazonESIAM}
4999
5213
  # {AmazonMQAMQP091}
5214
+ # {AMQP}
5000
5215
  # {Athena}
5001
5216
  # {AthenaIAM}
5002
5217
  # {AuroraMysql}
@@ -5011,6 +5226,7 @@ module SDM #:nodoc:
5011
5226
  # {AzureCertificate}
5012
5227
  # {AzureConsole}
5013
5228
  # {AzureMysql}
5229
+ # {AzureMysqlManagedIdentity}
5014
5230
  # {AzurePostgres}
5015
5231
  # {AzurePostgresManagedIdentity}
5016
5232
  # {BigQuery}
@@ -5559,220 +5775,6 @@ module SDM #:nodoc:
5559
5775
  end
5560
5776
  end
5561
5777
 
5562
- # A Role has a list of access rules which determine which Resources the members
5563
- # of the Role have access to. An Account can be a member of multiple Roles via
5564
- # AccountAttachments.
5565
- #
5566
- # See {Role}.
5567
- class Roles
5568
- extend Gem::Deprecate
5569
-
5570
- def initialize(channel, parent)
5571
- begin
5572
- @stub = V1::Roles::Stub.new(nil, nil, channel_override: channel)
5573
- rescue => exception
5574
- raise Plumbing::convert_error_to_porcelain(exception)
5575
- end
5576
- @parent = parent
5577
- end
5578
-
5579
- # Create registers a new Role.
5580
- def create(
5581
- role,
5582
- deadline: nil
5583
- )
5584
- req = V1::RoleCreateRequest.new()
5585
-
5586
- req.role = Plumbing::convert_role_to_plumbing(role)
5587
- tries = 0
5588
- plumbing_response = nil
5589
- loop do
5590
- begin
5591
- plumbing_response = @stub.create(req, metadata: @parent.get_metadata("Roles.Create", req), deadline: deadline)
5592
- rescue => exception
5593
- if (@parent.shouldRetry(tries, exception, deadline))
5594
- tries + +sleep(@parent.exponentialBackoff(tries, deadline))
5595
- next
5596
- end
5597
- raise Plumbing::convert_error_to_porcelain(exception)
5598
- end
5599
- break
5600
- end
5601
-
5602
- resp = RoleCreateResponse.new()
5603
- resp.meta = Plumbing::convert_create_response_metadata_to_porcelain(plumbing_response.meta)
5604
- resp.rate_limit = Plumbing::convert_rate_limit_metadata_to_porcelain(plumbing_response.rate_limit)
5605
- resp.role = Plumbing::convert_role_to_porcelain(plumbing_response.role)
5606
- resp
5607
- end
5608
-
5609
- # Get reads one Role by ID.
5610
- def get(
5611
- id,
5612
- deadline: nil
5613
- )
5614
- req = V1::RoleGetRequest.new()
5615
- if not @parent.snapshot_time.nil?
5616
- req.meta = V1::GetRequestMetadata.new()
5617
- req.meta.snapshot_at = @parent.snapshot_time
5618
- end
5619
-
5620
- req.id = (id)
5621
- tries = 0
5622
- plumbing_response = nil
5623
- loop do
5624
- begin
5625
- plumbing_response = @stub.get(req, metadata: @parent.get_metadata("Roles.Get", req), deadline: deadline)
5626
- rescue => exception
5627
- if (@parent.shouldRetry(tries, exception, deadline))
5628
- tries + +sleep(@parent.exponentialBackoff(tries, deadline))
5629
- next
5630
- end
5631
- raise Plumbing::convert_error_to_porcelain(exception)
5632
- end
5633
- break
5634
- end
5635
-
5636
- resp = RoleGetResponse.new()
5637
- resp.meta = Plumbing::convert_get_response_metadata_to_porcelain(plumbing_response.meta)
5638
- resp.rate_limit = Plumbing::convert_rate_limit_metadata_to_porcelain(plumbing_response.rate_limit)
5639
- resp.role = Plumbing::convert_role_to_porcelain(plumbing_response.role)
5640
- resp
5641
- end
5642
-
5643
- # Update replaces all the fields of a Role by ID.
5644
- def update(
5645
- role,
5646
- deadline: nil
5647
- )
5648
- req = V1::RoleUpdateRequest.new()
5649
-
5650
- req.role = Plumbing::convert_role_to_plumbing(role)
5651
- tries = 0
5652
- plumbing_response = nil
5653
- loop do
5654
- begin
5655
- plumbing_response = @stub.update(req, metadata: @parent.get_metadata("Roles.Update", req), deadline: deadline)
5656
- rescue => exception
5657
- if (@parent.shouldRetry(tries, exception, deadline))
5658
- tries + +sleep(@parent.exponentialBackoff(tries, deadline))
5659
- next
5660
- end
5661
- raise Plumbing::convert_error_to_porcelain(exception)
5662
- end
5663
- break
5664
- end
5665
-
5666
- resp = RoleUpdateResponse.new()
5667
- resp.meta = Plumbing::convert_update_response_metadata_to_porcelain(plumbing_response.meta)
5668
- resp.rate_limit = Plumbing::convert_rate_limit_metadata_to_porcelain(plumbing_response.rate_limit)
5669
- resp.role = Plumbing::convert_role_to_porcelain(plumbing_response.role)
5670
- resp
5671
- end
5672
-
5673
- # Delete removes a Role by ID.
5674
- def delete(
5675
- id,
5676
- deadline: nil
5677
- )
5678
- req = V1::RoleDeleteRequest.new()
5679
-
5680
- req.id = (id)
5681
- tries = 0
5682
- plumbing_response = nil
5683
- loop do
5684
- begin
5685
- plumbing_response = @stub.delete(req, metadata: @parent.get_metadata("Roles.Delete", req), deadline: deadline)
5686
- rescue => exception
5687
- if (@parent.shouldRetry(tries, exception, deadline))
5688
- tries + +sleep(@parent.exponentialBackoff(tries, deadline))
5689
- next
5690
- end
5691
- raise Plumbing::convert_error_to_porcelain(exception)
5692
- end
5693
- break
5694
- end
5695
-
5696
- resp = RoleDeleteResponse.new()
5697
- resp.meta = Plumbing::convert_delete_response_metadata_to_porcelain(plumbing_response.meta)
5698
- resp.rate_limit = Plumbing::convert_rate_limit_metadata_to_porcelain(plumbing_response.rate_limit)
5699
- resp
5700
- end
5701
-
5702
- # List gets a list of Roles matching a given set of criteria.
5703
- def list(
5704
- filter,
5705
- *args,
5706
- deadline: nil
5707
- )
5708
- req = V1::RoleListRequest.new()
5709
- req.meta = V1::ListRequestMetadata.new()
5710
- if not @parent.page_limit.nil?
5711
- req.meta.limit = @parent.page_limit
5712
- end
5713
- if not @parent.snapshot_time.nil?
5714
- req.meta.snapshot_at = @parent.snapshot_time
5715
- end
5716
-
5717
- req.filter = Plumbing::quote_filter_args(filter, *args)
5718
- resp = Enumerator::Generator.new { |g|
5719
- tries = 0
5720
- loop do
5721
- begin
5722
- plumbing_response = @stub.list(req, metadata: @parent.get_metadata("Roles.List", req), deadline: deadline)
5723
- rescue => exception
5724
- if (@parent.shouldRetry(tries, exception, deadline))
5725
- tries + +sleep(@parent.exponentialBackoff(tries, deadline))
5726
- next
5727
- end
5728
- raise Plumbing::convert_error_to_porcelain(exception)
5729
- end
5730
- tries = 0
5731
- plumbing_response.roles.each do |plumbing_item|
5732
- g.yield Plumbing::convert_role_to_porcelain(plumbing_item)
5733
- end
5734
- break if plumbing_response.meta.next_cursor == ""
5735
- req.meta.cursor = plumbing_response.meta.next_cursor
5736
- end
5737
- }
5738
- resp
5739
- end
5740
- end
5741
-
5742
- # SnapshotRoles exposes the read only methods of the Roles
5743
- # service for historical queries.
5744
- class SnapshotRoles
5745
- extend Gem::Deprecate
5746
-
5747
- def initialize(roles)
5748
- @roles = roles
5749
- end
5750
-
5751
- # Get reads one Role by ID.
5752
- def get(
5753
- id,
5754
- deadline: nil
5755
- )
5756
- return @roles.get(
5757
- id,
5758
- deadline: deadline,
5759
- )
5760
- end
5761
-
5762
- # List gets a list of Roles matching a given set of criteria.
5763
- def list(
5764
- filter,
5765
- *args,
5766
- deadline: nil
5767
- )
5768
- return @roles.list(
5769
- filter,
5770
- *args,
5771
- deadline: deadline,
5772
- )
5773
- end
5774
- end
5775
-
5776
5778
  # RolesHistory records all changes to the state of a Role.
5777
5779
  #
5778
5780
  # See {RoleHistory}.
data/lib/version CHANGED
@@ -13,5 +13,5 @@
13
13
  # limitations under the License.
14
14
  #
15
15
  module SDM
16
- VERSION = "15.2.0"
16
+ VERSION = "15.4.0"
17
17
  end
data/lib/version.rb CHANGED
@@ -13,5 +13,5 @@
13
13
  # limitations under the License.
14
14
  #
15
15
  module SDM
16
- VERSION = "15.2.0"
16
+ VERSION = "15.4.0"
17
17
  end
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: 15.2.0
4
+ version: 15.4.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: 2025-06-30 00:00:00.000000000 Z
11
+ date: 2025-07-31 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-c46a8993f8bf0b2070bf29c24dc20e72e3ec271c.idx"
85
- - "./.git/objects/pack/pack-c46a8993f8bf0b2070bf29c24dc20e72e3ec271c.pack"
84
+ - "./.git/objects/pack/pack-f192d3803f5fe19b9f8007286fd69d55cd44e0ee.idx"
85
+ - "./.git/objects/pack/pack-f192d3803f5fe19b9f8007286fd69d55cd44e0ee.pack"
86
86
  - "./.git/packed-refs"
87
87
  - "./.git/refs/heads/master"
88
88
  - "./.git/refs/remotes/origin/HEAD"