strongdm 17.1.0 → 17.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.
- checksums.yaml +4 -4
- data/.git/ORIG_HEAD +1 -1
- data/.git/index +0 -0
- data/.git/logs/HEAD +3 -3
- data/.git/logs/refs/heads/master +2 -2
- data/.git/logs/refs/remotes/origin/HEAD +1 -1
- data/.git/objects/pack/{pack-8883014742378b7fdf0c34a97562b9df2d80609b.idx → pack-25c93bdf583e394318001c7011476e3b807b6081.idx} +0 -0
- data/.git/objects/pack/{pack-8883014742378b7fdf0c34a97562b9df2d80609b.pack → pack-25c93bdf583e394318001c7011476e3b807b6081.pack} +0 -0
- data/.git/packed-refs +4 -2
- data/.git/refs/heads/master +1 -1
- data/lib/grpc/drivers_pb.rb +17 -0
- data/lib/grpc/organizations_pb.rb +102 -0
- data/lib/grpc/organizations_services_pb.rb +49 -0
- data/lib/grpc/plumbing.rb +269 -0
- data/lib/grpc/resourcetypes_pb.rb +1 -0
- data/lib/models/porcelain.rb +227 -1
- data/lib/strongdm.rb +11 -1
- data/lib/svc.rb +121 -0
- data/lib/version +1 -1
- data/lib/version.rb +1 -1
- metadata +6 -4
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 580acc1ed9278a0c9561311df9ae116844bddb5201176ee6fc6fb47ea2aaeedf
|
|
4
|
+
data.tar.gz: 7b3c8d0219a12f1f57a02a0e84a8ddf2bfccaee549fb8025b23751370e543ecf
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: ad44932db9ecb1c0e9a8acbe9e9e9abfe5b8cc882d73bf7a5104a8805de20a33ad8112d4a84a9febf6cc5425db1bbe6509d663584b03fad64190fce92f70edf9
|
|
7
|
+
data.tar.gz: dfef5d51a3bf53a81d64b55ad04dc460473d0157f89db775cd02b3a9e35cb36da1a82918b9c07cb7c2bb67d834eaff65e0985dc286fd0cdf74e1e997b7e19f27
|
data/.git/ORIG_HEAD
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
dc10f48d22db35fa4756342f7d1c30bc0c3365a6
|
data/.git/index
CHANGED
|
Binary file
|
data/.git/logs/HEAD
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
0000000000000000000000000000000000000000
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
0000000000000000000000000000000000000000 dc10f48d22db35fa4756342f7d1c30bc0c3365a6 root <root@4d0dc992c3e3.(none)> 1777908565 +0000 clone: from github.com:strongdm/strongdm-sdk-ruby.git
|
|
2
|
+
dc10f48d22db35fa4756342f7d1c30bc0c3365a6 dc10f48d22db35fa4756342f7d1c30bc0c3365a6 root <root@4d0dc992c3e3.(none)> 1777908565 +0000 checkout: moving from master to master
|
|
3
|
+
dc10f48d22db35fa4756342f7d1c30bc0c3365a6 30b485e69242afeb16291ec3ac66be276363f8a1 root <root@4d0dc992c3e3.(none)> 1777908565 +0000 merge origin/development: Fast-forward
|
data/.git/logs/refs/heads/master
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
0000000000000000000000000000000000000000
|
|
2
|
-
|
|
1
|
+
0000000000000000000000000000000000000000 dc10f48d22db35fa4756342f7d1c30bc0c3365a6 root <root@4d0dc992c3e3.(none)> 1777908565 +0000 clone: from github.com:strongdm/strongdm-sdk-ruby.git
|
|
2
|
+
dc10f48d22db35fa4756342f7d1c30bc0c3365a6 30b485e69242afeb16291ec3ac66be276363f8a1 root <root@4d0dc992c3e3.(none)> 1777908565 +0000 merge origin/development: Fast-forward
|
|
@@ -1 +1 @@
|
|
|
1
|
-
0000000000000000000000000000000000000000
|
|
1
|
+
0000000000000000000000000000000000000000 dc10f48d22db35fa4756342f7d1c30bc0c3365a6 root <root@4d0dc992c3e3.(none)> 1777908565 +0000 clone: from github.com:strongdm/strongdm-sdk-ruby.git
|
|
Binary file
|
|
Binary file
|
data/.git/packed-refs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# pack-refs with: peeled fully-peeled sorted
|
|
2
|
-
|
|
3
|
-
|
|
2
|
+
30b485e69242afeb16291ec3ac66be276363f8a1 refs/remotes/origin/development
|
|
3
|
+
dc10f48d22db35fa4756342f7d1c30bc0c3365a6 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
|
|
@@ -160,6 +160,8 @@ f1adf906557d59b87f34abb19d7f8aa1c5665f3f refs/tags/v16.8.0
|
|
|
160
160
|
9df32bc2f6c5940ddad262b7a8acb01043a09daa refs/tags/v16.8.2
|
|
161
161
|
198062e97957107a8723fb8fbd714b174bc67b90 refs/tags/v16.9.0
|
|
162
162
|
5f7f719a5c803d95cebb885aebb5dc5161e14c00 refs/tags/v17.0.0
|
|
163
|
+
80d8f6f6e484a8fd5ec273cad249e9d7a9767d48 refs/tags/v17.1.0
|
|
164
|
+
dc10f48d22db35fa4756342f7d1c30bc0c3365a6 refs/tags/v17.2.0
|
|
163
165
|
e0b1ec0134c7015ccb8c14464cc713c20034159e refs/tags/v2.0.0
|
|
164
166
|
62a146d9d56852b2ad14ec5d2796cad158d66e1c refs/tags/v2.1.0
|
|
165
167
|
9de04e628082f4ad0eb9511311479a089d302008 refs/tags/v2.2.0
|
data/.git/refs/heads/master
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
30b485e69242afeb16291ec3ac66be276363f8a1
|
data/lib/grpc/drivers_pb.rb
CHANGED
|
@@ -95,6 +95,7 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
|
|
|
95
95
|
optional :kubernetes_service_account, :message, 804, "v1.KubernetesServiceAccount"
|
|
96
96
|
optional :kubernetes_service_account_user_impersonation, :message, 808, "v1.KubernetesServiceAccountUserImpersonation"
|
|
97
97
|
optional :kubernetes_user_impersonation, :message, 812, "v1.KubernetesUserImpersonation"
|
|
98
|
+
optional :llm, :message, 4900, "v1.LLM"
|
|
98
99
|
optional :mcp_gateway_no_auth, :message, 4703, "v1.MCPGatewayNoAuth"
|
|
99
100
|
optional :mcp_gateway_o_auth, :message, 4700, "v1.MCPGatewayOAuth"
|
|
100
101
|
optional :mcp_gateway_o_auth_dcr, :message, 4701, "v1.MCPGatewayOAuthDCR"
|
|
@@ -1407,6 +1408,21 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
|
|
|
1407
1408
|
optional :port, :int32, 2
|
|
1408
1409
|
optional :port_override, :int32, 10
|
|
1409
1410
|
end
|
|
1411
|
+
add_message "v1.LLM" do
|
|
1412
|
+
optional :id, :string, 32768
|
|
1413
|
+
optional :name, :string, 32769
|
|
1414
|
+
optional :healthy, :bool, 32770
|
|
1415
|
+
optional :tags, :message, 32771, "v1.Tags"
|
|
1416
|
+
optional :secret_store_id, :string, 32772
|
|
1417
|
+
optional :egress_filter, :string, 32773
|
|
1418
|
+
optional :bind_interface, :string, 32774
|
|
1419
|
+
optional :proxy_cluster_id, :string, 32776
|
|
1420
|
+
optional :subdomain, :string, 32775
|
|
1421
|
+
optional :models, :string, 10
|
|
1422
|
+
optional :password, :string, 2
|
|
1423
|
+
optional :port_override, :int32, 4
|
|
1424
|
+
optional :url, :string, 9
|
|
1425
|
+
end
|
|
1410
1426
|
add_message "v1.MCPGatewayNoAuth" do
|
|
1411
1427
|
optional :id, :string, 32768
|
|
1412
1428
|
optional :name, :string, 32769
|
|
@@ -2340,6 +2356,7 @@ module V1
|
|
|
2340
2356
|
KubernetesServiceAccount = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.KubernetesServiceAccount").msgclass
|
|
2341
2357
|
KubernetesServiceAccountUserImpersonation = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.KubernetesServiceAccountUserImpersonation").msgclass
|
|
2342
2358
|
KubernetesUserImpersonation = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.KubernetesUserImpersonation").msgclass
|
|
2359
|
+
LLM = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.LLM").msgclass
|
|
2343
2360
|
MCPGatewayNoAuth = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.MCPGatewayNoAuth").msgclass
|
|
2344
2361
|
MCPGatewayOAuth = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.MCPGatewayOAuth").msgclass
|
|
2345
2362
|
MCPGatewayOAuthDCR = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.MCPGatewayOAuthDCR").msgclass
|
|
@@ -0,0 +1,102 @@
|
|
|
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: organizations.proto
|
|
17
|
+
|
|
18
|
+
require "google/protobuf"
|
|
19
|
+
|
|
20
|
+
require "organization_history_pb"
|
|
21
|
+
require "options_pb"
|
|
22
|
+
require "spec_pb"
|
|
23
|
+
|
|
24
|
+
Google::Protobuf::DescriptorPool.generated_pool.build do
|
|
25
|
+
add_file("organizations.proto", :syntax => :proto3) do
|
|
26
|
+
add_message "v1.OrganizationUpdateRequest" do
|
|
27
|
+
optional :meta, :message, 1, "v1.UpdateRequestMetadata"
|
|
28
|
+
optional :organization, :message, 2, "v1.Organization"
|
|
29
|
+
end
|
|
30
|
+
add_message "v1.OrganizationUpdateResponse" do
|
|
31
|
+
optional :meta, :message, 1, "v1.UpdateResponseMetadata"
|
|
32
|
+
optional :organization, :message, 2, "v1.Organization"
|
|
33
|
+
optional :rate_limit, :message, 3, "v1.RateLimitMetadata"
|
|
34
|
+
end
|
|
35
|
+
add_message "v1.OrganizationGetRequest" do
|
|
36
|
+
optional :meta, :message, 1, "v1.GetRequestMetadata"
|
|
37
|
+
end
|
|
38
|
+
add_message "v1.OrganizationGetResponse" do
|
|
39
|
+
optional :meta, :message, 1, "v1.GetResponseMetadata"
|
|
40
|
+
optional :organization, :message, 2, "v1.Organization"
|
|
41
|
+
optional :rate_limit, :message, 3, "v1.RateLimitMetadata"
|
|
42
|
+
end
|
|
43
|
+
add_message "v1.MFAConfig" do
|
|
44
|
+
optional :enabled, :bool, 1
|
|
45
|
+
optional :provider, :string, 2
|
|
46
|
+
optional :okta, :message, 3, "v1.OktaMFAConfig"
|
|
47
|
+
end
|
|
48
|
+
add_message "v1.OktaMFAConfig" do
|
|
49
|
+
optional :auth_mode, :string, 1
|
|
50
|
+
optional :api_token, :string, 2
|
|
51
|
+
optional :api_token_set, :bool, 3
|
|
52
|
+
optional :client_id, :string, 4
|
|
53
|
+
optional :private_key_pem, :string, 5
|
|
54
|
+
optional :private_key_pem_set, :bool, 6
|
|
55
|
+
optional :organization_url, :string, 7
|
|
56
|
+
optional :multidevice_push_enabled, :bool, 8
|
|
57
|
+
optional :user_lookup, :string, 9
|
|
58
|
+
optional :private_key_id, :string, 10
|
|
59
|
+
optional :private_key_id_set, :bool, 11
|
|
60
|
+
end
|
|
61
|
+
add_message "v1.OrganizationGetMFARequest" do
|
|
62
|
+
optional :meta, :message, 1, "v1.GetRequestMetadata"
|
|
63
|
+
end
|
|
64
|
+
add_message "v1.OrganizationGetMFAResponse" do
|
|
65
|
+
optional :meta, :message, 1, "v1.GetResponseMetadata"
|
|
66
|
+
optional :mfa, :message, 2, "v1.MFAConfig"
|
|
67
|
+
optional :rate_limit, :message, 3, "v1.RateLimitMetadata"
|
|
68
|
+
end
|
|
69
|
+
add_message "v1.OrganizationUpdateMFARequest" do
|
|
70
|
+
optional :meta, :message, 1, "v1.UpdateRequestMetadata"
|
|
71
|
+
optional :mfa, :message, 2, "v1.MFAConfig"
|
|
72
|
+
end
|
|
73
|
+
add_message "v1.OrganizationUpdateMFAResponse" do
|
|
74
|
+
optional :meta, :message, 1, "v1.UpdateResponseMetadata"
|
|
75
|
+
optional :mfa, :message, 2, "v1.MFAConfig"
|
|
76
|
+
optional :rate_limit, :message, 3, "v1.RateLimitMetadata"
|
|
77
|
+
end
|
|
78
|
+
add_message "v1.OrganizationTestMFARequest" do
|
|
79
|
+
optional :meta, :message, 1, "v1.UpdateRequestMetadata"
|
|
80
|
+
optional :mfa, :message, 2, "v1.MFAConfig"
|
|
81
|
+
end
|
|
82
|
+
add_message "v1.OrganizationTestMFAResponse" do
|
|
83
|
+
optional :meta, :message, 1, "v1.UpdateResponseMetadata"
|
|
84
|
+
optional :rate_limit, :message, 3, "v1.RateLimitMetadata"
|
|
85
|
+
end
|
|
86
|
+
end
|
|
87
|
+
end
|
|
88
|
+
|
|
89
|
+
module V1
|
|
90
|
+
OrganizationUpdateRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.OrganizationUpdateRequest").msgclass
|
|
91
|
+
OrganizationUpdateResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.OrganizationUpdateResponse").msgclass
|
|
92
|
+
OrganizationGetRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.OrganizationGetRequest").msgclass
|
|
93
|
+
OrganizationGetResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.OrganizationGetResponse").msgclass
|
|
94
|
+
MFAConfig = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.MFAConfig").msgclass
|
|
95
|
+
OktaMFAConfig = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.OktaMFAConfig").msgclass
|
|
96
|
+
OrganizationGetMFARequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.OrganizationGetMFARequest").msgclass
|
|
97
|
+
OrganizationGetMFAResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.OrganizationGetMFAResponse").msgclass
|
|
98
|
+
OrganizationUpdateMFARequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.OrganizationUpdateMFARequest").msgclass
|
|
99
|
+
OrganizationUpdateMFAResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.OrganizationUpdateMFAResponse").msgclass
|
|
100
|
+
OrganizationTestMFARequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.OrganizationTestMFARequest").msgclass
|
|
101
|
+
OrganizationTestMFAResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("v1.OrganizationTestMFAResponse").msgclass
|
|
102
|
+
end
|
|
@@ -0,0 +1,49 @@
|
|
|
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: organizations.proto for package 'v1'
|
|
17
|
+
|
|
18
|
+
require "grpc"
|
|
19
|
+
require "organizations_pb"
|
|
20
|
+
|
|
21
|
+
module V1
|
|
22
|
+
module Organizations
|
|
23
|
+
# Organizations exposes organization configuration. Most RPCs remain private to the
|
|
24
|
+
# go_private SDK; public MFA management is exposed to all public SDK targets.
|
|
25
|
+
# The terraform-provider target is opted out at the service level because the
|
|
26
|
+
# provider's data-source generator assumes every service has a List RPC; MFA is
|
|
27
|
+
# instead surfaced via a hand-written resource template.
|
|
28
|
+
class Service
|
|
29
|
+
include ::GRPC::GenericService
|
|
30
|
+
|
|
31
|
+
self.marshal_class_method = :encode
|
|
32
|
+
self.unmarshal_class_method = :decode
|
|
33
|
+
self.service_name = "v1.Organizations"
|
|
34
|
+
|
|
35
|
+
# Update updates an existing organization.
|
|
36
|
+
rpc :Update, ::V1::OrganizationUpdateRequest, ::V1::OrganizationUpdateResponse
|
|
37
|
+
# Get gets an organization
|
|
38
|
+
rpc :Get, ::V1::OrganizationGetRequest, ::V1::OrganizationGetResponse
|
|
39
|
+
# GetMFA gets the organization's MFA configuration.
|
|
40
|
+
rpc :GetMFA, ::V1::OrganizationGetMFARequest, ::V1::OrganizationGetMFAResponse
|
|
41
|
+
# UpdateMFA updates the organization's MFA configuration.
|
|
42
|
+
rpc :UpdateMFA, ::V1::OrganizationUpdateMFARequest, ::V1::OrganizationUpdateMFAResponse
|
|
43
|
+
# TestMFA validates MFA connectivity without persisting changes.
|
|
44
|
+
rpc :TestMFA, ::V1::OrganizationTestMFARequest, ::V1::OrganizationTestMFAResponse
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
Stub = Service.rpc_stub_class
|
|
48
|
+
end
|
|
49
|
+
end
|
data/lib/grpc/plumbing.rb
CHANGED
|
@@ -66,6 +66,7 @@ require_relative "./managed_secrets_pb"
|
|
|
66
66
|
require_relative "./nodes_pb"
|
|
67
67
|
require_relative "./nodes_history_pb"
|
|
68
68
|
require_relative "./organization_history_pb"
|
|
69
|
+
require_relative "./organizations_pb"
|
|
69
70
|
require_relative "./peering_group_nodes_pb"
|
|
70
71
|
require_relative "./peering_group_peers_pb"
|
|
71
72
|
require_relative "./peering_group_resources_pb"
|
|
@@ -385,6 +386,8 @@ module SDM
|
|
|
385
386
|
return SDM::ResourceType::RESOURCE_TYPE_KUBERNETES_SERVICE_ACCOUNT_USER_IMPERSONATION
|
|
386
387
|
when V1::ResourceType::RESOURCE_TYPE_KUBERNETES_USER_IMPERSONATION
|
|
387
388
|
return SDM::ResourceType::RESOURCE_TYPE_KUBERNETES_USER_IMPERSONATION
|
|
389
|
+
when V1::ResourceType::RESOURCE_TYPE_LLM
|
|
390
|
+
return SDM::ResourceType::RESOURCE_TYPE_LLM
|
|
388
391
|
when V1::ResourceType::RESOURCE_TYPE_MCP_NO_AUTH
|
|
389
392
|
return SDM::ResourceType::RESOURCE_TYPE_MCP_NO_AUTH
|
|
390
393
|
when V1::ResourceType::RESOURCE_TYPE_MCP
|
|
@@ -643,6 +646,8 @@ module SDM
|
|
|
643
646
|
value = V1::ResourceType::RESOURCE_TYPE_KUBERNETES_SERVICE_ACCOUNT_USER_IMPERSONATION
|
|
644
647
|
when SDM::ResourceType::RESOURCE_TYPE_KUBERNETES_USER_IMPERSONATION, "RESOURCE_TYPE_KUBERNETES_USER_IMPERSONATION"
|
|
645
648
|
value = V1::ResourceType::RESOURCE_TYPE_KUBERNETES_USER_IMPERSONATION
|
|
649
|
+
when SDM::ResourceType::RESOURCE_TYPE_LLM, "RESOURCE_TYPE_LLM"
|
|
650
|
+
value = V1::ResourceType::RESOURCE_TYPE_LLM
|
|
646
651
|
when SDM::ResourceType::RESOURCE_TYPE_MCP_NO_AUTH, "RESOURCE_TYPE_MCP_NO_AUTH"
|
|
647
652
|
value = V1::ResourceType::RESOURCE_TYPE_MCP_NO_AUTH
|
|
648
653
|
when SDM::ResourceType::RESOURCE_TYPE_MCP, "RESOURCE_TYPE_MCP"
|
|
@@ -11026,6 +11031,64 @@ module SDM
|
|
|
11026
11031
|
end
|
|
11027
11032
|
items
|
|
11028
11033
|
end
|
|
11034
|
+
def self.convert_llm_to_porcelain(plumbing)
|
|
11035
|
+
if plumbing == nil
|
|
11036
|
+
return nil
|
|
11037
|
+
end
|
|
11038
|
+
porcelain = LLM.new()
|
|
11039
|
+
porcelain.bind_interface = (plumbing.bind_interface)
|
|
11040
|
+
porcelain.egress_filter = (plumbing.egress_filter)
|
|
11041
|
+
porcelain.healthy = (plumbing.healthy)
|
|
11042
|
+
porcelain.id = (plumbing.id)
|
|
11043
|
+
porcelain.models = (plumbing.models)
|
|
11044
|
+
porcelain.name = (plumbing.name)
|
|
11045
|
+
porcelain.password = (plumbing.password)
|
|
11046
|
+
porcelain.port_override = (plumbing.port_override)
|
|
11047
|
+
porcelain.proxy_cluster_id = (plumbing.proxy_cluster_id)
|
|
11048
|
+
porcelain.secret_store_id = (plumbing.secret_store_id)
|
|
11049
|
+
porcelain.subdomain = (plumbing.subdomain)
|
|
11050
|
+
porcelain.tags = convert_tags_to_porcelain(plumbing.tags)
|
|
11051
|
+
porcelain.url = (plumbing.url)
|
|
11052
|
+
porcelain
|
|
11053
|
+
end
|
|
11054
|
+
|
|
11055
|
+
def self.convert_llm_to_plumbing(porcelain)
|
|
11056
|
+
if porcelain == nil
|
|
11057
|
+
return nil
|
|
11058
|
+
end
|
|
11059
|
+
plumbing = V1::LLM.new()
|
|
11060
|
+
plumbing.bind_interface = (porcelain.bind_interface)
|
|
11061
|
+
plumbing.egress_filter = (porcelain.egress_filter)
|
|
11062
|
+
plumbing.healthy = (porcelain.healthy)
|
|
11063
|
+
plumbing.id = (porcelain.id)
|
|
11064
|
+
plumbing.models = (porcelain.models)
|
|
11065
|
+
plumbing.name = (porcelain.name)
|
|
11066
|
+
plumbing.password = (porcelain.password)
|
|
11067
|
+
plumbing.port_override = (porcelain.port_override)
|
|
11068
|
+
plumbing.proxy_cluster_id = (porcelain.proxy_cluster_id)
|
|
11069
|
+
plumbing.secret_store_id = (porcelain.secret_store_id)
|
|
11070
|
+
plumbing.subdomain = (porcelain.subdomain)
|
|
11071
|
+
plumbing.tags = convert_tags_to_plumbing(porcelain.tags)
|
|
11072
|
+
plumbing.url = (porcelain.url)
|
|
11073
|
+
plumbing
|
|
11074
|
+
end
|
|
11075
|
+
def self.convert_repeated_llm_to_plumbing(porcelains)
|
|
11076
|
+
items = Array.new
|
|
11077
|
+
porcelains.each do |porcelain|
|
|
11078
|
+
plumbing = convert_llm_to_plumbing(porcelain)
|
|
11079
|
+
items.append(plumbing)
|
|
11080
|
+
end
|
|
11081
|
+
items
|
|
11082
|
+
end
|
|
11083
|
+
|
|
11084
|
+
def self.convert_repeated_llm_to_porcelain(plumbings)
|
|
11085
|
+
items = Array.new
|
|
11086
|
+
plumbings.each do |plumbing|
|
|
11087
|
+
porcelain = convert_llm_to_porcelain(plumbing)
|
|
11088
|
+
items.append(porcelain)
|
|
11089
|
+
end
|
|
11090
|
+
items
|
|
11091
|
+
end
|
|
11029
11092
|
def self.convert_log_category_config_to_porcelain(plumbing)
|
|
11030
11093
|
if plumbing == nil
|
|
11031
11094
|
return nil
|
|
@@ -11352,6 +11415,44 @@ module SDM
|
|
|
11352
11415
|
end
|
|
11353
11416
|
items
|
|
11354
11417
|
end
|
|
11418
|
+
def self.convert_mfa_config_to_porcelain(plumbing)
|
|
11419
|
+
if plumbing == nil
|
|
11420
|
+
return nil
|
|
11421
|
+
end
|
|
11422
|
+
porcelain = MFAConfig.new()
|
|
11423
|
+
porcelain.enabled = (plumbing.enabled)
|
|
11424
|
+
porcelain.okta = convert_okta_mfa_config_to_porcelain(plumbing.okta)
|
|
11425
|
+
porcelain.provider = (plumbing.provider)
|
|
11426
|
+
porcelain
|
|
11427
|
+
end
|
|
11428
|
+
|
|
11429
|
+
def self.convert_mfa_config_to_plumbing(porcelain)
|
|
11430
|
+
if porcelain == nil
|
|
11431
|
+
return nil
|
|
11432
|
+
end
|
|
11433
|
+
plumbing = V1::MFAConfig.new()
|
|
11434
|
+
plumbing.enabled = (porcelain.enabled)
|
|
11435
|
+
plumbing.okta = convert_okta_mfa_config_to_plumbing(porcelain.okta)
|
|
11436
|
+
plumbing.provider = (porcelain.provider)
|
|
11437
|
+
plumbing
|
|
11438
|
+
end
|
|
11439
|
+
def self.convert_repeated_mfa_config_to_plumbing(porcelains)
|
|
11440
|
+
items = Array.new
|
|
11441
|
+
porcelains.each do |porcelain|
|
|
11442
|
+
plumbing = convert_mfa_config_to_plumbing(porcelain)
|
|
11443
|
+
items.append(plumbing)
|
|
11444
|
+
end
|
|
11445
|
+
items
|
|
11446
|
+
end
|
|
11447
|
+
|
|
11448
|
+
def self.convert_repeated_mfa_config_to_porcelain(plumbings)
|
|
11449
|
+
items = Array.new
|
|
11450
|
+
plumbings.each do |plumbing|
|
|
11451
|
+
porcelain = convert_mfa_config_to_porcelain(plumbing)
|
|
11452
|
+
items.append(porcelain)
|
|
11453
|
+
end
|
|
11454
|
+
items
|
|
11455
|
+
end
|
|
11355
11456
|
def self.convert_mtls_mysql_to_porcelain(plumbing)
|
|
11356
11457
|
if plumbing == nil
|
|
11357
11458
|
return nil
|
|
@@ -13523,6 +13624,60 @@ module SDM
|
|
|
13523
13624
|
end
|
|
13524
13625
|
items
|
|
13525
13626
|
end
|
|
13627
|
+
def self.convert_okta_mfa_config_to_porcelain(plumbing)
|
|
13628
|
+
if plumbing == nil
|
|
13629
|
+
return nil
|
|
13630
|
+
end
|
|
13631
|
+
porcelain = OktaMFAConfig.new()
|
|
13632
|
+
porcelain.api_token = (plumbing.api_token)
|
|
13633
|
+
porcelain.api_token_set = (plumbing.api_token_set)
|
|
13634
|
+
porcelain.auth_mode = (plumbing.auth_mode)
|
|
13635
|
+
porcelain.client_id = (plumbing.client_id)
|
|
13636
|
+
porcelain.multidevice_push_enabled = (plumbing.multidevice_push_enabled)
|
|
13637
|
+
porcelain.organization_url = (plumbing.organization_url)
|
|
13638
|
+
porcelain.private_key_id = (plumbing.private_key_id)
|
|
13639
|
+
porcelain.private_key_id_set = (plumbing.private_key_id_set)
|
|
13640
|
+
porcelain.private_key_pem = (plumbing.private_key_pem)
|
|
13641
|
+
porcelain.private_key_pem_set = (plumbing.private_key_pem_set)
|
|
13642
|
+
porcelain.user_lookup = (plumbing.user_lookup)
|
|
13643
|
+
porcelain
|
|
13644
|
+
end
|
|
13645
|
+
|
|
13646
|
+
def self.convert_okta_mfa_config_to_plumbing(porcelain)
|
|
13647
|
+
if porcelain == nil
|
|
13648
|
+
return nil
|
|
13649
|
+
end
|
|
13650
|
+
plumbing = V1::OktaMFAConfig.new()
|
|
13651
|
+
plumbing.api_token = (porcelain.api_token)
|
|
13652
|
+
plumbing.api_token_set = (porcelain.api_token_set)
|
|
13653
|
+
plumbing.auth_mode = (porcelain.auth_mode)
|
|
13654
|
+
plumbing.client_id = (porcelain.client_id)
|
|
13655
|
+
plumbing.multidevice_push_enabled = (porcelain.multidevice_push_enabled)
|
|
13656
|
+
plumbing.organization_url = (porcelain.organization_url)
|
|
13657
|
+
plumbing.private_key_id = (porcelain.private_key_id)
|
|
13658
|
+
plumbing.private_key_id_set = (porcelain.private_key_id_set)
|
|
13659
|
+
plumbing.private_key_pem = (porcelain.private_key_pem)
|
|
13660
|
+
plumbing.private_key_pem_set = (porcelain.private_key_pem_set)
|
|
13661
|
+
plumbing.user_lookup = (porcelain.user_lookup)
|
|
13662
|
+
plumbing
|
|
13663
|
+
end
|
|
13664
|
+
def self.convert_repeated_okta_mfa_config_to_plumbing(porcelains)
|
|
13665
|
+
items = Array.new
|
|
13666
|
+
porcelains.each do |porcelain|
|
|
13667
|
+
plumbing = convert_okta_mfa_config_to_plumbing(porcelain)
|
|
13668
|
+
items.append(plumbing)
|
|
13669
|
+
end
|
|
13670
|
+
items
|
|
13671
|
+
end
|
|
13672
|
+
|
|
13673
|
+
def self.convert_repeated_okta_mfa_config_to_porcelain(plumbings)
|
|
13674
|
+
items = Array.new
|
|
13675
|
+
plumbings.each do |plumbing|
|
|
13676
|
+
porcelain = convert_okta_mfa_config_to_porcelain(plumbing)
|
|
13677
|
+
items.append(porcelain)
|
|
13678
|
+
end
|
|
13679
|
+
items
|
|
13680
|
+
end
|
|
13526
13681
|
def self.convert_oracle_to_porcelain(plumbing)
|
|
13527
13682
|
if plumbing == nil
|
|
13528
13683
|
return nil
|
|
@@ -13745,6 +13900,44 @@ module SDM
|
|
|
13745
13900
|
end
|
|
13746
13901
|
items
|
|
13747
13902
|
end
|
|
13903
|
+
def self.convert_organization_get_mfa_response_to_porcelain(plumbing)
|
|
13904
|
+
if plumbing == nil
|
|
13905
|
+
return nil
|
|
13906
|
+
end
|
|
13907
|
+
porcelain = OrganizationGetMFAResponse.new()
|
|
13908
|
+
porcelain.meta = convert_get_response_metadata_to_porcelain(plumbing.meta)
|
|
13909
|
+
porcelain.mfa = convert_mfa_config_to_porcelain(plumbing.mfa)
|
|
13910
|
+
porcelain.rate_limit = convert_rate_limit_metadata_to_porcelain(plumbing.rate_limit)
|
|
13911
|
+
porcelain
|
|
13912
|
+
end
|
|
13913
|
+
|
|
13914
|
+
def self.convert_organization_get_mfa_response_to_plumbing(porcelain)
|
|
13915
|
+
if porcelain == nil
|
|
13916
|
+
return nil
|
|
13917
|
+
end
|
|
13918
|
+
plumbing = V1::OrganizationGetMFAResponse.new()
|
|
13919
|
+
plumbing.meta = convert_get_response_metadata_to_plumbing(porcelain.meta)
|
|
13920
|
+
plumbing.mfa = convert_mfa_config_to_plumbing(porcelain.mfa)
|
|
13921
|
+
plumbing.rate_limit = convert_rate_limit_metadata_to_plumbing(porcelain.rate_limit)
|
|
13922
|
+
plumbing
|
|
13923
|
+
end
|
|
13924
|
+
def self.convert_repeated_organization_get_mfa_response_to_plumbing(porcelains)
|
|
13925
|
+
items = Array.new
|
|
13926
|
+
porcelains.each do |porcelain|
|
|
13927
|
+
plumbing = convert_organization_get_mfa_response_to_plumbing(porcelain)
|
|
13928
|
+
items.append(plumbing)
|
|
13929
|
+
end
|
|
13930
|
+
items
|
|
13931
|
+
end
|
|
13932
|
+
|
|
13933
|
+
def self.convert_repeated_organization_get_mfa_response_to_porcelain(plumbings)
|
|
13934
|
+
items = Array.new
|
|
13935
|
+
plumbings.each do |plumbing|
|
|
13936
|
+
porcelain = convert_organization_get_mfa_response_to_porcelain(plumbing)
|
|
13937
|
+
items.append(porcelain)
|
|
13938
|
+
end
|
|
13939
|
+
items
|
|
13940
|
+
end
|
|
13748
13941
|
def self.convert_organization_history_record_to_porcelain(plumbing)
|
|
13749
13942
|
if plumbing == nil
|
|
13750
13943
|
return nil
|
|
@@ -13783,6 +13976,76 @@ module SDM
|
|
|
13783
13976
|
end
|
|
13784
13977
|
items
|
|
13785
13978
|
end
|
|
13979
|
+
def self.convert_organization_test_mfa_response_to_porcelain(plumbing)
|
|
13980
|
+
if plumbing == nil
|
|
13981
|
+
return nil
|
|
13982
|
+
end
|
|
13983
|
+
porcelain = OrganizationTestMFAResponse.new()
|
|
13984
|
+
porcelain.rate_limit = convert_rate_limit_metadata_to_porcelain(plumbing.rate_limit)
|
|
13985
|
+
porcelain
|
|
13986
|
+
end
|
|
13987
|
+
|
|
13988
|
+
def self.convert_organization_test_mfa_response_to_plumbing(porcelain)
|
|
13989
|
+
if porcelain == nil
|
|
13990
|
+
return nil
|
|
13991
|
+
end
|
|
13992
|
+
plumbing = V1::OrganizationTestMFAResponse.new()
|
|
13993
|
+
plumbing.rate_limit = convert_rate_limit_metadata_to_plumbing(porcelain.rate_limit)
|
|
13994
|
+
plumbing
|
|
13995
|
+
end
|
|
13996
|
+
def self.convert_repeated_organization_test_mfa_response_to_plumbing(porcelains)
|
|
13997
|
+
items = Array.new
|
|
13998
|
+
porcelains.each do |porcelain|
|
|
13999
|
+
plumbing = convert_organization_test_mfa_response_to_plumbing(porcelain)
|
|
14000
|
+
items.append(plumbing)
|
|
14001
|
+
end
|
|
14002
|
+
items
|
|
14003
|
+
end
|
|
14004
|
+
|
|
14005
|
+
def self.convert_repeated_organization_test_mfa_response_to_porcelain(plumbings)
|
|
14006
|
+
items = Array.new
|
|
14007
|
+
plumbings.each do |plumbing|
|
|
14008
|
+
porcelain = convert_organization_test_mfa_response_to_porcelain(plumbing)
|
|
14009
|
+
items.append(porcelain)
|
|
14010
|
+
end
|
|
14011
|
+
items
|
|
14012
|
+
end
|
|
14013
|
+
def self.convert_organization_update_mfa_response_to_porcelain(plumbing)
|
|
14014
|
+
if plumbing == nil
|
|
14015
|
+
return nil
|
|
14016
|
+
end
|
|
14017
|
+
porcelain = OrganizationUpdateMFAResponse.new()
|
|
14018
|
+
porcelain.mfa = convert_mfa_config_to_porcelain(plumbing.mfa)
|
|
14019
|
+
porcelain.rate_limit = convert_rate_limit_metadata_to_porcelain(plumbing.rate_limit)
|
|
14020
|
+
porcelain
|
|
14021
|
+
end
|
|
14022
|
+
|
|
14023
|
+
def self.convert_organization_update_mfa_response_to_plumbing(porcelain)
|
|
14024
|
+
if porcelain == nil
|
|
14025
|
+
return nil
|
|
14026
|
+
end
|
|
14027
|
+
plumbing = V1::OrganizationUpdateMFAResponse.new()
|
|
14028
|
+
plumbing.mfa = convert_mfa_config_to_plumbing(porcelain.mfa)
|
|
14029
|
+
plumbing.rate_limit = convert_rate_limit_metadata_to_plumbing(porcelain.rate_limit)
|
|
14030
|
+
plumbing
|
|
14031
|
+
end
|
|
14032
|
+
def self.convert_repeated_organization_update_mfa_response_to_plumbing(porcelains)
|
|
14033
|
+
items = Array.new
|
|
14034
|
+
porcelains.each do |porcelain|
|
|
14035
|
+
plumbing = convert_organization_update_mfa_response_to_plumbing(porcelain)
|
|
14036
|
+
items.append(plumbing)
|
|
14037
|
+
end
|
|
14038
|
+
items
|
|
14039
|
+
end
|
|
14040
|
+
|
|
14041
|
+
def self.convert_repeated_organization_update_mfa_response_to_porcelain(plumbings)
|
|
14042
|
+
items = Array.new
|
|
14043
|
+
plumbings.each do |plumbing|
|
|
14044
|
+
porcelain = convert_organization_update_mfa_response_to_porcelain(plumbing)
|
|
14045
|
+
items.append(porcelain)
|
|
14046
|
+
end
|
|
14047
|
+
items
|
|
14048
|
+
end
|
|
13786
14049
|
def self.convert_peering_group_to_porcelain(plumbing)
|
|
13787
14050
|
if plumbing == nil
|
|
13788
14051
|
return nil
|
|
@@ -16714,6 +16977,9 @@ module SDM
|
|
|
16714
16977
|
if porcelain.instance_of? KubernetesUserImpersonation
|
|
16715
16978
|
plumbing.kubernetes_user_impersonation = convert_kubernetes_user_impersonation_to_plumbing(porcelain)
|
|
16716
16979
|
end
|
|
16980
|
+
if porcelain.instance_of? LLM
|
|
16981
|
+
plumbing.llm = convert_llm_to_plumbing(porcelain)
|
|
16982
|
+
end
|
|
16717
16983
|
if porcelain.instance_of? Maria
|
|
16718
16984
|
plumbing.maria = convert_maria_to_plumbing(porcelain)
|
|
16719
16985
|
end
|
|
@@ -17072,6 +17338,9 @@ module SDM
|
|
|
17072
17338
|
if plumbing.kubernetes_user_impersonation != nil
|
|
17073
17339
|
return convert_kubernetes_user_impersonation_to_porcelain(plumbing.kubernetes_user_impersonation)
|
|
17074
17340
|
end
|
|
17341
|
+
if plumbing.llm != nil
|
|
17342
|
+
return convert_llm_to_porcelain(plumbing.llm)
|
|
17343
|
+
end
|
|
17075
17344
|
if plumbing.maria != nil
|
|
17076
17345
|
return convert_maria_to_porcelain(plumbing.maria)
|
|
17077
17346
|
end
|
|
@@ -93,6 +93,7 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
|
|
|
93
93
|
value :RESOURCE_TYPE_KUBERNETES_SERVICE_ACCOUNT, 804
|
|
94
94
|
value :RESOURCE_TYPE_KUBERNETES_SERVICE_ACCOUNT_USER_IMPERSONATION, 808
|
|
95
95
|
value :RESOURCE_TYPE_KUBERNETES_USER_IMPERSONATION, 812
|
|
96
|
+
value :RESOURCE_TYPE_LLM, 4900
|
|
96
97
|
value :RESOURCE_TYPE_MCP_NO_AUTH, 4703
|
|
97
98
|
value :RESOURCE_TYPE_MCP, 4700
|
|
98
99
|
value :RESOURCE_TYPE_MCPDCR, 4701
|
data/lib/models/porcelain.rb
CHANGED
|
@@ -163,6 +163,8 @@ module SDM
|
|
|
163
163
|
|
|
164
164
|
KUBERNETES_USER_IMPERSONATION = "RESOURCE_TYPE_KUBERNETES_USER_IMPERSONATION"
|
|
165
165
|
|
|
166
|
+
LLM = "RESOURCE_TYPE_LLM"
|
|
167
|
+
|
|
166
168
|
MCP_NO_AUTH = "RESOURCE_TYPE_MCP_NO_AUTH"
|
|
167
169
|
|
|
168
170
|
MCP = "RESOURCE_TYPE_MCP"
|
|
@@ -10285,6 +10287,74 @@ module SDM
|
|
|
10285
10287
|
end
|
|
10286
10288
|
end
|
|
10287
10289
|
|
|
10290
|
+
# LLM is currently unstable, and its API may change, or it may be removed, without a major version bump.
|
|
10291
|
+
class LLM
|
|
10292
|
+
# 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.
|
|
10293
|
+
attr_accessor :bind_interface
|
|
10294
|
+
# A filter applied to the routing logic to pin datasource to nodes.
|
|
10295
|
+
attr_accessor :egress_filter
|
|
10296
|
+
# True if the datasource is reachable and the credentials are valid.
|
|
10297
|
+
attr_accessor :healthy
|
|
10298
|
+
# Unique identifier of the Resource.
|
|
10299
|
+
attr_accessor :id
|
|
10300
|
+
# Space-separated list of model names this resource accepts. Requests for unlisted models are rejected. Leave empty to allow all models.
|
|
10301
|
+
attr_accessor :models
|
|
10302
|
+
# Unique human-readable name of the Resource.
|
|
10303
|
+
attr_accessor :name
|
|
10304
|
+
# The password to authenticate with.
|
|
10305
|
+
attr_accessor :password
|
|
10306
|
+
# The local port used by clients to connect to this resource. It is automatically generated if not provided on create and may be re-generated on update by specifying a value of -1.
|
|
10307
|
+
attr_accessor :port_override
|
|
10308
|
+
# ID of the proxy cluster for this resource, if any.
|
|
10309
|
+
attr_accessor :proxy_cluster_id
|
|
10310
|
+
# ID of the secret store containing credentials for this resource, if any.
|
|
10311
|
+
attr_accessor :secret_store_id
|
|
10312
|
+
# 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.
|
|
10313
|
+
attr_accessor :subdomain
|
|
10314
|
+
# Tags is a map of key, value pairs.
|
|
10315
|
+
attr_accessor :tags
|
|
10316
|
+
# The URL to dial to initiate a connection from the egress node to this resource.
|
|
10317
|
+
attr_accessor :url
|
|
10318
|
+
|
|
10319
|
+
def initialize(
|
|
10320
|
+
bind_interface: nil,
|
|
10321
|
+
egress_filter: nil,
|
|
10322
|
+
healthy: nil,
|
|
10323
|
+
id: nil,
|
|
10324
|
+
models: nil,
|
|
10325
|
+
name: nil,
|
|
10326
|
+
password: nil,
|
|
10327
|
+
port_override: nil,
|
|
10328
|
+
proxy_cluster_id: nil,
|
|
10329
|
+
secret_store_id: nil,
|
|
10330
|
+
subdomain: nil,
|
|
10331
|
+
tags: nil,
|
|
10332
|
+
url: nil
|
|
10333
|
+
)
|
|
10334
|
+
@bind_interface = bind_interface == nil ? "" : bind_interface
|
|
10335
|
+
@egress_filter = egress_filter == nil ? "" : egress_filter
|
|
10336
|
+
@healthy = healthy == nil ? false : healthy
|
|
10337
|
+
@id = id == nil ? "" : id
|
|
10338
|
+
@models = models == nil ? "" : models
|
|
10339
|
+
@name = name == nil ? "" : name
|
|
10340
|
+
@password = password == nil ? "" : password
|
|
10341
|
+
@port_override = port_override == nil ? 0 : port_override
|
|
10342
|
+
@proxy_cluster_id = proxy_cluster_id == nil ? "" : proxy_cluster_id
|
|
10343
|
+
@secret_store_id = secret_store_id == nil ? "" : secret_store_id
|
|
10344
|
+
@subdomain = subdomain == nil ? "" : subdomain
|
|
10345
|
+
@tags = tags == nil ? SDM::_porcelain_zero_value_tags() : tags
|
|
10346
|
+
@url = url == nil ? "" : url
|
|
10347
|
+
end
|
|
10348
|
+
|
|
10349
|
+
def to_json(options = {})
|
|
10350
|
+
hash = {}
|
|
10351
|
+
self.instance_variables.each do |var|
|
|
10352
|
+
hash[var.id2name.delete_prefix("@")] = self.instance_variable_get var
|
|
10353
|
+
end
|
|
10354
|
+
hash.to_json
|
|
10355
|
+
end
|
|
10356
|
+
end
|
|
10357
|
+
|
|
10288
10358
|
class LogCategoryConfig
|
|
10289
10359
|
# Indicates if the Organization should exclude replay data from remote logging for the log category.
|
|
10290
10360
|
attr_accessor :remote_discard_replays
|
|
@@ -10497,7 +10567,6 @@ module SDM
|
|
|
10497
10567
|
end
|
|
10498
10568
|
end
|
|
10499
10569
|
|
|
10500
|
-
# MCPGatewayOAuthDCR is currently unstable, and its API may change, or it may be removed, without a major version bump.
|
|
10501
10570
|
class MCPGatewayOAuthDCR
|
|
10502
10571
|
# 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.
|
|
10503
10572
|
attr_accessor :bind_interface
|
|
@@ -10644,6 +10713,33 @@ module SDM
|
|
|
10644
10713
|
end
|
|
10645
10714
|
end
|
|
10646
10715
|
|
|
10716
|
+
class MFAConfig
|
|
10717
|
+
# Indicates if MFA is enabled for the organization.
|
|
10718
|
+
attr_accessor :enabled
|
|
10719
|
+
# Okta MFA configuration. Future providers will be added to this wrapper.
|
|
10720
|
+
attr_accessor :okta
|
|
10721
|
+
# The MFA provider, one of the MFAProvider constants.
|
|
10722
|
+
attr_accessor :provider
|
|
10723
|
+
|
|
10724
|
+
def initialize(
|
|
10725
|
+
enabled: nil,
|
|
10726
|
+
okta: nil,
|
|
10727
|
+
provider: nil
|
|
10728
|
+
)
|
|
10729
|
+
@enabled = enabled == nil ? false : enabled
|
|
10730
|
+
@okta = okta == nil ? nil : okta
|
|
10731
|
+
@provider = provider == nil ? "" : provider
|
|
10732
|
+
end
|
|
10733
|
+
|
|
10734
|
+
def to_json(options = {})
|
|
10735
|
+
hash = {}
|
|
10736
|
+
self.instance_variables.each do |var|
|
|
10737
|
+
hash[var.id2name.delete_prefix("@")] = self.instance_variable_get var
|
|
10738
|
+
end
|
|
10739
|
+
hash.to_json
|
|
10740
|
+
end
|
|
10741
|
+
end
|
|
10742
|
+
|
|
10647
10743
|
class MTLSMysql
|
|
10648
10744
|
# 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.
|
|
10649
10745
|
attr_accessor :bind_interface
|
|
@@ -12686,6 +12782,67 @@ module SDM
|
|
|
12686
12782
|
end
|
|
12687
12783
|
end
|
|
12688
12784
|
|
|
12785
|
+
class OktaMFAConfig
|
|
12786
|
+
# The API token to authenticate with when auth_mode is api_token.
|
|
12787
|
+
attr_accessor :api_token
|
|
12788
|
+
# Indicates if an API token is already stored.
|
|
12789
|
+
attr_accessor :api_token_set
|
|
12790
|
+
# The Okta auth mode, one of the OktaAuthMode constants.
|
|
12791
|
+
attr_accessor :auth_mode
|
|
12792
|
+
# The Okta client ID to authenticate with when auth_mode is client_credentials.
|
|
12793
|
+
attr_accessor :client_id
|
|
12794
|
+
# Indicates if multidevice push is enabled.
|
|
12795
|
+
attr_accessor :multidevice_push_enabled
|
|
12796
|
+
# The Okta organization URL.
|
|
12797
|
+
attr_accessor :organization_url
|
|
12798
|
+
# The key ID (kid) assigned by Okta to the registered public key.
|
|
12799
|
+
attr_accessor :private_key_id
|
|
12800
|
+
# Indicates if a key ID is already stored or explicitly supplied. This allows
|
|
12801
|
+
# callers to preserve the existing value when omitted or clear it by
|
|
12802
|
+
# sending an empty string with private_key_id_set=true.
|
|
12803
|
+
attr_accessor :private_key_id_set
|
|
12804
|
+
# The PEM encoded private key to authenticate with when auth_mode is client_credentials.
|
|
12805
|
+
attr_accessor :private_key_pem
|
|
12806
|
+
# Indicates if a PEM encoded private key is already stored.
|
|
12807
|
+
attr_accessor :private_key_pem_set
|
|
12808
|
+
# The Okta user lookup strategy, one of the OktaUserLookup constants.
|
|
12809
|
+
attr_accessor :user_lookup
|
|
12810
|
+
|
|
12811
|
+
def initialize(
|
|
12812
|
+
api_token: nil,
|
|
12813
|
+
api_token_set: nil,
|
|
12814
|
+
auth_mode: nil,
|
|
12815
|
+
client_id: nil,
|
|
12816
|
+
multidevice_push_enabled: nil,
|
|
12817
|
+
organization_url: nil,
|
|
12818
|
+
private_key_id: nil,
|
|
12819
|
+
private_key_id_set: nil,
|
|
12820
|
+
private_key_pem: nil,
|
|
12821
|
+
private_key_pem_set: nil,
|
|
12822
|
+
user_lookup: nil
|
|
12823
|
+
)
|
|
12824
|
+
@api_token = api_token == nil ? "" : api_token
|
|
12825
|
+
@api_token_set = api_token_set == nil ? false : api_token_set
|
|
12826
|
+
@auth_mode = auth_mode == nil ? "" : auth_mode
|
|
12827
|
+
@client_id = client_id == nil ? "" : client_id
|
|
12828
|
+
@multidevice_push_enabled = multidevice_push_enabled == nil ? false : multidevice_push_enabled
|
|
12829
|
+
@organization_url = organization_url == nil ? "" : organization_url
|
|
12830
|
+
@private_key_id = private_key_id == nil ? "" : private_key_id
|
|
12831
|
+
@private_key_id_set = private_key_id_set == nil ? false : private_key_id_set
|
|
12832
|
+
@private_key_pem = private_key_pem == nil ? "" : private_key_pem
|
|
12833
|
+
@private_key_pem_set = private_key_pem_set == nil ? false : private_key_pem_set
|
|
12834
|
+
@user_lookup = user_lookup == nil ? "" : user_lookup
|
|
12835
|
+
end
|
|
12836
|
+
|
|
12837
|
+
def to_json(options = {})
|
|
12838
|
+
hash = {}
|
|
12839
|
+
self.instance_variables.each do |var|
|
|
12840
|
+
hash[var.id2name.delete_prefix("@")] = self.instance_variable_get var
|
|
12841
|
+
end
|
|
12842
|
+
hash.to_json
|
|
12843
|
+
end
|
|
12844
|
+
end
|
|
12845
|
+
|
|
12689
12846
|
class Oracle
|
|
12690
12847
|
# 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.
|
|
12691
12848
|
attr_accessor :bind_interface
|
|
@@ -12991,6 +13148,33 @@ module SDM
|
|
|
12991
13148
|
end
|
|
12992
13149
|
end
|
|
12993
13150
|
|
|
13151
|
+
class OrganizationGetMFAResponse
|
|
13152
|
+
# Reserved for future use.
|
|
13153
|
+
attr_accessor :meta
|
|
13154
|
+
# The current MFA configuration.
|
|
13155
|
+
attr_accessor :mfa
|
|
13156
|
+
# Rate limit information.
|
|
13157
|
+
attr_accessor :rate_limit
|
|
13158
|
+
|
|
13159
|
+
def initialize(
|
|
13160
|
+
meta: nil,
|
|
13161
|
+
mfa: nil,
|
|
13162
|
+
rate_limit: nil
|
|
13163
|
+
)
|
|
13164
|
+
@meta = meta == nil ? nil : meta
|
|
13165
|
+
@mfa = mfa == nil ? nil : mfa
|
|
13166
|
+
@rate_limit = rate_limit == nil ? nil : rate_limit
|
|
13167
|
+
end
|
|
13168
|
+
|
|
13169
|
+
def to_json(options = {})
|
|
13170
|
+
hash = {}
|
|
13171
|
+
self.instance_variables.each do |var|
|
|
13172
|
+
hash[var.id2name.delete_prefix("@")] = self.instance_variable_get var
|
|
13173
|
+
end
|
|
13174
|
+
hash.to_json
|
|
13175
|
+
end
|
|
13176
|
+
end
|
|
13177
|
+
|
|
12994
13178
|
# OrganizationHistoryRecord records the state of an Organization at a given point in time,
|
|
12995
13179
|
# where every change to an Organization produces an OrganizationHistoryRecord.
|
|
12996
13180
|
class OrganizationHistoryRecord
|
|
@@ -13021,6 +13205,48 @@ module SDM
|
|
|
13021
13205
|
end
|
|
13022
13206
|
end
|
|
13023
13207
|
|
|
13208
|
+
class OrganizationTestMFAResponse
|
|
13209
|
+
# Rate limit information.
|
|
13210
|
+
attr_accessor :rate_limit
|
|
13211
|
+
|
|
13212
|
+
def initialize(
|
|
13213
|
+
rate_limit: nil
|
|
13214
|
+
)
|
|
13215
|
+
@rate_limit = rate_limit == nil ? nil : rate_limit
|
|
13216
|
+
end
|
|
13217
|
+
|
|
13218
|
+
def to_json(options = {})
|
|
13219
|
+
hash = {}
|
|
13220
|
+
self.instance_variables.each do |var|
|
|
13221
|
+
hash[var.id2name.delete_prefix("@")] = self.instance_variable_get var
|
|
13222
|
+
end
|
|
13223
|
+
hash.to_json
|
|
13224
|
+
end
|
|
13225
|
+
end
|
|
13226
|
+
|
|
13227
|
+
class OrganizationUpdateMFAResponse
|
|
13228
|
+
# The updated MFA configuration.
|
|
13229
|
+
attr_accessor :mfa
|
|
13230
|
+
# Rate limit information.
|
|
13231
|
+
attr_accessor :rate_limit
|
|
13232
|
+
|
|
13233
|
+
def initialize(
|
|
13234
|
+
mfa: nil,
|
|
13235
|
+
rate_limit: nil
|
|
13236
|
+
)
|
|
13237
|
+
@mfa = mfa == nil ? nil : mfa
|
|
13238
|
+
@rate_limit = rate_limit == nil ? nil : rate_limit
|
|
13239
|
+
end
|
|
13240
|
+
|
|
13241
|
+
def to_json(options = {})
|
|
13242
|
+
hash = {}
|
|
13243
|
+
self.instance_variables.each do |var|
|
|
13244
|
+
hash[var.id2name.delete_prefix("@")] = self.instance_variable_get var
|
|
13245
|
+
end
|
|
13246
|
+
hash.to_json
|
|
13247
|
+
end
|
|
13248
|
+
end
|
|
13249
|
+
|
|
13024
13250
|
# PeeringGroups are the building blocks used for explicit network topology making.
|
|
13025
13251
|
# They may be linked to other peering groups. Sets of PeeringGroupResource and PeeringGroupNode can be attached to a peering group.
|
|
13026
13252
|
class PeeringGroup
|
data/lib/strongdm.rb
CHANGED
|
@@ -31,7 +31,7 @@ module SDM #:nodoc:
|
|
|
31
31
|
DEFAULT_RETRY_FACTOR = 1.6
|
|
32
32
|
DEFAULT_RETRY_JITTER = 0.2
|
|
33
33
|
API_VERSION = "2025-04-14"
|
|
34
|
-
USER_AGENT = "strongdm-sdk-ruby/17.
|
|
34
|
+
USER_AGENT = "strongdm-sdk-ruby/17.4.0"
|
|
35
35
|
private_constant :DEFAULT_BASE_RETRY_DELAY, :DEFAULT_MAX_RETRY_DELAY, :DEFAULT_RETRY_FACTOR, :DEFAULT_RETRY_JITTER, :API_VERSION, :USER_AGENT
|
|
36
36
|
|
|
37
37
|
# Creates a new strongDM API client.
|
|
@@ -102,6 +102,7 @@ module SDM #:nodoc:
|
|
|
102
102
|
@nodes = Nodes.new(@channel, self)
|
|
103
103
|
@nodes_history = NodesHistory.new(@channel, self)
|
|
104
104
|
@organization_history = OrganizationHistory.new(@channel, self)
|
|
105
|
+
@organizations = Organizations.new(@channel, self)
|
|
105
106
|
@peering_group_nodes = PeeringGroupNodes.new(@channel, self)
|
|
106
107
|
@peering_group_peers = PeeringGroupPeers.new(@channel, self)
|
|
107
108
|
@peering_group_resources = PeeringGroupResources.new(@channel, self)
|
|
@@ -430,6 +431,14 @@ module SDM #:nodoc:
|
|
|
430
431
|
#
|
|
431
432
|
# See {OrganizationHistory}.
|
|
432
433
|
attr_reader :organization_history
|
|
434
|
+
# Organizations exposes organization configuration. Most RPCs remain private to the
|
|
435
|
+
# go_private SDK; public MFA management is exposed to all public SDK targets.
|
|
436
|
+
# The terraform-provider target is opted out at the service level because the
|
|
437
|
+
# provider's data-source generator assumes every service has a List RPC; MFA is
|
|
438
|
+
# instead surfaced via a hand-written resource template.
|
|
439
|
+
#
|
|
440
|
+
# See {Organizations}.
|
|
441
|
+
attr_reader :organizations
|
|
433
442
|
# PeeringGroupNodes provides the building blocks necessary to obtain attach a node to a peering group.
|
|
434
443
|
#
|
|
435
444
|
# See {PeeringGroupNodes}.
|
|
@@ -617,6 +626,7 @@ module SDM #:nodoc:
|
|
|
617
626
|
@nodes = Nodes.new(@channel, self)
|
|
618
627
|
@nodes_history = NodesHistory.new(@channel, self)
|
|
619
628
|
@organization_history = OrganizationHistory.new(@channel, self)
|
|
629
|
+
@organizations = Organizations.new(@channel, self)
|
|
620
630
|
@peering_group_nodes = PeeringGroupNodes.new(@channel, self)
|
|
621
631
|
@peering_group_peers = PeeringGroupPeers.new(@channel, self)
|
|
622
632
|
@peering_group_resources = PeeringGroupResources.new(@channel, self)
|
data/lib/svc.rb
CHANGED
|
@@ -5245,6 +5245,126 @@ module SDM #:nodoc:
|
|
|
5245
5245
|
end
|
|
5246
5246
|
end
|
|
5247
5247
|
|
|
5248
|
+
# Organizations exposes organization configuration. Most RPCs remain private to the
|
|
5249
|
+
# go_private SDK; public MFA management is exposed to all public SDK targets.
|
|
5250
|
+
# The terraform-provider target is opted out at the service level because the
|
|
5251
|
+
# provider's data-source generator assumes every service has a List RPC; MFA is
|
|
5252
|
+
# instead surfaced via a hand-written resource template.
|
|
5253
|
+
#
|
|
5254
|
+
# See {Organization}.
|
|
5255
|
+
class Organizations
|
|
5256
|
+
extend Gem::Deprecate
|
|
5257
|
+
|
|
5258
|
+
def initialize(channel, parent)
|
|
5259
|
+
begin
|
|
5260
|
+
@stub = V1::Organizations::Stub.new(nil, nil, channel_override: channel)
|
|
5261
|
+
rescue => exception
|
|
5262
|
+
raise Plumbing::convert_error_to_porcelain(exception)
|
|
5263
|
+
end
|
|
5264
|
+
@parent = parent
|
|
5265
|
+
end
|
|
5266
|
+
|
|
5267
|
+
# GetMFA gets the organization's MFA configuration.
|
|
5268
|
+
def get_mfa(
|
|
5269
|
+
deadline: nil
|
|
5270
|
+
)
|
|
5271
|
+
req = V1::OrganizationGetMFARequest.new()
|
|
5272
|
+
|
|
5273
|
+
# Execute before interceptor hooks
|
|
5274
|
+
req = @parent.interceptor.execute_before("Organizations.GetMFA", self, req)
|
|
5275
|
+
tries = 0
|
|
5276
|
+
plumbing_response = nil
|
|
5277
|
+
loop do
|
|
5278
|
+
begin
|
|
5279
|
+
plumbing_response = @stub.get_mfa(req, metadata: @parent.get_metadata("Organizations.GetMFA", req), deadline: deadline)
|
|
5280
|
+
rescue => exception
|
|
5281
|
+
if (@parent.shouldRetry(tries, exception, deadline))
|
|
5282
|
+
tries + +sleep(@parent.exponentialBackoff(tries, deadline))
|
|
5283
|
+
next
|
|
5284
|
+
end
|
|
5285
|
+
raise Plumbing::convert_error_to_porcelain(exception)
|
|
5286
|
+
end
|
|
5287
|
+
break
|
|
5288
|
+
end
|
|
5289
|
+
|
|
5290
|
+
# Execute after interceptor hooks
|
|
5291
|
+
plumbing_response = @parent.interceptor.execute_after("Organizations.GetMFA", self, req, plumbing_response)
|
|
5292
|
+
|
|
5293
|
+
resp = OrganizationGetMFAResponse.new()
|
|
5294
|
+
resp.meta = Plumbing::convert_get_response_metadata_to_porcelain(plumbing_response.meta)
|
|
5295
|
+
resp.mfa = Plumbing::convert_mfa_config_to_porcelain(plumbing_response.mfa)
|
|
5296
|
+
resp.rate_limit = Plumbing::convert_rate_limit_metadata_to_porcelain(plumbing_response.rate_limit)
|
|
5297
|
+
resp
|
|
5298
|
+
end
|
|
5299
|
+
|
|
5300
|
+
# UpdateMFA updates the organization's MFA configuration.
|
|
5301
|
+
def update_mfa(
|
|
5302
|
+
mfa,
|
|
5303
|
+
deadline: nil
|
|
5304
|
+
)
|
|
5305
|
+
req = V1::OrganizationUpdateMFARequest.new()
|
|
5306
|
+
|
|
5307
|
+
req.mfa = Plumbing::convert_mfa_config_to_plumbing(mfa)
|
|
5308
|
+
# Execute before interceptor hooks
|
|
5309
|
+
req = @parent.interceptor.execute_before("Organizations.UpdateMFA", self, req)
|
|
5310
|
+
tries = 0
|
|
5311
|
+
plumbing_response = nil
|
|
5312
|
+
loop do
|
|
5313
|
+
begin
|
|
5314
|
+
plumbing_response = @stub.update_mfa(req, metadata: @parent.get_metadata("Organizations.UpdateMFA", req), deadline: deadline)
|
|
5315
|
+
rescue => exception
|
|
5316
|
+
if (@parent.shouldRetry(tries, exception, deadline))
|
|
5317
|
+
tries + +sleep(@parent.exponentialBackoff(tries, deadline))
|
|
5318
|
+
next
|
|
5319
|
+
end
|
|
5320
|
+
raise Plumbing::convert_error_to_porcelain(exception)
|
|
5321
|
+
end
|
|
5322
|
+
break
|
|
5323
|
+
end
|
|
5324
|
+
|
|
5325
|
+
# Execute after interceptor hooks
|
|
5326
|
+
plumbing_response = @parent.interceptor.execute_after("Organizations.UpdateMFA", self, req, plumbing_response)
|
|
5327
|
+
|
|
5328
|
+
resp = OrganizationUpdateMFAResponse.new()
|
|
5329
|
+
resp.mfa = Plumbing::convert_mfa_config_to_porcelain(plumbing_response.mfa)
|
|
5330
|
+
resp.rate_limit = Plumbing::convert_rate_limit_metadata_to_porcelain(plumbing_response.rate_limit)
|
|
5331
|
+
resp
|
|
5332
|
+
end
|
|
5333
|
+
|
|
5334
|
+
# TestMFA validates MFA connectivity without persisting changes.
|
|
5335
|
+
def test_mfa(
|
|
5336
|
+
mfa,
|
|
5337
|
+
deadline: nil
|
|
5338
|
+
)
|
|
5339
|
+
req = V1::OrganizationTestMFARequest.new()
|
|
5340
|
+
|
|
5341
|
+
req.mfa = Plumbing::convert_mfa_config_to_plumbing(mfa)
|
|
5342
|
+
# Execute before interceptor hooks
|
|
5343
|
+
req = @parent.interceptor.execute_before("Organizations.TestMFA", self, req)
|
|
5344
|
+
tries = 0
|
|
5345
|
+
plumbing_response = nil
|
|
5346
|
+
loop do
|
|
5347
|
+
begin
|
|
5348
|
+
plumbing_response = @stub.test_mfa(req, metadata: @parent.get_metadata("Organizations.TestMFA", req), deadline: deadline)
|
|
5349
|
+
rescue => exception
|
|
5350
|
+
if (@parent.shouldRetry(tries, exception, deadline))
|
|
5351
|
+
tries + +sleep(@parent.exponentialBackoff(tries, deadline))
|
|
5352
|
+
next
|
|
5353
|
+
end
|
|
5354
|
+
raise Plumbing::convert_error_to_porcelain(exception)
|
|
5355
|
+
end
|
|
5356
|
+
break
|
|
5357
|
+
end
|
|
5358
|
+
|
|
5359
|
+
# Execute after interceptor hooks
|
|
5360
|
+
plumbing_response = @parent.interceptor.execute_after("Organizations.TestMFA", self, req, plumbing_response)
|
|
5361
|
+
|
|
5362
|
+
resp = OrganizationTestMFAResponse.new()
|
|
5363
|
+
resp.rate_limit = Plumbing::convert_rate_limit_metadata_to_porcelain(plumbing_response.rate_limit)
|
|
5364
|
+
resp
|
|
5365
|
+
end
|
|
5366
|
+
end
|
|
5367
|
+
|
|
5248
5368
|
# PeeringGroupNodes provides the building blocks necessary to obtain attach a node to a peering group.
|
|
5249
5369
|
#
|
|
5250
5370
|
# See {PeeringGroupNode}.
|
|
@@ -7289,6 +7409,7 @@ module SDM #:nodoc:
|
|
|
7289
7409
|
# {KubernetesServiceAccount}
|
|
7290
7410
|
# {KubernetesServiceAccountUserImpersonation}
|
|
7291
7411
|
# {KubernetesUserImpersonation}
|
|
7412
|
+
# {LLM}
|
|
7292
7413
|
# {Maria}
|
|
7293
7414
|
# {MCPGatewayNoAuth}
|
|
7294
7415
|
# {MCPGatewayOAuth}
|
data/lib/version
CHANGED
data/lib/version.rb
CHANGED
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: 17.
|
|
4
|
+
version: 17.4.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- strongDM Team
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2026-04
|
|
11
|
+
date: 2026-05-04 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: grpc
|
|
@@ -81,8 +81,8 @@ files:
|
|
|
81
81
|
- "./.git/logs/HEAD"
|
|
82
82
|
- "./.git/logs/refs/heads/master"
|
|
83
83
|
- "./.git/logs/refs/remotes/origin/HEAD"
|
|
84
|
-
- "./.git/objects/pack/pack-
|
|
85
|
-
- "./.git/objects/pack/pack-
|
|
84
|
+
- "./.git/objects/pack/pack-25c93bdf583e394318001c7011476e3b807b6081.idx"
|
|
85
|
+
- "./.git/objects/pack/pack-25c93bdf583e394318001c7011476e3b807b6081.pack"
|
|
86
86
|
- "./.git/packed-refs"
|
|
87
87
|
- "./.git/refs/heads/master"
|
|
88
88
|
- "./.git/refs/remotes/origin/HEAD"
|
|
@@ -176,6 +176,8 @@ files:
|
|
|
176
176
|
- "./lib/grpc/options_pb.rb"
|
|
177
177
|
- "./lib/grpc/organization_history_pb.rb"
|
|
178
178
|
- "./lib/grpc/organization_history_services_pb.rb"
|
|
179
|
+
- "./lib/grpc/organizations_pb.rb"
|
|
180
|
+
- "./lib/grpc/organizations_services_pb.rb"
|
|
179
181
|
- "./lib/grpc/peering_group_nodes_pb.rb"
|
|
180
182
|
- "./lib/grpc/peering_group_nodes_services_pb.rb"
|
|
181
183
|
- "./lib/grpc/peering_group_peers_pb.rb"
|