data-plane-api 0.1.1

Envoy xDS protobuf and gRPC definitions
Documentation
// Copyright 2021 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.sql.v1;

import "google/api/annotations.proto";
import "google/cloud/sql/v1/cloud_sql_resources.proto";
import "google/protobuf/wrappers.proto";
import "google/api/client.proto";

option go_package = "google.golang.org/genproto/googleapis/cloud/sql/v1;sql";
option java_multiple_files = true;
option java_outer_classname = "CloudSqlFlagsProto";
option java_package = "com.google.cloud.sql.v1";

// LINT: LEGACY_NAMES

// Service to manage database flags for Cloud SQL instances.
service SqlFlagsService {
  option (google.api.default_host) = "sqladmin.googleapis.com";
  option (google.api.oauth_scopes) =
      "https://www.googleapis.com/auth/cloud-platform,"
      "https://www.googleapis.com/auth/sqlservice.admin";

  // Lists all available database flags for Cloud SQL instances.
  rpc List(SqlFlagsListRequest) returns (FlagsListResponse) {
    option (google.api.http) = {
      get: "/v1/flags"
    };
  }
}

// Flags list request.
message SqlFlagsListRequest {
  // Database type and version you want to retrieve flags for. By default, this
  // method returns flags for all database types and versions.
  string database_version = 1;
}

// Flags list response.
message FlagsListResponse {
  // This is always **sql#flagsList**.
  string kind = 1;

  // List of flags.
  repeated Flag items = 2;
}

// A flag resource.
message Flag {
  // This is the name of the flag. Flag names always use underscores, not
  // hyphens, for example: **max_allowed_packet**
  string name = 1;

  // The type of the flag. Flags are typed to being **BOOLEAN**, **STRING**,
  // **INTEGER** or **NONE**. **NONE** is used for flags which do not take a
  // value, such as **skip_grant_tables**.
  SqlFlagType type = 2;

  // The database version this flag applies to. Can be **MYSQL_8_0**,
  // **MYSQL_5_6**, or **MYSQL_5_7**.
  repeated SqlDatabaseVersion applies_to = 3;

  // For **STRING** flags, a list of strings that the value can be set to.
  repeated string allowed_string_values = 4;

  // For **INTEGER** flags, the minimum allowed value.
  google.protobuf.Int64Value min_value = 5;

  // For **INTEGER** flags, the maximum allowed value.
  google.protobuf.Int64Value max_value = 6;

  // Indicates whether changing this flag will trigger a database restart. Only
  // applicable to Second Generation instances.
  google.protobuf.BoolValue requires_restart = 7;

  // This is always **sql#flag**.
  string kind = 8;

  // Whether or not the flag is considered in beta.
  google.protobuf.BoolValue in_beta = 9;

  // Use this field if only certain integers are accepted. Can be combined
  // with min_value and max_value to add additional values.
  repeated int64 allowed_int_values = 10;
}

enum SqlFlagType {
  // This is an unknown flag type.
  SQL_FLAG_TYPE_UNSPECIFIED = 0;

  // Boolean type flag.
  BOOLEAN = 1;

  // String type flag.
  STRING = 2;

  // Integer type flag.
  INTEGER = 3;

  // Flag type used for a server startup option.
  NONE = 4;

  // Type introduced specially for MySQL TimeZone offset. Accept a string value
  // with the format [-12:59, 13:00].
  MYSQL_TIMEZONE_OFFSET = 5;

  // Float type flag.
  FLOAT = 6;

  // Comma-separated list of the strings in a SqlFlagType enum.
  REPEATED_STRING = 7;
}