strongdm 3.3.1 → 3.5.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: e601daad8604b14b6efca595b6007963a167cfb7a30f4d8c70676b8b23abb0e6
4
- data.tar.gz: 10a34dd76e8c1442b565dd5b62bbfe7d7095ffd7737f832af40da6eee6927e8f
3
+ metadata.gz: eb6f505400b8b6c5710dbc854055f1d2178df204ff75863655d5126e76e73e3a
4
+ data.tar.gz: aa8137e2c86546358948f6ad254d8e133cfa8bf6dd0d9b3834afafe17d474ceb
5
5
  SHA512:
6
- metadata.gz: 420fcca922334958f92b8a9172e23bba99ce7f70c9deb39a42414ac59943f09158f5467396da6672b4dbf951457991d52ab47d46eb6091b2516ec9ee40e6f71e
7
- data.tar.gz: 5542cddd713db6b73216d3dbe5d54b2afe6c49f3d88c6c1ae2c1db7a4a3127bb82b73d01fe06c09de8d1343049999340b7f5bb58912a493cafcc4c5dfe9b06aa
6
+ metadata.gz: 8b7270d476d1b60443cb89d1b9dd07931a825c2362fdfcdb15ba72d3c34bbe486b1e311867e1cbd6f5d147824c8402206008b9201fa8d31191478e6e9c701fa2
7
+ data.tar.gz: 75672cb02e8bea1b6725042a03029683a89f9626a3bde1658646f628fa6a6f9ac018f8519748246e51ff54fe425c34023e895e4f52cfc40a1b2770abef8154dd
data/.git/ORIG_HEAD CHANGED
@@ -1 +1 @@
1
- 390199f6fe9dc45de4cd68aae9f5a433228506f5
1
+ c07c84aa4982d50d60f10720b331c76f56f8c53f
data/.git/index CHANGED
Binary file
data/.git/logs/HEAD CHANGED
@@ -1,3 +1,3 @@
1
- 0000000000000000000000000000000000000000 390199f6fe9dc45de4cd68aae9f5a433228506f5 sdmrelease <support@strongdm.com> 1664835782 +0000 clone: from git@github.com:strongdm/strongdm-sdk-ruby.git
2
- 390199f6fe9dc45de4cd68aae9f5a433228506f5 390199f6fe9dc45de4cd68aae9f5a433228506f5 sdmrelease <support@strongdm.com> 1664835782 +0000 checkout: moving from master to master
3
- 390199f6fe9dc45de4cd68aae9f5a433228506f5 f99114303af624f557c49036ef7e65c4cdfdb862 sdmrelease <support@strongdm.com> 1664835782 +0000 merge origin/development: Fast-forward
1
+ 0000000000000000000000000000000000000000 c07c84aa4982d50d60f10720b331c76f56f8c53f sdmrelease <support@strongdm.com> 1668525718 +0000 clone: from git@github.com:strongdm/strongdm-sdk-ruby.git
2
+ c07c84aa4982d50d60f10720b331c76f56f8c53f c07c84aa4982d50d60f10720b331c76f56f8c53f sdmrelease <support@strongdm.com> 1668525718 +0000 checkout: moving from master to master
3
+ c07c84aa4982d50d60f10720b331c76f56f8c53f bfb8a3cdb41c617913f0295b25ac7ecc7398d2c2 sdmrelease <support@strongdm.com> 1668525718 +0000 merge origin/development: Fast-forward
@@ -1,2 +1,2 @@
1
- 0000000000000000000000000000000000000000 390199f6fe9dc45de4cd68aae9f5a433228506f5 sdmrelease <support@strongdm.com> 1664835782 +0000 clone: from git@github.com:strongdm/strongdm-sdk-ruby.git
2
- 390199f6fe9dc45de4cd68aae9f5a433228506f5 f99114303af624f557c49036ef7e65c4cdfdb862 sdmrelease <support@strongdm.com> 1664835782 +0000 merge origin/development: Fast-forward
1
+ 0000000000000000000000000000000000000000 c07c84aa4982d50d60f10720b331c76f56f8c53f sdmrelease <support@strongdm.com> 1668525718 +0000 clone: from git@github.com:strongdm/strongdm-sdk-ruby.git
2
+ c07c84aa4982d50d60f10720b331c76f56f8c53f bfb8a3cdb41c617913f0295b25ac7ecc7398d2c2 sdmrelease <support@strongdm.com> 1668525718 +0000 merge origin/development: Fast-forward
@@ -1 +1 @@
1
- 0000000000000000000000000000000000000000 390199f6fe9dc45de4cd68aae9f5a433228506f5 sdmrelease <support@strongdm.com> 1664835782 +0000 clone: from git@github.com:strongdm/strongdm-sdk-ruby.git
1
+ 0000000000000000000000000000000000000000 c07c84aa4982d50d60f10720b331c76f56f8c53f sdmrelease <support@strongdm.com> 1668525718 +0000 clone: from git@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
- f99114303af624f557c49036ef7e65c4cdfdb862 refs/remotes/origin/development
3
- 390199f6fe9dc45de4cd68aae9f5a433228506f5 refs/remotes/origin/master
2
+ bfb8a3cdb41c617913f0295b25ac7ecc7398d2c2 refs/remotes/origin/development
3
+ c07c84aa4982d50d60f10720b331c76f56f8c53f 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
@@ -47,3 +47,5 @@ dd6a8a74ad5675831f42e3a820208e96f7361f80 refs/tags/v3.2.1
47
47
  09ee1a3be370a7b5e21709a7857d0f189f23da8b refs/tags/v3.2.2
48
48
  d0ae780dd221eab9c3108d74697661483c1e1085 refs/tags/v3.2.3
49
49
  390199f6fe9dc45de4cd68aae9f5a433228506f5 refs/tags/v3.3.0
50
+ f99114303af624f557c49036ef7e65c4cdfdb862 refs/tags/v3.3.1
51
+ c07c84aa4982d50d60f10720b331c76f56f8c53f refs/tags/v3.3.2
@@ -1 +1 @@
1
- f99114303af624f557c49036ef7e65c4cdfdb862
1
+ bfb8a3cdb41c617913f0295b25ac7ecc7398d2c2
@@ -82,6 +82,8 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
82
82
  optional :suspended, :bool, 5
83
83
  optional :tags, :message, 6, "v1.Tags"
84
84
  optional :permission_level, :string, 7
85
+ optional :managed_by, :string, 8
86
+ optional :external_id, :string, 9
85
87
  end
86
88
  add_message "v1.Service" do
87
89
  optional :id, :string, 1
@@ -40,6 +40,7 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
40
40
  optional :aurora_postgres, :message, 1301, "v1.AuroraPostgres"
41
41
  optional :azure, :message, 2800, "v1.Azure"
42
42
  optional :azure_certificate, :message, 2801, "v1.AzureCertificate"
43
+ optional :azure_mysql, :message, 1107, "v1.AzureMysql"
43
44
  optional :azure_postgres, :message, 1307, "v1.AzurePostgres"
44
45
  optional :big_query, :message, 200, "v1.BigQuery"
45
46
  optional :cassandra, :message, 300, "v1.Cassandra"
@@ -369,6 +370,21 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
369
370
  optional :client_certificate, :string, 3
370
371
  optional :tenant_id, :string, 2
371
372
  end
373
+ add_message "v1.AzureMysql" do
374
+ optional :id, :string, 32768
375
+ optional :name, :string, 32769
376
+ optional :healthy, :bool, 32770
377
+ optional :tags, :message, 32771, "v1.Tags"
378
+ optional :secret_store_id, :string, 32772
379
+ optional :egress_filter, :string, 32773
380
+ optional :bind_interface, :string, 32774
381
+ optional :database, :string, 4
382
+ optional :hostname, :string, 1
383
+ optional :password, :string, 3
384
+ optional :port, :int32, 6
385
+ optional :port_override, :int32, 5
386
+ optional :username, :string, 2
387
+ end
372
388
  add_message "v1.AzurePostgres" do
373
389
  optional :id, :string, 32768
374
390
  optional :name, :string, 32769
@@ -1266,6 +1282,7 @@ module V1
1266
1282
  AuroraPostgres = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.AuroraPostgres").msgclass
1267
1283
  Azure = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.Azure").msgclass
1268
1284
  AzureCertificate = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.AzureCertificate").msgclass
1285
+ AzureMysql = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.AzureMysql").msgclass
1269
1286
  AzurePostgres = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.AzurePostgres").msgclass
1270
1287
  BigQuery = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.BigQuery").msgclass
1271
1288
  Cassandra = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.Cassandra").msgclass
data/lib/grpc/nodes_pb.rb CHANGED
@@ -80,6 +80,9 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
80
80
  optional :state, :string, 3
81
81
  optional :tags, :message, 4, "v1.Tags"
82
82
  optional :gateway_filter, :string, 5
83
+ optional :device, :string, 6
84
+ optional :location, :string, 7
85
+ optional :version, :string, 8
83
86
  end
84
87
  add_message "v1.Gateway" do
85
88
  optional :id, :string, 1
@@ -89,6 +92,9 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
89
92
  optional :bind_address, :string, 5
90
93
  optional :tags, :message, 6, "v1.Tags"
91
94
  optional :gateway_filter, :string, 7
95
+ optional :device, :string, 8
96
+ optional :location, :string, 9
97
+ optional :version, :string, 10
92
98
  end
93
99
  end
94
100
  end
data/lib/grpc/plumbing.rb CHANGED
@@ -1664,6 +1664,64 @@ module SDM
1664
1664
  end
1665
1665
  items
1666
1666
  end
1667
+ def self.convert_azure_mysql_to_porcelain(plumbing)
1668
+ if plumbing == nil
1669
+ return nil
1670
+ end
1671
+ porcelain = AzureMysql.new()
1672
+ porcelain.bind_interface = (plumbing.bind_interface)
1673
+ porcelain.database = (plumbing.database)
1674
+ porcelain.egress_filter = (plumbing.egress_filter)
1675
+ porcelain.healthy = (plumbing.healthy)
1676
+ porcelain.hostname = (plumbing.hostname)
1677
+ porcelain.id = (plumbing.id)
1678
+ porcelain.name = (plumbing.name)
1679
+ porcelain.password = (plumbing.password)
1680
+ porcelain.port = (plumbing.port)
1681
+ porcelain.port_override = (plumbing.port_override)
1682
+ porcelain.secret_store_id = (plumbing.secret_store_id)
1683
+ porcelain.tags = convert_tags_to_porcelain(plumbing.tags)
1684
+ porcelain.username = (plumbing.username)
1685
+ porcelain
1686
+ end
1687
+
1688
+ def self.convert_azure_mysql_to_plumbing(porcelain)
1689
+ if porcelain == nil
1690
+ return nil
1691
+ end
1692
+ plumbing = V1::AzureMysql.new()
1693
+ plumbing.bind_interface = (porcelain.bind_interface)
1694
+ plumbing.database = (porcelain.database)
1695
+ plumbing.egress_filter = (porcelain.egress_filter)
1696
+ plumbing.healthy = (porcelain.healthy)
1697
+ plumbing.hostname = (porcelain.hostname)
1698
+ plumbing.id = (porcelain.id)
1699
+ plumbing.name = (porcelain.name)
1700
+ plumbing.password = (porcelain.password)
1701
+ plumbing.port = (porcelain.port)
1702
+ plumbing.port_override = (porcelain.port_override)
1703
+ plumbing.secret_store_id = (porcelain.secret_store_id)
1704
+ plumbing.tags = convert_tags_to_plumbing(porcelain.tags)
1705
+ plumbing.username = (porcelain.username)
1706
+ plumbing
1707
+ end
1708
+ def self.convert_repeated_azure_mysql_to_plumbing(porcelains)
1709
+ items = Array.new
1710
+ porcelains.each do |porcelain|
1711
+ plumbing = convert_azure_mysql_to_plumbing(porcelain)
1712
+ items.append(plumbing)
1713
+ end
1714
+ items
1715
+ end
1716
+
1717
+ def self.convert_repeated_azure_mysql_to_porcelain(plumbings)
1718
+ items = Array.new
1719
+ plumbings.each do |plumbing|
1720
+ porcelain = convert_azure_mysql_to_porcelain(plumbing)
1721
+ items.append(porcelain)
1722
+ end
1723
+ items
1724
+ end
1667
1725
  def self.convert_azure_postgres_to_porcelain(plumbing)
1668
1726
  if plumbing == nil
1669
1727
  return nil
@@ -2878,12 +2936,15 @@ module SDM
2878
2936
  end
2879
2937
  porcelain = Gateway.new()
2880
2938
  porcelain.bind_address = (plumbing.bind_address)
2939
+ porcelain.device = (plumbing.device)
2881
2940
  porcelain.gateway_filter = (plumbing.gateway_filter)
2882
2941
  porcelain.id = (plumbing.id)
2883
2942
  porcelain.listen_address = (plumbing.listen_address)
2943
+ porcelain.location = (plumbing.location)
2884
2944
  porcelain.name = (plumbing.name)
2885
2945
  porcelain.state = (plumbing.state)
2886
2946
  porcelain.tags = convert_tags_to_porcelain(plumbing.tags)
2947
+ porcelain.version = (plumbing.version)
2887
2948
  porcelain
2888
2949
  end
2889
2950
 
@@ -2893,12 +2954,15 @@ module SDM
2893
2954
  end
2894
2955
  plumbing = V1::Gateway.new()
2895
2956
  plumbing.bind_address = (porcelain.bind_address)
2957
+ plumbing.device = (porcelain.device)
2896
2958
  plumbing.gateway_filter = (porcelain.gateway_filter)
2897
2959
  plumbing.id = (porcelain.id)
2898
2960
  plumbing.listen_address = (porcelain.listen_address)
2961
+ plumbing.location = (porcelain.location)
2899
2962
  plumbing.name = (porcelain.name)
2900
2963
  plumbing.state = (porcelain.state)
2901
2964
  plumbing.tags = convert_tags_to_plumbing(porcelain.tags)
2965
+ plumbing.version = (porcelain.version)
2902
2966
  plumbing
2903
2967
  end
2904
2968
  def self.convert_repeated_gateway_to_plumbing(porcelains)
@@ -5083,11 +5147,14 @@ module SDM
5083
5147
  return nil
5084
5148
  end
5085
5149
  porcelain = Relay.new()
5150
+ porcelain.device = (plumbing.device)
5086
5151
  porcelain.gateway_filter = (plumbing.gateway_filter)
5087
5152
  porcelain.id = (plumbing.id)
5153
+ porcelain.location = (plumbing.location)
5088
5154
  porcelain.name = (plumbing.name)
5089
5155
  porcelain.state = (plumbing.state)
5090
5156
  porcelain.tags = convert_tags_to_porcelain(plumbing.tags)
5157
+ porcelain.version = (plumbing.version)
5091
5158
  porcelain
5092
5159
  end
5093
5160
 
@@ -5096,11 +5163,14 @@ module SDM
5096
5163
  return nil
5097
5164
  end
5098
5165
  plumbing = V1::Relay.new()
5166
+ plumbing.device = (porcelain.device)
5099
5167
  plumbing.gateway_filter = (porcelain.gateway_filter)
5100
5168
  plumbing.id = (porcelain.id)
5169
+ plumbing.location = (porcelain.location)
5101
5170
  plumbing.name = (porcelain.name)
5102
5171
  plumbing.state = (porcelain.state)
5103
5172
  plumbing.tags = convert_tags_to_plumbing(porcelain.tags)
5173
+ plumbing.version = (porcelain.version)
5104
5174
  plumbing
5105
5175
  end
5106
5176
  def self.convert_repeated_relay_to_plumbing(porcelains)
@@ -5440,6 +5510,9 @@ module SDM
5440
5510
  if porcelain.instance_of? AzureCertificate
5441
5511
  plumbing.azure_certificate = convert_azure_certificate_to_plumbing(porcelain)
5442
5512
  end
5513
+ if porcelain.instance_of? AzureMysql
5514
+ plumbing.azure_mysql = convert_azure_mysql_to_plumbing(porcelain)
5515
+ end
5443
5516
  if porcelain.instance_of? AzurePostgres
5444
5517
  plumbing.azure_postgres = convert_azure_postgres_to_plumbing(porcelain)
5445
5518
  end
@@ -5669,6 +5742,9 @@ module SDM
5669
5742
  if plumbing.azure_certificate != nil
5670
5743
  return convert_azure_certificate_to_porcelain(plumbing.azure_certificate)
5671
5744
  end
5745
+ if plumbing.azure_mysql != nil
5746
+ return convert_azure_mysql_to_porcelain(plumbing.azure_mysql)
5747
+ end
5672
5748
  if plumbing.azure_postgres != nil
5673
5749
  return convert_azure_postgres_to_porcelain(plumbing.azure_postgres)
5674
5750
  end
@@ -6015,6 +6091,7 @@ module SDM
6015
6091
  porcelain = Role.new()
6016
6092
  porcelain.access_rules = convert_access_rules_to_porcelain(plumbing.access_rules)
6017
6093
  porcelain.id = (plumbing.id)
6094
+ porcelain.managed_by = (plumbing.managed_by)
6018
6095
  porcelain.name = (plumbing.name)
6019
6096
  porcelain.tags = convert_tags_to_porcelain(plumbing.tags)
6020
6097
  porcelain
@@ -6027,6 +6104,7 @@ module SDM
6027
6104
  plumbing = V1::Role.new()
6028
6105
  plumbing.access_rules = convert_access_rules_to_plumbing(porcelain.access_rules)
6029
6106
  plumbing.id = (porcelain.id)
6107
+ plumbing.managed_by = (porcelain.managed_by)
6030
6108
  plumbing.name = (porcelain.name)
6031
6109
  plumbing.tags = convert_tags_to_plumbing(porcelain.tags)
6032
6110
  plumbing
@@ -7132,9 +7210,12 @@ module SDM
7132
7210
  end
7133
7211
  porcelain = User.new()
7134
7212
  porcelain.email = (plumbing.email)
7213
+ porcelain.external_id = (plumbing.external_id)
7135
7214
  porcelain.first_name = (plumbing.first_name)
7136
7215
  porcelain.id = (plumbing.id)
7137
7216
  porcelain.last_name = (plumbing.last_name)
7217
+ porcelain.managed_by = (plumbing.managed_by)
7218
+ porcelain.permission_level = (plumbing.permission_level)
7138
7219
  porcelain.suspended = (plumbing.suspended)
7139
7220
  porcelain.tags = convert_tags_to_porcelain(plumbing.tags)
7140
7221
  porcelain
@@ -7146,9 +7227,12 @@ module SDM
7146
7227
  end
7147
7228
  plumbing = V1::User.new()
7148
7229
  plumbing.email = (porcelain.email)
7230
+ plumbing.external_id = (porcelain.external_id)
7149
7231
  plumbing.first_name = (porcelain.first_name)
7150
7232
  plumbing.id = (porcelain.id)
7151
7233
  plumbing.last_name = (porcelain.last_name)
7234
+ plumbing.managed_by = (porcelain.managed_by)
7235
+ plumbing.permission_level = (porcelain.permission_level)
7152
7236
  plumbing.suspended = (porcelain.suspended)
7153
7237
  plumbing.tags = convert_tags_to_plumbing(porcelain.tags)
7154
7238
  plumbing
data/lib/grpc/roles_pb.rb CHANGED
@@ -70,8 +70,9 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
70
70
  add_message "v1.Role" do
71
71
  optional :id, :string, 1
72
72
  optional :name, :string, 2
73
- optional :access_rules, :string, 5
74
73
  optional :tags, :message, 4, "v1.Tags"
74
+ optional :access_rules, :string, 5
75
+ optional :managed_by, :string, 6
75
76
  end
76
77
  end
77
78
  end
@@ -1578,6 +1578,74 @@ module SDM
1578
1578
  end
1579
1579
  end
1580
1580
 
1581
+ # AzureMysql is currently unstable, and its API may change, or it may be removed, without a major version bump.
1582
+ class AzureMysql
1583
+ # Bind interface
1584
+ attr_accessor :bind_interface
1585
+
1586
+ attr_accessor :database
1587
+ # A filter applied to the routing logic to pin datasource to nodes.
1588
+ attr_accessor :egress_filter
1589
+ # True if the datasource is reachable and the credentials are valid.
1590
+ attr_accessor :healthy
1591
+
1592
+ attr_accessor :hostname
1593
+ # Unique identifier of the Resource.
1594
+ attr_accessor :id
1595
+ # Unique human-readable name of the Resource.
1596
+ attr_accessor :name
1597
+
1598
+ attr_accessor :password
1599
+
1600
+ attr_accessor :port
1601
+
1602
+ attr_accessor :port_override
1603
+ # ID of the secret store containing credentials for this resource, if any.
1604
+ attr_accessor :secret_store_id
1605
+ # Tags is a map of key, value pairs.
1606
+ attr_accessor :tags
1607
+
1608
+ attr_accessor :username
1609
+
1610
+ def initialize(
1611
+ bind_interface: nil,
1612
+ database: nil,
1613
+ egress_filter: nil,
1614
+ healthy: nil,
1615
+ hostname: nil,
1616
+ id: nil,
1617
+ name: nil,
1618
+ password: nil,
1619
+ port: nil,
1620
+ port_override: nil,
1621
+ secret_store_id: nil,
1622
+ tags: nil,
1623
+ username: nil
1624
+ )
1625
+ @bind_interface = bind_interface == nil ? "" : bind_interface
1626
+ @database = database == nil ? "" : database
1627
+ @egress_filter = egress_filter == nil ? "" : egress_filter
1628
+ @healthy = healthy == nil ? false : healthy
1629
+ @hostname = hostname == nil ? "" : hostname
1630
+ @id = id == nil ? "" : id
1631
+ @name = name == nil ? "" : name
1632
+ @password = password == nil ? "" : password
1633
+ @port = port == nil ? 0 : port
1634
+ @port_override = port_override == nil ? 0 : port_override
1635
+ @secret_store_id = secret_store_id == nil ? "" : secret_store_id
1636
+ @tags = tags == nil ? SDM::_porcelain_zero_value_tags() : tags
1637
+ @username = username == nil ? "" : username
1638
+ end
1639
+
1640
+ def to_json(options = {})
1641
+ hash = {}
1642
+ self.instance_variables.each do |var|
1643
+ hash[var.id2name.delete_prefix("@")] = self.instance_variable_get var
1644
+ end
1645
+ hash.to_json
1646
+ end
1647
+ end
1648
+
1581
1649
  class AzurePostgres
1582
1650
  # Bind interface
1583
1651
  attr_accessor :bind_interface
@@ -2823,6 +2891,9 @@ module SDM
2823
2891
  # The hostname/port tuple which the gateway daemon will bind to.
2824
2892
  # If not provided on create, set to "0.0.0.0:listen_address_port".
2825
2893
  attr_accessor :bind_address
2894
+ # Device is a read only device name uploaded by the gateway process when
2895
+ # it comes online.
2896
+ attr_accessor :device
2826
2897
  # GatewayFilter can be used to restrict the peering between relays and
2827
2898
  # gateways.
2828
2899
  attr_accessor :gateway_filter
@@ -2830,6 +2901,9 @@ module SDM
2830
2901
  attr_accessor :id
2831
2902
  # The public hostname/port tuple at which the gateway will be accessible to clients.
2832
2903
  attr_accessor :listen_address
2904
+ # Location is a read only network location uploaded by the gateway process
2905
+ # when it comes online.
2906
+ attr_accessor :location
2833
2907
  # Unique human-readable name of the Gateway. Node names must include only letters, numbers, and hyphens (no spaces, underscores, or other special characters). Generated if not provided on create.
2834
2908
  attr_accessor :name
2835
2909
  # The current state of the gateway. One of: "new", "verifying_restart",
@@ -2837,23 +2911,32 @@ module SDM
2837
2911
  attr_accessor :state
2838
2912
  # Tags is a map of key, value pairs.
2839
2913
  attr_accessor :tags
2914
+ # Version is a read only sdm binary version uploaded by the gateway process
2915
+ # when it comes online.
2916
+ attr_accessor :version
2840
2917
 
2841
2918
  def initialize(
2842
2919
  bind_address: nil,
2920
+ device: nil,
2843
2921
  gateway_filter: nil,
2844
2922
  id: nil,
2845
2923
  listen_address: nil,
2924
+ location: nil,
2846
2925
  name: nil,
2847
2926
  state: nil,
2848
- tags: nil
2927
+ tags: nil,
2928
+ version: nil
2849
2929
  )
2850
2930
  @bind_address = bind_address == nil ? "" : bind_address
2931
+ @device = device == nil ? "" : device
2851
2932
  @gateway_filter = gateway_filter == nil ? "" : gateway_filter
2852
2933
  @id = id == nil ? "" : id
2853
2934
  @listen_address = listen_address == nil ? "" : listen_address
2935
+ @location = location == nil ? "" : location
2854
2936
  @name = name == nil ? "" : name
2855
2937
  @state = state == nil ? "" : state
2856
2938
  @tags = tags == nil ? SDM::_porcelain_zero_value_tags() : tags
2939
+ @version = version == nil ? "" : version
2857
2940
  end
2858
2941
 
2859
2942
  def to_json(options = {})
@@ -5247,11 +5330,17 @@ module SDM
5247
5330
 
5248
5331
  # Relay represents a StrongDM CLI installation running in relay mode.
5249
5332
  class Relay
5333
+ # Device is a read only device name uploaded by the gateway process when
5334
+ # it comes online.
5335
+ attr_accessor :device
5250
5336
  # GatewayFilter can be used to restrict the peering between relays and
5251
5337
  # gateways.
5252
5338
  attr_accessor :gateway_filter
5253
5339
  # Unique identifier of the Relay.
5254
5340
  attr_accessor :id
5341
+ # Location is a read only network location uploaded by the gateway process
5342
+ # when it comes online.
5343
+ attr_accessor :location
5255
5344
  # Unique human-readable name of the Relay. Node names must include only letters, numbers, and hyphens (no spaces, underscores, or other special characters). Generated if not provided on create.
5256
5345
  attr_accessor :name
5257
5346
  # The current state of the relay. One of: "new", "verifying_restart",
@@ -5260,19 +5349,28 @@ module SDM
5260
5349
  attr_accessor :state
5261
5350
  # Tags is a map of key, value pairs.
5262
5351
  attr_accessor :tags
5352
+ # Version is a read only sdm binary version uploaded by the gateway process
5353
+ # when it comes online.
5354
+ attr_accessor :version
5263
5355
 
5264
5356
  def initialize(
5357
+ device: nil,
5265
5358
  gateway_filter: nil,
5266
5359
  id: nil,
5360
+ location: nil,
5267
5361
  name: nil,
5268
5362
  state: nil,
5269
- tags: nil
5363
+ tags: nil,
5364
+ version: nil
5270
5365
  )
5366
+ @device = device == nil ? "" : device
5271
5367
  @gateway_filter = gateway_filter == nil ? "" : gateway_filter
5272
5368
  @id = id == nil ? "" : id
5369
+ @location = location == nil ? "" : location
5273
5370
  @name = name == nil ? "" : name
5274
5371
  @state = state == nil ? "" : state
5275
5372
  @tags = tags == nil ? SDM::_porcelain_zero_value_tags() : tags
5373
+ @version = version == nil ? "" : version
5276
5374
  end
5277
5375
 
5278
5376
  def to_json(options = {})
@@ -5595,6 +5693,8 @@ module SDM
5595
5693
  attr_accessor :access_rules
5596
5694
  # Unique identifier of the Role.
5597
5695
  attr_accessor :id
5696
+ # Managed By is a read only field for what service manages this role, e.g. StrongDM, Okta, Azure.
5697
+ attr_accessor :managed_by
5598
5698
  # Unique human-readable name of the Role.
5599
5699
  attr_accessor :name
5600
5700
  # Tags is a map of key, value pairs.
@@ -5603,11 +5703,13 @@ module SDM
5603
5703
  def initialize(
5604
5704
  access_rules: nil,
5605
5705
  id: nil,
5706
+ managed_by: nil,
5606
5707
  name: nil,
5607
5708
  tags: nil
5608
5709
  )
5609
5710
  @access_rules = access_rules == nil ? SDM::_porcelain_zero_value_access_rules() : access_rules
5610
5711
  @id = id == nil ? "" : id
5712
+ @managed_by = managed_by == nil ? "" : managed_by
5611
5713
  @name = name == nil ? "" : name
5612
5714
  @tags = tags == nil ? SDM::_porcelain_zero_value_tags() : tags
5613
5715
  end
@@ -6594,12 +6696,18 @@ module SDM
6594
6696
  class User
6595
6697
  # The User's email address. Must be unique.
6596
6698
  attr_accessor :email
6699
+ # External ID is an alternative unique ID this user is represented by within an external service.
6700
+ attr_accessor :external_id
6597
6701
  # The User's first name.
6598
6702
  attr_accessor :first_name
6599
6703
  # Unique identifier of the User.
6600
6704
  attr_accessor :id
6601
6705
  # The User's last name.
6602
6706
  attr_accessor :last_name
6707
+ # Managed By is a read only field for what service manages this user, e.g. StrongDM, Okta, Azure.
6708
+ attr_accessor :managed_by
6709
+ # PermissionLevel is a read only field for the user's permission level e.g. admin, DBA, user.
6710
+ attr_accessor :permission_level
6603
6711
  # The User's suspended state.
6604
6712
  attr_accessor :suspended
6605
6713
  # Tags is a map of key, value pairs.
@@ -6607,16 +6715,22 @@ module SDM
6607
6715
 
6608
6716
  def initialize(
6609
6717
  email: nil,
6718
+ external_id: nil,
6610
6719
  first_name: nil,
6611
6720
  id: nil,
6612
6721
  last_name: nil,
6722
+ managed_by: nil,
6723
+ permission_level: nil,
6613
6724
  suspended: nil,
6614
6725
  tags: nil
6615
6726
  )
6616
6727
  @email = email == nil ? "" : email
6728
+ @external_id = external_id == nil ? "" : external_id
6617
6729
  @first_name = first_name == nil ? "" : first_name
6618
6730
  @id = id == nil ? "" : id
6619
6731
  @last_name = last_name == nil ? "" : last_name
6732
+ @managed_by = managed_by == nil ? "" : managed_by
6733
+ @permission_level = permission_level == nil ? "" : permission_level
6620
6734
  @suspended = suspended == nil ? false : suspended
6621
6735
  @tags = tags == nil ? SDM::_porcelain_zero_value_tags() : tags
6622
6736
  end
data/lib/strongdm.rb CHANGED
@@ -17,6 +17,7 @@
17
17
 
18
18
  require_relative "./svc"
19
19
  require "base64"
20
+ require "grpc"
20
21
  require "openssl"
21
22
  require "time"
22
23
 
@@ -28,7 +29,7 @@ module SDM #:nodoc:
28
29
  DEFAULT_BASE_RETRY_DELAY = 0.0030 # 30 ms
29
30
  DEFAULT_MAX_RETRY_DELAY = 300 # 300 seconds
30
31
  API_VERSION = "2021-08-23"
31
- USER_AGENT = "strongdm-sdk-ruby/3.3.1"
32
+ USER_AGENT = "strongdm-sdk-ruby/3.5.0"
32
33
  private_constant :DEFAULT_MAX_RETRIES, :DEFAULT_BASE_RETRY_DELAY, :DEFAULT_MAX_RETRY_DELAY, :API_VERSION, :USER_AGENT
33
34
 
34
35
  # Creates a new strongDM API client.
@@ -42,19 +43,38 @@ module SDM #:nodoc:
42
43
  @base_retry_delay = DEFAULT_BASE_RETRY_DELAY
43
44
  @max_retry_delay = DEFAULT_MAX_RETRY_DELAY
44
45
  @expose_rate_limit_errors = (not retry_rate_limit_errors)
45
- @account_attachments = AccountAttachments.new(host, insecure, self)
46
- @account_grants = AccountGrants.new(host, insecure, self)
47
- @accounts = Accounts.new(host, insecure, self)
48
- @control_panel = ControlPanel.new(host, insecure, self)
49
- @nodes = Nodes.new(host, insecure, self)
50
- @remote_identities = RemoteIdentities.new(host, insecure, self)
51
- @remote_identity_groups = RemoteIdentityGroups.new(host, insecure, self)
52
- @resources = Resources.new(host, insecure, self)
53
- @roles = Roles.new(host, insecure, self)
54
- @secret_stores = SecretStores.new(host, insecure, self)
46
+ begin
47
+ if insecure
48
+ @channel = GRPC::Core::Channel.new(host, {}, :this_channel_is_insecure)
49
+ else
50
+ cred = GRPC::Core::ChannelCredentials.new()
51
+ @channel = GRPC::Core::Channel.new(host, {}, cred)
52
+ end
53
+ rescue => exception
54
+ raise Plumbing::convert_error_to_porcelain(exception)
55
+ end
56
+ @account_attachments = AccountAttachments.new(@channel, self)
57
+ @account_grants = AccountGrants.new(@channel, self)
58
+ @accounts = Accounts.new(@channel, self)
59
+ @control_panel = ControlPanel.new(@channel, self)
60
+ @nodes = Nodes.new(@channel, self)
61
+ @remote_identities = RemoteIdentities.new(@channel, self)
62
+ @remote_identity_groups = RemoteIdentityGroups.new(@channel, self)
63
+ @resources = Resources.new(@channel, self)
64
+ @roles = Roles.new(@channel, self)
65
+ @secret_stores = SecretStores.new(@channel, self)
55
66
  @_test_options = Hash.new
56
67
  end
57
68
 
69
+ # Closes this client and releases all resources held by it.
70
+ def close
71
+ begin
72
+ @channel.close()
73
+ rescue => exception
74
+ raise Plumbing::convert_error_to_porcelain(exception)
75
+ end
76
+ end
77
+
58
78
  # @private
59
79
  def get_metadata(method_name, req)
60
80
  return {
@@ -96,6 +116,10 @@ module SDM #:nodoc:
96
116
  if (iter >= @max_retries - 1)
97
117
  return false
98
118
  end
119
+ # The grpc library unfortunately does not raise a more specific error class.
120
+ if err.is_a? RuntimeError and err.message == "closed!"
121
+ return false
122
+ end
99
123
  if not err.is_a? GRPC::BadStatus
100
124
  return true
101
125
  end
data/lib/svc.rb CHANGED
@@ -30,14 +30,9 @@ module SDM #:nodoc:
30
30
  class AccountAttachments
31
31
  extend Gem::Deprecate
32
32
 
33
- def initialize(host, insecure, parent)
33
+ def initialize(channel, parent)
34
34
  begin
35
- if insecure
36
- @stub = V1::AccountAttachments::Stub.new(host, :this_channel_is_insecure)
37
- else
38
- cred = GRPC::Core::ChannelCredentials.new()
39
- @stub = V1::AccountAttachments::Stub.new(host, cred)
40
- end
35
+ @stub = V1::AccountAttachments::Stub.new(nil, nil, channel_override: channel)
41
36
  rescue => exception
42
37
  raise Plumbing::convert_error_to_porcelain(exception)
43
38
  end
@@ -177,14 +172,9 @@ module SDM #:nodoc:
177
172
  class AccountGrants
178
173
  extend Gem::Deprecate
179
174
 
180
- def initialize(host, insecure, parent)
175
+ def initialize(channel, parent)
181
176
  begin
182
- if insecure
183
- @stub = V1::AccountGrants::Stub.new(host, :this_channel_is_insecure)
184
- else
185
- cred = GRPC::Core::ChannelCredentials.new()
186
- @stub = V1::AccountGrants::Stub.new(host, cred)
187
- end
177
+ @stub = V1::AccountGrants::Stub.new(nil, nil, channel_override: channel)
188
178
  rescue => exception
189
179
  raise Plumbing::convert_error_to_porcelain(exception)
190
180
  end
@@ -328,14 +318,9 @@ module SDM #:nodoc:
328
318
  class Accounts
329
319
  extend Gem::Deprecate
330
320
 
331
- def initialize(host, insecure, parent)
321
+ def initialize(channel, parent)
332
322
  begin
333
- if insecure
334
- @stub = V1::Accounts::Stub.new(host, :this_channel_is_insecure)
335
- else
336
- cred = GRPC::Core::ChannelCredentials.new()
337
- @stub = V1::Accounts::Stub.new(host, cred)
338
- end
323
+ @stub = V1::Accounts::Stub.new(nil, nil, channel_override: channel)
339
324
  rescue => exception
340
325
  raise Plumbing::convert_error_to_porcelain(exception)
341
326
  end
@@ -504,14 +489,9 @@ module SDM #:nodoc:
504
489
  class ControlPanel
505
490
  extend Gem::Deprecate
506
491
 
507
- def initialize(host, insecure, parent)
492
+ def initialize(channel, parent)
508
493
  begin
509
- if insecure
510
- @stub = V1::ControlPanel::Stub.new(host, :this_channel_is_insecure)
511
- else
512
- cred = GRPC::Core::ChannelCredentials.new()
513
- @stub = V1::ControlPanel::Stub.new(host, cred)
514
- end
494
+ @stub = V1::ControlPanel::Stub.new(nil, nil, channel_override: channel)
515
495
  rescue => exception
516
496
  raise Plumbing::convert_error_to_porcelain(exception)
517
497
  end
@@ -587,14 +567,9 @@ module SDM #:nodoc:
587
567
  class Nodes
588
568
  extend Gem::Deprecate
589
569
 
590
- def initialize(host, insecure, parent)
570
+ def initialize(channel, parent)
591
571
  begin
592
- if insecure
593
- @stub = V1::Nodes::Stub.new(host, :this_channel_is_insecure)
594
- else
595
- cred = GRPC::Core::ChannelCredentials.new()
596
- @stub = V1::Nodes::Stub.new(host, cred)
597
- end
572
+ @stub = V1::Nodes::Stub.new(nil, nil, channel_override: channel)
598
573
  rescue => exception
599
574
  raise Plumbing::convert_error_to_porcelain(exception)
600
575
  end
@@ -765,14 +740,9 @@ module SDM #:nodoc:
765
740
  class RemoteIdentities
766
741
  extend Gem::Deprecate
767
742
 
768
- def initialize(host, insecure, parent)
743
+ def initialize(channel, parent)
769
744
  begin
770
- if insecure
771
- @stub = V1::RemoteIdentities::Stub.new(host, :this_channel_is_insecure)
772
- else
773
- cred = GRPC::Core::ChannelCredentials.new()
774
- @stub = V1::RemoteIdentities::Stub.new(host, cred)
775
- end
745
+ @stub = V1::RemoteIdentities::Stub.new(nil, nil, channel_override: channel)
776
746
  rescue => exception
777
747
  raise Plumbing::convert_error_to_porcelain(exception)
778
748
  end
@@ -943,14 +913,9 @@ module SDM #:nodoc:
943
913
  class RemoteIdentityGroups
944
914
  extend Gem::Deprecate
945
915
 
946
- def initialize(host, insecure, parent)
916
+ def initialize(channel, parent)
947
917
  begin
948
- if insecure
949
- @stub = V1::RemoteIdentityGroups::Stub.new(host, :this_channel_is_insecure)
950
- else
951
- cred = GRPC::Core::ChannelCredentials.new()
952
- @stub = V1::RemoteIdentityGroups::Stub.new(host, cred)
953
- end
918
+ @stub = V1::RemoteIdentityGroups::Stub.new(nil, nil, channel_override: channel)
954
919
  rescue => exception
955
920
  raise Plumbing::convert_error_to_porcelain(exception)
956
921
  end
@@ -1046,6 +1011,7 @@ module SDM #:nodoc:
1046
1011
  # {AWSConsoleStaticKeyPair}
1047
1012
  # {Azure}
1048
1013
  # {AzureCertificate}
1014
+ # {AzureMysql}
1049
1015
  # {AzurePostgres}
1050
1016
  # {BigQuery}
1051
1017
  # {Cassandra}
@@ -1106,14 +1072,9 @@ module SDM #:nodoc:
1106
1072
  class Resources
1107
1073
  extend Gem::Deprecate
1108
1074
 
1109
- def initialize(host, insecure, parent)
1075
+ def initialize(channel, parent)
1110
1076
  begin
1111
- if insecure
1112
- @stub = V1::Resources::Stub.new(host, :this_channel_is_insecure)
1113
- else
1114
- cred = GRPC::Core::ChannelCredentials.new()
1115
- @stub = V1::Resources::Stub.new(host, cred)
1116
- end
1077
+ @stub = V1::Resources::Stub.new(nil, nil, channel_override: channel)
1117
1078
  rescue => exception
1118
1079
  raise Plumbing::convert_error_to_porcelain(exception)
1119
1080
  end
@@ -1322,14 +1283,9 @@ module SDM #:nodoc:
1322
1283
  class Roles
1323
1284
  extend Gem::Deprecate
1324
1285
 
1325
- def initialize(host, insecure, parent)
1286
+ def initialize(channel, parent)
1326
1287
  begin
1327
- if insecure
1328
- @stub = V1::Roles::Stub.new(host, :this_channel_is_insecure)
1329
- else
1330
- cred = GRPC::Core::ChannelCredentials.new()
1331
- @stub = V1::Roles::Stub.new(host, cred)
1332
- end
1288
+ @stub = V1::Roles::Stub.new(nil, nil, channel_override: channel)
1333
1289
  rescue => exception
1334
1290
  raise Plumbing::convert_error_to_porcelain(exception)
1335
1291
  end
@@ -1508,14 +1464,9 @@ module SDM #:nodoc:
1508
1464
  class SecretStores
1509
1465
  extend Gem::Deprecate
1510
1466
 
1511
- def initialize(host, insecure, parent)
1467
+ def initialize(channel, parent)
1512
1468
  begin
1513
- if insecure
1514
- @stub = V1::SecretStores::Stub.new(host, :this_channel_is_insecure)
1515
- else
1516
- cred = GRPC::Core::ChannelCredentials.new()
1517
- @stub = V1::SecretStores::Stub.new(host, cred)
1518
- end
1469
+ @stub = V1::SecretStores::Stub.new(nil, nil, channel_override: channel)
1519
1470
  rescue => exception
1520
1471
  raise Plumbing::convert_error_to_porcelain(exception)
1521
1472
  end
data/lib/version CHANGED
@@ -13,5 +13,5 @@
13
13
  # limitations under the License.
14
14
  #
15
15
  module SDM
16
- VERSION = "3.3.1"
16
+ VERSION = "3.5.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 = "3.3.1"
16
+ VERSION = "3.5.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: 3.3.1
4
+ version: 3.5.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: 2022-10-03 00:00:00.000000000 Z
11
+ date: 2022-11-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: grpc
@@ -79,8 +79,8 @@ files:
79
79
  - "./.git/logs/HEAD"
80
80
  - "./.git/logs/refs/heads/master"
81
81
  - "./.git/logs/refs/remotes/origin/HEAD"
82
- - "./.git/objects/pack/pack-ea0ccd24d2f4c50435ea82bed4bbdc59a80f8c50.idx"
83
- - "./.git/objects/pack/pack-ea0ccd24d2f4c50435ea82bed4bbdc59a80f8c50.pack"
82
+ - "./.git/objects/pack/pack-22bf2ffc59ed62c6a1cc735d89f3fcbc93552690.idx"
83
+ - "./.git/objects/pack/pack-22bf2ffc59ed62c6a1cc735d89f3fcbc93552690.pack"
84
84
  - "./.git/packed-refs"
85
85
  - "./.git/refs/heads/master"
86
86
  - "./.git/refs/remotes/origin/HEAD"
@@ -139,8 +139,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
139
139
  - !ruby/object:Gem::Version
140
140
  version: 1.3.6
141
141
  requirements: []
142
- rubyforge_project:
143
- rubygems_version: 2.7.6
142
+ rubygems_version: 3.0.8
144
143
  signing_key:
145
144
  specification_version: 4
146
145
  summary: strongDM SDK for the Ruby programming language.