googleapis/google/cloud/connectors/v1/common.proto
Google APIs 6caf69b6f1 chore: update copyright year for auto-generated protos
PiperOrigin-RevId: 731661348
2025-02-27 03:41:56 -08:00

267 lines
7.5 KiB
Protocol Buffer

// Copyright 2025 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.connectors.v1;
import "google/api/field_behavior.proto";
import "google/protobuf/timestamp.proto";
option go_package = "cloud.google.com/go/connectors/apiv1/connectorspb;connectorspb";
option java_multiple_files = true;
option java_outer_classname = "CommonProto";
option java_package = "com.google.cloud.connectors.v1";
// 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 successfully been cancelled
// 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];
}
// ConfigVariableTemplate provides metadata about a `ConfigVariable` that is
// used in a Connection.
message ConfigVariableTemplate {
// ValueType indicates the data type of the value.
enum ValueType {
// Value type is not specified.
VALUE_TYPE_UNSPECIFIED = 0;
// Value type is string.
STRING = 1;
// Value type is integer.
INT = 2;
// Value type is boolean.
BOOL = 3;
// Value type is secret.
SECRET = 4;
// Value type is enum.
ENUM = 5;
// Value type is authorization code.
AUTHORIZATION_CODE = 6;
}
// Indicates the state of the config variable.
enum State {
// Status is unspecified.
STATE_UNSPECIFIED = 0;
// Config variable is active
ACTIVE = 1;
// Config variable is deprecated.
DEPRECATED = 2;
}
// Key of the config variable.
string key = 1;
// Type of the parameter: string, int, bool etc.
// consider custom type for the benefit for the validation.
ValueType value_type = 2;
// Display name of the parameter.
string display_name = 3;
// Description.
string description = 4;
// Regular expression in RE2 syntax used for validating the `value` of a
// `ConfigVariable`.
string validation_regex = 5;
// Flag represents that this `ConfigVariable` must be provided for a
// connection.
bool required = 6;
// Role grant configuration for the config variable.
RoleGrant role_grant = 7;
// Enum options. To be populated if `ValueType` is `ENUM`
repeated EnumOption enum_options = 8;
// Authorization code link options. To be populated if `ValueType` is
// `AUTHORIZATION_CODE`
AuthorizationCodeLink authorization_code_link = 9;
// State of the config variable.
State state = 10;
// Indicates if current template is part of advanced settings
bool is_advanced = 11;
}
// Secret provides a reference to entries in Secret Manager.
message Secret {
// The resource name of the secret version in the format,
// format as: `projects/*/secrets/*/versions/*`.
string secret_version = 1;
}
// EnumOption definition
message EnumOption {
// Id of the option.
string id = 1;
// Display name of the option.
string display_name = 2;
}
// ConfigVariable represents a configuration variable present in a Connection.
// or AuthConfig.
message ConfigVariable {
// Key of the config variable.
string key = 1;
// Value type of the config variable.
oneof value {
// Value is an integer
int64 int_value = 2;
// Value is a bool.
bool bool_value = 3;
// Value is a string.
string string_value = 4;
// Value is a secret.
Secret secret_value = 5;
}
}
// This configuration defines all the Cloud IAM roles that needs to be granted
// to a particular GCP resource for the selected prinicpal like service
// account. These configurations will let UI display to customers what
// IAM roles need to be granted by them. Or these configurations can be used
// by the UI to render a 'grant' button to do the same on behalf of the user.
message RoleGrant {
// Supported Principal values.
enum Principal {
// Value type is not specified.
PRINCIPAL_UNSPECIFIED = 0;
// Service Account used for Connector workload identity
// This is either the default service account if unspecified or Service
// Account provided by Customers through BYOSA.
CONNECTOR_SA = 1;
}
// Resource definition
message Resource {
// Resource Type definition.
enum Type {
// Value type is not specified.
TYPE_UNSPECIFIED = 0;
// GCP Project Resource.
GCP_PROJECT = 1;
// Any GCP Resource which is identified uniquely by IAM.
GCP_RESOURCE = 2;
// GCP Secret Resource.
GCP_SECRETMANAGER_SECRET = 3;
// GCP Secret Version Resource.
GCP_SECRETMANAGER_SECRET_VERSION = 4;
}
// Different types of resource supported.
Type type = 1;
// Template to uniquely represent a GCP resource in a format IAM expects
// This is a template that can have references to other values provided in
// the config variable template.
string path_template = 3;
}
// Prinicipal/Identity for whom the role need to assigned.
Principal principal = 1;
// List of roles that need to be granted.
repeated string roles = 2;
// Resource on which the roles needs to be granted for the principal.
Resource resource = 3;
// Template that UI can use to provide helper text to customers.
string helper_text_template = 4;
}
// This configuration captures the details required to render an authorization
// link for the OAuth Authorization Code Flow.
message AuthorizationCodeLink {
// The base URI the user must click to trigger the authorization code login
// flow.
string uri = 1;
// The scopes for which the user will authorize GCP Connectors on the
// connector data source.
repeated string scopes = 2;
// The client ID assigned to the GCP Connectors OAuth app for the connector
// data source.
string client_id = 3;
// Whether to enable PKCE for the auth code flow.
bool enable_pkce = 4;
}
// LaunchStage is a enum to indicate launch stage:
// PREVIEW, GA, DEPRECATED, PRIVATE_PREVIEW.
enum LaunchStage {
// LAUNCH_STAGE_UNSPECIFIED.
LAUNCH_STAGE_UNSPECIFIED = 0;
// PREVIEW.
PREVIEW = 1;
// GA.
GA = 2;
// DEPRECATED.
DEPRECATED = 3;
// PRIVATE_PREVIEW.
PRIVATE_PREVIEW = 5;
}