strongdm 1.0.22 → 1.0.27

Sign up to get free protection for your applications and to get access to all the features.
Files changed (244) hide show
  1. checksums.yaml +4 -4
  2. data/.git/FETCH_HEAD +2 -0
  3. data/.git/HEAD +1 -0
  4. data/.git/ORIG_HEAD +1 -0
  5. data/.git/config +14 -0
  6. data/.git/description +1 -0
  7. data/.git/hooks/applypatch-msg.sample +15 -0
  8. data/.git/hooks/commit-msg.sample +24 -0
  9. data/.git/hooks/fsmonitor-watchman.sample +114 -0
  10. data/.git/hooks/post-update.sample +8 -0
  11. data/.git/hooks/pre-applypatch.sample +14 -0
  12. data/.git/hooks/pre-commit.sample +49 -0
  13. data/.git/hooks/pre-push.sample +53 -0
  14. data/.git/hooks/pre-rebase.sample +169 -0
  15. data/.git/hooks/pre-receive.sample +24 -0
  16. data/.git/hooks/prepare-commit-msg.sample +42 -0
  17. data/.git/hooks/update.sample +128 -0
  18. data/.git/index +0 -0
  19. data/.git/info/exclude +6 -0
  20. data/.git/logs/HEAD +4 -0
  21. data/.git/logs/refs/heads/development +1 -0
  22. data/.git/logs/refs/heads/master +2 -0
  23. data/.git/logs/refs/remotes/origin/HEAD +1 -0
  24. data/.git/objects/pack/pack-e59f6bedc3261325378736e7cec548f841834e55.idx +0 -0
  25. data/.git/objects/pack/pack-e59f6bedc3261325378736e7cec548f841834e55.pack +0 -0
  26. data/.git/packed-refs +27 -0
  27. data/.git/refs/heads/development +1 -0
  28. data/.git/refs/heads/master +1 -0
  29. data/.git/refs/remotes/origin/HEAD +1 -0
  30. data/doc/LICENSE.html +5 -6
  31. data/doc/Object.html +13 -6
  32. data/doc/README_md.html +5 -6
  33. data/doc/SDM/AKS.html +5 -8
  34. data/doc/SDM/AKSBasicAuth.html +5 -8
  35. data/doc/SDM/AKSServiceAccount.html +5 -8
  36. data/doc/SDM/AKSServiceAccountUserImpersonation.html +5 -8
  37. data/doc/SDM/AKSUserImpersonation.html +5 -8
  38. data/doc/SDM/AWS.html +5 -8
  39. data/doc/SDM/AWSStore.html +5 -8
  40. data/doc/SDM/AccountAttachment.html +3 -6
  41. data/doc/SDM/AccountAttachmentCreateResponse.html +3 -6
  42. data/doc/SDM/AccountAttachmentDeleteResponse.html +3 -6
  43. data/doc/SDM/AccountAttachmentGetResponse.html +3 -6
  44. data/doc/SDM/AccountAttachments.html +3 -6
  45. data/doc/SDM/AccountCreateResponse.html +3 -6
  46. data/doc/SDM/AccountDeleteResponse.html +3 -6
  47. data/doc/SDM/AccountGetResponse.html +3 -6
  48. data/doc/SDM/AccountGrant.html +3 -6
  49. data/doc/SDM/AccountGrantCreateResponse.html +3 -6
  50. data/doc/SDM/AccountGrantDeleteResponse.html +3 -6
  51. data/doc/SDM/AccountGrantGetResponse.html +3 -6
  52. data/doc/SDM/AccountGrants.html +3 -6
  53. data/doc/SDM/AccountUpdateResponse.html +3 -6
  54. data/doc/SDM/Accounts.html +3 -6
  55. data/doc/SDM/AlreadyExistsError.html +3 -6
  56. data/doc/SDM/AmazonEKS.html +5 -8
  57. data/doc/SDM/AmazonEKSUserImpersonation.html +5 -8
  58. data/doc/SDM/AmazonES.html +5 -8
  59. data/doc/SDM/AmazonMQAMQP091.html +424 -0
  60. data/doc/SDM/Athena.html +5 -8
  61. data/doc/SDM/AuroraMysql.html +5 -8
  62. data/doc/SDM/AuroraPostgres.html +5 -8
  63. data/doc/SDM/AuthenticationError.html +3 -6
  64. data/doc/SDM/BadRequestError.html +3 -6
  65. data/doc/SDM/BigQuery.html +5 -8
  66. data/doc/SDM/Cassandra.html +5 -8
  67. data/doc/SDM/Citus.html +5 -8
  68. data/doc/SDM/Client.html +14 -12
  69. data/doc/SDM/Clustrix.html +5 -8
  70. data/doc/SDM/Cockroach.html +5 -8
  71. data/doc/SDM/ControlPanel.html +3 -6
  72. data/doc/SDM/ControlPanelGetSSHCAPublicKeyResponse.html +3 -6
  73. data/doc/SDM/ControlPanelVerifyJWTResponse.html +3 -6
  74. data/doc/SDM/CreateResponseMetadata.html +3 -6
  75. data/doc/SDM/DB2LUW.html +5 -8
  76. data/doc/SDM/DB2i.html +5 -8
  77. data/doc/SDM/DeadlineExceededError.html +3 -6
  78. data/doc/SDM/DeleteResponseMetadata.html +3 -6
  79. data/doc/SDM/Druid.html +5 -8
  80. data/doc/SDM/DynamoDB.html +5 -8
  81. data/doc/SDM/Elastic.html +5 -8
  82. data/doc/SDM/ElasticacheRedis.html +5 -8
  83. data/doc/SDM/Gateway.html +5 -8
  84. data/doc/SDM/GetResponseMetadata.html +3 -6
  85. data/doc/SDM/GoogleGKE.html +5 -8
  86. data/doc/SDM/GoogleGKEUserImpersonation.html +5 -8
  87. data/doc/SDM/Greenplum.html +5 -8
  88. data/doc/SDM/HTTPAuth.html +5 -8
  89. data/doc/SDM/HTTPBasicAuth.html +5 -8
  90. data/doc/SDM/HTTPNoAuth.html +5 -8
  91. data/doc/SDM/InternalError.html +3 -6
  92. data/doc/SDM/Kubernetes.html +5 -8
  93. data/doc/SDM/KubernetesBasicAuth.html +5 -8
  94. data/doc/SDM/KubernetesServiceAccount.html +5 -8
  95. data/doc/SDM/KubernetesServiceAccountUserImpersonation.html +5 -8
  96. data/doc/SDM/KubernetesUserImpersonation.html +5 -8
  97. data/doc/SDM/Maria.html +5 -8
  98. data/doc/SDM/Memcached.html +5 -8
  99. data/doc/SDM/Memsql.html +5 -8
  100. data/doc/SDM/MongoHost.html +5 -8
  101. data/doc/SDM/MongoLegacyHost.html +5 -8
  102. data/doc/SDM/MongoLegacyReplicaset.html +5 -8
  103. data/doc/SDM/MongoReplicaSet.html +5 -8
  104. data/doc/SDM/Mysql.html +5 -8
  105. data/doc/SDM/NodeCreateResponse.html +5 -8
  106. data/doc/SDM/NodeDeleteResponse.html +5 -8
  107. data/doc/SDM/NodeGetResponse.html +5 -8
  108. data/doc/SDM/NodeUpdateResponse.html +5 -8
  109. data/doc/SDM/Nodes.html +3 -6
  110. data/doc/SDM/NotFoundError.html +3 -6
  111. data/doc/SDM/Oracle.html +5 -8
  112. data/doc/SDM/PermissionError.html +3 -6
  113. data/doc/SDM/Plumbing.html +1236 -491
  114. data/doc/SDM/Postgres.html +5 -8
  115. data/doc/SDM/Presto.html +5 -8
  116. data/doc/SDM/RDP.html +5 -8
  117. data/doc/SDM/RPCError.html +3 -6
  118. data/doc/SDM/RabbitMQAMQP091.html +424 -0
  119. data/doc/SDM/RateLimitError.html +3 -6
  120. data/doc/SDM/RateLimitMetadata.html +3 -6
  121. data/doc/SDM/{SecretStore.html → RawTCP.html} +98 -31
  122. data/doc/SDM/Redis.html +5 -8
  123. data/doc/SDM/Redshift.html +5 -8
  124. data/doc/SDM/Relay.html +5 -8
  125. data/doc/SDM/ResourceCreateResponse.html +5 -8
  126. data/doc/SDM/ResourceDeleteResponse.html +5 -8
  127. data/doc/SDM/ResourceGetResponse.html +5 -8
  128. data/doc/SDM/ResourceUpdateResponse.html +5 -8
  129. data/doc/SDM/Resources.html +3 -6
  130. data/doc/SDM/Role.html +24 -9
  131. data/doc/SDM/RoleAttachment.html +5 -8
  132. data/doc/SDM/RoleAttachmentCreateResponse.html +5 -8
  133. data/doc/SDM/RoleAttachmentDeleteResponse.html +5 -8
  134. data/doc/SDM/RoleAttachmentGetResponse.html +5 -8
  135. data/doc/SDM/RoleAttachments.html +3 -6
  136. data/doc/SDM/RoleCreateResponse.html +5 -8
  137. data/doc/SDM/RoleDeleteResponse.html +5 -8
  138. data/doc/SDM/RoleGetResponse.html +5 -8
  139. data/doc/SDM/RoleGrant.html +5 -8
  140. data/doc/SDM/RoleGrantCreateResponse.html +5 -8
  141. data/doc/SDM/RoleGrantDeleteResponse.html +5 -8
  142. data/doc/SDM/RoleGrantGetResponse.html +5 -8
  143. data/doc/SDM/RoleGrants.html +3 -6
  144. data/doc/SDM/RoleUpdateResponse.html +5 -8
  145. data/doc/SDM/Roles.html +3 -6
  146. data/doc/SDM/SQLServer.html +5 -8
  147. data/doc/SDM/SSH.html +5 -8
  148. data/doc/SDM/SSHCert.html +5 -8
  149. data/doc/SDM/SSHCustomerKey.html +5 -8
  150. data/doc/SDM/SecretStoreCreateResponse.html +5 -8
  151. data/doc/SDM/SecretStoreDeleteResponse.html +5 -8
  152. data/doc/SDM/SecretStoreGetResponse.html +5 -8
  153. data/doc/SDM/SecretStoreUpdateResponse.html +5 -8
  154. data/doc/SDM/SecretStores.html +3 -6
  155. data/doc/SDM/Service.html +3 -6
  156. data/doc/SDM/SingleStore.html +424 -0
  157. data/doc/SDM/Snowflake.html +5 -8
  158. data/doc/SDM/Sybase.html +5 -8
  159. data/doc/SDM/SybaseIQ.html +5 -8
  160. data/doc/SDM/Tag.html +3 -6
  161. data/doc/SDM/Teradata.html +5 -8
  162. data/doc/SDM/UpdateResponseMetadata.html +3 -6
  163. data/doc/SDM/User.html +3 -6
  164. data/doc/SDM/VaultTLSStore.html +5 -8
  165. data/doc/SDM/VaultTokenStore.html +5 -8
  166. data/doc/SDM.html +3 -6
  167. data/doc/V1/AccountAttachments/Service.html +3 -6
  168. data/doc/V1/AccountAttachments.html +3 -6
  169. data/doc/V1/AccountGrants/Service.html +3 -6
  170. data/doc/V1/AccountGrants.html +3 -6
  171. data/doc/V1/Accounts/Service.html +3 -6
  172. data/doc/V1/Accounts.html +3 -6
  173. data/doc/V1/ControlPanel/Service.html +3 -6
  174. data/doc/V1/ControlPanel.html +3 -6
  175. data/doc/V1/Nodes/Service.html +3 -6
  176. data/doc/V1/Nodes.html +3 -6
  177. data/doc/V1/Resources/Service.html +3 -6
  178. data/doc/V1/Resources.html +3 -6
  179. data/doc/V1/RoleAttachments/Service.html +3 -6
  180. data/doc/V1/RoleAttachments.html +3 -6
  181. data/doc/V1/RoleGrants/Service.html +3 -6
  182. data/doc/V1/RoleGrants.html +3 -6
  183. data/doc/V1/Roles/Service.html +3 -6
  184. data/doc/V1/Roles.html +3 -6
  185. data/doc/V1/SecretStores/Service.html +3 -6
  186. data/doc/V1/SecretStores.html +3 -6
  187. data/doc/V1/Tags.html +3 -6
  188. data/doc/V1.html +19 -212
  189. data/doc/created.rid +38 -52
  190. data/doc/css/rdoc.css +6 -35
  191. data/doc/examples/Gemfile.html +5 -6
  192. data/doc/index.html +13 -26
  193. data/doc/js/darkfish.js +99 -22
  194. data/doc/js/navigation.js +40 -4
  195. data/doc/js/navigation.js.gz +0 -0
  196. data/doc/js/search.js +31 -32
  197. data/doc/js/search_index.js +1 -1
  198. data/doc/js/search_index.js.gz +0 -0
  199. data/doc/js/searcher.js +6 -6
  200. data/doc/js/searcher.js.gz +0 -0
  201. data/doc/lib/version.html +6 -7
  202. data/doc/strongdm_gemspec.html +4 -7
  203. data/doc/table_of_contents.html +470 -378
  204. data/lib/grpc/account_attachments_services_pb.rb +4 -4
  205. data/lib/grpc/account_grants_services_pb.rb +4 -4
  206. data/lib/grpc/accounts_services_pb.rb +5 -5
  207. data/lib/grpc/control_panel_services_pb.rb +2 -2
  208. data/lib/grpc/drivers_pb.rb +61 -0
  209. data/lib/grpc/nodes_services_pb.rb +5 -5
  210. data/lib/grpc/options_pb.rb +9 -14
  211. data/lib/grpc/plumbing.rb +244 -0
  212. data/lib/grpc/resources_services_pb.rb +6 -6
  213. data/lib/grpc/role_attachments_services_pb.rb +4 -4
  214. data/lib/grpc/role_grants_services_pb.rb +4 -4
  215. data/lib/grpc/roles_pb.rb +1 -0
  216. data/lib/grpc/roles_services_pb.rb +5 -5
  217. data/lib/grpc/secret_stores_services_pb.rb +5 -5
  218. data/lib/models/porcelain.rb +336 -0
  219. data/lib/strongdm.rb +8 -1
  220. data/lib/version +1 -1
  221. data/lib/version.rb +1 -1
  222. data/strongdm.gemspec +1 -1
  223. metadata +288 -277
  224. data/doc/Google/Protobuf.html +0 -95
  225. data/doc/Google.html +0 -95
  226. data/doc/SDM/AccessRuleCreateResponse.html +0 -267
  227. data/doc/SDM/AccessRuleDeleteResponse.html +0 -249
  228. data/doc/SDM/AccessRuleUpdateResponse.html +0 -267
  229. data/doc/SDM/AccountAttachmentCreateOptions.html +0 -231
  230. data/doc/V1/AccessRules/Service.html +0 -119
  231. data/doc/V1/AccessRules.html +0 -113
  232. data/doc/V1/Audits/Service.html +0 -119
  233. data/doc/V1/Audits.html +0 -113
  234. data/doc/V1/BuildsPrivate/Service.html +0 -119
  235. data/doc/V1/BuildsPrivate.html +0 -113
  236. data/doc/V1/DemoProvisioningRequests/Service.html +0 -119
  237. data/doc/V1/DemoProvisioningRequests.html +0 -113
  238. data/doc/V1/Permissions/Service.html +0 -119
  239. data/doc/V1/SecretStoreHealths/Service.html +0 -119
  240. data/doc/V1/SecretStoreHealths.html +0 -113
  241. data/doc/examples/Gemfile_lock.html +0 -122
  242. data/doc/examples/README_md.html +0 -105
  243. data/doc/examples/okta-sync/Gemfile.html +0 -105
  244. data/doc/examples/okta-sync/Gemfile_lock.html +0 -146
@@ -29,13 +29,13 @@ module V1
29
29
  self.service_name = "v1.AccountAttachments"
30
30
 
31
31
  # Create registers a new AccountAttachment.
32
- rpc :Create, AccountAttachmentCreateRequest, AccountAttachmentCreateResponse
32
+ rpc :Create, ::V1::AccountAttachmentCreateRequest, ::V1::AccountAttachmentCreateResponse
33
33
  # Get reads one AccountAttachment by ID.
34
- rpc :Get, AccountAttachmentGetRequest, AccountAttachmentGetResponse
34
+ rpc :Get, ::V1::AccountAttachmentGetRequest, ::V1::AccountAttachmentGetResponse
35
35
  # Delete removes a AccountAttachment by ID.
36
- rpc :Delete, AccountAttachmentDeleteRequest, AccountAttachmentDeleteResponse
36
+ rpc :Delete, ::V1::AccountAttachmentDeleteRequest, ::V1::AccountAttachmentDeleteResponse
37
37
  # List gets a list of AccountAttachments matching a given set of criteria.
38
- rpc :List, AccountAttachmentListRequest, AccountAttachmentListResponse
38
+ rpc :List, ::V1::AccountAttachmentListRequest, ::V1::AccountAttachmentListResponse
39
39
  end
40
40
 
41
41
  Stub = Service.rpc_stub_class
@@ -29,13 +29,13 @@ module V1
29
29
  self.service_name = "v1.AccountGrants"
30
30
 
31
31
  # Create registers a new AccountGrant.
32
- rpc :Create, AccountGrantCreateRequest, AccountGrantCreateResponse
32
+ rpc :Create, ::V1::AccountGrantCreateRequest, ::V1::AccountGrantCreateResponse
33
33
  # Get reads one AccountGrant by ID.
34
- rpc :Get, AccountGrantGetRequest, AccountGrantGetResponse
34
+ rpc :Get, ::V1::AccountGrantGetRequest, ::V1::AccountGrantGetResponse
35
35
  # Delete removes a AccountGrant by ID.
36
- rpc :Delete, AccountGrantDeleteRequest, AccountGrantDeleteResponse
36
+ rpc :Delete, ::V1::AccountGrantDeleteRequest, ::V1::AccountGrantDeleteResponse
37
37
  # List gets a list of AccountGrants matching a given set of criteria.
38
- rpc :List, AccountGrantListRequest, AccountGrantListResponse
38
+ rpc :List, ::V1::AccountGrantListRequest, ::V1::AccountGrantListResponse
39
39
  end
40
40
 
41
41
  Stub = Service.rpc_stub_class
@@ -31,15 +31,15 @@ module V1
31
31
  self.service_name = "v1.Accounts"
32
32
 
33
33
  # Create registers a new Account.
34
- rpc :Create, AccountCreateRequest, AccountCreateResponse
34
+ rpc :Create, ::V1::AccountCreateRequest, ::V1::AccountCreateResponse
35
35
  # Get reads one Account by ID.
36
- rpc :Get, AccountGetRequest, AccountGetResponse
36
+ rpc :Get, ::V1::AccountGetRequest, ::V1::AccountGetResponse
37
37
  # Update patches a Account by ID.
38
- rpc :Update, AccountUpdateRequest, AccountUpdateResponse
38
+ rpc :Update, ::V1::AccountUpdateRequest, ::V1::AccountUpdateResponse
39
39
  # Delete removes a Account by ID.
40
- rpc :Delete, AccountDeleteRequest, AccountDeleteResponse
40
+ rpc :Delete, ::V1::AccountDeleteRequest, ::V1::AccountDeleteResponse
41
41
  # List gets a list of Accounts matching a given set of criteria.
42
- rpc :List, AccountListRequest, AccountListResponse
42
+ rpc :List, ::V1::AccountListRequest, ::V1::AccountListResponse
43
43
  end
44
44
 
45
45
  Stub = Service.rpc_stub_class
@@ -29,9 +29,9 @@ module V1
29
29
  self.service_name = "v1.ControlPanel"
30
30
 
31
31
  # GetSSHCAPublicKey retrieves the SSH CA public key.
32
- rpc :GetSSHCAPublicKey, ControlPanelGetSSHCAPublicKeyRequest, ControlPanelGetSSHCAPublicKeyResponse
32
+ rpc :GetSSHCAPublicKey, ::V1::ControlPanelGetSSHCAPublicKeyRequest, ::V1::ControlPanelGetSSHCAPublicKeyResponse
33
33
  # VerifyJWT reports whether the given JWT token (x-sdm-token) is valid.
34
- rpc :VerifyJWT, ControlPanelVerifyJWTRequest, ControlPanelVerifyJWTResponse
34
+ rpc :VerifyJWT, ::V1::ControlPanelVerifyJWTRequest, ::V1::ControlPanelVerifyJWTResponse
35
35
  end
36
36
 
37
37
  Stub = Service.rpc_stub_class
@@ -23,6 +23,8 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
23
23
  add_file("drivers.proto", :syntax => :proto3) do
24
24
  add_message "v1.Resource" do
25
25
  oneof :resource do
26
+ optional :rabbit_mqamqp_091, :message, 2500, "v1.RabbitMQAMQP091"
27
+ optional :amazon_mqamqp_091, :message, 2501, "v1.AmazonMQAMQP091"
26
28
  optional :athena, :message, 100, "v1.Athena"
27
29
  optional :aws, :message, 2300, "v1.AWS"
28
30
  optional :big_query, :message, 200, "v1.BigQuery"
@@ -60,6 +62,7 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
60
62
  optional :clustrix, :message, 1102, "v1.Clustrix"
61
63
  optional :maria, :message, 1103, "v1.Maria"
62
64
  optional :memsql, :message, 1104, "v1.Memsql"
65
+ optional :single_store, :message, 1105, "v1.SingleStore"
63
66
  optional :oracle, :message, 1200, "v1.Oracle"
64
67
  optional :postgres, :message, 1300, "v1.Postgres"
65
68
  optional :aurora_postgres, :message, 1301, "v1.AuroraPostgres"
@@ -68,6 +71,7 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
68
71
  optional :redshift, :message, 1304, "v1.Redshift"
69
72
  optional :citus, :message, 1305, "v1.Citus"
70
73
  optional :presto, :message, 1400, "v1.Presto"
74
+ optional :raw_tcp, :message, 2600, "v1.RawTCP"
71
75
  optional :rdp, :message, 1500, "v1.RDP"
72
76
  optional :redis, :message, 1600, "v1.Redis"
73
77
  optional :elasticache_redis, :message, 1601, "v1.ElasticacheRedis"
@@ -81,6 +85,34 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
81
85
  optional :teradata, :message, 2100, "v1.Teradata"
82
86
  end
83
87
  end
88
+ add_message "v1.RabbitMQAMQP091" do
89
+ optional :id, :string, 32768
90
+ optional :name, :string, 32769
91
+ optional :healthy, :bool, 32770
92
+ optional :tags, :message, 32771, "v1.Tags"
93
+ optional :secret_store_id, :string, 32772
94
+ optional :egress_filter, :string, 32773
95
+ optional :hostname, :string, 1
96
+ optional :port_override, :int32, 2
97
+ optional :port, :int32, 3
98
+ optional :username, :string, 4
99
+ optional :password, :string, 5
100
+ optional :tls_required, :bool, 8
101
+ end
102
+ add_message "v1.AmazonMQAMQP091" do
103
+ optional :id, :string, 32768
104
+ optional :name, :string, 32769
105
+ optional :healthy, :bool, 32770
106
+ optional :tags, :message, 32771, "v1.Tags"
107
+ optional :secret_store_id, :string, 32772
108
+ optional :egress_filter, :string, 32773
109
+ optional :hostname, :string, 1
110
+ optional :port_override, :int32, 2
111
+ optional :port, :int32, 3
112
+ optional :username, :string, 4
113
+ optional :password, :string, 5
114
+ optional :tls_required, :bool, 8
115
+ end
84
116
  add_message "v1.Athena" do
85
117
  optional :id, :string, 32768
86
118
  optional :name, :string, 32769
@@ -597,6 +629,20 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
597
629
  optional :port_override, :int32, 5
598
630
  optional :port, :int32, 6
599
631
  end
632
+ add_message "v1.SingleStore" do
633
+ optional :id, :string, 32768
634
+ optional :name, :string, 32769
635
+ optional :healthy, :bool, 32770
636
+ optional :tags, :message, 32771, "v1.Tags"
637
+ optional :secret_store_id, :string, 32772
638
+ optional :egress_filter, :string, 32773
639
+ optional :hostname, :string, 1
640
+ optional :username, :string, 2
641
+ optional :password, :string, 3
642
+ optional :database, :string, 4
643
+ optional :port_override, :int32, 5
644
+ optional :port, :int32, 6
645
+ end
600
646
  add_message "v1.Oracle" do
601
647
  optional :id, :string, 32768
602
648
  optional :name, :string, 32769
@@ -717,6 +763,17 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
717
763
  optional :username, :string, 6
718
764
  optional :tls_required, :bool, 7
719
765
  end
766
+ add_message "v1.RawTCP" do
767
+ optional :id, :string, 32768
768
+ optional :name, :string, 32769
769
+ optional :healthy, :bool, 32770
770
+ optional :tags, :message, 32771, "v1.Tags"
771
+ optional :secret_store_id, :string, 32772
772
+ optional :egress_filter, :string, 32773
773
+ optional :hostname, :string, 1
774
+ optional :port_override, :int32, 2
775
+ optional :port, :int32, 3
776
+ end
720
777
  add_message "v1.RDP" do
721
778
  optional :id, :string, 32768
722
779
  optional :name, :string, 32769
@@ -870,6 +927,8 @@ end
870
927
 
871
928
  module V1
872
929
  Resource = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.Resource").msgclass
930
+ RabbitMQAMQP091 = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.RabbitMQAMQP091").msgclass
931
+ AmazonMQAMQP091 = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.AmazonMQAMQP091").msgclass
873
932
  Athena = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.Athena").msgclass
874
933
  AWS = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.AWS").msgclass
875
934
  BigQuery = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.BigQuery").msgclass
@@ -907,6 +966,7 @@ module V1
907
966
  Clustrix = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.Clustrix").msgclass
908
967
  Maria = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.Maria").msgclass
909
968
  Memsql = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.Memsql").msgclass
969
+ SingleStore = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.SingleStore").msgclass
910
970
  Oracle = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.Oracle").msgclass
911
971
  Postgres = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.Postgres").msgclass
912
972
  AuroraPostgres = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.AuroraPostgres").msgclass
@@ -915,6 +975,7 @@ module V1
915
975
  Redshift = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.Redshift").msgclass
916
976
  Citus = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.Citus").msgclass
917
977
  Presto = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.Presto").msgclass
978
+ RawTCP = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.RawTCP").msgclass
918
979
  RDP = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.RDP").msgclass
919
980
  Redis = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.Redis").msgclass
920
981
  ElasticacheRedis = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.ElasticacheRedis").msgclass
@@ -31,15 +31,15 @@ module V1
31
31
  self.service_name = "v1.Nodes"
32
32
 
33
33
  # Create registers a new Node.
34
- rpc :Create, NodeCreateRequest, NodeCreateResponse
34
+ rpc :Create, ::V1::NodeCreateRequest, ::V1::NodeCreateResponse
35
35
  # Get reads one Node by ID.
36
- rpc :Get, NodeGetRequest, NodeGetResponse
36
+ rpc :Get, ::V1::NodeGetRequest, ::V1::NodeGetResponse
37
37
  # Update patches a Node by ID.
38
- rpc :Update, NodeUpdateRequest, NodeUpdateResponse
38
+ rpc :Update, ::V1::NodeUpdateRequest, ::V1::NodeUpdateResponse
39
39
  # Delete removes a Node by ID.
40
- rpc :Delete, NodeDeleteRequest, NodeDeleteResponse
40
+ rpc :Delete, ::V1::NodeDeleteRequest, ::V1::NodeDeleteResponse
41
41
  # List gets a list of Nodes matching a given set of criteria.
42
- rpc :List, NodeListRequest, NodeListResponse
42
+ rpc :List, ::V1::NodeListRequest, ::V1::NodeListResponse
43
43
  end
44
44
 
45
45
  Stub = Service.rpc_stub_class
@@ -27,38 +27,34 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
27
27
  optional :private_sdk, :bool, 1941700
28
28
  end
29
29
  add_message "v1.FieldOptions" do
30
- optional :name, :string, 1941300
31
- optional :sql_nullable, :bool, 1941301
32
30
  optional :expose_as_porcelain, :bool, 1941302
33
31
  optional :iterable, :bool, 1941303
34
32
  optional :required, :bool, 1941304
35
- optional :id_type, :string, 1941305
36
- optional :sdk_only, :bool, 1941306
37
- optional :terraform_computed, :string, 1941307
38
- optional :force_new, :bool, 1941308
39
33
  optional :write_only, :bool, 1941309
40
- optional :sensitive, :bool, 1941310
34
+ optional :read_only, :bool, 1941315
35
+ optional :is_credential, :bool, 1941316
36
+ optional :private_sdk, :bool, 1941318
37
+ optional :terraform_computed, :string, 1941307
38
+ optional :terraform_force_new, :bool, 1941308
39
+ optional :terraform_sensitive, :bool, 1941310
40
+ optional :terraform_diff_suppress_func, :string, 1941319
41
41
  optional :cli_name, :string, 1941311
42
42
  optional :cli_json_name, :string, 1941312
43
43
  optional :json_gateway_name, :string, 1941313
44
44
  optional :hide_from_json_gateway, :bool, 1941314
45
- optional :read_only, :bool, 1941315
46
- optional :is_credential, :bool, 1941316
47
- optional :sql_type, :string, 1941317
48
- optional :private_sdk, :bool, 1941318
49
45
  end
50
46
  add_message "v1.MessageOptions" do
51
- optional :model_name, :string, 1941300
52
47
  optional :porcelain, :bool, 1941301
53
48
  optional :error, :int32, 1941302
54
49
  optional :options_field, :string, 1941303
55
- optional :terraform_docs, :message, 1941304, "v1.TerraformDocs"
56
50
  optional :custom, :message, 1941305, "v1.CustomPorcelainMessageOptions"
57
51
  optional :private_sdk, :bool, 1941306
58
52
  optional :cli_name, :string, 1941307
59
53
  optional :cli_json_name, :string, 1941308
60
54
  optional :json_gateway_name, :string, 1941309
61
55
  optional :hide_from_json_gateway, :bool, 1941310
56
+ optional :terraform_docs, :message, 1941304, "v1.TerraformDocs"
57
+ optional :terraform_provider_name, :string, 1941311
62
58
  end
63
59
  add_message "v1.CustomPorcelainMessageOptions" do
64
60
  optional :converter, :string, 1941309
@@ -72,7 +68,6 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
72
68
  optional :data_source_example_path, :string, 1941301
73
69
  end
74
70
  add_message "v1.OneofOptions" do
75
- optional :model_name, :string, 1941380
76
71
  repeated :common_fields, :string, 1941381
77
72
  end
78
73
  add_message "v1.ServiceOptions" do
data/lib/grpc/plumbing.rb CHANGED
@@ -960,6 +960,12 @@ module SDM
960
960
  return nil
961
961
  end
962
962
  plumbing = V1::Resource.new()
963
+ if porcelain.instance_of? RabbitMQAMQP091
964
+ plumbing.rabbit_mqamqp_091 = convert_rabbit_mqamqp_091_to_plumbing(porcelain)
965
+ end
966
+ if porcelain.instance_of? AmazonMQAMQP091
967
+ plumbing.amazon_mqamqp_091 = convert_amazon_mqamqp_091_to_plumbing(porcelain)
968
+ end
963
969
  if porcelain.instance_of? Athena
964
970
  plumbing.athena = convert_athena_to_plumbing(porcelain)
965
971
  end
@@ -1071,6 +1077,9 @@ module SDM
1071
1077
  if porcelain.instance_of? Memsql
1072
1078
  plumbing.memsql = convert_memsql_to_plumbing(porcelain)
1073
1079
  end
1080
+ if porcelain.instance_of? SingleStore
1081
+ plumbing.single_store = convert_single_store_to_plumbing(porcelain)
1082
+ end
1074
1083
  if porcelain.instance_of? Oracle
1075
1084
  plumbing.oracle = convert_oracle_to_plumbing(porcelain)
1076
1085
  end
@@ -1095,6 +1104,9 @@ module SDM
1095
1104
  if porcelain.instance_of? Presto
1096
1105
  plumbing.presto = convert_presto_to_plumbing(porcelain)
1097
1106
  end
1107
+ if porcelain.instance_of? RawTCP
1108
+ plumbing.raw_tcp = convert_raw_tcp_to_plumbing(porcelain)
1109
+ end
1098
1110
  if porcelain.instance_of? RDP
1099
1111
  plumbing.rdp = convert_rdp_to_plumbing(porcelain)
1100
1112
  end
@@ -1135,6 +1147,12 @@ module SDM
1135
1147
  if plumbing == nil
1136
1148
  return nil
1137
1149
  end
1150
+ if plumbing.rabbit_mqamqp_091 != nil
1151
+ return convert_rabbit_mqamqp_091_to_porcelain(plumbing.rabbit_mqamqp_091)
1152
+ end
1153
+ if plumbing.amazon_mqamqp_091 != nil
1154
+ return convert_amazon_mqamqp_091_to_porcelain(plumbing.amazon_mqamqp_091)
1155
+ end
1138
1156
  if plumbing.athena != nil
1139
1157
  return convert_athena_to_porcelain(plumbing.athena)
1140
1158
  end
@@ -1246,6 +1264,9 @@ module SDM
1246
1264
  if plumbing.memsql != nil
1247
1265
  return convert_memsql_to_porcelain(plumbing.memsql)
1248
1266
  end
1267
+ if plumbing.single_store != nil
1268
+ return convert_single_store_to_porcelain(plumbing.single_store)
1269
+ end
1249
1270
  if plumbing.oracle != nil
1250
1271
  return convert_oracle_to_porcelain(plumbing.oracle)
1251
1272
  end
@@ -1270,6 +1291,9 @@ module SDM
1270
1291
  if plumbing.presto != nil
1271
1292
  return convert_presto_to_porcelain(plumbing.presto)
1272
1293
  end
1294
+ if plumbing.raw_tcp != nil
1295
+ return convert_raw_tcp_to_porcelain(plumbing.raw_tcp)
1296
+ end
1273
1297
  if plumbing.rdp != nil
1274
1298
  return convert_rdp_to_porcelain(plumbing.rdp)
1275
1299
  end
@@ -1321,6 +1345,118 @@ module SDM
1321
1345
  end
1322
1346
  items
1323
1347
  end
1348
+ def self.convert_rabbit_mqamqp_091_to_porcelain(plumbing)
1349
+ if plumbing == nil
1350
+ return nil
1351
+ end
1352
+ porcelain = RabbitMQAMQP091.new()
1353
+ porcelain.id = (plumbing.id)
1354
+ porcelain.name = (plumbing.name)
1355
+ porcelain.healthy = (plumbing.healthy)
1356
+ porcelain.tags = convert_tags_to_porcelain(plumbing.tags)
1357
+ porcelain.secret_store_id = (plumbing.secret_store_id)
1358
+ porcelain.egress_filter = (plumbing.egress_filter)
1359
+ porcelain.hostname = (plumbing.hostname)
1360
+ porcelain.port_override = (plumbing.port_override)
1361
+ porcelain.port = (plumbing.port)
1362
+ porcelain.username = (plumbing.username)
1363
+ porcelain.password = (plumbing.password)
1364
+ porcelain.tls_required = (plumbing.tls_required)
1365
+ porcelain
1366
+ end
1367
+
1368
+ def self.convert_rabbit_mqamqp_091_to_plumbing(porcelain)
1369
+ if porcelain == nil
1370
+ return nil
1371
+ end
1372
+ plumbing = V1::RabbitMQAMQP091.new()
1373
+ plumbing.id = (porcelain.id) unless porcelain.id == nil
1374
+ plumbing.name = (porcelain.name) unless porcelain.name == nil
1375
+ plumbing.healthy = (porcelain.healthy) unless porcelain.healthy == nil
1376
+ plumbing.tags = convert_tags_to_plumbing(porcelain.tags) unless porcelain.tags == nil
1377
+ plumbing.secret_store_id = (porcelain.secret_store_id) unless porcelain.secret_store_id == nil
1378
+ plumbing.egress_filter = (porcelain.egress_filter) unless porcelain.egress_filter == nil
1379
+ plumbing.hostname = (porcelain.hostname) unless porcelain.hostname == nil
1380
+ plumbing.port_override = (porcelain.port_override) unless porcelain.port_override == nil
1381
+ plumbing.port = (porcelain.port) unless porcelain.port == nil
1382
+ plumbing.username = (porcelain.username) unless porcelain.username == nil
1383
+ plumbing.password = (porcelain.password) unless porcelain.password == nil
1384
+ plumbing.tls_required = (porcelain.tls_required) unless porcelain.tls_required == nil
1385
+ plumbing
1386
+ end
1387
+ def self.convert_repeated_rabbit_mqamqp_091_to_plumbing(porcelains)
1388
+ items = Array.new
1389
+ porcelains.each do |porcelain|
1390
+ plumbing = convert_rabbit_mqamqp_091_to_plumbing(porcelain)
1391
+ items.append(plumbing)
1392
+ end
1393
+ items
1394
+ end
1395
+
1396
+ def self.convert_repeated_rabbit_mqamqp_091_to_porcelain(plumbings)
1397
+ items = Array.new
1398
+ plumbings.each do |plumbing|
1399
+ porcelain = convert_rabbit_mqamqp_091_to_porcelain(plumbing)
1400
+ items.append(porcelain)
1401
+ end
1402
+ items
1403
+ end
1404
+ def self.convert_amazon_mqamqp_091_to_porcelain(plumbing)
1405
+ if plumbing == nil
1406
+ return nil
1407
+ end
1408
+ porcelain = AmazonMQAMQP091.new()
1409
+ porcelain.id = (plumbing.id)
1410
+ porcelain.name = (plumbing.name)
1411
+ porcelain.healthy = (plumbing.healthy)
1412
+ porcelain.tags = convert_tags_to_porcelain(plumbing.tags)
1413
+ porcelain.secret_store_id = (plumbing.secret_store_id)
1414
+ porcelain.egress_filter = (plumbing.egress_filter)
1415
+ porcelain.hostname = (plumbing.hostname)
1416
+ porcelain.port_override = (plumbing.port_override)
1417
+ porcelain.port = (plumbing.port)
1418
+ porcelain.username = (plumbing.username)
1419
+ porcelain.password = (plumbing.password)
1420
+ porcelain.tls_required = (plumbing.tls_required)
1421
+ porcelain
1422
+ end
1423
+
1424
+ def self.convert_amazon_mqamqp_091_to_plumbing(porcelain)
1425
+ if porcelain == nil
1426
+ return nil
1427
+ end
1428
+ plumbing = V1::AmazonMQAMQP091.new()
1429
+ plumbing.id = (porcelain.id) unless porcelain.id == nil
1430
+ plumbing.name = (porcelain.name) unless porcelain.name == nil
1431
+ plumbing.healthy = (porcelain.healthy) unless porcelain.healthy == nil
1432
+ plumbing.tags = convert_tags_to_plumbing(porcelain.tags) unless porcelain.tags == nil
1433
+ plumbing.secret_store_id = (porcelain.secret_store_id) unless porcelain.secret_store_id == nil
1434
+ plumbing.egress_filter = (porcelain.egress_filter) unless porcelain.egress_filter == nil
1435
+ plumbing.hostname = (porcelain.hostname) unless porcelain.hostname == nil
1436
+ plumbing.port_override = (porcelain.port_override) unless porcelain.port_override == nil
1437
+ plumbing.port = (porcelain.port) unless porcelain.port == nil
1438
+ plumbing.username = (porcelain.username) unless porcelain.username == nil
1439
+ plumbing.password = (porcelain.password) unless porcelain.password == nil
1440
+ plumbing.tls_required = (porcelain.tls_required) unless porcelain.tls_required == nil
1441
+ plumbing
1442
+ end
1443
+ def self.convert_repeated_amazon_mqamqp_091_to_plumbing(porcelains)
1444
+ items = Array.new
1445
+ porcelains.each do |porcelain|
1446
+ plumbing = convert_amazon_mqamqp_091_to_plumbing(porcelain)
1447
+ items.append(plumbing)
1448
+ end
1449
+ items
1450
+ end
1451
+
1452
+ def self.convert_repeated_amazon_mqamqp_091_to_porcelain(plumbings)
1453
+ items = Array.new
1454
+ plumbings.each do |plumbing|
1455
+ porcelain = convert_amazon_mqamqp_091_to_porcelain(plumbing)
1456
+ items.append(porcelain)
1457
+ end
1458
+ items
1459
+ end
1324
1460
  def self.convert_athena_to_porcelain(plumbing)
1325
1461
  if plumbing == nil
1326
1462
  return nil
@@ -3389,6 +3525,62 @@ module SDM
3389
3525
  end
3390
3526
  items
3391
3527
  end
3528
+ def self.convert_single_store_to_porcelain(plumbing)
3529
+ if plumbing == nil
3530
+ return nil
3531
+ end
3532
+ porcelain = SingleStore.new()
3533
+ porcelain.id = (plumbing.id)
3534
+ porcelain.name = (plumbing.name)
3535
+ porcelain.healthy = (plumbing.healthy)
3536
+ porcelain.tags = convert_tags_to_porcelain(plumbing.tags)
3537
+ porcelain.secret_store_id = (plumbing.secret_store_id)
3538
+ porcelain.egress_filter = (plumbing.egress_filter)
3539
+ porcelain.hostname = (plumbing.hostname)
3540
+ porcelain.username = (plumbing.username)
3541
+ porcelain.password = (plumbing.password)
3542
+ porcelain.database = (plumbing.database)
3543
+ porcelain.port_override = (plumbing.port_override)
3544
+ porcelain.port = (plumbing.port)
3545
+ porcelain
3546
+ end
3547
+
3548
+ def self.convert_single_store_to_plumbing(porcelain)
3549
+ if porcelain == nil
3550
+ return nil
3551
+ end
3552
+ plumbing = V1::SingleStore.new()
3553
+ plumbing.id = (porcelain.id) unless porcelain.id == nil
3554
+ plumbing.name = (porcelain.name) unless porcelain.name == nil
3555
+ plumbing.healthy = (porcelain.healthy) unless porcelain.healthy == nil
3556
+ plumbing.tags = convert_tags_to_plumbing(porcelain.tags) unless porcelain.tags == nil
3557
+ plumbing.secret_store_id = (porcelain.secret_store_id) unless porcelain.secret_store_id == nil
3558
+ plumbing.egress_filter = (porcelain.egress_filter) unless porcelain.egress_filter == nil
3559
+ plumbing.hostname = (porcelain.hostname) unless porcelain.hostname == nil
3560
+ plumbing.username = (porcelain.username) unless porcelain.username == nil
3561
+ plumbing.password = (porcelain.password) unless porcelain.password == nil
3562
+ plumbing.database = (porcelain.database) unless porcelain.database == nil
3563
+ plumbing.port_override = (porcelain.port_override) unless porcelain.port_override == nil
3564
+ plumbing.port = (porcelain.port) unless porcelain.port == nil
3565
+ plumbing
3566
+ end
3567
+ def self.convert_repeated_single_store_to_plumbing(porcelains)
3568
+ items = Array.new
3569
+ porcelains.each do |porcelain|
3570
+ plumbing = convert_single_store_to_plumbing(porcelain)
3571
+ items.append(plumbing)
3572
+ end
3573
+ items
3574
+ end
3575
+
3576
+ def self.convert_repeated_single_store_to_porcelain(plumbings)
3577
+ items = Array.new
3578
+ plumbings.each do |plumbing|
3579
+ porcelain = convert_single_store_to_porcelain(plumbing)
3580
+ items.append(porcelain)
3581
+ end
3582
+ items
3583
+ end
3392
3584
  def self.convert_oracle_to_porcelain(plumbing)
3393
3585
  if plumbing == nil
3394
3586
  return nil
@@ -3853,6 +4045,56 @@ module SDM
3853
4045
  end
3854
4046
  items
3855
4047
  end
4048
+ def self.convert_raw_tcp_to_porcelain(plumbing)
4049
+ if plumbing == nil
4050
+ return nil
4051
+ end
4052
+ porcelain = RawTCP.new()
4053
+ porcelain.id = (plumbing.id)
4054
+ porcelain.name = (plumbing.name)
4055
+ porcelain.healthy = (plumbing.healthy)
4056
+ porcelain.tags = convert_tags_to_porcelain(plumbing.tags)
4057
+ porcelain.secret_store_id = (plumbing.secret_store_id)
4058
+ porcelain.egress_filter = (plumbing.egress_filter)
4059
+ porcelain.hostname = (plumbing.hostname)
4060
+ porcelain.port_override = (plumbing.port_override)
4061
+ porcelain.port = (plumbing.port)
4062
+ porcelain
4063
+ end
4064
+
4065
+ def self.convert_raw_tcp_to_plumbing(porcelain)
4066
+ if porcelain == nil
4067
+ return nil
4068
+ end
4069
+ plumbing = V1::RawTCP.new()
4070
+ plumbing.id = (porcelain.id) unless porcelain.id == nil
4071
+ plumbing.name = (porcelain.name) unless porcelain.name == nil
4072
+ plumbing.healthy = (porcelain.healthy) unless porcelain.healthy == nil
4073
+ plumbing.tags = convert_tags_to_plumbing(porcelain.tags) unless porcelain.tags == nil
4074
+ plumbing.secret_store_id = (porcelain.secret_store_id) unless porcelain.secret_store_id == nil
4075
+ plumbing.egress_filter = (porcelain.egress_filter) unless porcelain.egress_filter == nil
4076
+ plumbing.hostname = (porcelain.hostname) unless porcelain.hostname == nil
4077
+ plumbing.port_override = (porcelain.port_override) unless porcelain.port_override == nil
4078
+ plumbing.port = (porcelain.port) unless porcelain.port == nil
4079
+ plumbing
4080
+ end
4081
+ def self.convert_repeated_raw_tcp_to_plumbing(porcelains)
4082
+ items = Array.new
4083
+ porcelains.each do |porcelain|
4084
+ plumbing = convert_raw_tcp_to_plumbing(porcelain)
4085
+ items.append(plumbing)
4086
+ end
4087
+ items
4088
+ end
4089
+
4090
+ def self.convert_repeated_raw_tcp_to_porcelain(plumbings)
4091
+ items = Array.new
4092
+ plumbings.each do |plumbing|
4093
+ porcelain = convert_raw_tcp_to_porcelain(plumbing)
4094
+ items.append(porcelain)
4095
+ end
4096
+ items
4097
+ end
3856
4098
  def self.convert_rdp_to_porcelain(plumbing)
3857
4099
  if plumbing == nil
3858
4100
  return nil
@@ -5346,6 +5588,7 @@ module SDM
5346
5588
  porcelain = Role.new()
5347
5589
  porcelain.id = (plumbing.id)
5348
5590
  porcelain.name = (plumbing.name)
5591
+ porcelain.access_rules = (plumbing.access_rules)
5349
5592
  porcelain.composite = (plumbing.composite)
5350
5593
  porcelain.tags = convert_tags_to_porcelain(plumbing.tags)
5351
5594
  porcelain
@@ -5358,6 +5601,7 @@ module SDM
5358
5601
  plumbing = V1::Role.new()
5359
5602
  plumbing.id = (porcelain.id) unless porcelain.id == nil
5360
5603
  plumbing.name = (porcelain.name) unless porcelain.name == nil
5604
+ plumbing.access_rules = (porcelain.access_rules) unless porcelain.access_rules == nil
5361
5605
  plumbing.composite = (porcelain.composite) unless porcelain.composite == nil
5362
5606
  plumbing.tags = convert_tags_to_plumbing(porcelain.tags) unless porcelain.tags == nil
5363
5607
  plumbing