strongdm 3.17.0 → 3.18.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: bcea442e418441187889bca117103ea9daced9202213d29d11feb42c15d63543
4
- data.tar.gz: c6df2509fd9ae5a331718d567e74fcc6941bb2ab4bad0fb6d06d9427fbbe4ce7
3
+ metadata.gz: 8b966417999f917f548d43b50133607ab79cb603f20a2b23fb76c1342b1fbfd7
4
+ data.tar.gz: 284fb54a2e0afa33ed2138be0fc8a6e794b8b19fa1c3c12812baa51c50b8847c
5
5
  SHA512:
6
- metadata.gz: 736a52ce3820c31d5deab9f154090678a18a4510f56085dd233fb86c66304dfd6d2301a1a7ffaaa91d7d428c665fea3157b8e6496ab81650aca5aab7afac8d49
7
- data.tar.gz: 1bf65c2b79a0ce272af65e8acebe3ed2f7b5a99b2651fb0bb3291969b5e9e1084140ffad279126a0671c6e8ed0aa17b2c46eacd32dbe9d5b87fc17969882b4e6
6
+ metadata.gz: 5fe73fce198f106fffee8b15f563af6346fdaaf10cb3ed5a60faa04c720bac54f0e5a322f1c4eeee330cb309be6945bad7941e1205fbcda37738fb79f711b4d3
7
+ data.tar.gz: adbc374f191a40274c50b4b57dc8fa7f2f9804c33990ad39d3f6fd542898a219e1c7dcba5b14281e9e7de938e465cda898badf6aff39e34ad533edc7019695a3
data/.git/ORIG_HEAD CHANGED
@@ -1 +1 @@
1
- a469b2d58875fd54ce9a67154bd8feaa73588449
1
+ 7e8c95f92b7ab35d93eec71a3e6b378bbe4e8d36
data/.git/index CHANGED
Binary file
data/.git/logs/HEAD CHANGED
@@ -1,3 +1,3 @@
1
- 0000000000000000000000000000000000000000 a469b2d58875fd54ce9a67154bd8feaa73588449 root <root@6a504afbc509.(none)> 1687543591 +0000 clone: from github.com:strongdm/strongdm-sdk-ruby.git
2
- a469b2d58875fd54ce9a67154bd8feaa73588449 a469b2d58875fd54ce9a67154bd8feaa73588449 root <root@6a504afbc509.(none)> 1687543591 +0000 checkout: moving from master to master
3
- a469b2d58875fd54ce9a67154bd8feaa73588449 7e8c95f92b7ab35d93eec71a3e6b378bbe4e8d36 root <root@6a504afbc509.(none)> 1687543591 +0000 merge origin/development: Fast-forward
1
+ 0000000000000000000000000000000000000000 7e8c95f92b7ab35d93eec71a3e6b378bbe4e8d36 root <root@59bedabef593.(none)> 1688742042 +0000 clone: from github.com:strongdm/strongdm-sdk-ruby.git
2
+ 7e8c95f92b7ab35d93eec71a3e6b378bbe4e8d36 7e8c95f92b7ab35d93eec71a3e6b378bbe4e8d36 root <root@59bedabef593.(none)> 1688742042 +0000 checkout: moving from master to master
3
+ 7e8c95f92b7ab35d93eec71a3e6b378bbe4e8d36 0d2955c2c2f11a0bd128d6b6a45b5d0c741b9789 root <root@59bedabef593.(none)> 1688742042 +0000 merge origin/development: Fast-forward
@@ -1,2 +1,2 @@
1
- 0000000000000000000000000000000000000000 a469b2d58875fd54ce9a67154bd8feaa73588449 root <root@6a504afbc509.(none)> 1687543591 +0000 clone: from github.com:strongdm/strongdm-sdk-ruby.git
2
- a469b2d58875fd54ce9a67154bd8feaa73588449 7e8c95f92b7ab35d93eec71a3e6b378bbe4e8d36 root <root@6a504afbc509.(none)> 1687543591 +0000 merge origin/development: Fast-forward
1
+ 0000000000000000000000000000000000000000 7e8c95f92b7ab35d93eec71a3e6b378bbe4e8d36 root <root@59bedabef593.(none)> 1688742042 +0000 clone: from github.com:strongdm/strongdm-sdk-ruby.git
2
+ 7e8c95f92b7ab35d93eec71a3e6b378bbe4e8d36 0d2955c2c2f11a0bd128d6b6a45b5d0c741b9789 root <root@59bedabef593.(none)> 1688742042 +0000 merge origin/development: Fast-forward
@@ -1 +1 @@
1
- 0000000000000000000000000000000000000000 a469b2d58875fd54ce9a67154bd8feaa73588449 root <root@6a504afbc509.(none)> 1687543591 +0000 clone: from github.com:strongdm/strongdm-sdk-ruby.git
1
+ 0000000000000000000000000000000000000000 7e8c95f92b7ab35d93eec71a3e6b378bbe4e8d36 root <root@59bedabef593.(none)> 1688742042 +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
- 7e8c95f92b7ab35d93eec71a3e6b378bbe4e8d36 refs/remotes/origin/development
3
- a469b2d58875fd54ce9a67154bd8feaa73588449 refs/remotes/origin/master
2
+ 0d2955c2c2f11a0bd128d6b6a45b5d0c741b9789 refs/remotes/origin/development
3
+ 7e8c95f92b7ab35d93eec71a3e6b378bbe4e8d36 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
@@ -50,6 +50,7 @@ f880c51210aa33186d71d9b463ddbd587ef3e4fd refs/tags/v3.12.0
50
50
  6cd69f8e98657b0aa1c55786add9519085361ef2 refs/tags/v3.14.2
51
51
  6e8ee132772d2663157a4263aa15ddffeac7486f refs/tags/v3.15.0
52
52
  a469b2d58875fd54ce9a67154bd8feaa73588449 refs/tags/v3.16.0
53
+ 7e8c95f92b7ab35d93eec71a3e6b378bbe4e8d36 refs/tags/v3.17.0
53
54
  40d185ce8d4f4375411706886f6fbbaa5493bef6 refs/tags/v3.2.0
54
55
  dd6a8a74ad5675831f42e3a820208e96f7361f80 refs/tags/v3.2.1
55
56
  09ee1a3be370a7b5e21709a7857d0f189f23da8b refs/tags/v3.2.2
@@ -1 +1 @@
1
- 7e8c95f92b7ab35d93eec71a3e6b378bbe4e8d36
1
+ 0d2955c2c2f11a0bd128d6b6a45b5d0c741b9789
data/lib/constants.rb CHANGED
@@ -255,6 +255,9 @@ module SDM
255
255
  WORKFLOW_DESCRIPTION_UPDATED = "workflow description updated"
256
256
  WORKFLOW_AUTO_GRANT_UPDATED = "workflow auto grant updated"
257
257
  WORKFLOW_REQUIRES_REASON_UPDATED = "workflow requires reason updated"
258
+ WORKFLOW_ACCESS_RULES_UPDATED = "workflow access rules updated"
259
+ WORKFLOW_ACCESS_RULES_DELETED = "workflow access rules deleted"
260
+ WORKFLOW_ACCESS_RULES_CREATED = "workflow access rules created"
258
261
  ORG_VNM_SUBNET_UPDATED = "organization VNM subnet updated"
259
262
  ORG_VNM_RESOURCES_ALLOCATED = "organization resources allocated within VNM subnet"
260
263
  DEPRECATED_ORG_ACTIVATE_DEVICE_APPROVAL = "activate device approval"
@@ -265,6 +268,9 @@ module SDM
265
268
  TOTP_ENROLLMENT_ADDED = "user enrolled a totp device"
266
269
  TOTP_ENROLLMENT_DELETED = "user reset their totp enrollment"
267
270
  SUSPENDED_USER_ENROLL_ATTEMPT_FROM_THE_UI = "attempt to enroll by a suspended user from the Admin UI"
271
+ RESOURCE_LOCKED = "user locked a resource"
272
+ RESOURCE_UNLOCKED = "user unlocked a resource"
273
+ RESOURCE_FORCE_UNLOCKED = "admin force-unlocked a resource"
268
274
  end
269
275
 
270
276
  # Permissions, all permissions that may be granted to an account.
@@ -423,4 +429,11 @@ module SDM
423
429
  K_8_S_APPLY = "k8s-apply"
424
430
  SSH_PORT_FORWARD = "ssh-portForward"
425
431
  end
432
+
433
+ # Providers responsible for device posture enforcement
434
+ module DevicePostureProvider
435
+ NONE = ""
436
+ SENTINEL_ONE = "sentinelone"
437
+ CROWD_STRIKE = "crowdstrike"
438
+ end
426
439
  end
@@ -48,6 +48,7 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
48
48
  repeated :entities, :message, 5, "v1.ActivityEntity"
49
49
  optional :ip_address, :string, 6
50
50
  optional :actor, :message, 7, "v1.ActivityActor"
51
+ optional :user_agent, :string, 8
51
52
  end
52
53
  add_message "v1.ActivityEntity" do
53
54
  optional :id, :string, 1
@@ -44,8 +44,7 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
44
44
  optional :azure_certificate, :message, 2801, "v1.AzureCertificate"
45
45
  optional :azure_mysql, :message, 1107, "v1.AzureMysql"
46
46
  optional :azure_postgres, :message, 1307, "v1.AzurePostgres"
47
- optional :azure_postgres_flexible, :message, 1308, "v1.AzurePostgresFlexible"
48
- optional :azure_postgres_single, :message, 1309, "v1.AzurePostgresSingle"
47
+ optional :azure_postgres_managed_identity, :message, 1308, "v1.AzurePostgresManagedIdentity"
49
48
  optional :big_query, :message, 200, "v1.BigQuery"
50
49
  optional :cassandra, :message, 300, "v1.Cassandra"
51
50
  optional :citus, :message, 1305, "v1.Citus"
@@ -474,24 +473,7 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
474
473
  optional :port_override, :int32, 5
475
474
  optional :username, :string, 2
476
475
  end
477
- add_message "v1.AzurePostgresFlexible" do
478
- optional :id, :string, 32768
479
- optional :name, :string, 32769
480
- optional :healthy, :bool, 32770
481
- optional :tags, :message, 32771, "v1.Tags"
482
- optional :secret_store_id, :string, 32772
483
- optional :egress_filter, :string, 32773
484
- optional :bind_interface, :string, 32774
485
- optional :subdomain, :string, 32775
486
- optional :database, :string, 4
487
- optional :hostname, :string, 1
488
- optional :override_database, :bool, 7
489
- optional :password, :string, 3
490
- optional :port, :int32, 6
491
- optional :port_override, :int32, 5
492
- optional :username, :string, 2
493
- end
494
- add_message "v1.AzurePostgresSingle" do
476
+ add_message "v1.AzurePostgresManagedIdentity" do
495
477
  optional :id, :string, 32768
496
478
  optional :name, :string, 32769
497
479
  optional :healthy, :bool, 32770
@@ -506,6 +488,7 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
506
488
  optional :password, :string, 3
507
489
  optional :port, :int32, 6
508
490
  optional :port_override, :int32, 5
491
+ optional :use_azure_single_server_usernames, :bool, 10
509
492
  optional :username, :string, 2
510
493
  end
511
494
  add_message "v1.BigQuery" do
@@ -1204,6 +1187,7 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
1204
1187
  optional :subdomain, :string, 32775
1205
1188
  optional :downgrade_nla_connections, :bool, 6
1206
1189
  optional :hostname, :string, 1
1190
+ optional :lock_required, :bool, 10
1207
1191
  optional :password, :string, 3
1208
1192
  optional :port, :int32, 5
1209
1193
  optional :port_override, :int32, 4
@@ -1517,8 +1501,7 @@ module V1
1517
1501
  AzureCertificate = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.AzureCertificate").msgclass
1518
1502
  AzureMysql = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.AzureMysql").msgclass
1519
1503
  AzurePostgres = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.AzurePostgres").msgclass
1520
- AzurePostgresFlexible = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.AzurePostgresFlexible").msgclass
1521
- AzurePostgresSingle = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.AzurePostgresSingle").msgclass
1504
+ AzurePostgresManagedIdentity = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.AzurePostgresManagedIdentity").msgclass
1522
1505
  BigQuery = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.BigQuery").msgclass
1523
1506
  Cassandra = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.Cassandra").msgclass
1524
1507
  Citus = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.Citus").msgclass
data/lib/grpc/nodes_pb.rb CHANGED
@@ -85,6 +85,7 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
85
85
  optional :version, :string, 8
86
86
  optional :uuid, :string, 9
87
87
  optional :connects_to, :string, 10
88
+ repeated :maintenance_windows, :message, 11, "v1.NodeMaintenanceWindow"
88
89
  end
89
90
  add_message "v1.Gateway" do
90
91
  optional :id, :string, 1
@@ -99,6 +100,11 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
99
100
  optional :version, :string, 10
100
101
  optional :uuid, :string, 11
101
102
  optional :connects_to, :string, 12
103
+ repeated :maintenance_windows, :message, 13, "v1.NodeMaintenanceWindow"
104
+ end
105
+ add_message "v1.NodeMaintenanceWindow" do
106
+ optional :cron_schedule, :string, 1
107
+ optional :require_idleness, :bool, 2
102
108
  end
103
109
  end
104
110
  end
@@ -117,4 +123,5 @@ module V1
117
123
  Node = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.Node").msgclass
118
124
  Relay = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.Relay").msgclass
119
125
  Gateway = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.Gateway").msgclass
126
+ NodeMaintenanceWindow = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.NodeMaintenanceWindow").msgclass
120
127
  end
data/lib/grpc/plumbing.rb CHANGED
@@ -1439,6 +1439,7 @@ module SDM
1439
1439
  porcelain.entities = convert_repeated_activity_entity_to_porcelain(plumbing.entities)
1440
1440
  porcelain.id = (plumbing.id)
1441
1441
  porcelain.ip_address = (plumbing.ip_address)
1442
+ porcelain.user_agent = (plumbing.user_agent)
1442
1443
  porcelain.verb = (plumbing.verb)
1443
1444
  porcelain
1444
1445
  end
@@ -1454,6 +1455,7 @@ module SDM
1454
1455
  plumbing.entities += convert_repeated_activity_entity_to_plumbing(porcelain.entities)
1455
1456
  plumbing.id = (porcelain.id)
1456
1457
  plumbing.ip_address = (porcelain.ip_address)
1458
+ plumbing.user_agent = (porcelain.user_agent)
1457
1459
  plumbing.verb = (porcelain.verb)
1458
1460
  plumbing
1459
1461
  end
@@ -2420,73 +2422,11 @@ module SDM
2420
2422
  end
2421
2423
  items
2422
2424
  end
2423
- def self.convert_azure_postgres_flexible_to_porcelain(plumbing)
2425
+ def self.convert_azure_postgres_managed_identity_to_porcelain(plumbing)
2424
2426
  if plumbing == nil
2425
2427
  return nil
2426
2428
  end
2427
- porcelain = AzurePostgresFlexible.new()
2428
- porcelain.bind_interface = (plumbing.bind_interface)
2429
- porcelain.database = (plumbing.database)
2430
- porcelain.egress_filter = (plumbing.egress_filter)
2431
- porcelain.healthy = (plumbing.healthy)
2432
- porcelain.hostname = (plumbing.hostname)
2433
- porcelain.id = (plumbing.id)
2434
- porcelain.name = (plumbing.name)
2435
- porcelain.override_database = (plumbing.override_database)
2436
- porcelain.password = (plumbing.password)
2437
- porcelain.port = (plumbing.port)
2438
- porcelain.port_override = (plumbing.port_override)
2439
- porcelain.secret_store_id = (plumbing.secret_store_id)
2440
- porcelain.subdomain = (plumbing.subdomain)
2441
- porcelain.tags = convert_tags_to_porcelain(plumbing.tags)
2442
- porcelain.username = (plumbing.username)
2443
- porcelain
2444
- end
2445
-
2446
- def self.convert_azure_postgres_flexible_to_plumbing(porcelain)
2447
- if porcelain == nil
2448
- return nil
2449
- end
2450
- plumbing = V1::AzurePostgresFlexible.new()
2451
- plumbing.bind_interface = (porcelain.bind_interface)
2452
- plumbing.database = (porcelain.database)
2453
- plumbing.egress_filter = (porcelain.egress_filter)
2454
- plumbing.healthy = (porcelain.healthy)
2455
- plumbing.hostname = (porcelain.hostname)
2456
- plumbing.id = (porcelain.id)
2457
- plumbing.name = (porcelain.name)
2458
- plumbing.override_database = (porcelain.override_database)
2459
- plumbing.password = (porcelain.password)
2460
- plumbing.port = (porcelain.port)
2461
- plumbing.port_override = (porcelain.port_override)
2462
- plumbing.secret_store_id = (porcelain.secret_store_id)
2463
- plumbing.subdomain = (porcelain.subdomain)
2464
- plumbing.tags = convert_tags_to_plumbing(porcelain.tags)
2465
- plumbing.username = (porcelain.username)
2466
- plumbing
2467
- end
2468
- def self.convert_repeated_azure_postgres_flexible_to_plumbing(porcelains)
2469
- items = Array.new
2470
- porcelains.each do |porcelain|
2471
- plumbing = convert_azure_postgres_flexible_to_plumbing(porcelain)
2472
- items.append(plumbing)
2473
- end
2474
- items
2475
- end
2476
-
2477
- def self.convert_repeated_azure_postgres_flexible_to_porcelain(plumbings)
2478
- items = Array.new
2479
- plumbings.each do |plumbing|
2480
- porcelain = convert_azure_postgres_flexible_to_porcelain(plumbing)
2481
- items.append(porcelain)
2482
- end
2483
- items
2484
- end
2485
- def self.convert_azure_postgres_single_to_porcelain(plumbing)
2486
- if plumbing == nil
2487
- return nil
2488
- end
2489
- porcelain = AzurePostgresSingle.new()
2429
+ porcelain = AzurePostgresManagedIdentity.new()
2490
2430
  porcelain.bind_interface = (plumbing.bind_interface)
2491
2431
  porcelain.database = (plumbing.database)
2492
2432
  porcelain.egress_filter = (plumbing.egress_filter)
@@ -2501,15 +2441,16 @@ module SDM
2501
2441
  porcelain.secret_store_id = (plumbing.secret_store_id)
2502
2442
  porcelain.subdomain = (plumbing.subdomain)
2503
2443
  porcelain.tags = convert_tags_to_porcelain(plumbing.tags)
2444
+ porcelain.use_azure_single_server_usernames = (plumbing.use_azure_single_server_usernames)
2504
2445
  porcelain.username = (plumbing.username)
2505
2446
  porcelain
2506
2447
  end
2507
2448
 
2508
- def self.convert_azure_postgres_single_to_plumbing(porcelain)
2449
+ def self.convert_azure_postgres_managed_identity_to_plumbing(porcelain)
2509
2450
  if porcelain == nil
2510
2451
  return nil
2511
2452
  end
2512
- plumbing = V1::AzurePostgresSingle.new()
2453
+ plumbing = V1::AzurePostgresManagedIdentity.new()
2513
2454
  plumbing.bind_interface = (porcelain.bind_interface)
2514
2455
  plumbing.database = (porcelain.database)
2515
2456
  plumbing.egress_filter = (porcelain.egress_filter)
@@ -2524,22 +2465,23 @@ module SDM
2524
2465
  plumbing.secret_store_id = (porcelain.secret_store_id)
2525
2466
  plumbing.subdomain = (porcelain.subdomain)
2526
2467
  plumbing.tags = convert_tags_to_plumbing(porcelain.tags)
2468
+ plumbing.use_azure_single_server_usernames = (porcelain.use_azure_single_server_usernames)
2527
2469
  plumbing.username = (porcelain.username)
2528
2470
  plumbing
2529
2471
  end
2530
- def self.convert_repeated_azure_postgres_single_to_plumbing(porcelains)
2472
+ def self.convert_repeated_azure_postgres_managed_identity_to_plumbing(porcelains)
2531
2473
  items = Array.new
2532
2474
  porcelains.each do |porcelain|
2533
- plumbing = convert_azure_postgres_single_to_plumbing(porcelain)
2475
+ plumbing = convert_azure_postgres_managed_identity_to_plumbing(porcelain)
2534
2476
  items.append(plumbing)
2535
2477
  end
2536
2478
  items
2537
2479
  end
2538
2480
 
2539
- def self.convert_repeated_azure_postgres_single_to_porcelain(plumbings)
2481
+ def self.convert_repeated_azure_postgres_managed_identity_to_porcelain(plumbings)
2540
2482
  items = Array.new
2541
2483
  plumbings.each do |plumbing|
2542
- porcelain = convert_azure_postgres_single_to_porcelain(plumbing)
2484
+ porcelain = convert_azure_postgres_managed_identity_to_porcelain(plumbing)
2543
2485
  items.append(porcelain)
2544
2486
  end
2545
2487
  items
@@ -3780,6 +3722,7 @@ module SDM
3780
3722
  porcelain.id = (plumbing.id)
3781
3723
  porcelain.listen_address = (plumbing.listen_address)
3782
3724
  porcelain.location = (plumbing.location)
3725
+ porcelain.maintenance_windows = convert_repeated_node_maintenance_window_to_porcelain(plumbing.maintenance_windows)
3783
3726
  porcelain.name = (plumbing.name)
3784
3727
  porcelain.state = (plumbing.state)
3785
3728
  porcelain.tags = convert_tags_to_porcelain(plumbing.tags)
@@ -3799,6 +3742,7 @@ module SDM
3799
3742
  plumbing.id = (porcelain.id)
3800
3743
  plumbing.listen_address = (porcelain.listen_address)
3801
3744
  plumbing.location = (porcelain.location)
3745
+ plumbing.maintenance_windows += convert_repeated_node_maintenance_window_to_plumbing(porcelain.maintenance_windows)
3802
3746
  plumbing.name = (porcelain.name)
3803
3747
  plumbing.state = (porcelain.state)
3804
3748
  plumbing.tags = convert_tags_to_plumbing(porcelain.tags)
@@ -5541,6 +5485,42 @@ module SDM
5541
5485
  end
5542
5486
  items
5543
5487
  end
5488
+ def self.convert_node_maintenance_window_to_porcelain(plumbing)
5489
+ if plumbing == nil
5490
+ return nil
5491
+ end
5492
+ porcelain = NodeMaintenanceWindow.new()
5493
+ porcelain.cron_schedule = (plumbing.cron_schedule)
5494
+ porcelain.require_idleness = (plumbing.require_idleness)
5495
+ porcelain
5496
+ end
5497
+
5498
+ def self.convert_node_maintenance_window_to_plumbing(porcelain)
5499
+ if porcelain == nil
5500
+ return nil
5501
+ end
5502
+ plumbing = V1::NodeMaintenanceWindow.new()
5503
+ plumbing.cron_schedule = (porcelain.cron_schedule)
5504
+ plumbing.require_idleness = (porcelain.require_idleness)
5505
+ plumbing
5506
+ end
5507
+ def self.convert_repeated_node_maintenance_window_to_plumbing(porcelains)
5508
+ items = Array.new
5509
+ porcelains.each do |porcelain|
5510
+ plumbing = convert_node_maintenance_window_to_plumbing(porcelain)
5511
+ items.append(plumbing)
5512
+ end
5513
+ items
5514
+ end
5515
+
5516
+ def self.convert_repeated_node_maintenance_window_to_porcelain(plumbings)
5517
+ items = Array.new
5518
+ plumbings.each do |plumbing|
5519
+ porcelain = convert_node_maintenance_window_to_porcelain(plumbing)
5520
+ items.append(porcelain)
5521
+ end
5522
+ items
5523
+ end
5544
5524
  def self.convert_node_update_response_to_porcelain(plumbing)
5545
5525
  if plumbing == nil
5546
5526
  return nil
@@ -6365,6 +6345,7 @@ module SDM
6365
6345
  porcelain.gateway_filter = (plumbing.gateway_filter)
6366
6346
  porcelain.id = (plumbing.id)
6367
6347
  porcelain.location = (plumbing.location)
6348
+ porcelain.maintenance_windows = convert_repeated_node_maintenance_window_to_porcelain(plumbing.maintenance_windows)
6368
6349
  porcelain.name = (plumbing.name)
6369
6350
  porcelain.state = (plumbing.state)
6370
6351
  porcelain.tags = convert_tags_to_porcelain(plumbing.tags)
@@ -6382,6 +6363,7 @@ module SDM
6382
6363
  plumbing.gateway_filter = (porcelain.gateway_filter)
6383
6364
  plumbing.id = (porcelain.id)
6384
6365
  plumbing.location = (porcelain.location)
6366
+ plumbing.maintenance_windows += convert_repeated_node_maintenance_window_to_plumbing(porcelain.maintenance_windows)
6385
6367
  plumbing.name = (porcelain.name)
6386
6368
  plumbing.state = (porcelain.state)
6387
6369
  plumbing.tags = convert_tags_to_plumbing(porcelain.tags)
@@ -6889,11 +6871,8 @@ module SDM
6889
6871
  if porcelain.instance_of? AzurePostgres
6890
6872
  plumbing.azure_postgres = convert_azure_postgres_to_plumbing(porcelain)
6891
6873
  end
6892
- if porcelain.instance_of? AzurePostgresFlexible
6893
- plumbing.azure_postgres_flexible = convert_azure_postgres_flexible_to_plumbing(porcelain)
6894
- end
6895
- if porcelain.instance_of? AzurePostgresSingle
6896
- plumbing.azure_postgres_single = convert_azure_postgres_single_to_plumbing(porcelain)
6874
+ if porcelain.instance_of? AzurePostgresManagedIdentity
6875
+ plumbing.azure_postgres_managed_identity = convert_azure_postgres_managed_identity_to_plumbing(porcelain)
6897
6876
  end
6898
6877
  if porcelain.instance_of? BigQuery
6899
6878
  plumbing.big_query = convert_big_query_to_plumbing(porcelain)
@@ -7142,11 +7121,8 @@ module SDM
7142
7121
  if plumbing.azure_postgres != nil
7143
7122
  return convert_azure_postgres_to_porcelain(plumbing.azure_postgres)
7144
7123
  end
7145
- if plumbing.azure_postgres_flexible != nil
7146
- return convert_azure_postgres_flexible_to_porcelain(plumbing.azure_postgres_flexible)
7147
- end
7148
- if plumbing.azure_postgres_single != nil
7149
- return convert_azure_postgres_single_to_porcelain(plumbing.azure_postgres_single)
7124
+ if plumbing.azure_postgres_managed_identity != nil
7125
+ return convert_azure_postgres_managed_identity_to_porcelain(plumbing.azure_postgres_managed_identity)
7150
7126
  end
7151
7127
  if plumbing.big_query != nil
7152
7128
  return convert_big_query_to_porcelain(plumbing.big_query)
@@ -1241,6 +1241,9 @@ module SDM
1241
1241
  attr_accessor :id
1242
1242
  # The IP from which this action was taken.
1243
1243
  attr_accessor :ip_address
1244
+ # The User Agent present when this request was executed. Generally a client type and version
1245
+ # like strongdm-cli/55.66.77
1246
+ attr_accessor :user_agent
1244
1247
  # The kind of activity which has taken place.
1245
1248
  attr_accessor :verb
1246
1249
 
@@ -1251,6 +1254,7 @@ module SDM
1251
1254
  entities: nil,
1252
1255
  id: nil,
1253
1256
  ip_address: nil,
1257
+ user_agent: nil,
1254
1258
  verb: nil
1255
1259
  )
1256
1260
  @actor = actor == nil ? nil : actor
@@ -1259,6 +1263,7 @@ module SDM
1259
1263
  @entities = entities == nil ? [] : entities
1260
1264
  @id = id == nil ? "" : id
1261
1265
  @ip_address = ip_address == nil ? "" : ip_address
1266
+ @user_agent = user_agent == nil ? "" : user_agent
1262
1267
  @verb = verb == nil ? "" : verb
1263
1268
  end
1264
1269
 
@@ -2380,84 +2385,8 @@ module SDM
2380
2385
  end
2381
2386
  end
2382
2387
 
2383
- # AzurePostgresFlexible is currently unstable, and its API may change, or it may be removed, without a major version bump.
2384
- class AzurePostgresFlexible
2385
- # 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.
2386
- attr_accessor :bind_interface
2387
- # The initial database to connect to. This setting does not by itself prevent switching to another database after connecting.
2388
- attr_accessor :database
2389
- # A filter applied to the routing logic to pin datasource to nodes.
2390
- attr_accessor :egress_filter
2391
- # True if the datasource is reachable and the credentials are valid.
2392
- attr_accessor :healthy
2393
- # The host to dial to initiate a connection from the egress node to this resource.
2394
- attr_accessor :hostname
2395
- # Unique identifier of the Resource.
2396
- attr_accessor :id
2397
- # Unique human-readable name of the Resource.
2398
- attr_accessor :name
2399
- # If set, the database configured cannot be changed by users. This setting is not recommended for most use cases, as some clients will insist their database has changed when it has not, leading to user confusion.
2400
- attr_accessor :override_database
2401
- # The password to authenticate with.
2402
- attr_accessor :password
2403
- # The port to dial to initiate a connection from the egress node to this resource.
2404
- attr_accessor :port
2405
- # The local port used by clients to connect to this resource.
2406
- attr_accessor :port_override
2407
- # ID of the secret store containing credentials for this resource, if any.
2408
- attr_accessor :secret_store_id
2409
- # Subdomain is the local DNS address. (e.g. app-prod1 turns into app-prod1.your-org-name.sdm.network)
2410
- attr_accessor :subdomain
2411
- # Tags is a map of key, value pairs.
2412
- attr_accessor :tags
2413
- # The username to authenticate with.
2414
- attr_accessor :username
2415
-
2416
- def initialize(
2417
- bind_interface: nil,
2418
- database: nil,
2419
- egress_filter: nil,
2420
- healthy: nil,
2421
- hostname: nil,
2422
- id: nil,
2423
- name: nil,
2424
- override_database: nil,
2425
- password: nil,
2426
- port: nil,
2427
- port_override: nil,
2428
- secret_store_id: nil,
2429
- subdomain: nil,
2430
- tags: nil,
2431
- username: nil
2432
- )
2433
- @bind_interface = bind_interface == nil ? "" : bind_interface
2434
- @database = database == nil ? "" : database
2435
- @egress_filter = egress_filter == nil ? "" : egress_filter
2436
- @healthy = healthy == nil ? false : healthy
2437
- @hostname = hostname == nil ? "" : hostname
2438
- @id = id == nil ? "" : id
2439
- @name = name == nil ? "" : name
2440
- @override_database = override_database == nil ? false : override_database
2441
- @password = password == nil ? "" : password
2442
- @port = port == nil ? 0 : port
2443
- @port_override = port_override == nil ? 0 : port_override
2444
- @secret_store_id = secret_store_id == nil ? "" : secret_store_id
2445
- @subdomain = subdomain == nil ? "" : subdomain
2446
- @tags = tags == nil ? SDM::_porcelain_zero_value_tags() : tags
2447
- @username = username == nil ? "" : username
2448
- end
2449
-
2450
- def to_json(options = {})
2451
- hash = {}
2452
- self.instance_variables.each do |var|
2453
- hash[var.id2name.delete_prefix("@")] = self.instance_variable_get var
2454
- end
2455
- hash.to_json
2456
- end
2457
- end
2458
-
2459
- # AzurePostgresSingle is currently unstable, and its API may change, or it may be removed, without a major version bump.
2460
- class AzurePostgresSingle
2388
+ # AzurePostgresManagedIdentity is currently unstable, and its API may change, or it may be removed, without a major version bump.
2389
+ class AzurePostgresManagedIdentity
2461
2390
  # 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.
2462
2391
  attr_accessor :bind_interface
2463
2392
  # The initial database to connect to. This setting does not by itself prevent switching to another database after connecting.
@@ -2486,6 +2415,8 @@ module SDM
2486
2415
  attr_accessor :subdomain
2487
2416
  # Tags is a map of key, value pairs.
2488
2417
  attr_accessor :tags
2418
+ # If true, appends the hostname to the username when hitting a database.azure.com address
2419
+ attr_accessor :use_azure_single_server_usernames
2489
2420
  # The username to authenticate with.
2490
2421
  attr_accessor :username
2491
2422
 
@@ -2504,6 +2435,7 @@ module SDM
2504
2435
  secret_store_id: nil,
2505
2436
  subdomain: nil,
2506
2437
  tags: nil,
2438
+ use_azure_single_server_usernames: nil,
2507
2439
  username: nil
2508
2440
  )
2509
2441
  @bind_interface = bind_interface == nil ? "" : bind_interface
@@ -2520,6 +2452,7 @@ module SDM
2520
2452
  @secret_store_id = secret_store_id == nil ? "" : secret_store_id
2521
2453
  @subdomain = subdomain == nil ? "" : subdomain
2522
2454
  @tags = tags == nil ? SDM::_porcelain_zero_value_tags() : tags
2455
+ @use_azure_single_server_usernames = use_azure_single_server_usernames == nil ? false : use_azure_single_server_usernames
2523
2456
  @username = username == nil ? "" : username
2524
2457
  end
2525
2458
 
@@ -3828,6 +3761,19 @@ module SDM
3828
3761
  # Location is a read only network location uploaded by the gateway process
3829
3762
  # when it comes online.
3830
3763
  attr_accessor :location
3764
+ # Maintenance Windows define when this node is allowed to restart. If a node
3765
+ # is requested to restart, it will check each window to determine if any of
3766
+ # them permit it to restart, and if any do, it will. This check is repeated
3767
+ # per window until the restart is successfully completed.
3768
+ #
3769
+ # If not set here, may be set on the command line or via an environment variable
3770
+ # on the process itself; any server setting will take precedence over local
3771
+ # settings. This setting is ineffective for nodes below version 38.44.0.
3772
+ #
3773
+ # If this setting is not applied via this remote configuration or via local
3774
+ # configuration, the default setting is used: always allow restarts if serving
3775
+ # no connections, and allow a restart even if serving connections between 7-8 UTC, any day.
3776
+ attr_accessor :maintenance_windows
3831
3777
  # 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.
3832
3778
  attr_accessor :name
3833
3779
  # The current state of the gateway. One of: "new", "verifying_restart",
@@ -3847,6 +3793,7 @@ module SDM
3847
3793
  id: nil,
3848
3794
  listen_address: nil,
3849
3795
  location: nil,
3796
+ maintenance_windows: nil,
3850
3797
  name: nil,
3851
3798
  state: nil,
3852
3799
  tags: nil,
@@ -3859,6 +3806,7 @@ module SDM
3859
3806
  @id = id == nil ? "" : id
3860
3807
  @listen_address = listen_address == nil ? "" : listen_address
3861
3808
  @location = location == nil ? "" : location
3809
+ @maintenance_windows = maintenance_windows == nil ? [] : maintenance_windows
3862
3810
  @name = name == nil ? "" : name
3863
3811
  @state = state == nil ? "" : state
3864
3812
  @tags = tags == nil ? SDM::_porcelain_zero_value_tags() : tags
@@ -5816,6 +5764,38 @@ module SDM
5816
5764
  end
5817
5765
  end
5818
5766
 
5767
+ class NodeMaintenanceWindow
5768
+ # Cron job syntax for when this maintenance window is active. On this schedule, associated
5769
+ # nodes will restart if requested, provided other checks allow the restart to proceed. Times
5770
+ # are represented in UTC.
5771
+ # e.g. * 7 * * 0,6 to check for a restart at every minute from 7:00 to 8:00 UTC on Sunday and
5772
+ # Saturday. Not all possible inputs are supported: the month and day of month selections
5773
+ # must be '*'.
5774
+ attr_accessor :cron_schedule
5775
+ # Require Idleness defines whether this window can sever live connections. If true,
5776
+ # this window will not allow a node to be restarted unless it is serving no connections.
5777
+ # If false, given a restart of the node has been requested (for an update, usually), the
5778
+ # node will restart as soon as it enters an allowed day / hour combination. At least one
5779
+ # maintenance window, out of all configured windows for a node, must have this as false.
5780
+ attr_accessor :require_idleness
5781
+
5782
+ def initialize(
5783
+ cron_schedule: nil,
5784
+ require_idleness: nil
5785
+ )
5786
+ @cron_schedule = cron_schedule == nil ? "" : cron_schedule
5787
+ @require_idleness = require_idleness == nil ? false : require_idleness
5788
+ end
5789
+
5790
+ def to_json(options = {})
5791
+ hash = {}
5792
+ self.instance_variables.each do |var|
5793
+ hash[var.id2name.delete_prefix("@")] = self.instance_variable_get var
5794
+ end
5795
+ hash.to_json
5796
+ end
5797
+ end
5798
+
5819
5799
  # NodeUpdateResponse returns the fields of a Node after it has been updated by
5820
5800
  # a NodeUpdateRequest.
5821
5801
  class NodeUpdateResponse
@@ -6801,6 +6781,19 @@ module SDM
6801
6781
  # Location is a read only network location uploaded by the gateway process
6802
6782
  # when it comes online.
6803
6783
  attr_accessor :location
6784
+ # Maintenance Windows define when this node is allowed to restart. If a node
6785
+ # is requested to restart, it will check each window to determine if any of
6786
+ # them permit it to restart, and if any do, it will. This check is repeated
6787
+ # per window until the restart is successfully completed.
6788
+ #
6789
+ # If not set here, may be set on the command line or via an environment variable
6790
+ # on the process itself; any server setting will take precedence over local
6791
+ # settings. This setting is ineffective for nodes below version 38.44.0.
6792
+ #
6793
+ # If this setting is not applied via this remote configuration or via local
6794
+ # configuration, the default setting is used: always allow restarts if serving
6795
+ # no connections, and allow a restart even if serving connections between 7-8 UTC, any day.
6796
+ attr_accessor :maintenance_windows
6804
6797
  # 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.
6805
6798
  attr_accessor :name
6806
6799
  # The current state of the relay. One of: "new", "verifying_restart",
@@ -6819,6 +6812,7 @@ module SDM
6819
6812
  gateway_filter: nil,
6820
6813
  id: nil,
6821
6814
  location: nil,
6815
+ maintenance_windows: nil,
6822
6816
  name: nil,
6823
6817
  state: nil,
6824
6818
  tags: nil,
@@ -6829,6 +6823,7 @@ module SDM
6829
6823
  @gateway_filter = gateway_filter == nil ? "" : gateway_filter
6830
6824
  @id = id == nil ? "" : id
6831
6825
  @location = location == nil ? "" : location
6826
+ @maintenance_windows = maintenance_windows == nil ? [] : maintenance_windows
6832
6827
  @name = name == nil ? "" : name
6833
6828
  @state = state == nil ? "" : state
6834
6829
  @tags = tags == nil ? SDM::_porcelain_zero_value_tags() : tags
data/lib/strongdm.rb CHANGED
@@ -29,7 +29,7 @@ module SDM #:nodoc:
29
29
  DEFAULT_BASE_RETRY_DELAY = 0.0030 # 30 ms
30
30
  DEFAULT_MAX_RETRY_DELAY = 300 # 300 seconds
31
31
  API_VERSION = "2021-08-23"
32
- USER_AGENT = "strongdm-sdk-ruby/3.17.0"
32
+ USER_AGENT = "strongdm-sdk-ruby/3.18.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.
data/lib/svc.rb CHANGED
@@ -2076,8 +2076,7 @@ module SDM #:nodoc:
2076
2076
  # {AzureCertificate}
2077
2077
  # {AzureMysql}
2078
2078
  # {AzurePostgres}
2079
- # {AzurePostgresFlexible}
2080
- # {AzurePostgresSingle}
2079
+ # {AzurePostgresManagedIdentity}
2081
2080
  # {BigQuery}
2082
2081
  # {Cassandra}
2083
2082
  # {Citus}
data/lib/version CHANGED
@@ -13,5 +13,5 @@
13
13
  # limitations under the License.
14
14
  #
15
15
  module SDM
16
- VERSION = "3.17.0"
16
+ VERSION = "3.18.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.17.0"
16
+ VERSION = "3.18.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.17.0
4
+ version: 3.18.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: 2023-06-23 00:00:00.000000000 Z
11
+ date: 2023-07-07 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-b80c1f83bad67d2b8f6fb7851c83c3e84eba1c78.idx"
85
- - "./.git/objects/pack/pack-b80c1f83bad67d2b8f6fb7851c83c3e84eba1c78.pack"
84
+ - "./.git/objects/pack/pack-f4db79d8b517a6bbe6b8e46ce03146184bf6e554.idx"
85
+ - "./.git/objects/pack/pack-f4db79d8b517a6bbe6b8e46ce03146184bf6e554.pack"
86
86
  - "./.git/packed-refs"
87
87
  - "./.git/refs/heads/master"
88
88
  - "./.git/refs/remotes/origin/HEAD"