strongdm 15.37.0 → 15.40.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.
@@ -636,6 +636,59 @@ module SDM
636
636
  end
637
637
  end
638
638
 
639
+ class AWSConnector
640
+ # AccountIds is the list of AWS Accounts to scan
641
+ attr_accessor :account_ids
642
+ # Description of the Connector.
643
+ attr_accessor :description
644
+ # ExcludeTags filters out discovered resources that have the tag and value.
645
+ # We do allow duplicate tag names for ExcludeTags to support multiple excluded values for the tag.
646
+ attr_accessor :exclude_tags
647
+ # Unique identifier of the Connector.
648
+ attr_accessor :id
649
+ # IncludeTags only discovers cloud resources that have one of the included tags.
650
+ # We do not allow duplicate tag names for IncludeTags
651
+ attr_accessor :include_tags
652
+ # Unique human-readable name of the Connector.
653
+ attr_accessor :name
654
+ # RoleName is the Role we're assuming into for an account
655
+ attr_accessor :role_name
656
+ # ScanPeriod identifies which remote system this Connector discovers
657
+ attr_accessor :scan_period
658
+ # Services is a list of services this connector should scan.
659
+ attr_accessor :services
660
+
661
+ def initialize(
662
+ account_ids: nil,
663
+ description: nil,
664
+ exclude_tags: nil,
665
+ id: nil,
666
+ include_tags: nil,
667
+ name: nil,
668
+ role_name: nil,
669
+ scan_period: nil,
670
+ services: nil
671
+ )
672
+ @account_ids = account_ids == nil ? [] : account_ids
673
+ @description = description == nil ? "" : description
674
+ @exclude_tags = exclude_tags == nil ? [] : exclude_tags
675
+ @id = id == nil ? "" : id
676
+ @include_tags = include_tags == nil ? [] : include_tags
677
+ @name = name == nil ? "" : name
678
+ @role_name = role_name == nil ? "" : role_name
679
+ @scan_period = scan_period == nil ? "" : scan_period
680
+ @services = services == nil ? [] : services
681
+ end
682
+
683
+ def to_json(options = {})
684
+ hash = {}
685
+ self.instance_variables.each do |var|
686
+ hash[var.id2name.delete_prefix("@")] = self.instance_variable_get var
687
+ end
688
+ hash.to_json
689
+ end
690
+ end
691
+
639
692
  class AWSConsole
640
693
  # 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 and may also be set to one of the ResourceIPAllocationMode constants to select between VNM, loopback, or default allocation.
641
694
  attr_accessor :bind_interface
@@ -4180,6 +4233,63 @@ module SDM
4180
4233
  end
4181
4234
  end
4182
4235
 
4236
+ class AzureConnector
4237
+ # ClientId is the ID of the Application / Service Account we're acting as
4238
+ attr_accessor :client_id
4239
+ # Description of the Connector.
4240
+ attr_accessor :description
4241
+ # ExcludeTags filters out discovered resources that have the tag and value.
4242
+ # We do allow duplicate tag names for ExcludeTags to support multiple excluded values for the tag.
4243
+ attr_accessor :exclude_tags
4244
+ # Unique identifier of the Connector.
4245
+ attr_accessor :id
4246
+ # IncludeTags only discovers cloud resources that have one of the included tags.
4247
+ # We do not allow duplicate tag names for IncludeTags
4248
+ attr_accessor :include_tags
4249
+ # Unique human-readable name of the Connector.
4250
+ attr_accessor :name
4251
+ # ScanPeriod identifies which remote system this Connector discovers
4252
+ attr_accessor :scan_period
4253
+ # Services is a list of services this connector should scan.
4254
+ attr_accessor :services
4255
+ # SubscriptionIds are the targets of discovery.
4256
+ attr_accessor :subscription_ids
4257
+ # TenantId is the Azure Tenant we're discovering in
4258
+ attr_accessor :tenant_id
4259
+
4260
+ def initialize(
4261
+ client_id: nil,
4262
+ description: nil,
4263
+ exclude_tags: nil,
4264
+ id: nil,
4265
+ include_tags: nil,
4266
+ name: nil,
4267
+ scan_period: nil,
4268
+ services: nil,
4269
+ subscription_ids: nil,
4270
+ tenant_id: nil
4271
+ )
4272
+ @client_id = client_id == nil ? "" : client_id
4273
+ @description = description == nil ? "" : description
4274
+ @exclude_tags = exclude_tags == nil ? [] : exclude_tags
4275
+ @id = id == nil ? "" : id
4276
+ @include_tags = include_tags == nil ? [] : include_tags
4277
+ @name = name == nil ? "" : name
4278
+ @scan_period = scan_period == nil ? "" : scan_period
4279
+ @services = services == nil ? [] : services
4280
+ @subscription_ids = subscription_ids == nil ? [] : subscription_ids
4281
+ @tenant_id = tenant_id == nil ? "" : tenant_id
4282
+ end
4283
+
4284
+ def to_json(options = {})
4285
+ hash = {}
4286
+ self.instance_variables.each do |var|
4287
+ hash[var.id2name.delete_prefix("@")] = self.instance_variable_get var
4288
+ end
4289
+ hash.to_json
4290
+ end
4291
+ end
4292
+
4183
4293
  class AzureMysql
4184
4294
  # 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 and may also be set to one of the ResourceIPAllocationMode constants to select between VNM, loopback, or default allocation.
4185
4295
  attr_accessor :bind_interface
@@ -5147,6 +5257,228 @@ module SDM
5147
5257
  end
5148
5258
  end
5149
5259
 
5260
+ # ConnectorCreateRequest specifies a connector to create.
5261
+ class ConnectorCreateRequest
5262
+ # Parameters to define the new Connector.
5263
+ attr_accessor :connector
5264
+
5265
+ def initialize(
5266
+ connector: nil
5267
+ )
5268
+ @connector = connector == nil ? nil : connector
5269
+ end
5270
+
5271
+ def to_json(options = {})
5272
+ hash = {}
5273
+ self.instance_variables.each do |var|
5274
+ hash[var.id2name.delete_prefix("@")] = self.instance_variable_get var
5275
+ end
5276
+ hash.to_json
5277
+ end
5278
+ end
5279
+
5280
+ # ConnectorCreateResponse reports the result of a create.
5281
+ class ConnectorCreateResponse
5282
+ # The created Connector.
5283
+ attr_accessor :connector
5284
+ # Rate limit information.
5285
+ attr_accessor :rate_limit
5286
+
5287
+ def initialize(
5288
+ connector: nil,
5289
+ rate_limit: nil
5290
+ )
5291
+ @connector = connector == nil ? nil : connector
5292
+ @rate_limit = rate_limit == nil ? nil : rate_limit
5293
+ end
5294
+
5295
+ def to_json(options = {})
5296
+ hash = {}
5297
+ self.instance_variables.each do |var|
5298
+ hash[var.id2name.delete_prefix("@")] = self.instance_variable_get var
5299
+ end
5300
+ hash.to_json
5301
+ end
5302
+ end
5303
+
5304
+ # ConnectorDeleteRequest identifies a connector by ID to delete.
5305
+ class ConnectorDeleteRequest
5306
+ # The unique identifier of the connector to delete.
5307
+ attr_accessor :id
5308
+
5309
+ def initialize(
5310
+ id: nil
5311
+ )
5312
+ @id = id == nil ? "" : id
5313
+ end
5314
+
5315
+ def to_json(options = {})
5316
+ hash = {}
5317
+ self.instance_variables.each do |var|
5318
+ hash[var.id2name.delete_prefix("@")] = self.instance_variable_get var
5319
+ end
5320
+ hash.to_json
5321
+ end
5322
+ end
5323
+
5324
+ # ConnectorDeleteResponse returns information about a connector that was deleted.
5325
+ class ConnectorDeleteResponse
5326
+ # Reserved for future use.
5327
+ attr_accessor :meta
5328
+ # Rate limit information.
5329
+ attr_accessor :rate_limit
5330
+
5331
+ def initialize(
5332
+ meta: nil,
5333
+ rate_limit: nil
5334
+ )
5335
+ @meta = meta == nil ? nil : meta
5336
+ @rate_limit = rate_limit == nil ? nil : rate_limit
5337
+ end
5338
+
5339
+ def to_json(options = {})
5340
+ hash = {}
5341
+ self.instance_variables.each do |var|
5342
+ hash[var.id2name.delete_prefix("@")] = self.instance_variable_get var
5343
+ end
5344
+ hash.to_json
5345
+ end
5346
+ end
5347
+
5348
+ # ConnectorGetRequest specifies which Connector to retrieve.
5349
+ class ConnectorGetRequest
5350
+ # The unique identifier of the Connector to retrieve.
5351
+ attr_accessor :id
5352
+
5353
+ def initialize(
5354
+ id: nil
5355
+ )
5356
+ @id = id == nil ? "" : id
5357
+ end
5358
+
5359
+ def to_json(options = {})
5360
+ hash = {}
5361
+ self.instance_variables.each do |var|
5362
+ hash[var.id2name.delete_prefix("@")] = self.instance_variable_get var
5363
+ end
5364
+ hash.to_json
5365
+ end
5366
+ end
5367
+
5368
+ # ConnectorGetResponse returns a requested Connector.
5369
+ class ConnectorGetResponse
5370
+ # The requested Connector.
5371
+ attr_accessor :connector
5372
+ # Reserved for future use.
5373
+ attr_accessor :meta
5374
+ # Rate limit information.
5375
+ attr_accessor :rate_limit
5376
+
5377
+ def initialize(
5378
+ connector: nil,
5379
+ meta: nil,
5380
+ rate_limit: nil
5381
+ )
5382
+ @connector = connector == nil ? nil : connector
5383
+ @meta = meta == nil ? nil : meta
5384
+ @rate_limit = rate_limit == nil ? nil : rate_limit
5385
+ end
5386
+
5387
+ def to_json(options = {})
5388
+ hash = {}
5389
+ self.instance_variables.each do |var|
5390
+ hash[var.id2name.delete_prefix("@")] = self.instance_variable_get var
5391
+ end
5392
+ hash.to_json
5393
+ end
5394
+ end
5395
+
5396
+ # ConnectorListRequest specifies criteria for retrieving a list of connectors.
5397
+ class ConnectorListRequest
5398
+ # A human-readable filter query string.
5399
+ attr_accessor :filter
5400
+
5401
+ def initialize(
5402
+ filter: nil
5403
+ )
5404
+ @filter = filter == nil ? "" : filter
5405
+ end
5406
+
5407
+ def to_json(options = {})
5408
+ hash = {}
5409
+ self.instance_variables.each do |var|
5410
+ hash[var.id2name.delete_prefix("@")] = self.instance_variable_get var
5411
+ end
5412
+ hash.to_json
5413
+ end
5414
+ end
5415
+
5416
+ # ConnectorListResponse returns a list of connectors that meet the criteria of a
5417
+ # ConnectorListRequest.
5418
+ class ConnectorListResponse
5419
+ # Rate limit information.
5420
+ attr_accessor :rate_limit
5421
+
5422
+ def initialize(
5423
+ rate_limit: nil
5424
+ )
5425
+ @rate_limit = rate_limit == nil ? nil : rate_limit
5426
+ end
5427
+
5428
+ def to_json(options = {})
5429
+ hash = {}
5430
+ self.instance_variables.each do |var|
5431
+ hash[var.id2name.delete_prefix("@")] = self.instance_variable_get var
5432
+ end
5433
+ hash.to_json
5434
+ end
5435
+ end
5436
+
5437
+ # ConnectorUpdateRequest updates a connector.
5438
+ class ConnectorUpdateRequest
5439
+ # Parameters to overwrite the specified connector.
5440
+ attr_accessor :connector
5441
+
5442
+ def initialize(
5443
+ connector: nil
5444
+ )
5445
+ @connector = connector == nil ? nil : connector
5446
+ end
5447
+
5448
+ def to_json(options = {})
5449
+ hash = {}
5450
+ self.instance_variables.each do |var|
5451
+ hash[var.id2name.delete_prefix("@")] = self.instance_variable_get var
5452
+ end
5453
+ hash.to_json
5454
+ end
5455
+ end
5456
+
5457
+ # ConnectorUpdateResponse returns the fields of a connector after it has been updated by
5458
+ # a connectorUpdateRequest.
5459
+ class ConnectorUpdateResponse
5460
+ # The updated connector.
5461
+ attr_accessor :connector
5462
+ # Rate limit information.
5463
+ attr_accessor :rate_limit
5464
+
5465
+ def initialize(
5466
+ connector: nil,
5467
+ rate_limit: nil
5468
+ )
5469
+ @connector = connector == nil ? nil : connector
5470
+ @rate_limit = rate_limit == nil ? nil : rate_limit
5471
+ end
5472
+
5473
+ def to_json(options = {})
5474
+ hash = {}
5475
+ self.instance_variables.each do |var|
5476
+ hash[var.id2name.delete_prefix("@")] = self.instance_variable_get var
5477
+ end
5478
+ hash.to_json
5479
+ end
5480
+ end
5481
+
5150
5482
  # ControlPanelGetRDPCAPublicKeyResponse represents a request for an
5151
5483
  # organization's RDP Certificate Authority public key.
5152
5484
  class ControlPanelGetRDPCAPublicKeyResponse
@@ -6629,6 +6961,67 @@ module SDM
6629
6961
  end
6630
6962
  end
6631
6963
 
6964
+ class GCPConnector
6965
+ # Description of the Connector.
6966
+ attr_accessor :description
6967
+ # ExcludeTags filters out discovered resources that have the tag and value.
6968
+ # We do allow duplicate tag names for ExcludeTags to support multiple excluded values for the tag.
6969
+ attr_accessor :exclude_tags
6970
+ # Unique identifier of the Connector.
6971
+ attr_accessor :id
6972
+ # IncludeTags only discovers cloud resources that have one of the included tags.
6973
+ # We do not allow duplicate tag names for IncludeTags
6974
+ attr_accessor :include_tags
6975
+ # Unique human-readable name of the Connector.
6976
+ attr_accessor :name
6977
+ # PoolId is the GCP Workload Pool Identifier used to authenticate our JWT
6978
+ attr_accessor :pool_id
6979
+ # ProjectIds is the list of GCP Projects the connector will scan
6980
+ attr_accessor :project_ids
6981
+ # ProjectNumber is the GCP Project the Workload Pool is defined in
6982
+ attr_accessor :project_number
6983
+ # ProviderId is the GCP Workload Provider Identifier used to authenticate our JWT
6984
+ attr_accessor :provider_id
6985
+ # ScanPeriod identifies which remote system this Connector discovers
6986
+ attr_accessor :scan_period
6987
+ # Services is a list of services this connector should scan.
6988
+ attr_accessor :services
6989
+
6990
+ def initialize(
6991
+ description: nil,
6992
+ exclude_tags: nil,
6993
+ id: nil,
6994
+ include_tags: nil,
6995
+ name: nil,
6996
+ pool_id: nil,
6997
+ project_ids: nil,
6998
+ project_number: nil,
6999
+ provider_id: nil,
7000
+ scan_period: nil,
7001
+ services: nil
7002
+ )
7003
+ @description = description == nil ? "" : description
7004
+ @exclude_tags = exclude_tags == nil ? [] : exclude_tags
7005
+ @id = id == nil ? "" : id
7006
+ @include_tags = include_tags == nil ? [] : include_tags
7007
+ @name = name == nil ? "" : name
7008
+ @pool_id = pool_id == nil ? "" : pool_id
7009
+ @project_ids = project_ids == nil ? [] : project_ids
7010
+ @project_number = project_number == nil ? "" : project_number
7011
+ @provider_id = provider_id == nil ? "" : provider_id
7012
+ @scan_period = scan_period == nil ? "" : scan_period
7013
+ @services = services == nil ? [] : services
7014
+ end
7015
+
7016
+ def to_json(options = {})
7017
+ hash = {}
7018
+ self.instance_variables.each do |var|
7019
+ hash[var.id2name.delete_prefix("@")] = self.instance_variable_get var
7020
+ end
7021
+ hash.to_json
7022
+ end
7023
+ end
7024
+
6632
7025
  class GCPConsole
6633
7026
  # 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 and may also be set to one of the ResourceIPAllocationMode constants to select between VNM, loopback, or default allocation.
6634
7027
  attr_accessor :bind_interface
@@ -11323,6 +11716,70 @@ module SDM
11323
11716
  end
11324
11717
  end
11325
11718
 
11719
+ # OktaGroups is currently unstable, and its API may change, or it may be removed, without a major version bump.
11720
+ class OktaGroups
11721
+ # 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 and may also be set to one of the ResourceIPAllocationMode constants to select between VNM, loopback, or default allocation.
11722
+ attr_accessor :bind_interface
11723
+ # Represents the Okta Org Client URL
11724
+ attr_accessor :domain
11725
+ # A filter applied to the routing logic to pin datasource to nodes.
11726
+ attr_accessor :egress_filter
11727
+ # True if the datasource is reachable and the credentials are valid.
11728
+ attr_accessor :healthy
11729
+ # Unique identifier of the Resource.
11730
+ attr_accessor :id
11731
+ # The ID of the identity set to use for identity connections.
11732
+ attr_accessor :identity_set_id
11733
+ # Unique human-readable name of the Resource.
11734
+ attr_accessor :name
11735
+ # The privilege levels specify which Groups are managed externally
11736
+ attr_accessor :privilege_levels
11737
+ # ID of the proxy cluster for this resource, if any.
11738
+ attr_accessor :proxy_cluster_id
11739
+ # ID of the secret store containing credentials for this resource, if any.
11740
+ attr_accessor :secret_store_id
11741
+ # DNS subdomain through which this resource may be accessed on clients. (e.g. "app-prod1" allows the resource to be accessed at "app-prod1.your-org-name.sdm-proxy-domain"). Only applicable to HTTP-based resources or resources using virtual networking mode.
11742
+ attr_accessor :subdomain
11743
+ # Tags is a map of key, value pairs.
11744
+ attr_accessor :tags
11745
+
11746
+ def initialize(
11747
+ bind_interface: nil,
11748
+ domain: nil,
11749
+ egress_filter: nil,
11750
+ healthy: nil,
11751
+ id: nil,
11752
+ identity_set_id: nil,
11753
+ name: nil,
11754
+ privilege_levels: nil,
11755
+ proxy_cluster_id: nil,
11756
+ secret_store_id: nil,
11757
+ subdomain: nil,
11758
+ tags: nil
11759
+ )
11760
+ @bind_interface = bind_interface == nil ? "" : bind_interface
11761
+ @domain = domain == nil ? "" : domain
11762
+ @egress_filter = egress_filter == nil ? "" : egress_filter
11763
+ @healthy = healthy == nil ? false : healthy
11764
+ @id = id == nil ? "" : id
11765
+ @identity_set_id = identity_set_id == nil ? "" : identity_set_id
11766
+ @name = name == nil ? "" : name
11767
+ @privilege_levels = privilege_levels == nil ? "" : privilege_levels
11768
+ @proxy_cluster_id = proxy_cluster_id == nil ? "" : proxy_cluster_id
11769
+ @secret_store_id = secret_store_id == nil ? "" : secret_store_id
11770
+ @subdomain = subdomain == nil ? "" : subdomain
11771
+ @tags = tags == nil ? SDM::_porcelain_zero_value_tags() : tags
11772
+ end
11773
+
11774
+ def to_json(options = {})
11775
+ hash = {}
11776
+ self.instance_variables.each do |var|
11777
+ hash[var.id2name.delete_prefix("@")] = self.instance_variable_get var
11778
+ end
11779
+ hash.to_json
11780
+ end
11781
+ end
11782
+
11326
11783
  class Oracle
11327
11784
  # 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 and may also be set to one of the ResourceIPAllocationMode constants to select between VNM, loopback, or default allocation.
11328
11785
  attr_accessor :bind_interface
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.37.0"
33
+ USER_AGENT = "strongdm-sdk-ruby/15.40.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.
@@ -79,6 +79,7 @@ module SDM #:nodoc:
79
79
  @approval_workflows = ApprovalWorkflows.new(@channel, self)
80
80
  @approval_workflows_history = ApprovalWorkflowsHistory.new(@channel, self)
81
81
  @control_panel = ControlPanel.new(@channel, self)
82
+ @discovery_connectors = DiscoveryConnectors.new(@channel, self)
82
83
  @roles = Roles.new(@channel, self)
83
84
  @groups = Groups.new(@channel, self)
84
85
  @groups_history = GroupsHistory.new(@channel, self)
@@ -329,6 +330,11 @@ module SDM #:nodoc:
329
330
  #
330
331
  # See {ControlPanel}.
331
332
  attr_reader :control_panel
333
+ # A Discovery Connector is a configuration object for performing Resource
334
+ # Scans in remote systems such as AWS, GCP, Azure, and other systems.
335
+ #
336
+ # See {DiscoveryConnectors}.
337
+ attr_reader :discovery_connectors
332
338
  # A Role has a list of access rules which determine which Resources the members
333
339
  # of the Role have access to. An Account can be a member of multiple Roles via
334
340
  # AccountAttachments.
@@ -550,6 +556,7 @@ module SDM #:nodoc:
550
556
  @approval_workflows = ApprovalWorkflows.new(@channel, self)
551
557
  @approval_workflows_history = ApprovalWorkflowsHistory.new(@channel, self)
552
558
  @control_panel = ControlPanel.new(@channel, self)
559
+ @discovery_connectors = DiscoveryConnectors.new(@channel, self)
553
560
  @roles = Roles.new(@channel, self)
554
561
  @groups = Groups.new(@channel, self)
555
562
  @groups_history = GroupsHistory.new(@channel, self)
@@ -608,6 +615,7 @@ module SDM #:nodoc:
608
615
  @approval_workflow_approvers = SnapshotApprovalWorkflowApprovers.new(client.approval_workflow_approvers)
609
616
  @approval_workflow_steps = SnapshotApprovalWorkflowSteps.new(client.approval_workflow_steps)
610
617
  @approval_workflows = SnapshotApprovalWorkflows.new(client.approval_workflows)
618
+ @discovery_connectors = SnapshotDiscoveryConnectors.new(client.discovery_connectors)
611
619
  @roles = SnapshotRoles.new(client.roles)
612
620
  @groups = SnapshotGroups.new(client.groups)
613
621
  @groups_roles = SnapshotGroupsRoles.new(client.groups_roles)
@@ -672,6 +680,11 @@ module SDM #:nodoc:
672
680
  #
673
681
  # See {SnapshotApprovalWorkflows}.
674
682
  attr_reader :approval_workflows
683
+ # A Discovery Connector is a configuration object for performing Resource
684
+ # Scans in remote systems such as AWS, GCP, Azure, and other systems.
685
+ #
686
+ # See {SnapshotDiscoveryConnectors}.
687
+ attr_reader :discovery_connectors
675
688
  # A Role has a list of access rules which determine which Resources the members
676
689
  # of the Role have access to. An Account can be a member of multiple Roles via
677
690
  # AccountAttachments.