strongdm 11.1.0 → 11.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,91 @@
1
+ # Copyright 2020 StrongDM Inc
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+ #
15
+ # Generated by the protocol buffer compiler. DO NOT EDIT!
16
+ # source: policies.proto
17
+
18
+ require "google/protobuf"
19
+
20
+ require "options_pb"
21
+ require "spec_pb"
22
+
23
+ Google::Protobuf::DescriptorPool.generated_pool.build do
24
+ add_file("policies.proto", :syntax => :proto3) do
25
+ add_message "v1.PolicyCreateRequest" do
26
+ optional :meta, :message, 1, "v1.CreateRequestMetadata"
27
+ optional :policy, :message, 2, "v1.Policy"
28
+ end
29
+ add_message "v1.PolicyCreateResponse" do
30
+ optional :meta, :message, 1, "v1.CreateResponseMetadata"
31
+ optional :policy, :message, 2, "v1.Policy"
32
+ optional :rate_limit, :message, 3, "v1.RateLimitMetadata"
33
+ end
34
+ add_message "v1.PolicyUpdateRequest" do
35
+ optional :meta, :message, 1, "v1.UpdateRequestMetadata"
36
+ optional :id, :string, 2
37
+ optional :policy, :message, 3, "v1.Policy"
38
+ end
39
+ add_message "v1.PolicyUpdateResponse" do
40
+ optional :meta, :message, 1, "v1.UpdateResponseMetadata"
41
+ optional :policy, :message, 2, "v1.Policy"
42
+ optional :rate_limit, :message, 3, "v1.RateLimitMetadata"
43
+ end
44
+ add_message "v1.PolicyDeleteRequest" do
45
+ optional :meta, :message, 1, "v1.DeleteRequestMetadata"
46
+ optional :id, :string, 2
47
+ end
48
+ add_message "v1.PolicyDeleteResponse" do
49
+ optional :meta, :message, 1, "v1.DeleteResponseMetadata"
50
+ optional :rate_limit, :message, 2, "v1.RateLimitMetadata"
51
+ end
52
+ add_message "v1.PolicyGetRequest" do
53
+ optional :meta, :message, 1, "v1.GetRequestMetadata"
54
+ optional :id, :string, 2
55
+ end
56
+ add_message "v1.PolicyGetResponse" do
57
+ optional :meta, :message, 1, "v1.GetResponseMetadata"
58
+ optional :policy, :message, 2, "v1.Policy"
59
+ optional :rate_limit, :message, 3, "v1.RateLimitMetadata"
60
+ end
61
+ add_message "v1.PolicyListRequest" do
62
+ optional :meta, :message, 1, "v1.ListRequestMetadata"
63
+ optional :filter, :string, 2
64
+ end
65
+ add_message "v1.PolicyListResponse" do
66
+ optional :meta, :message, 1, "v1.ListResponseMetadata"
67
+ repeated :policies, :message, 2, "v1.Policy"
68
+ optional :rate_limit, :message, 3, "v1.RateLimitMetadata"
69
+ end
70
+ add_message "v1.Policy" do
71
+ optional :id, :string, 1
72
+ optional :name, :string, 2
73
+ optional :description, :string, 3
74
+ optional :policy, :string, 4
75
+ end
76
+ end
77
+ end
78
+
79
+ module V1
80
+ PolicyCreateRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.PolicyCreateRequest").msgclass
81
+ PolicyCreateResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.PolicyCreateResponse").msgclass
82
+ PolicyUpdateRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.PolicyUpdateRequest").msgclass
83
+ PolicyUpdateResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.PolicyUpdateResponse").msgclass
84
+ PolicyDeleteRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.PolicyDeleteRequest").msgclass
85
+ PolicyDeleteResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.PolicyDeleteResponse").msgclass
86
+ PolicyGetRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.PolicyGetRequest").msgclass
87
+ PolicyGetResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.PolicyGetResponse").msgclass
88
+ PolicyListRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.PolicyListRequest").msgclass
89
+ PolicyListResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.PolicyListResponse").msgclass
90
+ Policy = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.Policy").msgclass
91
+ end
@@ -0,0 +1,46 @@
1
+ # Copyright 2020 StrongDM Inc
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+ #
15
+ # Generated by the protocol buffer compiler. DO NOT EDIT!
16
+ # Source: policies.proto for package 'v1'
17
+
18
+ require "grpc"
19
+ require "policies_pb"
20
+
21
+ module V1
22
+ module Policies
23
+ # Policies are the collection of one or more statements that enforce fine-grained access
24
+ # control for the users of an organization.
25
+ class Service
26
+ include ::GRPC::GenericService
27
+
28
+ self.marshal_class_method = :encode
29
+ self.unmarshal_class_method = :decode
30
+ self.service_name = "v1.Policies"
31
+
32
+ # Create creates a new Policy.
33
+ rpc :Create, ::V1::PolicyCreateRequest, ::V1::PolicyCreateResponse
34
+ # Delete removes a Policy by ID.
35
+ rpc :Delete, ::V1::PolicyDeleteRequest, ::V1::PolicyDeleteResponse
36
+ # Update replaces all the fields of a Policy by ID.
37
+ rpc :Update, ::V1::PolicyUpdateRequest, ::V1::PolicyUpdateResponse
38
+ # Get reads one Policy by ID.
39
+ rpc :Get, ::V1::PolicyGetRequest, ::V1::PolicyGetResponse
40
+ # List gets a list of Policy matching a given set of criteria
41
+ rpc :List, ::V1::PolicyListRequest, ::V1::PolicyListResponse
42
+ end
43
+
44
+ Stub = Service.rpc_stub_class
45
+ end
46
+ end
@@ -17,6 +17,9 @@
17
17
 
18
18
  module SDM
19
19
  class AKS
20
+ # If true, allows users to fallback to the existing authentication mode (Leased Credential or Identity Set)
21
+ # when a resource role is not provided.
22
+ attr_accessor :allow_resource_role_bypass
20
23
  # 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.
21
24
  attr_accessor :bind_interface
22
25
  # The CA to authenticate TLS connections with.
@@ -58,6 +61,7 @@ module SDM
58
61
  attr_accessor :tags
59
62
 
60
63
  def initialize(
64
+ allow_resource_role_bypass: nil,
61
65
  bind_interface: nil,
62
66
  certificate_authority: nil,
63
67
  client_certificate: nil,
@@ -78,6 +82,7 @@ module SDM
78
82
  subdomain: nil,
79
83
  tags: nil
80
84
  )
85
+ @allow_resource_role_bypass = allow_resource_role_bypass == nil ? false : allow_resource_role_bypass
81
86
  @bind_interface = bind_interface == nil ? "" : bind_interface
82
87
  @certificate_authority = certificate_authority == nil ? "" : certificate_authority
83
88
  @client_certificate = client_certificate == nil ? "" : client_certificate
@@ -108,6 +113,7 @@ module SDM
108
113
  end
109
114
  end
110
115
 
116
+ # AKSBasicAuth is currently unstable, and its API may change, or it may be removed, without a major version bump.
111
117
  class AKSBasicAuth
112
118
  # 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.
113
119
  attr_accessor :bind_interface
@@ -180,6 +186,9 @@ module SDM
180
186
  end
181
187
 
182
188
  class AKSServiceAccount
189
+ # If true, allows users to fallback to the existing authentication mode (Leased Credential or Identity Set)
190
+ # when a resource role is not provided.
191
+ attr_accessor :allow_resource_role_bypass
183
192
  # 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.
184
193
  attr_accessor :bind_interface
185
194
  # If true, configures discovery of a cluster to be run from a node.
@@ -217,6 +226,7 @@ module SDM
217
226
  attr_accessor :token
218
227
 
219
228
  def initialize(
229
+ allow_resource_role_bypass: nil,
220
230
  bind_interface: nil,
221
231
  discovery_enabled: nil,
222
232
  discovery_username: nil,
@@ -235,6 +245,7 @@ module SDM
235
245
  tags: nil,
236
246
  token: nil
237
247
  )
248
+ @allow_resource_role_bypass = allow_resource_role_bypass == nil ? false : allow_resource_role_bypass
238
249
  @bind_interface = bind_interface == nil ? "" : bind_interface
239
250
  @discovery_enabled = discovery_enabled == nil ? false : discovery_enabled
240
251
  @discovery_username = discovery_username == nil ? "" : discovery_username
@@ -1717,6 +1728,9 @@ module SDM
1717
1728
  class AmazonEKS
1718
1729
  # The Access Key ID to use to authenticate.
1719
1730
  attr_accessor :access_key
1731
+ # If true, allows users to fallback to the existing authentication mode (Leased Credential or Identity Set)
1732
+ # when a resource role is not provided.
1733
+ attr_accessor :allow_resource_role_bypass
1720
1734
  # 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.
1721
1735
  attr_accessor :bind_interface
1722
1736
  # The CA to authenticate TLS connections with.
@@ -1763,6 +1777,7 @@ module SDM
1763
1777
 
1764
1778
  def initialize(
1765
1779
  access_key: nil,
1780
+ allow_resource_role_bypass: nil,
1766
1781
  bind_interface: nil,
1767
1782
  certificate_authority: nil,
1768
1783
  cluster_name: nil,
@@ -1786,6 +1801,7 @@ module SDM
1786
1801
  tags: nil
1787
1802
  )
1788
1803
  @access_key = access_key == nil ? "" : access_key
1804
+ @allow_resource_role_bypass = allow_resource_role_bypass == nil ? false : allow_resource_role_bypass
1789
1805
  @bind_interface = bind_interface == nil ? "" : bind_interface
1790
1806
  @certificate_authority = certificate_authority == nil ? "" : certificate_authority
1791
1807
  @cluster_name = cluster_name == nil ? "" : cluster_name
@@ -1819,6 +1835,9 @@ module SDM
1819
1835
  end
1820
1836
 
1821
1837
  class AmazonEKSInstanceProfile
1838
+ # If true, allows users to fallback to the existing authentication mode (Leased Credential or Identity Set)
1839
+ # when a resource role is not provided.
1840
+ attr_accessor :allow_resource_role_bypass
1822
1841
  # 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.
1823
1842
  attr_accessor :bind_interface
1824
1843
  # The CA to authenticate TLS connections with.
@@ -1862,6 +1881,7 @@ module SDM
1862
1881
  attr_accessor :tags
1863
1882
 
1864
1883
  def initialize(
1884
+ allow_resource_role_bypass: nil,
1865
1885
  bind_interface: nil,
1866
1886
  certificate_authority: nil,
1867
1887
  cluster_name: nil,
@@ -1883,6 +1903,7 @@ module SDM
1883
1903
  subdomain: nil,
1884
1904
  tags: nil
1885
1905
  )
1906
+ @allow_resource_role_bypass = allow_resource_role_bypass == nil ? false : allow_resource_role_bypass
1886
1907
  @bind_interface = bind_interface == nil ? "" : bind_interface
1887
1908
  @certificate_authority = certificate_authority == nil ? "" : certificate_authority
1888
1909
  @cluster_name = cluster_name == nil ? "" : cluster_name
@@ -4851,6 +4872,9 @@ module SDM
4851
4872
  end
4852
4873
 
4853
4874
  class GoogleGKE
4875
+ # If true, allows users to fallback to the existing authentication mode (Leased Credential or Identity Set)
4876
+ # when a resource role is not provided.
4877
+ attr_accessor :allow_resource_role_bypass
4854
4878
  # 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.
4855
4879
  attr_accessor :bind_interface
4856
4880
  # The CA to authenticate TLS connections with.
@@ -4888,6 +4912,7 @@ module SDM
4888
4912
  attr_accessor :tags
4889
4913
 
4890
4914
  def initialize(
4915
+ allow_resource_role_bypass: nil,
4891
4916
  bind_interface: nil,
4892
4917
  certificate_authority: nil,
4893
4918
  discovery_enabled: nil,
@@ -4906,6 +4931,7 @@ module SDM
4906
4931
  subdomain: nil,
4907
4932
  tags: nil
4908
4933
  )
4934
+ @allow_resource_role_bypass = allow_resource_role_bypass == nil ? false : allow_resource_role_bypass
4909
4935
  @bind_interface = bind_interface == nil ? "" : bind_interface
4910
4936
  @certificate_authority = certificate_authority == nil ? "" : certificate_authority
4911
4937
  @discovery_enabled = discovery_enabled == nil ? false : discovery_enabled
@@ -5774,6 +5800,9 @@ module SDM
5774
5800
  end
5775
5801
 
5776
5802
  class Kubernetes
5803
+ # If true, allows users to fallback to the existing authentication mode (Leased Credential or Identity Set)
5804
+ # when a resource role is not provided.
5805
+ attr_accessor :allow_resource_role_bypass
5777
5806
  # 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.
5778
5807
  attr_accessor :bind_interface
5779
5808
  # The CA to authenticate TLS connections with.
@@ -5815,6 +5844,7 @@ module SDM
5815
5844
  attr_accessor :tags
5816
5845
 
5817
5846
  def initialize(
5847
+ allow_resource_role_bypass: nil,
5818
5848
  bind_interface: nil,
5819
5849
  certificate_authority: nil,
5820
5850
  client_certificate: nil,
@@ -5835,6 +5865,7 @@ module SDM
5835
5865
  subdomain: nil,
5836
5866
  tags: nil
5837
5867
  )
5868
+ @allow_resource_role_bypass = allow_resource_role_bypass == nil ? false : allow_resource_role_bypass
5838
5869
  @bind_interface = bind_interface == nil ? "" : bind_interface
5839
5870
  @certificate_authority = certificate_authority == nil ? "" : certificate_authority
5840
5871
  @client_certificate = client_certificate == nil ? "" : client_certificate
@@ -5865,6 +5896,7 @@ module SDM
5865
5896
  end
5866
5897
  end
5867
5898
 
5899
+ # KubernetesBasicAuth is currently unstable, and its API may change, or it may be removed, without a major version bump.
5868
5900
  class KubernetesBasicAuth
5869
5901
  # 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.
5870
5902
  attr_accessor :bind_interface
@@ -5937,6 +5969,9 @@ module SDM
5937
5969
  end
5938
5970
 
5939
5971
  class KubernetesServiceAccount
5972
+ # If true, allows users to fallback to the existing authentication mode (Leased Credential or Identity Set)
5973
+ # when a resource role is not provided.
5974
+ attr_accessor :allow_resource_role_bypass
5940
5975
  # 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.
5941
5976
  attr_accessor :bind_interface
5942
5977
  # If true, configures discovery of a cluster to be run from a node.
@@ -5974,6 +6009,7 @@ module SDM
5974
6009
  attr_accessor :token
5975
6010
 
5976
6011
  def initialize(
6012
+ allow_resource_role_bypass: nil,
5977
6013
  bind_interface: nil,
5978
6014
  discovery_enabled: nil,
5979
6015
  discovery_username: nil,
@@ -5992,6 +6028,7 @@ module SDM
5992
6028
  tags: nil,
5993
6029
  token: nil
5994
6030
  )
6031
+ @allow_resource_role_bypass = allow_resource_role_bypass == nil ? false : allow_resource_role_bypass
5995
6032
  @bind_interface = bind_interface == nil ? "" : bind_interface
5996
6033
  @discovery_enabled = discovery_enabled == nil ? false : discovery_enabled
5997
6034
  @discovery_username = discovery_username == nil ? "" : discovery_username
@@ -8010,6 +8047,192 @@ module SDM
8010
8047
  end
8011
8048
  end
8012
8049
 
8050
+ # Policy is a collection of one or more statements that enforce fine-grained access control
8051
+ # for the users of an organization.
8052
+ class Policy
8053
+ # Optional description of the Policy.
8054
+ attr_accessor :description
8055
+ # Unique identifier of the Policy.
8056
+ attr_accessor :id
8057
+ # Unique human-readable name of the Policy.
8058
+ attr_accessor :name
8059
+ # The content of the Policy, in Cedar policy language.
8060
+ attr_accessor :policy
8061
+
8062
+ def initialize(
8063
+ description: nil,
8064
+ id: nil,
8065
+ name: nil,
8066
+ policy: nil
8067
+ )
8068
+ @description = description == nil ? "" : description
8069
+ @id = id == nil ? "" : id
8070
+ @name = name == nil ? "" : name
8071
+ @policy = policy == nil ? "" : policy
8072
+ end
8073
+
8074
+ def to_json(options = {})
8075
+ hash = {}
8076
+ self.instance_variables.each do |var|
8077
+ hash[var.id2name.delete_prefix("@")] = self.instance_variable_get var
8078
+ end
8079
+ hash.to_json
8080
+ end
8081
+ end
8082
+
8083
+ # PolicyCreateResponse reports how the Policy was created in the system.
8084
+ class PolicyCreateResponse
8085
+ # The created Policy.
8086
+ attr_accessor :policy
8087
+ # Rate limit information.
8088
+ attr_accessor :rate_limit
8089
+
8090
+ def initialize(
8091
+ policy: nil,
8092
+ rate_limit: nil
8093
+ )
8094
+ @policy = policy == nil ? nil : policy
8095
+ @rate_limit = rate_limit == nil ? nil : rate_limit
8096
+ end
8097
+
8098
+ def to_json(options = {})
8099
+ hash = {}
8100
+ self.instance_variables.each do |var|
8101
+ hash[var.id2name.delete_prefix("@")] = self.instance_variable_get var
8102
+ end
8103
+ hash.to_json
8104
+ end
8105
+ end
8106
+
8107
+ # PolicyDeleteResponse returns information about a Policy that was deleted.
8108
+ class PolicyDeleteResponse
8109
+ # Rate limit information.
8110
+ attr_accessor :rate_limit
8111
+
8112
+ def initialize(
8113
+ rate_limit: nil
8114
+ )
8115
+ @rate_limit = rate_limit == nil ? nil : rate_limit
8116
+ end
8117
+
8118
+ def to_json(options = {})
8119
+ hash = {}
8120
+ self.instance_variables.each do |var|
8121
+ hash[var.id2name.delete_prefix("@")] = self.instance_variable_get var
8122
+ end
8123
+ hash.to_json
8124
+ end
8125
+ end
8126
+
8127
+ # PolicyGetResponse returns a requested Policy.
8128
+ class PolicyGetResponse
8129
+ # Reserved for future use.
8130
+ attr_accessor :meta
8131
+ # The requested Policy.
8132
+ attr_accessor :policy
8133
+ # Rate limit information.
8134
+ attr_accessor :rate_limit
8135
+
8136
+ def initialize(
8137
+ meta: nil,
8138
+ policy: nil,
8139
+ rate_limit: nil
8140
+ )
8141
+ @meta = meta == nil ? nil : meta
8142
+ @policy = policy == nil ? nil : policy
8143
+ @rate_limit = rate_limit == nil ? nil : rate_limit
8144
+ end
8145
+
8146
+ def to_json(options = {})
8147
+ hash = {}
8148
+ self.instance_variables.each do |var|
8149
+ hash[var.id2name.delete_prefix("@")] = self.instance_variable_get var
8150
+ end
8151
+ hash.to_json
8152
+ end
8153
+ end
8154
+
8155
+ # PolicyHistory records the state of a Policy at a given point in time,
8156
+ # where every change (create, update and delete) to a Policy produces a
8157
+ # PolicyHistory record.
8158
+ class PolicyHistory
8159
+ # The unique identifier of the Activity that produced this change to the Policy.
8160
+ # May be empty for some system-initiated updates.
8161
+ attr_accessor :activity_id
8162
+ # If this Policy was deleted, the time it was deleted.
8163
+ attr_accessor :deleted_at
8164
+ # The complete Policy state at this time.
8165
+ attr_accessor :policy
8166
+ # The time at which the Policy state was recorded.
8167
+ attr_accessor :timestamp
8168
+
8169
+ def initialize(
8170
+ activity_id: nil,
8171
+ deleted_at: nil,
8172
+ policy: nil,
8173
+ timestamp: nil
8174
+ )
8175
+ @activity_id = activity_id == nil ? "" : activity_id
8176
+ @deleted_at = deleted_at == nil ? nil : deleted_at
8177
+ @policy = policy == nil ? nil : policy
8178
+ @timestamp = timestamp == nil ? nil : timestamp
8179
+ end
8180
+
8181
+ def to_json(options = {})
8182
+ hash = {}
8183
+ self.instance_variables.each do |var|
8184
+ hash[var.id2name.delete_prefix("@")] = self.instance_variable_get var
8185
+ end
8186
+ hash.to_json
8187
+ end
8188
+ end
8189
+
8190
+ # PolicyListResponse returns a list of Policy records that meet
8191
+ # the criteria of a PolicyListRequest.
8192
+ class PolicyListResponse
8193
+ # Rate limit information.
8194
+ attr_accessor :rate_limit
8195
+
8196
+ def initialize(
8197
+ rate_limit: nil
8198
+ )
8199
+ @rate_limit = rate_limit == nil ? nil : rate_limit
8200
+ end
8201
+
8202
+ def to_json(options = {})
8203
+ hash = {}
8204
+ self.instance_variables.each do |var|
8205
+ hash[var.id2name.delete_prefix("@")] = self.instance_variable_get var
8206
+ end
8207
+ hash.to_json
8208
+ end
8209
+ end
8210
+
8211
+ # PolicyUpdateResponse returns the fields of a Policy after it has been updated by
8212
+ # a PolicyUpdateRequest.
8213
+ class PolicyUpdateResponse
8214
+ # The updated Policy.
8215
+ attr_accessor :policy
8216
+ # Rate limit information.
8217
+ attr_accessor :rate_limit
8218
+
8219
+ def initialize(
8220
+ policy: nil,
8221
+ rate_limit: nil
8222
+ )
8223
+ @policy = policy == nil ? nil : policy
8224
+ @rate_limit = rate_limit == nil ? nil : rate_limit
8225
+ end
8226
+
8227
+ def to_json(options = {})
8228
+ hash = {}
8229
+ self.instance_variables.each do |var|
8230
+ hash[var.id2name.delete_prefix("@")] = self.instance_variable_get var
8231
+ end
8232
+ hash.to_json
8233
+ end
8234
+ end
8235
+
8013
8236
  class Postgres
8014
8237
  # 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.
8015
8238
  attr_accessor :bind_interface
data/lib/strongdm.rb CHANGED
@@ -29,7 +29,7 @@ module SDM #:nodoc:
29
29
  DEFAULT_BASE_RETRY_DELAY = 0.0030 # 30 ms
30
30
  DEFAULT_MAX_RETRY_DELAY = 300 # 300 seconds
31
31
  API_VERSION = "2024-03-28"
32
- USER_AGENT = "strongdm-sdk-ruby/11.1.0"
32
+ USER_AGENT = "strongdm-sdk-ruby/11.4.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.
@@ -86,6 +86,8 @@ module SDM #:nodoc:
86
86
  @peering_group_peers = PeeringGroupPeers.new(@channel, self)
87
87
  @peering_group_resources = PeeringGroupResources.new(@channel, self)
88
88
  @peering_groups = PeeringGroups.new(@channel, self)
89
+ @policies = Policies.new(@channel, self)
90
+ @policies_history = PoliciesHistory.new(@channel, self)
89
91
  @queries = Queries.new(@channel, self)
90
92
  @remote_identities = RemoteIdentities.new(@channel, self)
91
93
  @remote_identities_history = RemoteIdentitiesHistory.new(@channel, self)
@@ -335,6 +337,15 @@ module SDM #:nodoc:
335
337
  #
336
338
  # See {PeeringGroups}.
337
339
  attr_reader :peering_groups
340
+ # Policies are the collection of one or more statements that enforce fine-grained access
341
+ # control for the users of an organization.
342
+ #
343
+ # See {Policies}.
344
+ attr_reader :policies
345
+ # PoliciesHistory records all changes to the state of a Policy.
346
+ #
347
+ # See {PoliciesHistory}.
348
+ attr_reader :policies_history
338
349
  # A Query is a record of a single client request to a resource, such as a SQL query.
339
350
  # Long-running SSH, RDP, or Kubernetes interactive sessions also count as queries.
340
351
  # The Queries service is read-only.
@@ -478,6 +489,8 @@ module SDM #:nodoc:
478
489
  @peering_group_peers = PeeringGroupPeers.new(@channel, self)
479
490
  @peering_group_resources = PeeringGroupResources.new(@channel, self)
480
491
  @peering_groups = PeeringGroups.new(@channel, self)
492
+ @policies = Policies.new(@channel, self)
493
+ @policies_history = PoliciesHistory.new(@channel, self)
481
494
  @queries = Queries.new(@channel, self)
482
495
  @remote_identities = RemoteIdentities.new(@channel, self)
483
496
  @remote_identities_history = RemoteIdentitiesHistory.new(@channel, self)
@@ -519,6 +532,7 @@ module SDM #:nodoc:
519
532
  @identity_aliases = SnapshotIdentityAliases.new(client.identity_aliases)
520
533
  @identity_sets = SnapshotIdentitySets.new(client.identity_sets)
521
534
  @nodes = SnapshotNodes.new(client.nodes)
535
+ @policies = SnapshotPolicies.new(client.policies)
522
536
  @remote_identities = SnapshotRemoteIdentities.new(client.remote_identities)
523
537
  @remote_identity_groups = SnapshotRemoteIdentityGroups.new(client.remote_identity_groups)
524
538
  @resources = SnapshotResources.new(client.resources)
@@ -589,6 +603,11 @@ module SDM #:nodoc:
589
603
  #
590
604
  # See {SnapshotNodes}.
591
605
  attr_reader :nodes
606
+ # Policies are the collection of one or more statements that enforce fine-grained access
607
+ # control for the users of an organization.
608
+ #
609
+ # See {SnapshotPolicies}.
610
+ attr_reader :policies
592
611
  # RemoteIdentities assign a resource directly to an account, giving the account the permission to connect to that resource.
593
612
  #
594
613
  # See {SnapshotRemoteIdentities}.