123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258 |
- // Copyright 2022 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 = "google.golang.org/genproto/googleapis/cloud/connectors/v1;connectors";
- 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;
- }
- // 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.
- enum LaunchStage {
- // LAUNCH_STAGE_UNSPECIFIED.
- LAUNCH_STAGE_UNSPECIFIED = 0;
- // PREVIEW.
- PREVIEW = 1;
- // GA.
- GA = 2;
- // DEPRECATED.
- DEPRECATED = 3;
- }
|