1// Copyright 2022 Google LLC 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 15syntax = "proto3"; 16 17package google.cloud.networksecurity.v1; 18 19import "google/api/annotations.proto"; 20import "google/api/client.proto"; 21import "google/cloud/networksecurity/v1/authorization_policy.proto"; 22import "google/cloud/networksecurity/v1/client_tls_policy.proto"; 23import "google/cloud/networksecurity/v1/server_tls_policy.proto"; 24import "google/longrunning/operations.proto"; 25 26option csharp_namespace = "Google.Cloud.NetworkSecurity.V1"; 27option go_package = "cloud.google.com/go/networksecurity/apiv1/networksecuritypb;networksecuritypb"; 28option java_multiple_files = true; 29option java_package = "com.google.cloud.networksecurity.v1"; 30option php_namespace = "Google\\Cloud\\NetworkSecurity\\V1"; 31option ruby_package = "Google::Cloud::NetworkSecurity::V1"; 32 33// Network Security API provides resources to configure authentication and 34// authorization policies. Refer to per API resource documentation for more 35// information. 36service NetworkSecurity { 37 option (google.api.default_host) = "networksecurity.googleapis.com"; 38 option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/cloud-platform"; 39 40 // Lists AuthorizationPolicies in a given project and location. 41 rpc ListAuthorizationPolicies(ListAuthorizationPoliciesRequest) returns (ListAuthorizationPoliciesResponse) { 42 option (google.api.http) = { 43 get: "/v1/{parent=projects/*/locations/*}/authorizationPolicies" 44 }; 45 option (google.api.method_signature) = "parent"; 46 } 47 48 // Gets details of a single AuthorizationPolicy. 49 rpc GetAuthorizationPolicy(GetAuthorizationPolicyRequest) returns (AuthorizationPolicy) { 50 option (google.api.http) = { 51 get: "/v1/{name=projects/*/locations/*/authorizationPolicies/*}" 52 }; 53 option (google.api.method_signature) = "name"; 54 } 55 56 // Creates a new AuthorizationPolicy in a given project and location. 57 rpc CreateAuthorizationPolicy(CreateAuthorizationPolicyRequest) returns (google.longrunning.Operation) { 58 option (google.api.http) = { 59 post: "/v1/{parent=projects/*/locations/*}/authorizationPolicies" 60 body: "authorization_policy" 61 }; 62 option (google.api.method_signature) = "parent,authorization_policy,authorization_policy_id"; 63 option (google.longrunning.operation_info) = { 64 response_type: "AuthorizationPolicy" 65 metadata_type: "google.cloud.networksecurity.v1.OperationMetadata" 66 }; 67 } 68 69 // Updates the parameters of a single AuthorizationPolicy. 70 rpc UpdateAuthorizationPolicy(UpdateAuthorizationPolicyRequest) returns (google.longrunning.Operation) { 71 option (google.api.http) = { 72 patch: "/v1/{authorization_policy.name=projects/*/locations/*/authorizationPolicies/*}" 73 body: "authorization_policy" 74 }; 75 option (google.api.method_signature) = "authorization_policy,update_mask"; 76 option (google.longrunning.operation_info) = { 77 response_type: "AuthorizationPolicy" 78 metadata_type: "google.cloud.networksecurity.v1.OperationMetadata" 79 }; 80 } 81 82 // Deletes a single AuthorizationPolicy. 83 rpc DeleteAuthorizationPolicy(DeleteAuthorizationPolicyRequest) returns (google.longrunning.Operation) { 84 option (google.api.http) = { 85 delete: "/v1/{name=projects/*/locations/*/authorizationPolicies/*}" 86 }; 87 option (google.api.method_signature) = "name"; 88 option (google.longrunning.operation_info) = { 89 response_type: "google.protobuf.Empty" 90 metadata_type: "google.cloud.networksecurity.v1.OperationMetadata" 91 }; 92 } 93 94 // Lists ServerTlsPolicies in a given project and location. 95 rpc ListServerTlsPolicies(ListServerTlsPoliciesRequest) returns (ListServerTlsPoliciesResponse) { 96 option (google.api.http) = { 97 get: "/v1/{parent=projects/*/locations/*}/serverTlsPolicies" 98 }; 99 option (google.api.method_signature) = "parent"; 100 } 101 102 // Gets details of a single ServerTlsPolicy. 103 rpc GetServerTlsPolicy(GetServerTlsPolicyRequest) returns (ServerTlsPolicy) { 104 option (google.api.http) = { 105 get: "/v1/{name=projects/*/locations/*/serverTlsPolicies/*}" 106 }; 107 option (google.api.method_signature) = "name"; 108 } 109 110 // Creates a new ServerTlsPolicy in a given project and location. 111 rpc CreateServerTlsPolicy(CreateServerTlsPolicyRequest) returns (google.longrunning.Operation) { 112 option (google.api.http) = { 113 post: "/v1/{parent=projects/*/locations/*}/serverTlsPolicies" 114 body: "server_tls_policy" 115 }; 116 option (google.api.method_signature) = "parent,server_tls_policy,server_tls_policy_id"; 117 option (google.longrunning.operation_info) = { 118 response_type: "ServerTlsPolicy" 119 metadata_type: "google.cloud.networksecurity.v1.OperationMetadata" 120 }; 121 } 122 123 // Updates the parameters of a single ServerTlsPolicy. 124 rpc UpdateServerTlsPolicy(UpdateServerTlsPolicyRequest) returns (google.longrunning.Operation) { 125 option (google.api.http) = { 126 patch: "/v1/{server_tls_policy.name=projects/*/locations/*/serverTlsPolicies/*}" 127 body: "server_tls_policy" 128 }; 129 option (google.api.method_signature) = "server_tls_policy,update_mask"; 130 option (google.longrunning.operation_info) = { 131 response_type: "ServerTlsPolicy" 132 metadata_type: "google.cloud.networksecurity.v1.OperationMetadata" 133 }; 134 } 135 136 // Deletes a single ServerTlsPolicy. 137 rpc DeleteServerTlsPolicy(DeleteServerTlsPolicyRequest) returns (google.longrunning.Operation) { 138 option (google.api.http) = { 139 delete: "/v1/{name=projects/*/locations/*/serverTlsPolicies/*}" 140 }; 141 option (google.api.method_signature) = "name"; 142 option (google.longrunning.operation_info) = { 143 response_type: "google.protobuf.Empty" 144 metadata_type: "google.cloud.networksecurity.v1.OperationMetadata" 145 }; 146 } 147 148 // Lists ClientTlsPolicies in a given project and location. 149 rpc ListClientTlsPolicies(ListClientTlsPoliciesRequest) returns (ListClientTlsPoliciesResponse) { 150 option (google.api.http) = { 151 get: "/v1/{parent=projects/*/locations/*}/clientTlsPolicies" 152 }; 153 option (google.api.method_signature) = "parent"; 154 } 155 156 // Gets details of a single ClientTlsPolicy. 157 rpc GetClientTlsPolicy(GetClientTlsPolicyRequest) returns (ClientTlsPolicy) { 158 option (google.api.http) = { 159 get: "/v1/{name=projects/*/locations/*/clientTlsPolicies/*}" 160 }; 161 option (google.api.method_signature) = "name"; 162 } 163 164 // Creates a new ClientTlsPolicy in a given project and location. 165 rpc CreateClientTlsPolicy(CreateClientTlsPolicyRequest) returns (google.longrunning.Operation) { 166 option (google.api.http) = { 167 post: "/v1/{parent=projects/*/locations/*}/clientTlsPolicies" 168 body: "client_tls_policy" 169 }; 170 option (google.api.method_signature) = "parent,client_tls_policy,client_tls_policy_id"; 171 option (google.longrunning.operation_info) = { 172 response_type: "ClientTlsPolicy" 173 metadata_type: "google.cloud.networksecurity.v1.OperationMetadata" 174 }; 175 } 176 177 // Updates the parameters of a single ClientTlsPolicy. 178 rpc UpdateClientTlsPolicy(UpdateClientTlsPolicyRequest) returns (google.longrunning.Operation) { 179 option (google.api.http) = { 180 patch: "/v1/{client_tls_policy.name=projects/*/locations/*/clientTlsPolicies/*}" 181 body: "client_tls_policy" 182 }; 183 option (google.api.method_signature) = "client_tls_policy,update_mask"; 184 option (google.longrunning.operation_info) = { 185 response_type: "ClientTlsPolicy" 186 metadata_type: "google.cloud.networksecurity.v1.OperationMetadata" 187 }; 188 } 189 190 // Deletes a single ClientTlsPolicy. 191 rpc DeleteClientTlsPolicy(DeleteClientTlsPolicyRequest) returns (google.longrunning.Operation) { 192 option (google.api.http) = { 193 delete: "/v1/{name=projects/*/locations/*/clientTlsPolicies/*}" 194 }; 195 option (google.api.method_signature) = "name"; 196 option (google.longrunning.operation_info) = { 197 response_type: "google.protobuf.Empty" 198 metadata_type: "google.cloud.networksecurity.v1.OperationMetadata" 199 }; 200 } 201} 202