// 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;
}