strongdm 3.5.0 → 3.5.3

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: eb6f505400b8b6c5710dbc854055f1d2178df204ff75863655d5126e76e73e3a
4
- data.tar.gz: aa8137e2c86546358948f6ad254d8e133cfa8bf6dd0d9b3834afafe17d474ceb
3
+ metadata.gz: 97f61131face83a0f43a542ee069ca5ef65fae534fc992238f58c8bf9e4e085c
4
+ data.tar.gz: 15c17c6df7129f8745caa2fb6886599c130f1040effd130796acffd442aace1f
5
5
  SHA512:
6
- metadata.gz: 8b7270d476d1b60443cb89d1b9dd07931a825c2362fdfcdb15ba72d3c34bbe486b1e311867e1cbd6f5d147824c8402206008b9201fa8d31191478e6e9c701fa2
7
- data.tar.gz: 75672cb02e8bea1b6725042a03029683a89f9626a3bde1658646f628fa6a6f9ac018f8519748246e51ff54fe425c34023e895e4f52cfc40a1b2770abef8154dd
6
+ metadata.gz: 291b8a4f98daed7205dbf7f1c0bb54ef56d407e962e1f3578fad750ad300a874813b8408f670778730fe3685c436e12d828e507882f6a06604707d77ac9328df
7
+ data.tar.gz: 140acae1e66628d551a2974fb28af1bef89d8a02566e2b18ff06e4b18856cbc526692b2419bc8e8d2bd8d7744efb7fd297623834606e2d9b2750c14641c3efae
data/.git/ORIG_HEAD CHANGED
@@ -1 +1 @@
1
- c07c84aa4982d50d60f10720b331c76f56f8c53f
1
+ 8ddacf3c9cbe388ee11ed4617ba41cf7b0cc2a41
data/.git/index CHANGED
Binary file
data/.git/logs/HEAD CHANGED
@@ -1,3 +1,3 @@
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
+ 0000000000000000000000000000000000000000 8ddacf3c9cbe388ee11ed4617ba41cf7b0cc2a41 sdmrelease <support@strongdm.com> 1670881920 +0000 clone: from git@github.com:strongdm/strongdm-sdk-ruby.git
2
+ 8ddacf3c9cbe388ee11ed4617ba41cf7b0cc2a41 8ddacf3c9cbe388ee11ed4617ba41cf7b0cc2a41 sdmrelease <support@strongdm.com> 1670881920 +0000 checkout: moving from master to master
3
+ 8ddacf3c9cbe388ee11ed4617ba41cf7b0cc2a41 003b46a249146cb3a4f25d16432c89f0b78ac37c sdmrelease <support@strongdm.com> 1670881920 +0000 merge origin/development: Fast-forward
@@ -1,2 +1,2 @@
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
+ 0000000000000000000000000000000000000000 8ddacf3c9cbe388ee11ed4617ba41cf7b0cc2a41 sdmrelease <support@strongdm.com> 1670881920 +0000 clone: from git@github.com:strongdm/strongdm-sdk-ruby.git
2
+ 8ddacf3c9cbe388ee11ed4617ba41cf7b0cc2a41 003b46a249146cb3a4f25d16432c89f0b78ac37c sdmrelease <support@strongdm.com> 1670881920 +0000 merge origin/development: Fast-forward
@@ -1 +1 @@
1
- 0000000000000000000000000000000000000000 c07c84aa4982d50d60f10720b331c76f56f8c53f sdmrelease <support@strongdm.com> 1668525718 +0000 clone: from git@github.com:strongdm/strongdm-sdk-ruby.git
1
+ 0000000000000000000000000000000000000000 8ddacf3c9cbe388ee11ed4617ba41cf7b0cc2a41 sdmrelease <support@strongdm.com> 1670881920 +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
- bfb8a3cdb41c617913f0295b25ac7ecc7398d2c2 refs/remotes/origin/development
3
- c07c84aa4982d50d60f10720b331c76f56f8c53f refs/remotes/origin/master
2
+ 003b46a249146cb3a4f25d16432c89f0b78ac37c refs/remotes/origin/development
3
+ 8ddacf3c9cbe388ee11ed4617ba41cf7b0cc2a41 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
@@ -49,3 +49,5 @@ d0ae780dd221eab9c3108d74697661483c1e1085 refs/tags/v3.2.3
49
49
  390199f6fe9dc45de4cd68aae9f5a433228506f5 refs/tags/v3.3.0
50
50
  f99114303af624f557c49036ef7e65c4cdfdb862 refs/tags/v3.3.1
51
51
  c07c84aa4982d50d60f10720b331c76f56f8c53f refs/tags/v3.3.2
52
+ bfb8a3cdb41c617913f0295b25ac7ecc7398d2c2 refs/tags/v3.5.0
53
+ 8ddacf3c9cbe388ee11ed4617ba41cf7b0cc2a41 refs/tags/v3.5.1
@@ -1 +1 @@
1
- bfb8a3cdb41c617913f0295b25ac7ecc7398d2c2
1
+ 003b46a249146cb3a4f25d16432c89f0b78ac37c
data/lib/constants.rb ADDED
@@ -0,0 +1,42 @@
1
+ # @internal This file was generated by constgen. DO NOT EDIT.
2
+
3
+ module SDM
4
+
5
+ # Permission Levels, shared by all entities capable of making authenticated requests against StrongDM.
6
+ module PermissionLevel
7
+ ROOT_ADMIN = "root-admin"
8
+ ADMIN = "admin"
9
+ DATABASE_ADMIN = "database-admin"
10
+ TEAM_LEADER = "multi-team-leader"
11
+ USER = "user"
12
+ RELAY = "relay"
13
+ ADMIN_TOKEN = "admin-token"
14
+ SCIM_TOKEN = "scim-token"
15
+ SERVICE = "service"
16
+ SUSPENDED = "suspended"
17
+ EMPTY = ""
18
+ end
19
+
20
+ # Node Lifecycle States, defining whether a node was last reported online, offline, restarting, etc.
21
+ module NodeState
22
+ NEW = "new"
23
+ VERIFYING_RESTART = "verifying_restart"
24
+ AWAITING_RESTART = "awaiting_restart"
25
+ RESTARTING = "restarting"
26
+ STARTED = "started"
27
+ STOPPED = "stopped"
28
+ DEAD = "dead"
29
+ end
30
+
31
+ # Providers responsible for managing roles and users.
32
+ # None, or an empty string, implies the user is managed by strongDM.
33
+ module Provider
34
+ NONE = ""
35
+ OKTA = "okta"
36
+ SAIL_POINT = "sailpoint"
37
+ AZURE = "azure"
38
+ GENERIC = "generic"
39
+ ONE_LOGIN = "onelogin"
40
+ GOOGLE = "google"
41
+ end
42
+ end
@@ -596,6 +596,7 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
596
596
  optional :port, :int32, 4
597
597
  optional :port_override, :int32, 2
598
598
  optional :tls_required, :bool, 5
599
+ optional :username, :string, 6
599
600
  end
600
601
  add_message "v1.GCP" do
601
602
  optional :id, :string, 32768
@@ -1090,6 +1091,8 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
1090
1091
  optional :password, :string, 3
1091
1092
  optional :port, :int32, 4
1092
1093
  optional :port_override, :int32, 2
1094
+ optional :tls_required, :bool, 6
1095
+ optional :username, :string, 5
1093
1096
  end
1094
1097
  add_message "v1.Redshift" do
1095
1098
  optional :id, :string, 32768
data/lib/grpc/plumbing.rb CHANGED
@@ -35,6 +35,7 @@ require_relative "./secret_store_types_pb"
35
35
  require_relative "./secret_stores_pb"
36
36
  require_relative "../models/porcelain"
37
37
  require_relative "../errors/errors"
38
+ require_relative "../constants"
38
39
 
39
40
  module SDM
40
41
  module Plumbing
@@ -2302,6 +2303,46 @@ module SDM
2302
2303
  end
2303
2304
  items
2304
2305
  end
2306
+ def self.convert_cyberark_pam_store_to_porcelain(plumbing)
2307
+ if plumbing == nil
2308
+ return nil
2309
+ end
2310
+ porcelain = CyberarkPAMStore.new()
2311
+ porcelain.appurl = (plumbing.appURL)
2312
+ porcelain.id = (plumbing.id)
2313
+ porcelain.name = (plumbing.name)
2314
+ porcelain.tags = convert_tags_to_porcelain(plumbing.tags)
2315
+ porcelain
2316
+ end
2317
+
2318
+ def self.convert_cyberark_pam_store_to_plumbing(porcelain)
2319
+ if porcelain == nil
2320
+ return nil
2321
+ end
2322
+ plumbing = V1::CyberarkPAMStore.new()
2323
+ plumbing.appURL = (porcelain.appurl)
2324
+ plumbing.id = (porcelain.id)
2325
+ plumbing.name = (porcelain.name)
2326
+ plumbing.tags = convert_tags_to_plumbing(porcelain.tags)
2327
+ plumbing
2328
+ end
2329
+ def self.convert_repeated_cyberark_pam_store_to_plumbing(porcelains)
2330
+ items = Array.new
2331
+ porcelains.each do |porcelain|
2332
+ plumbing = convert_cyberark_pam_store_to_plumbing(porcelain)
2333
+ items.append(plumbing)
2334
+ end
2335
+ items
2336
+ end
2337
+
2338
+ def self.convert_repeated_cyberark_pam_store_to_porcelain(plumbings)
2339
+ items = Array.new
2340
+ plumbings.each do |plumbing|
2341
+ porcelain = convert_cyberark_pam_store_to_porcelain(plumbing)
2342
+ items.append(porcelain)
2343
+ end
2344
+ items
2345
+ end
2305
2346
  def self.convert_db_2_i_to_porcelain(plumbing)
2306
2347
  if plumbing == nil
2307
2348
  return nil
@@ -2801,6 +2842,7 @@ module SDM
2801
2842
  porcelain.secret_store_id = (plumbing.secret_store_id)
2802
2843
  porcelain.tags = convert_tags_to_porcelain(plumbing.tags)
2803
2844
  porcelain.tls_required = (plumbing.tls_required)
2845
+ porcelain.username = (plumbing.username)
2804
2846
  porcelain
2805
2847
  end
2806
2848
 
@@ -2821,6 +2863,7 @@ module SDM
2821
2863
  plumbing.secret_store_id = (porcelain.secret_store_id)
2822
2864
  plumbing.tags = convert_tags_to_plumbing(porcelain.tags)
2823
2865
  plumbing.tls_required = (porcelain.tls_required)
2866
+ plumbing.username = (porcelain.username)
2824
2867
  plumbing
2825
2868
  end
2826
2869
  def self.convert_repeated_elasticache_redis_to_plumbing(porcelains)
@@ -5044,6 +5087,8 @@ module SDM
5044
5087
  porcelain.port_override = (plumbing.port_override)
5045
5088
  porcelain.secret_store_id = (plumbing.secret_store_id)
5046
5089
  porcelain.tags = convert_tags_to_porcelain(plumbing.tags)
5090
+ porcelain.tls_required = (plumbing.tls_required)
5091
+ porcelain.username = (plumbing.username)
5047
5092
  porcelain
5048
5093
  end
5049
5094
 
@@ -5063,6 +5108,8 @@ module SDM
5063
5108
  plumbing.port_override = (porcelain.port_override)
5064
5109
  plumbing.secret_store_id = (porcelain.secret_store_id)
5065
5110
  plumbing.tags = convert_tags_to_plumbing(porcelain.tags)
5111
+ plumbing.tls_required = (porcelain.tls_required)
5112
+ plumbing.username = (porcelain.username)
5066
5113
  plumbing
5067
5114
  end
5068
5115
  def self.convert_repeated_redis_to_plumbing(porcelains)
@@ -6538,6 +6585,9 @@ module SDM
6538
6585
  if porcelain.instance_of? CyberarkConjurStore
6539
6586
  plumbing.cyberark_conjur = convert_cyberark_conjur_store_to_plumbing(porcelain)
6540
6587
  end
6588
+ if porcelain.instance_of? CyberarkPAMStore
6589
+ plumbing.cyberark_pam = convert_cyberark_pam_store_to_plumbing(porcelain)
6590
+ end
6541
6591
  if porcelain.instance_of? CyberarkPAMExperimentalStore
6542
6592
  plumbing.cyberark_pam_experimental = convert_cyberark_pam_experimental_store_to_plumbing(porcelain)
6543
6593
  end
@@ -6572,6 +6622,9 @@ module SDM
6572
6622
  if plumbing.cyberark_conjur != nil
6573
6623
  return convert_cyberark_conjur_store_to_porcelain(plumbing.cyberark_conjur)
6574
6624
  end
6625
+ if plumbing.cyberark_pam != nil
6626
+ return convert_cyberark_pam_store_to_porcelain(plumbing.cyberark_pam)
6627
+ end
6575
6628
  if plumbing.cyberark_pam_experimental != nil
6576
6629
  return convert_cyberark_pam_experimental_store_to_porcelain(plumbing.cyberark_pam_experimental)
6577
6630
  end
@@ -26,6 +26,7 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
26
26
  optional :aws, :message, 3, "v1.AWSStore"
27
27
  optional :azure, :message, 101, "v1.AzureStore"
28
28
  optional :cyberark_conjur, :message, 301, "v1.CyberarkConjurStore"
29
+ optional :cyberark_pam, :message, 303, "v1.CyberarkPAMStore"
29
30
  optional :cyberark_pam_experimental, :message, 302, "v1.CyberarkPAMExperimentalStore"
30
31
  optional :delinea, :message, 2900, "v1.DelineaStore"
31
32
  optional :gcp, :message, 201, "v1.GCPStore"
@@ -52,6 +53,12 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
52
53
  optional :appURL, :string, 3
53
54
  optional :tags, :message, 32771, "v1.Tags"
54
55
  end
56
+ add_message "v1.CyberarkPAMStore" do
57
+ optional :id, :string, 1
58
+ optional :name, :string, 2
59
+ optional :appURL, :string, 3
60
+ optional :tags, :message, 32771, "v1.Tags"
61
+ end
55
62
  add_message "v1.CyberarkPAMExperimentalStore" do
56
63
  optional :id, :string, 1
57
64
  optional :name, :string, 2
@@ -103,6 +110,7 @@ module V1
103
110
  AWSStore = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.AWSStore").msgclass
104
111
  AzureStore = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.AzureStore").msgclass
105
112
  CyberarkConjurStore = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.CyberarkConjurStore").msgclass
113
+ CyberarkPAMStore = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.CyberarkPAMStore").msgclass
106
114
  CyberarkPAMExperimentalStore = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.CyberarkPAMExperimentalStore").msgclass
107
115
  DelineaStore = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.DelineaStore").msgclass
108
116
  GCPStore = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.GCPStore").msgclass
@@ -2221,6 +2221,37 @@ module SDM
2221
2221
  end
2222
2222
  end
2223
2223
 
2224
+ # CyberarkPAMStore is currently unstable, and its API may change, or it may be removed, without a major version bump.
2225
+ class CyberarkPAMStore
2226
+ attr_accessor :appurl
2227
+ # Unique identifier of the SecretStore.
2228
+ attr_accessor :id
2229
+ # Unique human-readable name of the SecretStore.
2230
+ attr_accessor :name
2231
+ # Tags is a map of key, value pairs.
2232
+ attr_accessor :tags
2233
+
2234
+ def initialize(
2235
+ appurl: nil,
2236
+ id: nil,
2237
+ name: nil,
2238
+ tags: nil
2239
+ )
2240
+ @appurl = appurl == nil ? "" : appurl
2241
+ @id = id == nil ? "" : id
2242
+ @name = name == nil ? "" : name
2243
+ @tags = tags == nil ? SDM::_porcelain_zero_value_tags() : tags
2244
+ end
2245
+
2246
+ def to_json(options = {})
2247
+ hash = {}
2248
+ self.instance_variables.each do |var|
2249
+ hash[var.id2name.delete_prefix("@")] = self.instance_variable_get var
2250
+ end
2251
+ hash.to_json
2252
+ end
2253
+ end
2254
+
2224
2255
  class DB2I
2225
2256
  # Bind interface
2226
2257
  attr_accessor :bind_interface
@@ -2767,6 +2798,8 @@ module SDM
2767
2798
 
2768
2799
  attr_accessor :tls_required
2769
2800
 
2801
+ attr_accessor :username
2802
+
2770
2803
  def initialize(
2771
2804
  bind_interface: nil,
2772
2805
  egress_filter: nil,
@@ -2779,7 +2812,8 @@ module SDM
2779
2812
  port_override: nil,
2780
2813
  secret_store_id: nil,
2781
2814
  tags: nil,
2782
- tls_required: nil
2815
+ tls_required: nil,
2816
+ username: nil
2783
2817
  )
2784
2818
  @bind_interface = bind_interface == nil ? "" : bind_interface
2785
2819
  @egress_filter = egress_filter == nil ? "" : egress_filter
@@ -2793,6 +2827,7 @@ module SDM
2793
2827
  @secret_store_id = secret_store_id == nil ? "" : secret_store_id
2794
2828
  @tags = tags == nil ? SDM::_porcelain_zero_value_tags() : tags
2795
2829
  @tls_required = tls_required == nil ? false : tls_required
2830
+ @username = username == nil ? "" : username
2796
2831
  end
2797
2832
 
2798
2833
  def to_json(options = {})
@@ -5222,6 +5257,10 @@ module SDM
5222
5257
  # Tags is a map of key, value pairs.
5223
5258
  attr_accessor :tags
5224
5259
 
5260
+ attr_accessor :tls_required
5261
+
5262
+ attr_accessor :username
5263
+
5225
5264
  def initialize(
5226
5265
  bind_interface: nil,
5227
5266
  egress_filter: nil,
@@ -5233,7 +5272,9 @@ module SDM
5233
5272
  port: nil,
5234
5273
  port_override: nil,
5235
5274
  secret_store_id: nil,
5236
- tags: nil
5275
+ tags: nil,
5276
+ tls_required: nil,
5277
+ username: nil
5237
5278
  )
5238
5279
  @bind_interface = bind_interface == nil ? "" : bind_interface
5239
5280
  @egress_filter = egress_filter == nil ? "" : egress_filter
@@ -5246,6 +5287,8 @@ module SDM
5246
5287
  @port_override = port_override == nil ? 0 : port_override
5247
5288
  @secret_store_id = secret_store_id == nil ? "" : secret_store_id
5248
5289
  @tags = tags == nil ? SDM::_porcelain_zero_value_tags() : tags
5290
+ @tls_required = tls_required == nil ? false : tls_required
5291
+ @username = username == nil ? "" : username
5249
5292
  end
5250
5293
 
5251
5294
  def to_json(options = {})
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.5.0"
32
+ USER_AGENT = "strongdm-sdk-ruby/3.5.3"
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
@@ -1455,6 +1455,7 @@ module SDM #:nodoc:
1455
1455
  # {AWSStore}
1456
1456
  # {AzureStore}
1457
1457
  # {CyberarkConjurStore}
1458
+ # {CyberarkPAMStore}
1458
1459
  # {CyberarkPAMExperimentalStore}
1459
1460
  # {DelineaStore}
1460
1461
  # {GCPStore}
data/lib/version CHANGED
@@ -13,5 +13,5 @@
13
13
  # limitations under the License.
14
14
  #
15
15
  module SDM
16
- VERSION = "3.5.0"
16
+ VERSION = "3.5.3"
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.5.0"
16
+ VERSION = "3.5.3"
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.5.0
4
+ version: 3.5.3
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-11-15 00:00:00.000000000 Z
11
+ date: 2022-12-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: grpc
@@ -79,14 +79,15 @@ 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-22bf2ffc59ed62c6a1cc735d89f3fcbc93552690.idx"
83
- - "./.git/objects/pack/pack-22bf2ffc59ed62c6a1cc735d89f3fcbc93552690.pack"
82
+ - "./.git/objects/pack/pack-a862694809a9a1eccd547754cf4d168acdcf8f7d.idx"
83
+ - "./.git/objects/pack/pack-a862694809a9a1eccd547754cf4d168acdcf8f7d.pack"
84
84
  - "./.git/packed-refs"
85
85
  - "./.git/refs/heads/master"
86
86
  - "./.git/refs/remotes/origin/HEAD"
87
87
  - "./.yardopts"
88
88
  - "./LICENSE"
89
89
  - "./README.md"
90
+ - "./lib/constants.rb"
90
91
  - "./lib/errors/errors.rb"
91
92
  - "./lib/grpc/account_attachments_pb.rb"
92
93
  - "./lib/grpc/account_attachments_services_pb.rb"