feat: release public preview Developer Connect client

PiperOrigin-RevId: 636308794
This commit is contained in:
Google APIs 2024-05-22 15:12:04 -07:00 committed by Copybara-Service
parent 5b85f37d8d
commit 117ea07cb6
4 changed files with 1413 additions and 0 deletions

View file

@ -0,0 +1,395 @@
# This file was automatically generated by BuildFileGenerator
# https://github.com/googleapis/rules_gapic/tree/master/bazel
# Most of the manual changes to this file will be overwritten.
# It's **only** allowed to change the following rule attribute values:
# - names of *_gapic_assembly_* rules
# - certain parameters of *_gapic_library rules, including but not limited to:
# * extra_protoc_parameters
# * extra_protoc_file_parameters
# The complete list of preserved parameters can be found in the source code.
# buildifier: disable=load-on-top
# This is an API workspace, having public visibility by default makes perfect sense.
package(default_visibility = ["//visibility:public"])
##############################################################################
# Common
##############################################################################
# buildifier: disable=same-origin-load
load("@com_google_googleapis_imports//:imports.bzl", "proto_library_with_info")
load("@rules_proto//proto:defs.bzl", "proto_library")
proto_library(
name = "developerconnect_proto",
srcs = [
"developer_connect.proto",
],
deps = [
"//google/api:annotations_proto",
"//google/api:client_proto",
"//google/api:field_behavior_proto",
"//google/api:field_info_proto",
"//google/api:resource_proto",
"//google/longrunning:operations_proto",
"@com_google_protobuf//:empty_proto",
"@com_google_protobuf//:field_mask_proto",
"@com_google_protobuf//:timestamp_proto",
],
)
proto_library_with_info(
name = "developerconnect_proto_with_info",
deps = [
":developerconnect_proto",
"//google/cloud/location:location_proto",
"//google/cloud:common_resources_proto",
],
)
##############################################################################
# Java
##############################################################################
# buildifier: disable=same-origin-load
load(
"@com_google_googleapis_imports//:imports.bzl",
"java_gapic_assembly_gradle_pkg",
"java_gapic_library",
"java_gapic_test",
"java_grpc_library",
"java_proto_library",
)
java_proto_library(
name = "developerconnect_java_proto",
deps = [":developerconnect_proto"],
)
java_grpc_library(
name = "developerconnect_java_grpc",
srcs = [":developerconnect_proto"],
deps = [":developerconnect_java_proto"],
)
java_gapic_library(
name = "developerconnect_java_gapic",
srcs = [":developerconnect_proto_with_info"],
gapic_yaml = None,
grpc_service_config = "developerconnect_v1_grpc_service_config.json",
rest_numeric_enums = True,
service_yaml = "developerconnect_v1.yaml",
test_deps = [
"//google/cloud/location:location_java_grpc",
":developerconnect_java_grpc",
],
transport = "grpc+rest",
deps = [
":developerconnect_java_proto",
"//google/api:api_java_proto",
"//google/cloud/location:location_java_proto",
],
)
java_gapic_test(
name = "developerconnect_java_gapic_test_suite",
test_classes = [
"com.google.cloud.developerconnect.v1.DeveloperConnectClientHttpJsonTest",
"com.google.cloud.developerconnect.v1.DeveloperConnectClientTest",
],
runtime_deps = [":developerconnect_java_gapic_test"],
)
# Open Source Packages
java_gapic_assembly_gradle_pkg(
name = "google-cloud-developerconnect-v1-java",
transport = "grpc+rest",
deps = [
":developerconnect_java_gapic",
":developerconnect_java_grpc",
":developerconnect_java_proto",
":developerconnect_proto",
],
include_samples = True,
)
##############################################################################
# Go
##############################################################################
# buildifier: disable=same-origin-load
load(
"@com_google_googleapis_imports//:imports.bzl",
"go_gapic_assembly_pkg",
"go_gapic_library",
"go_proto_library",
)
go_proto_library(
name = "developerconnect_go_proto",
compilers = ["@io_bazel_rules_go//proto:go_grpc"],
importpath = "cloud.google.com/go/developerconnect/apiv1/developerconnectpb",
protos = [":developerconnect_proto"],
deps = [
"//google/api:annotations_go_proto",
"//google/longrunning:longrunning_go_proto",
],
)
go_gapic_library(
name = "developerconnect_go_gapic",
srcs = [":developerconnect_proto_with_info"],
grpc_service_config = "developerconnect_v1_grpc_service_config.json",
importpath = "cloud.google.com/go/developerconnect/apiv1;developerconnect",
metadata = True,
release_level = "beta",
rest_numeric_enums = True,
service_yaml = "developerconnect_v1.yaml",
transport = "grpc+rest",
deps = [
":developerconnect_go_proto",
"//google/cloud/location:location_go_proto",
"//google/longrunning:longrunning_go_proto",
"@com_google_cloud_go_longrunning//:go_default_library",
"@com_google_cloud_go_longrunning//autogen:go_default_library",
],
)
# Open Source Packages
go_gapic_assembly_pkg(
name = "gapi-cloud-developerconnect-v1-go",
deps = [
":developerconnect_go_gapic",
":developerconnect_go_gapic_srcjar-test.srcjar",
":developerconnect_go_gapic_srcjar-metadata.srcjar",
":developerconnect_go_gapic_srcjar-snippets.srcjar",
":developerconnect_go_proto",
],
)
##############################################################################
# Python
##############################################################################
# buildifier: disable=same-origin-load
load(
"@com_google_googleapis_imports//:imports.bzl",
"py_gapic_assembly_pkg",
"py_gapic_library",
"py_test",
)
py_gapic_library(
name = "developerconnect_py_gapic",
srcs = [":developerconnect_proto"],
grpc_service_config = "developerconnect_v1_grpc_service_config.json",
rest_numeric_enums = True,
service_yaml = "developerconnect_v1.yaml",
transport = "grpc+rest",
deps = [
],
)
py_test(
name = "developerconnect_py_gapic_test",
srcs = [
"developerconnect_py_gapic_pytest.py",
"developerconnect_py_gapic_test.py",
],
legacy_create_init = False,
deps = [":developerconnect_py_gapic"],
)
# Open Source Packages
py_gapic_assembly_pkg(
name = "developerconnect-v1-py",
deps = [
":developerconnect_py_gapic",
],
)
##############################################################################
# PHP
##############################################################################
# buildifier: disable=same-origin-load
load(
"@com_google_googleapis_imports//:imports.bzl",
"php_gapic_assembly_pkg",
"php_gapic_library",
"php_proto_library",
)
php_proto_library(
name = "developerconnect_php_proto",
deps = [":developerconnect_proto"],
)
php_gapic_library(
name = "developerconnect_php_gapic",
srcs = [":developerconnect_proto_with_info"],
grpc_service_config = "developerconnect_v1_grpc_service_config.json",
rest_numeric_enums = True,
migration_mode = "NEW_SURFACE_ONLY",
service_yaml = "developerconnect_v1.yaml",
transport = "grpc+rest",
deps = [
":developerconnect_php_proto",
],
)
# Open Source Packages
php_gapic_assembly_pkg(
name = "google-cloud-developerconnect-v1-php",
deps = [
":developerconnect_php_gapic",
":developerconnect_php_proto",
],
)
##############################################################################
# Node.js
##############################################################################
# buildifier: disable=same-origin-load
load(
"@com_google_googleapis_imports//:imports.bzl",
"nodejs_gapic_assembly_pkg",
"nodejs_gapic_library",
)
nodejs_gapic_library(
name = "developerconnect_nodejs_gapic",
package_name = "@google-cloud/developerconnect",
src = ":developerconnect_proto_with_info",
extra_protoc_parameters = ["metadata"],
grpc_service_config = "developerconnect_v1_grpc_service_config.json",
package = "google.cloud.developerconnect.v1",
rest_numeric_enums = True,
service_yaml = "developerconnect_v1.yaml",
transport = "grpc+rest",
deps = [],
)
nodejs_gapic_assembly_pkg(
name = "developerconnect-v1-nodejs",
deps = [
":developerconnect_nodejs_gapic",
":developerconnect_proto",
],
)
##############################################################################
# Ruby
##############################################################################
# buildifier: disable=same-origin-load
load(
"@com_google_googleapis_imports//:imports.bzl",
"ruby_gapic_assembly_pkg",
"ruby_cloud_gapic_library",
"ruby_grpc_library",
"ruby_proto_library",
)
ruby_proto_library(
name = "developerconnect_ruby_proto",
deps = [":developerconnect_proto"],
)
ruby_grpc_library(
name = "developerconnect_ruby_grpc",
srcs = [":developerconnect_proto"],
deps = [":developerconnect_ruby_proto"],
)
ruby_cloud_gapic_library(
name = "developerconnect_ruby_gapic",
srcs = [":developerconnect_proto_with_info"],
extra_protoc_parameters = [
"ruby-cloud-gem-name=google-cloud-developerconnect-v1",
],
grpc_service_config = "developerconnect_v1_grpc_service_config.json",
rest_numeric_enums = True,
service_yaml = "developerconnect_v1.yaml",
transport = "grpc+rest",
deps = [
":developerconnect_ruby_grpc",
":developerconnect_ruby_proto",
],
)
# Open Source Packages
ruby_gapic_assembly_pkg(
name = "google-cloud-developerconnect-v1-ruby",
deps = [
":developerconnect_ruby_gapic",
":developerconnect_ruby_grpc",
":developerconnect_ruby_proto",
],
)
##############################################################################
# C#
##############################################################################
# buildifier: disable=same-origin-load
load(
"@com_google_googleapis_imports//:imports.bzl",
"csharp_gapic_assembly_pkg",
"csharp_gapic_library",
"csharp_grpc_library",
"csharp_proto_library",
)
csharp_proto_library(
name = "developerconnect_csharp_proto",
extra_opts = [],
deps = [":developerconnect_proto"],
)
csharp_grpc_library(
name = "developerconnect_csharp_grpc",
srcs = [":developerconnect_proto"],
deps = [":developerconnect_csharp_proto"],
)
csharp_gapic_library(
name = "developerconnect_csharp_gapic",
srcs = [":developerconnect_proto_with_info"],
common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json",
grpc_service_config = "developerconnect_v1_grpc_service_config.json",
rest_numeric_enums = True,
service_yaml = "developerconnect_v1.yaml",
transport = "grpc+rest",
deps = [
":developerconnect_csharp_grpc",
":developerconnect_csharp_proto",
],
)
# Open Source Packages
csharp_gapic_assembly_pkg(
name = "google-cloud-developerconnect-v1-csharp",
deps = [
":developerconnect_csharp_gapic",
":developerconnect_csharp_grpc",
":developerconnect_csharp_proto",
],
)
##############################################################################
# C++
##############################################################################
# buildifier: disable=same-origin-load
load(
"@com_google_googleapis_imports//:imports.bzl",
"cc_grpc_library",
"cc_proto_library",
)
cc_proto_library(
name = "developerconnect_cc_proto",
deps = [":developerconnect_proto"],
)
cc_grpc_library(
name = "developerconnect_cc_grpc",
srcs = [":developerconnect_proto"],
grpc_only = True,
deps = [":developerconnect_cc_proto"],
)

View file

@ -0,0 +1,888 @@
// Copyright 2024 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
syntax = "proto3";
package google.cloud.developerconnect.v1;
import "google/api/annotations.proto";
import "google/api/client.proto";
import "google/api/field_behavior.proto";
import "google/api/field_info.proto";
import "google/api/resource.proto";
import "google/longrunning/operations.proto";
import "google/protobuf/empty.proto";
import "google/protobuf/field_mask.proto";
import "google/protobuf/timestamp.proto";
option csharp_namespace = "Google.Cloud.DeveloperConnect.V1";
option go_package = "cloud.google.com/go/developerconnect/apiv1/developerconnectpb;developerconnectpb";
option java_multiple_files = true;
option java_outer_classname = "DeveloperConnectProto";
option java_package = "com.google.cloud.developerconnect.v1";
option objc_class_prefix = "DeveloperConnect";
option php_namespace = "Google\\Cloud\\DeveloperConnect\\V1";
option ruby_package = "Google::Cloud::DeveloperConnect::V1";
option (google.api.resource_definition) = {
type: "secretmanager.googleapis.com/SecretVersion"
pattern: "projects/{project}/secrets/{secret}/versions/{secret_version}"
};
// Service describing handlers for resources
service DeveloperConnect {
option (google.api.default_host) = "developerconnect.googleapis.com";
option (google.api.oauth_scopes) =
"https://www.googleapis.com/auth/cloud-platform";
// Lists Connections in a given project and location.
rpc ListConnections(ListConnectionsRequest)
returns (ListConnectionsResponse) {
option (google.api.http) = {
get: "/v1/{parent=projects/*/locations/*}/connections"
};
option (google.api.method_signature) = "parent";
}
// Gets details of a single Connection.
rpc GetConnection(GetConnectionRequest) returns (Connection) {
option (google.api.http) = {
get: "/v1/{name=projects/*/locations/*/connections/*}"
};
option (google.api.method_signature) = "name";
}
// Creates a new Connection in a given project and location.
rpc CreateConnection(CreateConnectionRequest)
returns (google.longrunning.Operation) {
option (google.api.http) = {
post: "/v1/{parent=projects/*/locations/*}/connections"
body: "connection"
};
option (google.api.method_signature) = "parent,connection,connection_id";
option (google.longrunning.operation_info) = {
response_type: "Connection"
metadata_type: "OperationMetadata"
};
}
// Updates the parameters of a single Connection.
rpc UpdateConnection(UpdateConnectionRequest)
returns (google.longrunning.Operation) {
option (google.api.http) = {
patch: "/v1/{connection.name=projects/*/locations/*/connections/*}"
body: "connection"
};
option (google.api.method_signature) = "connection,update_mask";
option (google.longrunning.operation_info) = {
response_type: "Connection"
metadata_type: "OperationMetadata"
};
}
// Deletes a single Connection.
rpc DeleteConnection(DeleteConnectionRequest)
returns (google.longrunning.Operation) {
option (google.api.http) = {
delete: "/v1/{name=projects/*/locations/*/connections/*}"
};
option (google.api.method_signature) = "name";
option (google.longrunning.operation_info) = {
response_type: "google.protobuf.Empty"
metadata_type: "OperationMetadata"
};
}
// Creates a GitRepositoryLink. Upon linking a Git Repository, Developer
// Connect will configure the Git Repository to send webhook events to
// Developer Connect. Connections that use Firebase GitHub Application will
// have events forwarded to the Firebase service. All other Connections will
// have events forwarded to Cloud Build.
rpc CreateGitRepositoryLink(CreateGitRepositoryLinkRequest)
returns (google.longrunning.Operation) {
option (google.api.http) = {
post: "/v1/{parent=projects/*/locations/*/connections/*}/gitRepositoryLinks"
body: "git_repository_link"
};
option (google.api.method_signature) =
"parent,git_repository_link,git_repository_link_id";
option (google.longrunning.operation_info) = {
response_type: "GitRepositoryLink"
metadata_type: "OperationMetadata"
};
}
// Deletes a single GitRepositoryLink.
rpc DeleteGitRepositoryLink(DeleteGitRepositoryLinkRequest)
returns (google.longrunning.Operation) {
option (google.api.http) = {
delete: "/v1/{name=projects/*/locations/*/connections/*/gitRepositoryLinks/*}"
};
option (google.api.method_signature) = "name";
option (google.longrunning.operation_info) = {
response_type: "google.protobuf.Empty"
metadata_type: "OperationMetadata"
};
}
// Lists GitRepositoryLinks in a given project, location, and connection.
rpc ListGitRepositoryLinks(ListGitRepositoryLinksRequest)
returns (ListGitRepositoryLinksResponse) {
option (google.api.http) = {
get: "/v1/{parent=projects/*/locations/*/connections/*}/gitRepositoryLinks"
};
option (google.api.method_signature) = "parent";
}
// Gets details of a single GitRepositoryLink.
rpc GetGitRepositoryLink(GetGitRepositoryLinkRequest)
returns (GitRepositoryLink) {
option (google.api.http) = {
get: "/v1/{name=projects/*/locations/*/connections/*/gitRepositoryLinks/*}"
};
option (google.api.method_signature) = "name";
}
// Fetches read/write token of a given gitRepositoryLink.
rpc FetchReadWriteToken(FetchReadWriteTokenRequest)
returns (FetchReadWriteTokenResponse) {
option (google.api.http) = {
post: "/v1/{git_repository_link=projects/*/locations/*/connections/*/gitRepositoryLinks/*}:fetchReadWriteToken"
body: "*"
};
option (google.api.method_signature) = "git_repository_link";
}
// Fetches read token of a given gitRepositoryLink.
rpc FetchReadToken(FetchReadTokenRequest) returns (FetchReadTokenResponse) {
option (google.api.http) = {
post: "/v1/{git_repository_link=projects/*/locations/*/connections/*/gitRepositoryLinks/*}:fetchReadToken"
body: "*"
};
option (google.api.method_signature) = "git_repository_link";
}
// FetchLinkableGitRepositories returns a list of git repositories from an SCM
// that are available to be added to a Connection.
rpc FetchLinkableGitRepositories(FetchLinkableGitRepositoriesRequest)
returns (FetchLinkableGitRepositoriesResponse) {
option (google.api.http) = {
get: "/v1/{connection=projects/*/locations/*/connections/*}:fetchLinkableGitRepositories"
};
option (google.api.method_signature) = "connection";
}
// FetchGitHubInstallations returns the list of GitHub Installations that
// are available to be added to a Connection.
// For github.com, only installations accessible to the authorizer token
// are returned. For GitHub Enterprise, all installations are returned.
rpc FetchGitHubInstallations(FetchGitHubInstallationsRequest)
returns (FetchGitHubInstallationsResponse) {
option (google.api.http) = {
get: "/v1/{connection=projects/*/locations/*/connections/*}:fetchGitHubInstallations"
};
option (google.api.method_signature) = "connection";
}
// Fetch the list of branches or tags for a given repository.
rpc FetchGitRefs(FetchGitRefsRequest) returns (FetchGitRefsResponse) {
option (google.api.http) = {
get: "/v1/{git_repository_link=projects/*/locations/*/connections/*/gitRepositoryLinks/*}:fetchGitRefs"
};
option (google.api.method_signature) = "git_repository_link,ref_type";
}
}
// Message describing Connection object
message Connection {
option (google.api.resource) = {
type: "developerconnect.googleapis.com/Connection"
pattern: "projects/{project}/locations/{location}/connections/{connection}"
plural: "connections"
singular: "connection"
style: DECLARATIVE_FRIENDLY
};
// Configuration for the connection depending on the type of provider.
oneof connection_config {
// Configuration for connections to github.com.
GitHubConfig github_config = 5;
}
// Identifier. The resource name of the connection, in the format
// `projects/{project}/locations/{location}/connections/{connection_id}`.
string name = 1 [(google.api.field_behavior) = IDENTIFIER];
// Output only. [Output only] Create timestamp
google.protobuf.Timestamp create_time = 2
[(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. [Output only] Update timestamp
google.protobuf.Timestamp update_time = 3
[(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. [Output only] Delete timestamp
google.protobuf.Timestamp delete_time = 11
[(google.api.field_behavior) = OUTPUT_ONLY];
// Optional. Labels as key value pairs
map<string, string> labels = 4 [(google.api.field_behavior) = OPTIONAL];
// Output only. Installation state of the Connection.
InstallationState installation_state = 6
[(google.api.field_behavior) = OUTPUT_ONLY];
// Optional. If disabled is set to true, functionality is disabled for this
// connection. Repository based API methods and webhooks processing for
// repositories in this connection will be disabled.
bool disabled = 7 [(google.api.field_behavior) = OPTIONAL];
// Output only. Set to true when the connection is being set up or updated in
// the background.
bool reconciling = 8 [(google.api.field_behavior) = OUTPUT_ONLY];
// Optional. Allows clients to store small amounts of arbitrary data.
map<string, string> annotations = 9 [(google.api.field_behavior) = OPTIONAL];
// Optional. This checksum is computed by the server based on the value of
// other fields, and may be sent on update and delete requests to ensure the
// client has an up-to-date value before proceeding.
string etag = 10 [(google.api.field_behavior) = OPTIONAL];
// Output only. A system-assigned unique identifier for a the
// GitRepositoryLink.
string uid = 12 [
(google.api.field_info).format = UUID4,
(google.api.field_behavior) = OUTPUT_ONLY
];
}
// Describes stage and necessary actions to be taken by the
// user to complete the installation. Used for GitHub and GitHub Enterprise
// based connections.
message InstallationState {
// Stage of the installation process.
enum Stage {
// No stage specified.
STAGE_UNSPECIFIED = 0;
// Only for GitHub Enterprise. An App creation has been requested.
// The user needs to confirm the creation in their GitHub enterprise host.
PENDING_CREATE_APP = 1;
// User needs to authorize the GitHub (or Enterprise) App via OAuth.
PENDING_USER_OAUTH = 2;
// User needs to follow the link to install the GitHub (or Enterprise) App.
PENDING_INSTALL_APP = 3;
// Installation process has been completed.
COMPLETE = 10;
}
// Output only. Current step of the installation process.
Stage stage = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. Message of what the user should do next to continue the
// installation. Empty string if the installation is already complete.
string message = 2 [(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. Link to follow for next action. Empty string if the
// installation is already complete.
string action_uri = 3 [(google.api.field_behavior) = OUTPUT_ONLY];
}
// Configuration for connections to github.com.
message GitHubConfig {
// Represents the various GitHub Applications that can be installed to a
// GitHub user or organization and used with Developer Connect.
enum GitHubApp {
// GitHub App not specified.
GIT_HUB_APP_UNSPECIFIED = 0;
// The Developer Connect GitHub Application.
DEVELOPER_CONNECT = 1;
// The Firebase GitHub Application.
FIREBASE = 2;
}
// Required. Immutable. The GitHub Application that was installed to the
// GitHub user or organization.
GitHubApp github_app = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.field_behavior) = IMMUTABLE
];
// Optional. OAuth credential of the account that authorized the GitHub App.
// It is recommended to use a robot account instead of a human user account.
// The OAuth token must be tied to the GitHub App of this config.
OAuthCredential authorizer_credential = 2
[(google.api.field_behavior) = OPTIONAL];
// Optional. GitHub App installation id.
int64 app_installation_id = 3 [(google.api.field_behavior) = OPTIONAL];
// Output only. The URI to navigate to in order to manage the installation
// associated with this GitHubConfig.
string installation_uri = 4 [(google.api.field_behavior) = OUTPUT_ONLY];
}
// Represents an OAuth token of the account that authorized the Connection,
// and associated metadata.
message OAuthCredential {
// Required. A SecretManager resource containing the OAuth token that
// authorizes the connection. Format: `projects/*/secrets/*/versions/*`.
string oauth_token_secret_version = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "secretmanager.googleapis.com/SecretVersion"
}
];
// Output only. The username associated with this token.
string username = 2 [(google.api.field_behavior) = OUTPUT_ONLY];
}
// Message for requesting list of Connections
message ListConnectionsRequest {
// Required. Parent value for ListConnectionsRequest
string parent = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
child_type: "developerconnect.googleapis.com/Connection"
}
];
// Optional. Requested page size. Server may return fewer items than
// requested. If unspecified, server will pick an appropriate default.
int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL];
// Optional. A token identifying a page of results the server should return.
string page_token = 3 [(google.api.field_behavior) = OPTIONAL];
// Optional. Filtering results
string filter = 4 [(google.api.field_behavior) = OPTIONAL];
// Optional. Hint for how to order the results
string order_by = 5 [(google.api.field_behavior) = OPTIONAL];
}
// Message for response to listing Connections
message ListConnectionsResponse {
// The list of Connection
repeated Connection connections = 1;
// A token identifying a page of results the server should return.
string next_page_token = 2;
// Locations that could not be reached.
repeated string unreachable = 3;
}
// Message for getting a Connection
message GetConnectionRequest {
// Required. Name of the resource
string name = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "developerconnect.googleapis.com/Connection"
}
];
}
// Message for creating a Connection
message CreateConnectionRequest {
// Required. Value for parent.
string parent = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
child_type: "developerconnect.googleapis.com/Connection"
}
];
// Required. Id of the requesting object
// If auto-generating Id server-side, remove this field and
// connection_id from the method_signature of Create RPC
string connection_id = 2 [(google.api.field_behavior) = REQUIRED];
// Required. The resource being created
Connection connection = 3 [(google.api.field_behavior) = REQUIRED];
// Optional. An optional request ID to identify requests. Specify a unique
// request ID so that if you must retry your request, the server will know to
// ignore the request if it has already been completed. The server will
// guarantee that for at least 60 minutes since the first request.
//
// For example, consider a situation where you make an initial request and the
// request times out. If you make the request again with the same request
// ID, the server can check if original operation with the same request ID
// was received, and if so, will ignore the second request. This prevents
// clients from accidentally creating duplicate commitments.
//
// The request ID must be a valid UUID with the exception that zero UUID is
// not supported (00000000-0000-0000-0000-000000000000).
string request_id = 4 [
(google.api.field_info).format = UUID4,
(google.api.field_behavior) = OPTIONAL
];
// Optional. If set, validate the request, but do not actually post it.
bool validate_only = 5 [(google.api.field_behavior) = OPTIONAL];
}
// Message for updating a Connection
message UpdateConnectionRequest {
// Required. Field mask is used to specify the fields to be overwritten in the
// Connection resource by the update.
// The fields specified in the update_mask are relative to the resource, not
// the full request. A field will be overwritten if it is in the mask. If the
// user does not provide a mask then all fields will be overwritten.
google.protobuf.FieldMask update_mask = 1
[(google.api.field_behavior) = REQUIRED];
// Required. The resource being updated
Connection connection = 2 [(google.api.field_behavior) = REQUIRED];
// Optional. An optional request ID to identify requests. Specify a unique
// request ID so that if you must retry your request, the server will know to
// ignore the request if it has already been completed. The server will
// guarantee that for at least 60 minutes since the first request.
//
// For example, consider a situation where you make an initial request and the
// request times out. If you make the request again with the same request
// ID, the server can check if original operation with the same request ID
// was received, and if so, will ignore the second request. This prevents
// clients from accidentally creating duplicate commitments.
//
// The request ID must be a valid UUID with the exception that zero UUID is
// not supported (00000000-0000-0000-0000-000000000000).
string request_id = 3 [
(google.api.field_info).format = UUID4,
(google.api.field_behavior) = OPTIONAL
];
// Optional. If set to true, and the connection is not found a new connection
// will be created. In this situation `update_mask` is ignored.
// The creation will succeed only if the input connection has all the
// necessary information (e.g a github_config with both user_oauth_token and
// installation_id properties).
bool allow_missing = 4 [(google.api.field_behavior) = OPTIONAL];
// Optional. If set, validate the request, but do not actually post it.
bool validate_only = 5 [(google.api.field_behavior) = OPTIONAL];
}
// Message for deleting a Connection
message DeleteConnectionRequest {
// Required. Name of the resource
string name = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "developerconnect.googleapis.com/Connection"
}
];
// Optional. An optional request ID to identify requests. Specify a unique
// request ID so that if you must retry your request, the server will know to
// ignore the request if it has already been completed. The server will
// guarantee that for at least 60 minutes after the first request.
//
// For example, consider a situation where you make an initial request and the
// request times out. If you make the request again with the same request
// ID, the server can check if original operation with the same request ID
// was received, and if so, will ignore the second request. This prevents
// clients from accidentally creating duplicate commitments.
//
// The request ID must be a valid UUID with the exception that zero UUID is
// not supported (00000000-0000-0000-0000-000000000000).
string request_id = 2 [
(google.api.field_info).format = UUID4,
(google.api.field_behavior) = OPTIONAL
];
// Optional. If set, validate the request, but do not actually post it.
bool validate_only = 3 [(google.api.field_behavior) = OPTIONAL];
// Optional. The current etag of the Connection.
// If an etag is provided and does not match the current etag of the
// Connection, deletion will be blocked and an ABORTED error will be returned.
string etag = 4 [(google.api.field_behavior) = OPTIONAL];
}
// Represents the metadata of the long-running operation.
message OperationMetadata {
// Output only. The time the operation was created.
google.protobuf.Timestamp create_time = 1
[(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. The time the operation finished running.
google.protobuf.Timestamp end_time = 2
[(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. Server-defined resource path for the target of the operation.
string target = 3 [(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. Name of the verb executed by the operation.
string verb = 4 [(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. Human-readable status of the operation, if any.
string status_message = 5 [(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. Identifies whether the user has requested cancellation
// of the operation. Operations that have been cancelled successfully
// have [Operation.error][] value with a
// [google.rpc.Status.code][google.rpc.Status.code] of 1, corresponding to
// `Code.CANCELLED`.
bool requested_cancellation = 6 [(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. API version used to start the operation.
string api_version = 7 [(google.api.field_behavior) = OUTPUT_ONLY];
}
// Message describing the GitRepositoryLink object
message GitRepositoryLink {
option (google.api.resource) = {
type: "developerconnect.googleapis.com/GitRepositoryLink"
pattern: "projects/{project}/locations/{location}/connections/{connection}/gitRepositoryLinks/{git_repository_link}"
plural: "gitRepositoryLinks"
singular: "gitRepositoryLink"
style: DECLARATIVE_FRIENDLY
};
// Identifier. Resource name of the repository, in the format
// `projects/*/locations/*/connections/*/gitRepositoryLinks/*`.
string name = 1 [(google.api.field_behavior) = IDENTIFIER];
// Required. Git Clone URI.
string clone_uri = 2 [(google.api.field_behavior) = REQUIRED];
// Output only. [Output only] Create timestamp
google.protobuf.Timestamp create_time = 3
[(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. [Output only] Update timestamp
google.protobuf.Timestamp update_time = 4
[(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. [Output only] Delete timestamp
google.protobuf.Timestamp delete_time = 5
[(google.api.field_behavior) = OUTPUT_ONLY];
// Optional. Labels as key value pairs
map<string, string> labels = 6 [(google.api.field_behavior) = OPTIONAL];
// Optional. This checksum is computed by the server based on the value of
// other fields, and may be sent on update and delete requests to ensure the
// client has an up-to-date value before proceeding.
string etag = 7 [(google.api.field_behavior) = OPTIONAL];
// Output only. Set to true when the connection is being set up or updated in
// the background.
bool reconciling = 8 [(google.api.field_behavior) = OUTPUT_ONLY];
// Optional. Allows clients to store small amounts of arbitrary data.
map<string, string> annotations = 9 [(google.api.field_behavior) = OPTIONAL];
// Output only. A system-assigned unique identifier for a the
// GitRepositoryLink.
string uid = 10 [
(google.api.field_info).format = UUID4,
(google.api.field_behavior) = OUTPUT_ONLY
];
}
// Message for creating a GitRepositoryLink
message CreateGitRepositoryLinkRequest {
// Required. Value for parent.
string parent = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
child_type: "developerconnect.googleapis.com/GitRepositoryLink"
}
];
// Required. The resource being created
GitRepositoryLink git_repository_link = 2
[(google.api.field_behavior) = REQUIRED];
// Required. The ID to use for the repository, which will become the final
// component of the repository's resource name. This ID should be unique in
// the connection. Allows alphanumeric characters and any of
// -._~%!$&'()*+,;=@.
string git_repository_link_id = 3 [(google.api.field_behavior) = REQUIRED];
// Optional. An optional request ID to identify requests. Specify a unique
// request ID so that if you must retry your request, the server will know to
// ignore the request if it has already been completed. The server will
// guarantee that for at least 60 minutes since the first request.
//
// For example, consider a situation where you make an initial request and the
// request times out. If you make the request again with the same request
// ID, the server can check if original operation with the same request ID
// was received, and if so, will ignore the second request. This prevents
// clients from accidentally creating duplicate commitments.
//
// The request ID must be a valid UUID with the exception that zero UUID is
// not supported (00000000-0000-0000-0000-000000000000).
string request_id = 4 [
(google.api.field_info).format = UUID4,
(google.api.field_behavior) = OPTIONAL
];
// Optional. If set, validate the request, but do not actually post it.
bool validate_only = 5 [(google.api.field_behavior) = OPTIONAL];
}
// Message for deleting a GitRepositoryLink
message DeleteGitRepositoryLinkRequest {
// Required. Name of the resource
string name = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "developerconnect.googleapis.com/GitRepositoryLink"
}
];
// Optional. An optional request ID to identify requests. Specify a unique
// request ID so that if you must retry your request, the server will know to
// ignore the request if it has already been completed. The server will
// guarantee that for at least 60 minutes after the first request.
//
// For example, consider a situation where you make an initial request and the
// request times out. If you make the request again with the same request
// ID, the server can check if original operation with the same request ID
// was received, and if so, will ignore the second request. This prevents
// clients from accidentally creating duplicate commitments.
//
// The request ID must be a valid UUID with the exception that zero UUID is
// not supported (00000000-0000-0000-0000-000000000000).
string request_id = 2 [
(google.api.field_info).format = UUID4,
(google.api.field_behavior) = OPTIONAL
];
// Optional. If set, validate the request, but do not actually post it.
bool validate_only = 3 [(google.api.field_behavior) = OPTIONAL];
// Optional. This checksum is computed by the server based on the value of
// other fields, and may be sent on update and delete requests to ensure the
// client has an up-to-date value before proceeding.
string etag = 4 [(google.api.field_behavior) = OPTIONAL];
}
// Message for requesting a list of GitRepositoryLinks
message ListGitRepositoryLinksRequest {
// Required. Parent value for ListGitRepositoryLinksRequest
string parent = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
child_type: "developerconnect.googleapis.com/GitRepositoryLink"
}
];
// Optional. Requested page size. Server may return fewer items than
// requested. If unspecified, server will pick an appropriate default.
int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL];
// Optional. A token identifying a page of results the server should return.
string page_token = 3 [(google.api.field_behavior) = OPTIONAL];
// Optional. Filtering results
string filter = 4 [(google.api.field_behavior) = OPTIONAL];
// Optional. Hint for how to order the results
string order_by = 5 [(google.api.field_behavior) = OPTIONAL];
}
// Message for response to listing GitRepositoryLinks
message ListGitRepositoryLinksResponse {
// The list of GitRepositoryLinks
repeated GitRepositoryLink git_repository_links = 1;
// A token identifying a page of results the server should return.
string next_page_token = 2;
// Locations that could not be reached.
repeated string unreachable = 3;
}
// Message for getting a GitRepositoryLink
message GetGitRepositoryLinkRequest {
// Required. Name of the resource
string name = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "developerconnect.googleapis.com/GitRepositoryLink"
}
];
}
// Message for fetching SCM read/write token.
message FetchReadWriteTokenRequest {
// Required. The resource name of the gitRepositoryLink in the format
// `projects/*/locations/*/connections/*/gitRepositoryLinks/*`.
string git_repository_link = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "developerconnect.googleapis.com/GitRepositoryLink"
}
];
}
// Message for fetching SCM read token.
message FetchReadTokenRequest {
// Required. The resource name of the gitRepositoryLink in the format
// `projects/*/locations/*/connections/*/gitRepositoryLinks/*`.
string git_repository_link = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "developerconnect.googleapis.com/GitRepositoryLink"
}
];
}
// Message for responding to get read token.
message FetchReadTokenResponse {
// The token content.
string token = 1;
// Expiration timestamp. Can be empty if unknown or non-expiring.
google.protobuf.Timestamp expiration_time = 2;
// The git_username to specify when making a git clone with the
// token. For example, for GitHub GitRepositoryLinks, this would be
// "x-access-token"
string git_username = 3;
}
// Message for responding to get read/write token.
message FetchReadWriteTokenResponse {
// The token content.
string token = 1;
// Expiration timestamp. Can be empty if unknown or non-expiring.
google.protobuf.Timestamp expiration_time = 2;
// The git_username to specify when making a git clone with the
// token. For example, for GitHub GitRepositoryLinks, this would be
// "x-access-token"
string git_username = 3;
}
// Request message for FetchLinkableGitRepositoriesRequest.
message FetchLinkableGitRepositoriesRequest {
// Required. The name of the Connection.
// Format: `projects/*/locations/*/connections/*`.
string connection = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "developerconnect.googleapis.com/Connection"
}
];
// Optional. Number of results to return in the list. Defaults to 20.
int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL];
// Optional. Page start.
string page_token = 3 [(google.api.field_behavior) = OPTIONAL];
}
// Response message for FetchLinkableGitRepositories.
message FetchLinkableGitRepositoriesResponse {
// The git repositories that can be linked to the connection.
repeated LinkableGitRepository linkable_git_repositories = 1;
// A token identifying a page of results the server should return.
string next_page_token = 2;
}
// LinkableGitRepository represents a git repository that can be linked to a
// connection.
message LinkableGitRepository {
// The clone uri of the repository.
string clone_uri = 1;
}
// Request for fetching github installations.
message FetchGitHubInstallationsRequest {
// Required. The resource name of the connection in the format
// `projects/*/locations/*/connections/*`.
string connection = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "developerconnect.googleapis.com/Connection"
}
];
}
// Response of fetching github installations.
message FetchGitHubInstallationsResponse {
// Represents an installation of the GitHub App.
message Installation {
// ID of the installation in GitHub.
int64 id = 1;
// Name of the GitHub user or organization that owns this installation.
string name = 2;
// Either "user" or "organization".
string type = 3;
}
// List of installations available to the OAuth user (for github.com)
// or all the installations (for GitHub enterprise).
repeated Installation installations = 1;
}
// Request for fetching git refs.
message FetchGitRefsRequest {
// Type of refs.
enum RefType {
// No type specified.
REF_TYPE_UNSPECIFIED = 0;
// To fetch tags.
TAG = 1;
// To fetch branches.
BRANCH = 2;
}
// Required. The resource name of GitRepositoryLink in the format
// `projects/*/locations/*/connections/*/gitRepositoryLinks/*`.
string git_repository_link = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "developerconnect.googleapis.com/GitRepositoryLink"
}
];
// Required. Type of refs to fetch.
RefType ref_type = 2 [(google.api.field_behavior) = REQUIRED];
// Optional. Number of results to return in the list. Default to 20.
int32 page_size = 4 [(google.api.field_behavior) = OPTIONAL];
// Optional. Page start.
string page_token = 5 [(google.api.field_behavior) = OPTIONAL];
}
// Response for fetching git refs.
message FetchGitRefsResponse {
// Name of the refs fetched.
repeated string ref_names = 1;
// A token identifying a page of results the server should return.
string next_page_token = 2;
}

View file

@ -0,0 +1,103 @@
type: google.api.Service
config_version: 3
name: developerconnect.googleapis.com
title: Developer Connect API
apis:
- name: google.cloud.developerconnect.v1.DeveloperConnect
- name: google.cloud.location.Locations
- name: google.longrunning.Operations
types:
- name: google.cloud.developerconnect.v1.OperationMetadata
documentation:
summary: 'Connect third-party source code management to Google'
overview: |-
Developer Connect streamlines integration with third-party source code
management platforms by simplifying authentication, authorization, and
networking configuration.
rules:
- selector: google.cloud.location.Locations.GetLocation
description: Gets information about a location.
- selector: google.cloud.location.Locations.ListLocations
description: Lists information about the supported locations for this service.
http:
rules:
- selector: google.cloud.location.Locations.GetLocation
get: '/v1/{name=projects/*/locations/*}'
- selector: google.cloud.location.Locations.ListLocations
get: '/v1/{name=projects/*}/locations'
- selector: google.longrunning.Operations.CancelOperation
post: '/v1/{name=projects/*/locations/*/operations/*}:cancel'
body: '*'
- selector: google.longrunning.Operations.DeleteOperation
delete: '/v1/{name=projects/*/locations/*/operations/*}'
- selector: google.longrunning.Operations.GetOperation
get: '/v1/{name=projects/*/locations/*/operations/*}'
- selector: google.longrunning.Operations.ListOperations
get: '/v1/{name=projects/*/locations/*}/operations'
authentication:
rules:
- selector: 'google.cloud.developerconnect.v1.DeveloperConnect.*'
oauth:
canonical_scopes: |-
https://www.googleapis.com/auth/cloud-platform
- selector: google.cloud.location.Locations.GetLocation
oauth:
canonical_scopes: |-
https://www.googleapis.com/auth/cloud-platform
- selector: google.cloud.location.Locations.ListLocations
oauth:
canonical_scopes: |-
https://www.googleapis.com/auth/cloud-platform
- selector: 'google.longrunning.Operations.*'
oauth:
canonical_scopes: |-
https://www.googleapis.com/auth/cloud-platform
publishing:
new_issue_uri: https://issuetracker.google.com/issues/new?component=1446966&template=1822025
documentation_uri: https://cloud.google.com/developer-connect/docs/overview
api_short_name: developerconnect
github_label: 'api: developerconnect'
doc_tag_prefix: developerconnect
organization: CLOUD
library_settings:
- version: google.cloud.developerconnect.v1
launch_stage: ALPHA
java_settings:
common:
destinations:
- PACKAGE_MANAGER
cpp_settings:
common:
destinations:
- PACKAGE_MANAGER
php_settings:
common:
destinations:
- PACKAGE_MANAGER
python_settings:
common:
destinations:
- PACKAGE_MANAGER
node_settings:
common:
destinations:
- PACKAGE_MANAGER
dotnet_settings:
common:
destinations:
- PACKAGE_MANAGER
ruby_settings:
common:
destinations:
- PACKAGE_MANAGER
go_settings:
common:
destinations:
- PACKAGE_MANAGER

View file

@ -0,0 +1,27 @@
{
"methodConfig": [{
"name": [
{ "service": "google.cloud.developerconnect.v1.DeveloperConnect", "method": "ListConnections" },
{ "service": "google.cloud.developerconnect.v1.DeveloperConnect", "method": "GetConnection" },
{ "service": "google.cloud.developerconnect.v1.DeveloperConnect", "method": "CreateConnection" },
{ "service": "google.cloud.developerconnect.v1.DeveloperConnect", "method": "UpdateConnection" },
{ "service": "google.cloud.developerconnect.v1.DeveloperConnect", "method": "DeleteConnection" },
{ "service": "google.cloud.developerconnect.v1.DeveloperConnect", "method": "CreateGitRepositoryLink" },
{ "service": "google.cloud.developerconnect.v1.DeveloperConnect", "method": "DeleteGitRepositoryLink" },
{ "service": "google.cloud.developerconnect.v1.DeveloperConnect", "method": "ListGitRepositoryLink" },
{ "service": "google.cloud.developerconnect.v1.DeveloperConnect", "method": "GetGitRepositoryLink" },
{ "service": "google.cloud.developerconnect.v1.DeveloperConnect", "method": "FetchReadWriteToken" },
{ "service": "google.cloud.developerconnect.v1.DeveloperConnect", "method": "FetchReadToken" },
{ "service": "google.cloud.developerconnect.v1.DeveloperConnect", "method": "FetchLinkableGitRepositories" },
{ "service": "google.cloud.developerconnect.v1.DeveloperConnect", "method": "FetchGitHubInstallations" }
],
"timeout": "60s",
"retryPolicy": {
"maxAttempts": 5,
"initialBackoff": "1s",
"maxBackoff": "10s",
"backoffMultiplier": 1.3,
"retryableStatusCodes": ["UNAVAILABLE"]
}
}]
}