1// Copyright 2023 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.connectors.v1; 18 19import "google/api/annotations.proto"; 20import "google/api/client.proto"; 21import "google/cloud/connectors/v1/common.proto"; 22import "google/cloud/connectors/v1/connection.proto"; 23import "google/cloud/connectors/v1/connector.proto"; 24import "google/cloud/connectors/v1/connector_version.proto"; 25import "google/cloud/connectors/v1/provider.proto"; 26import "google/cloud/connectors/v1/runtime.proto"; 27import "google/cloud/connectors/v1/settings.proto"; 28import "google/longrunning/operations.proto"; 29import "google/protobuf/empty.proto"; 30 31option go_package = "cloud.google.com/go/connectors/apiv1/connectorspb;connectorspb"; 32option java_multiple_files = true; 33option java_outer_classname = "ConnectorsServiceProto"; 34option java_package = "com.google.cloud.connectors.v1"; 35 36// Connectors is the interface for managing Connectors. 37service Connectors { 38 option (google.api.default_host) = "connectors.googleapis.com"; 39 option (google.api.oauth_scopes) = 40 "https://www.googleapis.com/auth/cloud-platform"; 41 42 // Lists Connections in a given project and location. 43 rpc ListConnections(ListConnectionsRequest) 44 returns (ListConnectionsResponse) { 45 option (google.api.http) = { 46 get: "/v1/{parent=projects/*/locations/*}/connections" 47 }; 48 option (google.api.method_signature) = "parent"; 49 } 50 51 // Gets details of a single Connection. 52 rpc GetConnection(GetConnectionRequest) returns (Connection) { 53 option (google.api.http) = { 54 get: "/v1/{name=projects/*/locations/*/connections/*}" 55 }; 56 option (google.api.method_signature) = "name"; 57 } 58 59 // Creates a new Connection in a given project and location. 60 rpc CreateConnection(CreateConnectionRequest) 61 returns (google.longrunning.Operation) { 62 option (google.api.http) = { 63 post: "/v1/{parent=projects/*/locations/*}/connections" 64 body: "connection" 65 }; 66 option (google.api.method_signature) = "parent,connection,connection_id"; 67 option (google.longrunning.operation_info) = { 68 response_type: "Connection" 69 metadata_type: "OperationMetadata" 70 }; 71 } 72 73 // Updates the parameters of a single Connection. 74 rpc UpdateConnection(UpdateConnectionRequest) 75 returns (google.longrunning.Operation) { 76 option (google.api.http) = { 77 patch: "/v1/{connection.name=projects/*/locations/*/connections/*}" 78 body: "connection" 79 }; 80 option (google.api.method_signature) = "connection,update_mask"; 81 option (google.longrunning.operation_info) = { 82 response_type: "Connection" 83 metadata_type: "OperationMetadata" 84 }; 85 } 86 87 // Deletes a single Connection. 88 rpc DeleteConnection(DeleteConnectionRequest) 89 returns (google.longrunning.Operation) { 90 option (google.api.http) = { 91 delete: "/v1/{name=projects/*/locations/*/connections/*}" 92 }; 93 option (google.api.method_signature) = "name"; 94 option (google.longrunning.operation_info) = { 95 response_type: "google.protobuf.Empty" 96 metadata_type: "OperationMetadata" 97 }; 98 } 99 100 // Lists Providers in a given project and location. 101 rpc ListProviders(ListProvidersRequest) returns (ListProvidersResponse) { 102 option (google.api.http) = { 103 get: "/v1/{parent=projects/*/locations/*}/providers" 104 }; 105 option (google.api.method_signature) = "parent"; 106 } 107 108 // Gets details of a provider. 109 rpc GetProvider(GetProviderRequest) returns (Provider) { 110 option (google.api.http) = { 111 get: "/v1/{name=projects/*/locations/*/providers/*}" 112 }; 113 option (google.api.method_signature) = "name"; 114 } 115 116 // Lists Connectors in a given project and location. 117 rpc ListConnectors(ListConnectorsRequest) returns (ListConnectorsResponse) { 118 option (google.api.http) = { 119 get: "/v1/{parent=projects/*/locations/*/providers/*}/connectors" 120 }; 121 option (google.api.method_signature) = "parent"; 122 } 123 124 // Gets details of a single Connector. 125 rpc GetConnector(GetConnectorRequest) returns (Connector) { 126 option (google.api.http) = { 127 get: "/v1/{name=projects/*/locations/*/providers/*/connectors/*}" 128 }; 129 option (google.api.method_signature) = "name"; 130 } 131 132 // Lists Connector Versions in a given project and location. 133 rpc ListConnectorVersions(ListConnectorVersionsRequest) 134 returns (ListConnectorVersionsResponse) { 135 option (google.api.http) = { 136 get: "/v1/{parent=projects/*/locations/*/providers/*/connectors/*}/versions" 137 }; 138 option (google.api.method_signature) = "parent"; 139 } 140 141 // Gets details of a single connector version. 142 rpc GetConnectorVersion(GetConnectorVersionRequest) 143 returns (ConnectorVersion) { 144 option (google.api.http) = { 145 get: "/v1/{name=projects/*/locations/*/providers/*/connectors/*/versions/*}" 146 }; 147 option (google.api.method_signature) = "name"; 148 } 149 150 // Gets schema metadata of a connection. 151 // SchemaMetadata is a singleton resource for each connection. 152 rpc GetConnectionSchemaMetadata(GetConnectionSchemaMetadataRequest) 153 returns (ConnectionSchemaMetadata) { 154 option (google.api.http) = { 155 get: "/v1/{name=projects/*/locations/*/connections/*/connectionSchemaMetadata}" 156 }; 157 option (google.api.method_signature) = "name"; 158 } 159 160 // Refresh runtime schema of a connection. 161 rpc RefreshConnectionSchemaMetadata(RefreshConnectionSchemaMetadataRequest) 162 returns (google.longrunning.Operation) { 163 option (google.api.http) = { 164 post: "/v1/{name=projects/*/locations/*/connections/*/connectionSchemaMetadata}:refresh" 165 body: "*" 166 }; 167 option (google.api.method_signature) = "name"; 168 option (google.longrunning.operation_info) = { 169 response_type: "ConnectionSchemaMetadata" 170 metadata_type: "OperationMetadata" 171 }; 172 } 173 174 // List schema of a runtime entities filtered by entity name. 175 rpc ListRuntimeEntitySchemas(ListRuntimeEntitySchemasRequest) 176 returns (ListRuntimeEntitySchemasResponse) { 177 option (google.api.http) = { 178 get: "/v1/{parent=projects/*/locations/*/connections/*}/runtimeEntitySchemas" 179 }; 180 option (google.api.method_signature) = "parent"; 181 } 182 183 // List schema of a runtime actions filtered by action name. 184 rpc ListRuntimeActionSchemas(ListRuntimeActionSchemasRequest) 185 returns (ListRuntimeActionSchemasResponse) { 186 option (google.api.http) = { 187 get: "/v1/{parent=projects/*/locations/*/connections/*}/runtimeActionSchemas" 188 }; 189 option (google.api.method_signature) = "parent"; 190 } 191 192 // Gets the runtimeConfig of a location. 193 // RuntimeConfig is a singleton resource for each location. 194 rpc GetRuntimeConfig(GetRuntimeConfigRequest) returns (RuntimeConfig) { 195 option (google.api.http) = { 196 get: "/v1/{name=projects/*/locations/*/runtimeConfig}" 197 }; 198 option (google.api.method_signature) = "name"; 199 } 200 201 // GetGlobalSettings gets settings of a project. 202 // GlobalSettings is a singleton resource. 203 rpc GetGlobalSettings(GetGlobalSettingsRequest) returns (Settings) { 204 option (google.api.http) = { 205 get: "/v1/{name=projects/*/locations/global/settings}" 206 }; 207 option (google.api.method_signature) = "name"; 208 } 209} 210