@@ -24,6 +24,9 @@ service EgressRulesService {
2424 rpc ListEgressRulesByAgent (ListEgressRulesByAgentRequest ) returns (ListEgressRulesByAgentResponse );
2525 rpc ListEgressRulesByEnvironment (ListEgressRulesByEnvironmentRequest ) returns (ListEgressRulesByEnvironmentResponse );
2626 rpc CountRulesReferencingSecret (CountRulesReferencingSecretRequest ) returns (CountRulesReferencingSecretResponse );
27+ rpc CountRulesReferencingPrivateResource (CountRulesReferencingPrivateResourceRequest ) returns (CountRulesReferencingPrivateResourceResponse );
28+ rpc ListMediatedPrivateResources (ListMediatedPrivateResourcesRequest ) returns (ListMediatedPrivateResourcesResponse );
29+ rpc ListAttachedRuleDomains (ListAttachedRuleDomainsRequest ) returns (ListAttachedRuleDomainsResponse );
2730}
2831
2932// Metadata shared by egress resources.
@@ -57,6 +60,15 @@ message EgressRuleMatcher {
5760 repeated string methods = 3 ;
5861 // Glob over the request path. Empty means any path.
5962 string path_pattern = 4 ;
63+ string private_resource_id = 5 ;
64+ }
65+
66+ message EgressRuleUpstreamTls {
67+ string server_name = 1 ;
68+ oneof trust {
69+ string ca_bundle_secret_id = 2 ;
70+ bool insecure_skip_verify = 3 ;
71+ }
6072}
6173
6274// Header credential injected by the egress gateway.
@@ -83,6 +95,7 @@ message EgressRule {
8395 string description = 4 ;
8496 EgressRuleMatcher matcher = 5 ;
8597 EgressRuleEffect effect = 6 ;
98+ optional EgressRuleUpstreamTls upstream_tls = 7 ;
8699}
87100
88101// Attachment binding an egress rule to an agent or environment.
@@ -102,6 +115,7 @@ message CreateEgressRuleRequest {
102115 string description = 3 ;
103116 EgressRuleMatcher matcher = 4 ;
104117 EgressRuleEffect effect = 5 ;
118+ optional EgressRuleUpstreamTls upstream_tls = 6 ;
105119}
106120
107121message CreateEgressRuleResponse {
@@ -116,10 +130,18 @@ message GetEgressRuleResponse {
116130 EgressRule egress_rule = 1 ;
117131}
118132
133+ enum EgressRuleTargetKind {
134+ EGRESS_RULE_TARGET_KIND_UNSPECIFIED = 0 ;
135+ EGRESS_RULE_TARGET_KIND_PUBLIC = 1 ;
136+ EGRESS_RULE_TARGET_KIND_PRIVATE = 2 ;
137+ }
138+
119139message ListEgressRulesRequest {
120140 string organization_id = 1 ;
121141 int32 page_size = 2 ;
122142 string page_token = 3 ;
143+ optional string private_resource_id = 4 ;
144+ optional EgressRuleTargetKind target_kind = 5 ;
123145}
124146
125147message ListEgressRulesResponse {
@@ -133,6 +155,7 @@ message UpdateEgressRuleRequest {
133155 optional string description = 3 ;
134156 optional EgressRuleMatcher matcher = 4 ;
135157 optional EgressRuleEffect effect = 5 ;
158+ optional EgressRuleUpstreamTls upstream_tls = 6 ;
136159}
137160
138161message UpdateEgressRuleResponse {
@@ -179,12 +202,24 @@ message ListEgressRuleAttachmentsResponse {
179202 string next_page_token = 2 ;
180203}
181204
205+ enum EgressPrivateResourceProtocol {
206+ EGRESS_PRIVATE_RESOURCE_PROTOCOL_UNSPECIFIED = 0 ;
207+ EGRESS_PRIVATE_RESOURCE_PROTOCOL_HTTP = 1 ;
208+ EGRESS_PRIVATE_RESOURCE_PROTOCOL_HTTPS = 2 ;
209+ }
210+
211+ message PrivateResourceInfo {
212+ string intercept_host = 1 ;
213+ EgressPrivateResourceProtocol protocol = 2 ;
214+ }
215+
182216message ListEgressRulesByAgentRequest {
183217 string agent_id = 1 ;
184218}
185219
186220message ListEgressRulesByAgentResponse {
187221 repeated EgressRule egress_rules = 1 ;
222+ map <string , PrivateResourceInfo > private_resources = 2 ;
188223}
189224
190225message ListEgressRulesByEnvironmentRequest {
@@ -193,6 +228,7 @@ message ListEgressRulesByEnvironmentRequest {
193228
194229message ListEgressRulesByEnvironmentResponse {
195230 repeated EgressRule egress_rules = 1 ;
231+ map <string , PrivateResourceInfo > private_resources = 2 ;
196232}
197233
198234message CountRulesReferencingSecretRequest {
@@ -203,3 +239,37 @@ message CountRulesReferencingSecretResponse {
203239 int32 count = 1 ;
204240 repeated string egress_rule_ids = 2 ;
205241}
242+
243+ message CountRulesReferencingPrivateResourceRequest {
244+ string private_resource_id = 1 ;
245+ }
246+
247+ message CountRulesReferencingPrivateResourceResponse {
248+ int32 count = 1 ;
249+ repeated string egress_rule_ids = 2 ;
250+ }
251+
252+ message ListMediatedPrivateResourcesRequest {
253+ string organization_id = 1 ;
254+ }
255+
256+ message ListMediatedPrivateResourcesResponse {
257+ repeated string private_resource_ids = 1 ;
258+ }
259+
260+ message AttachedRuleDomain {
261+ string egress_rule_id = 1 ;
262+ string domain_pattern = 2 ;
263+ repeated int32 ports = 3 ;
264+ }
265+
266+ message ListAttachedRuleDomainsRequest {
267+ oneof principal {
268+ string agent_id = 1 ;
269+ string environment_id = 2 ;
270+ }
271+ }
272+
273+ message ListAttachedRuleDomainsResponse {
274+ repeated AttachedRuleDomain domains = 1 ;
275+ }
0 commit comments